一 单机全量备份
1,备份单个数据库:
语法:备份oldboy库中所有的表
mysqldump -uroot -p’123456’ oldboy >/opt/oldboy_bak.sql
2,备份时加 -B 的作用:
在备份的时候,会在备份文件的最开始加上创建库的语句(create database name)和使用该库(use databasename)
做恢复操作的时候,就不需要手动创建库
mysqldump -uroot -p’123456’ -B oldboy >/opt/oldboy_bak.sql
3,恢复语句
mysql -uroot -p’123456’ < /opt/oldboy_bak.sql (前提是加-B备份的,否则需要加数据库的名字恢复)
mysqldump -uroot -p’oldboy123’ -B oldboy|gzip>/opt/mysql_bak_B.sql.gz
这是把备份压缩
4,备份多个库
备份表的时候 不要加-B ,如果加了的话会认为是两个库。默认第一个为库,后面的都是表
二 mysql 的增量备份
1,开启binlog
2,
-A: 备份所有数据库
-F:刷新binlog日志,切割
mysqlbinlog -d oldboy mysql-bin.000020 >all.sql
只想恢复binlog日志中oldboy 库的数据,-d 指定库
下面这样执行恢复,会把所有的库的操作都恢复,但是生产中并不是所有的库需要恢复。
3,
查看整个数据库运行状态信息,可以分析做好监控
mysql> show global status;
查看正在执行的完整sql语句
mysql> show full processlist;
4,mysqlbinlog
[root@moban ~]#
[root@moban ~]# cat test_bak.sql
wM[aEJCE?}? JCt9??o?八??4??;f?甹?&??獵??
???3a? 鱷?v{m?c??N??¨?>?′??aT??8rE??V}n??}):п??O¤ǚ2£Nn憞wH
qI?E?]?5?{±O h£Rc′?穹?b<"?咢???7?
???( Z??Q˙9¥i|???|kN@¤???AA??
C?QaJJ/?&-
V
2-"-?og??ˉt9v|£???ha?ˉrp_?+9′?]5???jM_w???{H` ??\G
S??f[root@moban ~]# mysqlbinlog test_bak.sql
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ERROR: File is not a binary log file.
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[root@moban ~]#
5,
--master-data=2 用于主库
--master-data=1 用于从库
他们的区别就是