备份实战案例2
备份实战案例2
(1)特点
- 自动记录日志position位置
- 锁表机制
(2)语法
- mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql // -h可以不输入
- -A, --all-databases 所有库
- school 数据库名
- school stu_info t1 是指school数据库的表stu_info、t1
- -B, --databases bbs test mysql 多个数据库
- –single-transaction #InnoDB 一致性 服务可用性?
- –master-data=1|2 #该选项将会记录binlog的日志位置与文件名并追加到文件中,或添加注释
- –opt #同时启动各种高级选项
- -R, --routines #备份存储过程和存储函数
- -F, --flush-logs #备份之前刷新日志,截断日志。备份之后新binlog。
- –triggers #备份触发器
- 帮助 // mysqldump --help
(2)备份实战
- 准备两套root密码
- QianFeng@123
- QianFeng@1234 // 备用
- 准备库1
- 请清理掉之前的test库。实验后半部分,需要继续创建test库,避免混淆。
- testdb1.t1
- 执行备份
[root@localhost ~]# mysqldump -p’QianFeng@123’ \
–all-databases --single-transaction \
–master-data=2 \
–flush-logs \
(>)/backup/date +%F-%H-mysql-all.sql — 括号无用 // master-data=2 注释掉日
志记录
- 观察备份细节
vim /backup/2016-11-25-14-mysql-all.sql
LOCK TABLES user WRITE; // 观察各种锁机制,用来保证数据一致性
22 CHANGE MASTER TO MASTER_LOG_FILE=‘localhost-bin.000004’, MASTER_LOG_POS=154; // 二进制日志截断位置。第22行
- 备份后的,数据变更行为
在testdb2.t2 中插入数据1,2,3;
创testdb3库
切断二进制日志(重启数据库)在testdb2.t2 中插入数据4;
删testdb3库
在testdb2.t2 中插入数据5;
(3)恢复实战
- 备份二进制日志文件
- cp /var/lib/mysql/bin ~
- 停止数据库
- systemctl stop mysqld
- 清理环境
- rm -rf /var/lib/mysql/*
- 启动数据库
- systemctl start mysqld
- grep ‘password’ /var/log/mysqld.log // 找密码,再改一下密码。请使用备用密码
- mysqladmin -uroot -p’Kyzw;u2dq<mh’ password ‘QianFeng@1234’
- mysql恢复数据
- mysql -p’QianFeng@1234’ < /backup/2016-12-08-04-mysql-all.sql
- mysql -p’QianFeng@1234’ -e ‘flush privileges’
- 二进制日志恢复
vim /backup/2016-11-25-14-mysql-all.sql
CHANGE MASTER TO MASTER_LOG_FILE=‘localhost-bin.0000010’, MASTER_LOG_POS=154; // 语法
mysqlbinlog localhost-bin.000002 localhost-bin.000003 --start-position=154 | mysql -p’QianFeng@123’ //注意后续有多少日志,要跟多少日志名字。
- 观察数据
- 是否完整
- 误删除的问题
如何保留testdb3库
[root@localhost ~]#mysqlbinlog localhost-bin.00004 …005…006… > 1.txt
删除1.txt中不需要的at(比如test3库是误操作)
cat 1.txt | mysql -p’QianFeng@123’
- 关于数据恢复时的多余日志
方法一
每次还原数据库都会增加日志的体积。但这些都是还原操作。恢复数据库的日志占用了存储空间。
mysql> set sql_log_bin =0
再mysql> source /backup/*.sql // 二进制日志并没有发生变化。
方法2
在备份文件中,加入关闭二进制日志。
更多相关文章
- 备份实战案例1
- DLC
- 【DB笔试面试482】如何查询SCHEDULER JOB的运行日志?
- 【等待事件】日志类 等待事件(4.4)--log buffer space(日志缓冲空间
- 【等待事件】日志类 等待事件(4.5)--log file sequential read
- elk7.4+filebeat收集日志
- 单个logstash文件收集多个filebeat日志
- ssh登录日志收集
- 【DG】怎么使用Data Pump备份物理备库