网站建设资讯

NEWS

网站建设资讯

XtraBackup基本安装及innobackupex使用方法,远程备份

#获得下载地址
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/x86_64/percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


yum install percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


#完全备份
innobackupex --user=root --password=123456  /db_bak


#恢复,已复制整个结构的方式恢复数据库,执行前必须stop MySQL服务,否则会出现不可预知的错误
service mysqld stop
#此时恢复还是会报 /var/lib/mysql/ is not empty,需要删掉/var/lib/mysql/目录下所有的文件
cd /var/lib/mysql/
rm -rf /var/lib/mysql/*
#全量恢复
innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/ ---回写日志这一步 不能少
innobackupex --user=root --password=123456 --copy-back /db_bak/2016-01-13_14-21-24/ 
#设置权限,恢复之后 发现权限都是root,需要修改成mysql,到了这一步全量还原算是完成了,记得重启服务
chown -R mysql:mysql /var/lib/mysql/
service mysqld start


#增量备份


innobackupex  --user=root --password=123456 --incremental-basedir=/db_bak/2016-01-13_14-21-24  --incremental /db_bak


#增量备份恢复:
#将所有的增量备份挨个应用到完整备份的数据文件中,然后再将完整备份中的数据恢复到数据库中
#停止mysql服务(必须)
service mysqld stop
#删除数据文件
cd /var/lib/mysql/
rm -rf /var/lib/mysql/*
#重做全备份的日志
innobackupex --apply-log --redo-only /db_bak/2016-01-13_14-21-24/
#应用第一个增量备份
innobackupex --user=root --password=123456  --apply-log /db_bak/2016-01-13_14-21-24/ --incremental-dir=/db_bak/2016-01-14_11-47-00/ 


#日志已经写入全备份中,重做全备份即可
innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/  ---回写日志这一步 不能少
innobackupex --user=root --password=123456 --copy-back /db_bak/2016-01-13_14-21-24/ 
#删除mysql日志,这一步步能少
MySQL目录下的ib_logfile0和ib_logfile1两个文件
cd /var/lib/mysql/
cp ib_logfile0 ib_logfile0_bak
cp ib_logfile1 ib_logfile1_bak
rm -rf ib_logfile0
rm -rf ib_logfile1
#设置权限,恢复之后 发现权限都是root,需要修改成mysql,到了这一步全量还原算是完成了,记得重启服务
chown -R mysql:mysql /var/lib/mysql/
service mysqld start




#出现数据崩溃 或者 如copied innodb but log 不符的情况
需要设置
innodb_force_recovery=6
innodb_purge_thread=0
重启服务,
然后 在mysqldump导出数据库逻辑备份
在将 设置改成默认
innodb_force_recovery=0
innodb_purge_thread=1
重启服务 还原数据库即可,


出现MySQL Plugin 'InnoDB' init function returned error.
删除MySQL目录下的ib_logfile0和ib_logfile1两个文件,就可以解决问题了
mysql 会重新生成这两个日志

#远程备份,备份到10.50.85.104,需要安装sshpass
cd /etc/yum.repos.d

wget http://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo

yum install sshpass

#压缩
innobackupex --user=root --password=123456 --stream=tar ./ | gzip | sshpass -p 'WCcj1Fylr5Hc!@' ssh root@10.50.85.104 "cat - > /var/db_bak/backup.tar.gz"


#备份mysiam表
 myisam表的备份则是通过发出命令flush tables with read lock,然后拷贝myisam的相关表文件 
所以此时 只能进行读 不能进行任何写操作 这里指针对所有库




网站栏目:XtraBackup基本安装及innobackupex使用方法,远程备份
文章转载:http://cdweb.net/article/iggcci.html