美文网首页
mysql备份

mysql备份

作者: donglq | 来源:发表于2018-01-15 23:43 被阅读0次

备份两种方式

一、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;

相关文章

网友评论

      本文标题:mysql备份

      本文链接:https://www.haomeiwen.com/subject/nosjoxtx.html