如何使用mysqldump备份异机恢复数据库
发布时间:2021-12-28 12:14:10 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关如何使用mysqldump备份异机恢复数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 使用mysqldump备份异机恢复数据库 1、创建测试数据库 mysql create database allen; Query OK, 1 row affected
这篇文章给大家分享的是有关如何使用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备份异机恢复数据库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧! (编辑:520站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |