mysqldump简单备份
mysqldump简单命令
mysqldump DB_NAME [tb1] [tb2] > /path/back.sql
--master-data={0|1|2}
0: 不记录二进制日志文件及路位置;
1:以CHNAGE MASTER TO的方式记录位置,可用于恢复后直接启动从服务器;
2:以CHANGE MASTER TO的方式记录位置,但默认为被注释;
--lock-all-tables:锁定所有表
--flush-logs: 执行日志flush;
--all-databases: 备份所有库
--databases DB_NAME,DB_NAME,...: 备份指定库
--events :备份事件调度
--routines :备份存储过程和存储函数
--triggers :备份触发器
--single-transaction :启动热备,热备份不要锁表;
mysqldump实现温备份
1.锁表
mysql>flush tables wiht read lock;
2.完全备份
[root@localhost backup]# mysqldump --lock-all-tables --master-data=2 --flush-logs --all-database > /backup/all_1.sql
3.备份二进制文件
[root@localhost backup]# mysqlbinlog /mydata/mysql-bin.000029 > /backup/all_2.sql
4.还原,如果只备份单个数据库或个别表,还原之前需要创建对应的数据库名称并选择,这里备份的是所有库。
临时关闭sql_log_bin //如果没有写操作关闭,防止产生大量日志,这个看情况而定,也可以不关闭
mysql> set sql_log_bin=0;
mysql> \. /backup/all.sql //还原完全备份的文件
mysql> \. /backup/all_2.sql //还原增量备份(二进制文件)