时间:2021-07-01 10:21:17 帮助过:3人阅读
msyql>flush tables with read lock; 只读形式锁表
mysql>flush logs;
msyql>show binary logs; 查看二进制日志
--master-data=n{0|1|2} 0:不记录二进制文件及位置
1:以 change master to 的方式记录位置,用于恢复后直接启动从服务器
2:以change master to 方式备份,默认被注释
记录二进制日志备份:
mysqldump -uroot -p --master-data=1 msyqldb >/back/back-date+%F-%H-%M-%S.sql
温备份 锁定所有表
--lock-all-tables 参数 锁定所有表 后进行备份
mysqldump -uroot -p --lock-all-tables --master-data=1 msyqldb >/back/back-date+%F-%H-%M-%S.sql
--flush-logs:执行日志flush;执行备份前,日志滚动
* 如果指定库中的表类型均为InnoDB ,可以使用 --single-transaction 启动热备;
备份多个库
--all-databases :备份所有库
--databases DB—Name 备份指定库
这两个命令备份库名;恢复前不用手动创建库
备份所有库:mysqldump -uroot -p --lock-all-tables --flush-logs --all-databases --master-data=2 >/back/dbs+%F-%H-%M-%S.sql
增量备份:备份每天的二进制日志
10、备份策略:每周完全+每日增量
完全备份:mysqldump msyqldump -uroot -p --master-data=2 --flush-logs --all-databases --lock-all-tables>/back/alldatabases.sql
mysql>purge binary logs to ‘msyql-bin-000011‘ ;删除‘msyql-bin-000011‘之前的 二进制日志;
msyql>show binary logs;
增量备份:备份二进制日志文件(flush logs)
1、mysql>flush logs; 先登录mysql 刷新下日志;
2、cd /mysql/data/ (此目录为数据库的data存放路径)
cp mysql-bin-000011 /back/
3、或者可以另一种方式增量备份,把mysql-bin-000011 数据读出了后进行备份
mysqlbinlog mysql-bin.000011 >/back/mon-01bin.sql
恢复mysql 数据库;
假如mysql data 目录下,被整个都删除了;
1、cd /usr/local/mysql/ mysql安装目录
2、初始化mysql :scripts/mysql_install_db --user=mysql --datadir=/mydat/data/
3、启动mysql
4、#mysql -u root -p </back/alldatabases.sql 导入完全备份库
5、#mysql -u root -p </back/mon-01bin.sql 再导入增量的二进制备份
6、再把没有备份的最新二进制日志导入:#mysqlbinlog mysql-bin.000012 >/back/tu.sql
#mysql -uroot -p </back/tu.sql
mysql 备份脚本:
mysql 备份及恢复
标签: