mysqldump
mysqldump --single-transaction --all-databases > backup_sunday_1_PM.sql
mysqldump -u xx -pxx easylife >easylife.sql
mysqldump -u用户名 -p密码 -P端口号 --database 数据库名 --tables 表名 | gzip(bzip2) > 导出文件名.gz(bz2)
mysqldump -u root -p --no-data mysql user >/opt/mysql_user.sql --no-data只导出表结构,--no-create-info只导出数据;
mysqldump -u root -p "--where= user= 'root'" mysql user >/opt/mysql_user.sql --导出自己需要的数据"--where...." database table
mysqldump -uroot -p -t yjf_p2p p2p_deduct_detail > p22p.sql;
mysqldump --master-data=2
A. =1和=2的区别很明显,只是自动执行和手工执行的区别
B. --master-data用于在master端dump数据,用于建立slave
--dump-slave用户在slave端dump数据,建立新的slave,至少是第2个slave,也就是已经有A-->B,现在从B上导出数据建立A-->C的复制
这个不但可以用于建立slave,还可用于备份中,用于读binlog进行roll forward的起点
--master-data默认情况下是--lock-all-tables就是全表锁,如果不需要锁表就需要加上--single-transactionf
mysqldump -R 参数 备份存储过程和函数
mysqldump 剔除不需要备份的表的参数:--ignore-table=db_name.table_name
mysqldump还原不多说
mysql -u xx -pxx easylife < easylife
通过binlog恢复:
1.全部恢复binlog日志:
mysqlbinlog binlog.[0-9] * | mysql
或者先讲binlog日志先编译成文本文件在执行:
mysqlbinlog binlog.[0-9] * > text_file
vi text_file
mysql < text_file
注:binlog.[0-9] * 将所有binlog按顺序执行,不要单独执行某一个binlog文件,因为各日志文件之间可能存在某种依赖关系.
2.恢复某个或几个数据库的数据
mysqlbinlog --database=db_name binlog.[0-9]* | mysql
3.恢复某个时间点以后的数据
mysqlbinlog --start-datetime=20140316165036 binlog.[0-9]* | mysql
mysqlbinlog --start-datetime="2014-03-16 16:50:36" binlog.[0-9]* | mysql
mysqlbinlog --start-datetime="2014-03-16 16:50:36" --stop-datetime="2014-03-17 00:00:00" binlog.[0-9]* | mysql
阅读(913) | 评论(0) | 转发(0) |