#全备份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前一秒钟。你应检查日志以确保时间确切。
时间: 2024-10-08 14:19:45