一、备份方式
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