mysql备份
2018-01-15 本文已影响0人
donglq
备份两种方式
一、xtrabackup
只能备份数据,不能备份表结构
- 备份
sudo xtrabackup --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf --backup --host=127.0.0.1 --port=3306 --user=backup --password=123456 --backup--target-dir=./
- 处理
sudo xtrabackup --prepare --target-dir=./xtrabackup_backupfiles/
- 恢复: 将数据copy到data下即可
二、innobackupex
- 备份
sudo innobackupex --parallel=6 --host=127.0.0.1 --port=3306 --user=backup --password=123456 --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf ./
记住 最后输出的filename,position, GTID,类似
filename 'mysql-bin.023745', position 282434278, GTID of the last change 'efafe04e-57c7-11e6-8f43-5cb90191669c:2-5228202:5228204-7114224:7114226-7114388:7114390-7136818:7136820-7175006,
fb7b123d-57c8-11e6-8f4a-5cb90191667c:1-74099947'
如果备份使用了--compress参数压缩,需要先执行(需要qpress支持)
sudo innobackupex --decompress ./file
-
关闭待恢复的数据库,清空mysql数据目录下data文件。
-
恢复日志文件
sudo innobackupex --host=127.0.0.1 --port=3306 --user=backup --password=123456 --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf --apply-log ./2017-11-17_01-00-59/
- 恢复数据文件
sudo innobackupex --host=127.0.0.1 --port=3306 --user=backup --password=123456 --defaults-file=/home/q/mysql/multi/3306/etc/my.cnf --copy-back ./2017-11-17_01-00-59/
- 修改数据权限
sudo chown -R mysql:mysql data
- 启动数据库
sudo /etc/init.d/mysql.server -P 3306 start
- 登陆数据库执行如下操作,将gtid替换为前面记录的gtid,其他参数替换为实际值
reset master;
SET GLOBAL gtid_purged='gtid';
reset slave;
CHANGE MASTER TO MASTER_HOST='host',
MASTER_USER='backup',
master_port=port,
MASTER_PASSWORD='password',
MASTER_AUTO_POSITION=1;
start slave;
- 检查
show slave status;