分类: Mysql/postgreSQL
2010-01-18 11:44:50
@ http://zcatt.cublog.cn
1)逻辑备份与物理备份 (logical and physical
特别说明,物理备份无法保存memory类型的数据。
2)热备份和冷备份 (hot/online and cold/offline)
3)本地备份和远程备份 (local and remote)
4)全备份和增量备份 (full and increment)
备份方案: mysqldump用于全备份, 配合bin-log方式的增量备份。mysqld应当使用bin-log方式启动。
mysqldump的命令
shell> mysqldump --single-transaction --flush-logs
--master-data=2 all-databases > backup_sunday_1_PM.sql
options:
--single-transaction 保证mysqldump操作过程中记录的数据库数据是不变的。
--flush-logs 关闭旧的bin-log,以当下的时间重新打开一个bin-log
--master-data=2 用于在生成的备份sql文档中增加下面两句话。
-- Position to
start replication or point-in-time recovery from
--CHANGE MASTER TO
MASTER_LOG_FILE='yourdb-bin.000008', MASTER_LOG_POS=106;
这样,
1) dump file中包括了bin-log(yourdb-bin.00008)之前的所有数据。
2) 之后的数据变化都记录到yourdb-bin.00008和后续的bin-log文件中。
两个命令可以显示当前的bin log信息
mysql> SHOW MASTER STATUS;
mysql> SHOW MASTER LOGS;
第一步,恢复基准full部分
shell> mysql < backup_sunday_1_PM.sql
第二步,恢复增量部分
shell> mysqlbinlog yourdb-bin.000008 yourdb-bin.000009
| mysql
mysqlbinlog还支持恢复到指定时间点的功能,使用选项start-datetime和stop-datetime。具体参见它的命令帮助。