您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何使用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備份異機恢復數據庫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。