MYSQL BEIFEN

#全备份
mysqldump -u root --single-transaction --all-databases > backup_sunday_1_PM.sql

#让它在完全备份时能够清空 MySQL二进制日志,以便转储文件包含新的当前二进制日志:
执行该命令后,数据目录则包含新的二进制日志文件
mysqldump -u root --single-transaction --flush-logs --master-data=2 --all-databases > backup_sunday_1_PM.sql
 

MySQL二进制日志占据硬盘空间。要想释放空间,应随时清空。操作方法是删掉不再使用的二进制日志,例如进行完全备份时输入以下命令:


shell> mysqldump    --single-transaction    --flush-logs    --master-data=2    --all-databases    --delete-master-logs > backup_sunday_1_PM.sql

注释:如果你的服务器为复制主服务器,用mysqldump方法中的 --delete-master-logs选项删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。关于这一点,PURGE MASTER LOGS语句的描述中解释了为什么在删掉MySQL二进制日志之前应进行确认一下。

 

#恢复数据库

shell> mysql < backup_sunday_1_PM.sql

#指定恢复时间
shell> mysqlbinlog --stop-date="2015-8-6 10:01:00" /var/log/mysql/bin.123456 \| mysql -u root -p mypwd

该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。

在以上行中,从上午10:01登录的SQL语句将运行。结合执行前夜的
转储文件和mysqlbinlog的两行命令可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。



 
posted @ 2017-06-11 08:21  colddog  阅读(202)  评论(0编辑  收藏  举报