mysql数据的备份

一、备份方式

1、备份:逻辑备份(mysqldump,mydumper)、物理备份(xtrabackup、tar、cp、rsync)    2、冗余:主备模式、数据库集群

二、备份对象

1、数据(库、表)  2、日志文件

三、物理备份(适合大型数据库,不受引擎的限制)实验用的是mariadb,步骤按mysql来

1、percona-xtrabackup 物理备份 + binlog

1.1下载软件包(超级慢 http://www.percona.com/software/percona-xtrabackup/ )

#wget http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm(下载YUM源)

#yum -y install percona-release-0.1-3.noarch.rpm(安装yum源)

#yum -y install percona-xtrabackup-24.x86_64 (安装percona)

注意:需要进入仓库把gpgcheck改为0

#vim percona-release.repo

# rpm -q  percona-xtrabackup-24  (查看版本)
percona-xtrabackup-24-2.4.16-1.el7.x86_64

1.2备份流程

>grant all privileges on  *.* to 'root'@'localhost' identified by '密码';(授权自己定义)

# innobackupex --user=root --password='5740##' /xtrabackup/full 

 [root@localhost ~]# cd /xtrabackup/full/ (备份目录)
[root@localhost full]# ls
2019-11-05_06-38-48

#cat /xtrabackup/full/2017-08-01_00-00-18/xtrabackup_binlog_info  (二进制日志文件)

1.3恢复流程

#systemctl stop mysqld

 #innobackupex --apply-log /xtrabackup/full/2017-08-01_00-00-18/ (生成回滚日志)

# innobackupex --copy-back /xtrabackup/full/2017-08-01_00-00-18/  (恢复文件)

 1.4增量备份(差异备份及其恢复大致一样)

innobackupex --user=root --password='密码'   --incremental /xtrabackup/   --incremental-basedir=/xtrabackup/2017-09-01_00-00-04(basedir基于周一的备份。
会生成一个今天的。)

2、tar备份数据库(物理备份)

2.1备份

# systemctl stop  mariadb

#  tar -cf /backup/`date +%F`-mariadb-all.tar  /var/lib/mysql (备份成功)

 2.2恢复

# rm -rf /var/lib/mysql/*

# tar -xf /backup/2016-12-07-mysql-all.tar  -C / (-C / 会让tar包恢复到原来的路径)

# systemctl start mariadb
3、Lvm快照实现物理备份 + binlog(物理备份))

 四、逻辑备份

1、细节不在累述(看官网https://dev.mysql.com/doc/refman/5.7/en/reloading-sql-format-dumps.html

[root@localhost ~]# mysqldump -p'密码'
--all-databases --single-transaction     #保证导出的一致性状态--single-transaction
 --master-data=2     #master-data=2 注释掉日志记录
--flush-logs
>  /backup/`date +%F-%H`-mysql-all.sql

2、恢复

 mysql  -p'密码' < /backup/2016-12-08-04-mysql-all.sql

原文地址:https://www.cnblogs.com/zjz20/p/11775041.html