关于mysql备份方案1 mysqldump+mysqlbinlog

备份数据

mysqldump db_name [tables]
mysqldump  ---database DB1 [DB2 DB3...]
mysqldump  --all—database


mysqldump --user=root -p xm > /backup/xm.sql
以上指令,将xm 库备份到xm.sql 文件中。输入指令后,需要输入mysql 的root 密码。


一般我都不用加-user=root -p 即直接用
mysqldump --database xm > /backup/xm.sql
mysqldump --all-database > /backup/all.sql
mysqldump --database xm -d >/backup.sql    --只备份表结构
 

恢复同备份一样很简单,只要一条命令就可以完成:
mysqldump --user=root -p xm < /backup/xm.sql

也可以到mysql下运行
mysql> source /backup/xm.sql


例子:

删除数据

delete from xm where id=1;

update kkk set name='MARY' where id=2;

drop database xm

然后运用上面的恢复

--lock-tables 
--lock-all-tables
 锁表备份,生产环境特别流量大的,不锁表很难确定数据一致性,所以建议在从服务器上做此操作。
 

这个是备份的时候顺便做bin-log日志切割。
mysqldump --flush-logs -u root -p数据库名称> aaa.sql 

mysql 二进制备份恢复就是恢复一个时间段内你做过的东西,只能配合mysqldump使用
假如你定为凌晨3 点进行日常备份。但是数据库在早上7 点发生了崩溃。那
么你手头上拥有的最新的数据库备份只能恢复到凌晨3 点的状态。而3 点~7 点
之间的数据你就恢复不回来了。这个时候可以用mysqlbinlog恢复

 

/usr/local/mysql/bin/mysqlbinlog --stop-date="2010-11-24 19:35:00" /data/101.000002 > /tmp/xmkkk.sql

恢复101.000002 这个日志的操作记录  日志文件开头到  2010-11-24 19:35:00 为止的所有操作
注意 二进制恢复只会按你操作过的SQL恢复,例如:kkk表里有alex记录,而你恢复的时间包括了建立alex,这时候会出现重复。

/usr/local/mysql/bin/mysqlbinlog --start-date="2010-11-25 00:27:00" --stop-date="2010-11-25 00:28:00" /data/101.000002 > /tmp/xmkkk2.sql
指定时间段 从--开始---XXX结束

你可能感兴趣的:(mysql,数据库,职场,休闲)