主库大了以后,mysqldump备份初始化 数据库从库就显得力不从心。工作:做主从
特别是在 “天下武功,唯快不破” 的年代,速度成了成功的重要前提。
用工具,用出心得。用出剑锋。。。
2:安装:推荐yum,新手必备。一刀到位。
3:压缩备份原数据库,根据实际机器core数选择压缩线程。
nohup sh backup.sh &
#!/bin/sh/usr/bin/innobackupex --defaults-file=/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password='x'x'x'--parallel=8 --compress-threads=8 --compress /dbdata/backup
4:对比主库运行参数和配置参数差异
pt-config-diff h=127.0.0.1,P=3306,u=root,p='xxx' /etc/my.cnf
5:查看成功的备份,.qp表示是压缩备份,查看备份情况 xtrabackup_info 文件。
[root@db_pre_191 2019-05-10_18-46-10]# ls
backup-my.cnf.qp ib_buffer_pool.qp mysql performance_schema sys undo001.qp undo003.qp xtrabackup_checkpoints xtrabackup_logfile.qp
call_center_db ibdata1.qp percona report tdata undo002.qp xtrabackup_binlog_info.qp xtrabackup_info.qp
uuid = 53f84dd0-7314-11e9-a17b-56318c4b9444
name=tool_name=innobackupex
tool_command= --defaults-file=/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=... --parallel=8 --compress-threads=8 --compress /dbdata/backup
tool_version = 2.4.9ibbackup_version= 2.4.9server_version= 5.7.23-logstart_time= 2019-05-10 18:46:10end_time= 2019-05-10 19:11:15lock_time= 0binlog_pos= filename 'data.000029', position '1141561', GTID of the last change '66dd0de4-e808-11e8-9977-56318c4b9444:1-5239179,
e60ad69e-3f20-11e9-ac66-3a9923d2ce01:1-71698'innodb_from_lsn= 0innodb_to_lsn= 1738871043736partial=N
incremental=N
format= filecompact=N
compressed=compressed
encrypted= N
6:NC 传数据
7:目标主机解压:
rpmkeys --import https://www.percona.com/downloads/RPM-GPG-KEY-percona
yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum install qpress -y
xtrabackup --decompress --target-dir=/data/
8:全库恢复 ,关闭数据库并删除数据文件
9:准备(prepare)一个完全备份: --apply-log 执行之后 xtrabackup_checkpoints 文件中的 backup_type = full-prepared
innobackupex --apply-log /data/2019-05-10_18-46-10
10:执行恢复:
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync 2019-05-10_18-46-10
11:更改 data/ 目录权限并启动mysql
#chown -R mysql.mysql data/
#systemctl start mysqld
12:增量备份1, 以全备为基准。
innobackupex --defaults-file=/etc/my.cnf --user=xxx --password=xxx --socket=/tmp/mysql.sock --incremental /data/inc --incremental-basedir=/data/2019-05-10_18-46-10 --parallel=2
cat xtrabackup_checkpoints
backup_type=incremental ##说明是增量备份
from_lsn= 1738871043736to_lsn= 1738871053736last_lsn=1738881053736compact= 0recover_binlog_info= 0
13:增量备份2,以增量1为准
innobackupex --defaults-file=/etc/my.cnf --user=xxx--password=xxx --socket=/tmp/mysql.sock --incremental /data/inc --incremental-basedir=/data/inc/2019-05-10_19-46-10/ --parallel=2
14: 增量备份恢复:下面是别人测的示例
恢复完全备份
恢复增量备份到完全备份(开始恢复的增量备份要添加--redo-only参数,到最后一次增量备份要去掉--redo-only)
对整体的完全备份进行恢复,回滚未提交的数据
##准备一个全备##[root@centos6 pxb]# innobackupex --apply-log --redo-only /data/pxb/2017-04-24_02-46-11/
xtrabackup: startingshutdown with innodb_fast_shutdown = 1InnoDB: Startingshutdown...
InnoDB:Shutdown completed; log sequence number 2628145InnoDB:Number of pools: 1
01:33:52completed OK!
##将增量1应用到完全备份##[root@centos6 pxb]# innobackupex --apply-log --redo-only /data/pxb/2017-04-24_02-46-11/ --incremental-dir=/data/pxb/inc/2017-04-28_01-09-40/
##将增量2应用到完全备份,注意不加--redo-only 参数了##
[root@centos6 pxb]# innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/ --incremental-dir=/data/pxb/inc/2017-04-28_01-27-46/
##把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据##[root@centos6 pxb]# innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/
xtrabackup: Log applied to lsn 2628145xtrabackup: The intended lsnis 2643563