mysql备份恢复实验
内容大纲:
一 mysqldump备份
二 sql语句备份
三 mysqlbinlog备份恢复
一 mysqldump数据文件备份恢复
mysql> use cw_d;
Database changed
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 5 | cw5 | 5 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
| 8 | cw8 | 8 |
| 9 | cw9 | 9 |
+----+------+--------+
9 rows in set (0.00 sec)
mysql>
备份数据库cw_d
[root@69 ~]# mysqldump -u root -p cw_d>cw.sql
Enter password:
[root@69 ~]#
删除数据库cw_d,然后查询记录
mysql> drop table cw;
Query OK, 0 rows affected (0.02 sec)
mysql> select * from cw;
ERROR 1146 (42S02): Table 'cw_d.cw' doesn't exist
执行恢复:
[root@69 ~]# mysql -u root -p cw_d <cw.sql
Enter password:
[root@69 ~]#
验证语句,如果能查询到结果,说明已经成功了。
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 5 | cw5 | 5 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
| 8 | cw8 | 8 |
| 9 | cw9 | 9 |
+----+------+--------+
9 rows in set (0.00 sec)
mysql>
二 SQL语句备份恢复
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 5 | cw5 | 5 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
| 8 | cw8 | 8 |
| 9 | cw9 | 9 |
+----+------+--------+
9 rows in set (0.00 sec)
mysql> select * into outfile '/root/cw_sql.sql' from cw;
ERROR 1 (HY000): Can't create/write to file '/root/cw_sql.sql' (Errcode: 13)
mysql> select * into outfile '/root/cw.sql' from cw;
ERROR 1 (HY000): Can't create/write to file '/root/cw.sql' (Errcode: 13) //权限不够,需要mysql能够写入的目录。
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 5 | cw5 | 5 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
| 8 | cw8 | 8 |
| 9 | cw9 | 9 |
+----+------+--------+
9 rows in set (0.00 sec)
mysql> select * into outfile '/tmp/cw.sql' from cw; //备份语句
Query OK, 9 rows affected (0.00 sec)
mysql> delete from cw;
Query OK, 9 rows affected (0.00 sec)
mysql> select * from cw;
Empty set (0.00 sec)
mysql> load data infile '/tmp/cw.sql' into table cw; //恢复语句
Query OK, 9 rows affected (0.01 sec)
Records: 9 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from cw; //验证成功,能够查询到语句,说明恢复成功。
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 5 | cw5 | 5 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
| 8 | cw8 | 8 |
| 9 | cw9 | 9 |
+----+------+--------+
9 rows in set (0.00 sec)
mysql>
三 mysqlbinlog备份恢复
1.清理下二进制文件
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 21817 |
| mysql-bin.000002 | 752122 |
| mysql-bin.000003 | 45418387 |
| mysql-bin.000004 | 126 |
| mysql-bin.000005 | 6615020 |
| mysql-bin.000006 | 6708657 |
| mysql-bin.000007 | 29665204 |
| mysql-bin.000008 | 753 |
| mysql-bin.000009 | 307620 |
| mysql-bin.000010 | 107 |
+------------------+-----------+
10 rows in set (0.00 sec)
mysql>
现在已经是已mysql-bin.000010 开始了。
2.
mysql> use cw_d;
Database changed
mysql> create table cw( id int auto_increment not null primary key, name varchar(20), number int(12));
Query OK, 0 rows affected (0.04 sec)
mysql>
mysql> select * from cw;
Empty set (0.00 sec)
mysql> insert into cw(name,number) values('cw1',0001);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cw(name,number) values('cw2',0002);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cw(name,number) values('cw3',0003);
Query OK, 1 row affected (0.01 sec)
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
+----+------+--------+
3 rows in set (0.00 sec)
mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 21817 |
| mysql-bin.000002 | 752122 |
| mysql-bin.000003 | 45418387 |
| mysql-bin.000004 | 126 |
| mysql-bin.000005 | 6615020 |
| mysql-bin.000006 | 6708657 |
| mysql-bin.000007 | 29665204 |
| mysql-bin.000008 | 753 |
| mysql-bin.000009 | 307620 |
| mysql-bin.000010 | 7676 |
+------------------+-----------+
10 rows in set (0.00 sec)
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 21817 |
| mysql-bin.000002 | 752122 |
| mysql-bin.000003 | 45418387 |
| mysql-bin.000004 | 126 |
| mysql-bin.000005 | 6615020 |
| mysql-bin.000006 | 6708657 |
| mysql-bin.000007 | 29665204 |
| mysql-bin.000008 | 753 |
| mysql-bin.000009 | 307620 |
| mysql-bin.000010 | 7719 |
| mysql-bin.000011 | 710 |
+------------------+-----------+
11 rows in set (0.00 sec)
mysql>
mysql> insert into cw(name,number) values('cw4',0004);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cw(name,number) values('cw5',0005);
Query OK, 1 row affected (0.00 sec)
mysql> insert into cw(name,number) values('cw6',0006);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cw(name,number) values('cw7',0007);
Query OK, 1 row affected (0.01 sec)
mysql> delete from cw where number=0005;
Query OK, 1 row affected (0.00 sec)
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
+----+------+--------+
6 rows in set (0.00 sec)
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 21817 |
| mysql-bin.000002 | 752122 |
| mysql-bin.000003 | 45418387 |
| mysql-bin.000004 | 126 |
| mysql-bin.000005 | 6615020 |
| mysql-bin.000006 | 6708657 |
| mysql-bin.000007 | 29665204 |
| mysql-bin.000008 | 753 |
| mysql-bin.000009 | 307620 |
| mysql-bin.000010 | 7719 |
| mysql-bin.000011 | 4560 |
| mysql-bin.000012 | 107 |
+------------------+-----------+
12 rows in set (0.00 sec)
mysql>
mysql> insert into cw(name,number) values('cw8',0008);
Query OK, 1 row affected (0.01 sec)
mysql> insert into cw(name,number) values('cw9',0009);
Query OK, 1 row affected (0.01 sec)
mysql> drop table cw;
Query OK, 0 rows affected (0.04 sec)
mysql> select * from cw;
ERROR 1146 (42S02): Table 'cw_d.cw' doesn't exist
mysql>
二 恢复过程
由于有3个日志,且每个日志都有其它数据库写入,所以需要手工先分析日志,具体分析过程如下:
mysqlbinlog ./mysql-bin.000010
1.分析日志:
create database cw_d
/*!*/;
# at 4411
#140324 2:19:06 server id 1 end_log_pos 4568 Query thread_id=32914 exec_time=0 error_code=0
use `cw_d`/*!*/;
SET TIMESTAMP=1395641946/*!*/;
create table cw( id int auto_increment not null primary key, name varchar(20), number int(12))
/*!*/;
# at 4568
--stop-position=4568 --start-position=4411
恢复表:
mysqlbinlog --stop-position=4568 --start-position=4411 ./mysql-bin.000010
恢复数据1:
mysqlbinlog --stop-position=7073 --start-position=6473 ./mysql-bin.000010
执行恢复表后:
[root@69 mysql]# mysqlbinlog --stop-position=4568 --start-position=4411 ./mysql-bin.000010 | mysql -u root -p1807099411
mysql> select * from cw;
ERROR 1146 (42S02): Table 'cw_d.cw' doesn't exist
mysql> select * from cw; //检查可以查询到表了,说明恢复成功了。
Empty set (0.00 sec)
mysql>
2.分析日志:
mysqlbinlog ./mysql-bin.000011
#140324 2:18:59 server id 1 end_log_pos 4411 Query thread_id=32914 exec_time=0 error_code=0
SET TIMESTAMP=1395641939/*!*/;
SET @@session.sql_mode=0/*!*/;
create database cw_d
/*!*/;
# at 4411
#140324 2:19:06 server id 1 end_log_pos 4568 Query thread_id=32914 exec_time=0 error_code=0
use `cw_d`/*!*/;
SET TIMESTAMP=1395641946/*!*/;
create table cw( id int auto_increment not null primary key, name varchar(20), number int(12))
/*!*/;
# at 4568
执行恢复表数据后
[root@69 mysql]# mysqlbinlog --stop-position=7073 --start-position=6473 ./mysql-bin.000010 |mysql -u root -p1807099411
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
+----+------+--------+
3 rows in set (0.00 sec)
mysql>
分析另外2个二进制文件:
mysqlbinlog ./mysql-bin.000011
# at 1381
#140324 2:21:20 server id 1 end_log_pos 1409 Intvar
SET INSERT_ID=4/*!*/;
# at 1409
#140324 2:21:20 server id 1 end_log_pos 1518 Query thread_id=32914 exec_time=0 error_code=0
use `cw_d`/*!*/;
SET TIMESTAMP=1395642080/*!*/;
insert into cw(name,number) values('cw4',0004)
/*!*/;
# at 1518
#140324 2:21:20 server id 1 end_log_pos 1545 Xid = 5378105
COMMIT/*!*/;
# at 1545
#140324 2:21:28 server id 1 end_log_pos 1613 Query thread_id=32914 exec_time=0 error_code=0
SET TIMESTAMP=1395642088/*!*/;
BEGIN
/*!*/;
# at 1613
#140324 2:21:28 server id 1 end_log_pos 1641 Intvar
SET INSERT_ID=5/*!*/;
# at 1641
#140324 2:21:28 server id 1 end_log_pos 1750 Query thread_id=32914 exec_time=0 error_code=0
SET TIMESTAMP=1395642088/*!*/;
insert into cw(name,number) values('cw5',0005)
/*!*/;
# at 1750
#140324 2:21:28 server id 1 end_log_pos 1777 Xid = 5378131
COMMIT/*!*/;
# at 1777
#140324 2:21:34 server id 1 end_log_pos 1845 Query thread_id=32914 exec_time=0 error_code=0
SET TIMESTAMP=1395642094/*!*/;
BEGIN
/*!*/;
# at 1845
#140324 2:21:34 server id 1 end_log_pos 1873 Intvar
SET INSERT_ID=6/*!*/;
# at 1873
#140324 2:21:34 server id 1 end_log_pos 1982 Query thread_id=32914 exec_time=0 error_code=0
SET TIMESTAMP=1395642094/*!*/;
insert into cw(name,number) values('cw6',0006)
/*!*/;
# at 1982
# at 2612
#140324 2:21:49 server id 1 end_log_pos 2680 Query thread_id=32914 exec_time=0 error_code=0
SET TIMESTAMP=1395642109/*!*/;
SET @@session.sql_mode=0/*!*/;
BEGIN
/*!*/;
# at 2680
#140324 2:21:49 server id 1 end_log_pos 2708 Intvar
SET INSERT_ID=7/*!*/;
# at 2708
#140324 2:21:49 server id 1 end_log_pos 2817 Query thread_id=32914 exec_time=0 error_code=0
use `cw_d`/*!*/;
SET TIMESTAMP=1395642109/*!*/;
insert into cw(name,number) values('cw7',0007)
/*!*/;
# at 2817
#140324 2:21:49 server id 1 end_log_pos 2844 Xid = 5378286
COMMIT/*!*/;
# at 2844
根据上面的语句生成日志:
[root@69 mysql]# mysqlbinlog --stop-position=2077 --start-position=1982 ./mysql-bin.000011 |mysql -u root -p1807099411
[root@69 mysql]# mysqlbinlog --stop-position=2844 --start-position=2612 ./mysql-bin.000011 |mysql -u root -p1807099411
恢复日志
mysqlbinlog --stop-position=1777 --start-position=1381 ./mysql-bin.000012 |mysql -u root -p1807099411
mysql> select * from cw;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | cw1 | 1 |
| 2 | cw2 | 2 |
| 3 | cw3 | 3 |
| 4 | cw4 | 4 |
| 5 | cw5 | 5 |
| 6 | cw6 | 6 |
| 7 | cw7 | 7 |
| 8 | cw8 | 8 |
| 9 | cw9 | 9 |
+----+------+--------+
9 rows in set (0.00 sec)
mysql>
转载于:https://blog.51cto.com/chenwei/1382718
mysql备份恢复实验相关推荐
- mysql导入分卷_php实现mysql备份恢复分卷处理的方法_PHP
本文实例讲述了php实现mysql备份恢复分卷处理的方法.分享给大家供大家参考.具体分析如下: 分卷处理就是把握们要处理的数据分成一个个小文件进行处理了,这里我来给大家介绍一个php mysql备份恢 ...
- 刘子佼 mysql 下载_MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战 视频教程...
课程名称:MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战课程简介: 课程独家解析MySQL 5.6最新特性,课程讲师刘子佼讲课风格幽默,善于与人沟通,善于组建和协调团队攻克技术难 ...
- 零基础带你学习MySQL—备份恢复数据库(三)
零基础带你学习MySQL-备份恢复数据库(三) 一.备份数据库 二.恢复数据库 先删除数据库zs_db03 恢复数据库zs_db03 课堂练习 方法一:傻瓜式办法 直接Ctrlcv 方法二:命令行方法 ...
- 【数据库运维】MYSQL备份恢复管理(上)
目录 MYSQL备份恢复管理 一,备份类型 二,逻辑备份优缺点 三,MySQL备份内容 四,MySQL备份工具 五,MySQL备份策略 1,策略一:直接拷贝数据库文件 案例:直接拷贝备份数据库comp ...
- Mysql备份恢复(mysqldump)
Mysql备份恢复(mysqldump) 直接复制 -- 建新库 create database `caimei@20180517` default character set utf8 collat ...
- MySQL备份恢复-mysqldump/xbk
MySQL备份恢复 1.介绍 最后一根救命稻草,备份主要是用来恢复数据 2.DBA在备份恢复工作职责 2.1设计备份策略和恢复策略 1.备份策略 1)备份的时间 凌晨,根据公司的实际业务情况,一般选择 ...
- MySQL备份恢复练习
MySQL备份恢复练习 素材 备份恢复要求 1. 备份数据库school到/backup目录 2. 备份数据库school为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库 3. ...
- Mysql 备份恢复看这一篇就够了
Mysql 备份恢复 一.备份分类.备份策略 1.1 造成数据丢失的原因: 程序错误 人为操作错误 运算错误 磁盘故障 灾难(如火灾.地震)和盗窃 1.2 数据库备份的分类 1)物理备份:对数据库操作 ...
- mysql备份恢复与集群部署
MySQL主从复制 1.如果主节点已经运行了一段时间,且有大量数据时,新增一个slave,如何配置并启动新增slave节点 思路步骤: 通过备份恢复数据至从服务器 复制起始位置为备份时,二进制日志文件 ...
最新文章
- Abstract Factory(抽象工厂)实践
- Ionic3 环境搭建以及基础配置实现(更新中)
- EthChannel和STP01
- 如何解决飞秋FeiQ绑定端口错误
- 用python加载obj格式三维模型(加mtl贴图)
- 测度论与概率论基础学习笔记7——3.1积分的定义
- 使用python刷访问量
- 玩转数据魔方之数据安全治理进阶指南
- 信号与频谱之正弦信号和复信号
- pytest告警信息的处理方法
- 海康工业相机网口相机丢包问题解决方法
- 10000小时=1万小时
- 基于python的Poisson-Gumbel 泊松耿贝尔复合极值分布实现
- android 怎么封装方法,开发那点事(九)安卓开发,封装常用方法,工作用
- python文件open方式:r、r+、w、w+、a、a+
- git archive命令使用介绍
- 磁学基础 永久磁铁的磁力线分布
- IP分片与TCP分段
- 用python编写最简单的记事本_利用Python制作一个“电子记事本”
- elasticstack学习 part2