如何使用mysqldump备份异机恢复数据库

发布时间:2021-11-02 17:31:35 作者:小新
来源:亿速云 阅读:265

这篇文章给大家分享的是有关如何使用mysqldump备份异机恢复数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

使用mysqldump备份异机恢复数据库

1、创建测试数据库
mysql> create database allen;
Query OK, 1 row affected (0.01 sec)

mysql> use allen;
Database changed
mysql> create table tab1 (ID tinyint unsigned not null primary key auto_increment,Name char(20) not null unique key,Age tinyint unsigned,Gender char(1) default 'M');
Query OK, 0 rows affected (0.38 sec)

mysql> insert into tab1 (Name,Age,Gender) values ('Zhang WuJi',26,'M'),('Zhao Min',24,'F');
Query OK, 2 rows affected (0.05 sec)
Records: 2  Duplicates: 0  Warnings: 0


2、完全备份allen数据库
[root@mysql ~]# mysqldump -uroot -puplooking --lock-all-tables --routines --events --triggers --master-data=2 --flush-logs --databases allen > /backup/allen_`date +

%F`.sql


3、基于二进制日志(上一次完全备份到目前日志所处的位置)做增量备份
mysql> create table tab2 (ID tinyint unsigned not null primary key auto_increment,Name char(20) not null unique key,Age tinyint unsigned,Gender char(1) default 'M');
Query OK, 0 rows affected (0.34 sec)

mysql> insert into tab2 (Name,Age,Gender) values ('Liang ShanBo',26,'M'),('Zhu YingTai',24,'F'),(3,'Feng Songtao',25,M);
Query OK, 2 rows affected (0.08 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> show master status;  --增量备份时日志位置
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      812 |              |                  |
+------------------+----------+--------------+------------------+

[root@mysql ~]# mysqlbinlog --start-position=107 /binlog/mysql-bin.000006 > /backup/allen_increment.sql
说明:--start-position=107 是上一次完备时日志的位置(可以查看完备文件内容得到),缺省--stop-position参数时默认到当前日志


4、再次向allen数据库中插入数据,然后删除allen数据库
mysql> insert into tab2 (Name,Age,Gender) values ('Zhu BaJie',26,'M'),('Sun WuKong',24,'F');
mysql> drop database allen;


5、导出从上次增量备份时日志到要恢复的时间点(删除allen数据库之前)之间的日志
[root@mysql ~]# mysqlbinlog --start-position=812 --stop-position=1084 /binlog/mysql-bin.000006 > /backup/allen_1084.sql
说明:1、--start-position=812为上面查看获得,--stop-position=1084从二进制日志记录获得
      2、/backup/allen_1084.sql文件可以修改,如果这段日志中间存在误操作(如删除一条数据),可以将该误操作注释掉


6、将备份的文件拷贝到要恢复的数据库服务器,进行恢复
[root@mysql ~]# scp -p /backup/allen_* 192.168.122.11:/backup/
目标服务器上进行数据恢复
mysql> source /backup/allen_2016-06-25.sql
mysql> source /backup/allen_increment.sql
mysql> source /backup/allen_1084.sql

7、查看数据
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| allen              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.03 sec)

mysql> use allen
Database changed
mysql> show tables;
+-----------------+
| Tables_in_allen |
+-----------------+
| tab1            |
| tab2            |
+-----------------+
2 rows in set (0.00 sec)

mysql> select * from tab2;
+----+--------------+------+--------+
| ID | Name         | Age  | Gender |
+----+--------------+------+--------+
|  1 | Liang ShanBo |   26 | M      |
|  2 | Zhu YingTai  |   24 | F      |
|  3 | Feng Songtao |   25 | M      |
|  4 | Sun WuKong   |   24 | F      |
+----+--------------+------+--------+
4 rows in set (0.02 sec)
注:tab2表中没有Zhu BaJie这条数据记录是因为我对/backup/allen_1084.sql做了修改,如下:
#insert into tab2 (Name,Age,Gender) values ('Zhu BaJie',26,'M'),('Sun WuKong',24,'F')
insert into tab2 (Name,Age,Gender) values ('Sun WuKong',24,'F')

感谢各位的阅读!关于“如何使用mysqldump备份异机恢复数据库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. Linux环境下oracle数据库Rman备份如何实现异机恢复
  2. 【MySQL】mysqldump备份与恢复

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysqldump

上一篇:MySQL怎么使用event进行自动分表

下一篇:怎么实现git代码规范

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》