MySQL
常用语句
用户相关\管理相关\数据相关
视图\事件\存储过程\函数\游标\触发器
事务\分区
常用工具
管理优化
锁问题
MySQL日志
异步复制
半同步复制
复制管理
5.7开启并行复制
双主备份
故障问题
索引
时区
表的导出导入
MySQLdump逻辑备份
XtraBackup全备
XtraBackup增备
XtraBackup原表数据恢复
安装MySQL
ProxySQL中间件
Atlas中间件
keepalived安装
MHA安装
MHA恢复
mha复制检查报错及解决过程
集群Cluster安装
维护Cluster
开启审计功能
本文档使用MrDoc发布
返回首页
-
+
XtraBackup全备
2019年11月24日 18:51
admin
#安装 ####centos7 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm yum install -y percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm ####centos6 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm yum install -y percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm #使用 ###常用参数 --user= #指定数据库备份用户 --password= #指定数据库备份用户密码 --port= #指定数据库端口 --host= #指定备份主机 --socket= #指定socket文件路径 --databases= #备份指定数据库,多个空格隔开,如–databases=”dbname1 dbname2″,不加备份所有库 --defaults-file= #指定my.cnf配置文件 --apply-log #该选项表示同xtrabackup的--prepare参数,一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据 文件仍处理不一致状态。--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。 --incremental= #增量备份,后跟增量备份路径 --incremental-basedir= #增量备份,指上次增量备份路径 --redo-only #合并全备和增量备份数据文件 --copy-back #将备份数据复制到数据库,数据库目录要为空 --no-timestamp #生成备份文件不以时间戳为目录名 --parallel=4 #表示备份文件的线程数 --use-memory #表示提供多少内存以加速处理,默认100m -–stream= #指定流的格式做备份,–stream=tar,将备份文件归档 ##创建备份用户 GRANT ALL PRIVILEGES ON *.* TO 'bak'@'%' IDENTIFIED BY 'Bak2021!!'; flush privileges; ##完整备份与恢复 ###备份机操作: ###2.1 完整备份 #本地备份 innobackupex --defaults-file=/etc/my.cnf --user=bak --password='bak2015' --use-memory=256m --parallel=4 --no-timestamp /data/mysql_backup #本地备份(压缩) innobackupex --defaults-file=/etc/my.cnf --user=bak --password='bak2015' --use-memory=256m --stream=tar --no-timestamp /data/mysql_backup | gzip > /data/mysql_backup/mysql_backup.tar.gz #远程备份(不压缩) innobackupex --defaults-file=/etc/my.cnf --user=bak --password='bak2015' --use-memory=256m --stream=tar --no-timestamp /data/mysql_backup | ssh root@192.168.110.145 "cat > /data/mysql_backup/mysql_backup.tar" #远程备份(压缩) innobackupex --defaults-file=/etc/my.cnf --user=bak --password='bak2015' --use-memory=256m --stream=tar --no-timestamp /data/mysql_backup | ssh root@192.168.110.145 "gzip > /data/mysql_backup/mysql_backup.tar.gz" #远程备份(限速)(5Mb/S) #先安装pv yum -y install pv #命令 innobackupex --defaults-file=/etc/my.cnf --user=bak --password='bak2015' --use-memory=256m --stream=tar --no-timestamp /data/mysql_backup | pv -q -L5m |ssh root@192.168.110.145 "gzip > /data/mysql_backup/mysql_backup.tar.gz" ![](/media//202106/2021-06-06203222243844.png) --- ###还原机操作 ###解压tar.gz压缩文件 tar -izxvf mysql_backup.tar.gz ###2.2 恢复备份 innobackupex --apply-log /data/mysql_backup ###2.3 停止服务 systemctl stop mysql ###2.4 备份原数据 mkdir -p /var/lib/mysql_bak/ mv /var/lib/mysql/* /var/lib/mysql_bak/ ###2.5 执行拷贝 innobackupex --defaults-file=/etc/my.cnf --copy-back /data/mysql_backup innobackupex --defaults-file=/etc/my.cnf --move-back /data/mysql_backup ####恢复的时候需要指定--copy-back 或者--move-back,前者是copy,后者是mv。 ###2.6 权限修改 chown -R mysql:mysql /var/lib/mysql ###2.7 启动服务 systemctl start mysql ##日志重做 ###3.1 查询xtrabackup_binlog_info cat /data/mysql_backup/xtrabackup_binlog_info ![](/media//201911/2019-11-24191410414029.png) ###3.2 binlog重做(命令方式) mysqlbinlog --start-position=1303 /var/lib/mysql/master-bin.000001 | mysql -uroot -p #还原到最新 ###3.2 binlog重做(从库加入) mysql > change master to master_host = '192.168.14.130', master_port = 3306, master_user = 'repl', master_password = 'passwd', master_log_file = 'master-bin.000001', #此文件名为xtrabackup_binlog_info中的文件名 master_log_pos = 1303; #此数字为xtrabackup_binlog_info中的数字
分享到: