实验环境:CentOS7
#热备:--single-transaction #-R:存储过程和存储函数 #-E:events 事件 --triggers:触发器 #--master-data=2 :CHANGE MASTER TO 语句被注释 #此次备份是全量备份,备份之后会生成二进制日志的序列号,如果在此之后有其他写操作,可再结合二进制日志的备份还原 [root@mysql localhost]#mysqldump -uroot --single-transaction --all-databases -R -E --triggers --master-data=2 --flush-logs > /root/all-databases-$(date +%F).sql [root@mysql localhost]#ls /root/ all-databases-2017-07-13.sql #备份完之后查看: MariaDB [(none)]> show master logs; | mysql-bin.000011 | 245 #结合备份文件再次确认此序列号: [root@~ localhost]#less all-databases-2017-07-13.sql -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000011', MASTER_LOG_POS=245; #接下来省略关于数据了的写操作; #再另一数据库服务器进行还原: MariaDB [(none)]> show master logs; | mysql-bin.000011 | 334 sed -i ‘s@ENGINE=MyISAM@ENGINE=InnoDBg’ hellodb mysqlbinlog master-log.000005 > /tmp/binlog.sql 做还原时,要暂时关闭二进制日志: SET @@session.sql_log_bin=OFF; 还原全量数据库:. /tmp/all-databases-2017-07-13
. /tmp/binlog.sql 做完还原之后立即做全量备份;