旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

详解MySQL备份与恢复【MySQL教程】,MySQL

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:87评论:0


导读:一、MySQL完全备份与恢复备份的主要目标是灾害恢复,备份还可以测试运用、回滚数据修正、查询历史数据、审计等。1、数据备份的主要性在企业中数据的代价至关主要,数...

一、MySQL完全备份与恢复

备份的主要目标是灾害恢复,备份还可以测试运用、回滚数据修正、查询历史数据、审计等。

1、数据备份的主要性

在企业中数据的代价至关主要,数据保证了企业营业的平常运转。因此,数据的平安性及数据的可靠性是运维的重中之重,任何数据的丧失都大概对企业发作严峻的效果。通常情况下形成数据丧失的缘由以下几种:

顺序毛病
工资操纵毛病
运算毛病
磁盘毛病
灾害(火警、地动)和偷窃
三、罕见的备份要领

二、数据库备份范例

1、从物理与逻辑的角度:

数据库备份可以分为物理备份和逻辑备份。物理备份是对数据库操纵系统的物理文件(如数据文件、日记文件等)的备份。这类范例的备份适用于在出现问题时须要疾速恢复的大型主要数据库。

物理备份又可以分为冷备份(脱机备份)、热备份(联机备份)和温备份。

  • 冷备份:在数据库封闭状况下举行备份操纵;
  • 热备份:在数据库处于运转状况时举行备份操纵,该备份要领依靠数据库的日记文件;

  • 温备份:数据库锁定表格(不可写入,但可读取)的状况下举行备份;

逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,示意为逻辑数据库构造(create database、create table语句)和内容(insert语句或分开文本文件)的信息。这类范例的备份运用于可以编辑数据值或表构造较小的数据量,或许在差别的机械体系上从新建立数据。

2、从数据库的备份战略角度:

从数据库的备份战略角度,数据库的备份可分为完全备份、差别备份和增量备份。个中呢,完全备份是完成差别、增量备份的基本。

  • 完全备份:每次对数据举行完全的备份,即对悉数数据库的备份。备份与恢复的操纵异常简朴,然则数据存在大批的反复,会占用大批的磁盘空间,备份的时候也很长。

  • 差别备份:备份那些自从上次完全备份以后被修正过的一切文件,备份的时候点是从上次完全备份起,备份数据会越来越大,恢复数据时,只需恢复上次的完全备份和近来的一次差别备份。

  • 增量备份:只要在那些在上次完全备份或增量备份后被修正的文件才会被备份,以上次完全备份或上次增量备份的时候为时候点,仅仅备份这之间的数据变化,因此备份的数据量也小,占用空间小,备份速率快,但恢复时,须要从上一次的完全备份入手下手到末了一次增量备份之间的一切增量顺次恢复,一旦中心的数据发作破坏,将致使数据的丧失。

三、罕见的备份要领

MySQL数据库的备份可以采纳很多种体式格局,如直接打包数据库文件(物理冷备份)、专用备份东西(mysqldump)、二进制日记增量备份、第三方东西备份等。

1、物理冷备份

物理冷备份时须要在数据库处于封闭状况下,可以较好地保证数据库的完全性。物理冷备份平经常运用于非中心营业,这类营业平常都许可中断,物理冷备份的特性就是速率快,恢复时也是最为简朴。

2、专用备份东西mysqldump或mysqlhotcopy

mysqldump顺序和mysqlhotcopy都可以做备份。mysqqldump是客户端经常运用逻辑备份顺序,可以发作一组被实行以再现原始数据库对象定义和表数据的SQL语句。它可以转储一个到多个MySQL数据库,对其举行备份或传输到长途SQL效劳器。mysqldump更加通用,由于它可以备份种种表。mysqlhotcopy仅适用于某些存储引擎。

3、经由过程启用二进制日记举行增量备份

MySQL支撑增量备份,举行增量备份时必需启用二进制日记。二进制日记文件为用户供应复制,对实行备份点后举行的数据库变动所需的信息举行恢复。假如举行增量备份(包括自上次完全备份或增量备份以来发作的数据修正),须要革新二进制日记。

四、数据库完全备份操纵

1、备份前预备

[root@centos01 ~]# mysqladmin -u root password  <!--mysql数据库设置暗码-->
New password:             <!--输入暗码-->
Confirm new password:        <!--确认暗码-->
[root@centos01 ~]# mysql -uroot -ppwd@123    <!--登录MySQL数据库-->
mysql> create database benet;        <!--建立benet数据库-->
mysql> use benet;             <!--切换到benet数据库建立表-->
mysql> create table 一班门生结果 (姓名 char(3),班级 char(5),学号 char(8),语文 char(3),
数学char(3),英语 char(3),理综 char(3), primary key (学号));  
<!--建立表,表名字为一班门生结果,第一列名字是姓名,第二列名字为班级,第三列名字
为学号,第四列名字为语文,第五列名字为数学,第六列名字为英语,第七列名字为理综-->
mysql> insert into 一班门生结果 value ('张三','一班','20170822','110','105','92','235');  
                   <!--表中插进去数据-->
mysql>  insert into 一班门生结果 value ('李四','一班','20170820','95','115','110','260');  
                   <!--表中插进去数据-->
mysql> insert into 一班门生结果 value ('王五','一班','20170818','95','103','108','270');  
                   <!--表中插进去数据-->
mysql> insert into 一班门生结果 value ('赵六','一班','20170816','100','109','112','265'); 
                   <!--表中插进去数据-->
mysql> select * from benet.一班门生结果;   <!--检察一班门生结果表中一切数据-->

2、物理冷备份与恢复

物理冷备份平经常运用tar敕令直接打包数据库文件夹,而在举行备份之前须要运用“systemctl stop mysqld”敕令封闭mysql效劳。

1)备份数据库

建立一个/bak目次作为备份数据存储途径,运用tar建立备份文件。悉数数据库文件夹备份属于完全备份。

[root@centos01 ~]# systemctl stop mysqld  <!--住手mysql效劳-->
[root@centos01 ~]mkdir /bak/   <!--建立存储备份目次-->
[root@centos01 ~]# tar zcf /bak/mysql_all-$(date +%F).mysql.gz /usr/local/mysql/data/    
                 <!--直接tar打包数据库文件-->
[root@centos01 ~]# ls /bak/     <!--检察备份的数据-->
-rw-r--r-- 1 root root 766598 10月 31 03:57 /bak/mysql_all-2019-10-31.mysql.gz

2)恢复数据库

[root@centos01 ~]mkdir test  <!--建立恢复数据目次-->
[root@centos01 ~]# tar zxvf /bak/mysql_all-2019-10-31.mysql.gz  -C ./test/   
                <!--解压缩备份数据到恢复目次-->
[root@centos01 data]# cd /usr/local/mysql/data/  <!--进入数据原始位置-->
[root@centos01 data]# rm -rf ./*  <!--删除数据-->
[root@centos01 ~]# cd ./test/usr/local/mysql/data/  <!--切换到恢复目次-->
[root@centos01 date]#mv ./* /usr/local/mysql/data/    <!--将恢复目次数据恢复到原始位置-->
[root@centos01 ~]# systemctl start mysqld  <!--启动mysql效劳-->

3、mysqldump备份与恢复

经由过程mysqldump敕令可以将指定的库、表或悉数的库导出为SQL剧本,便于该敕令在差别版本的MySQL效劳器上运用。

1)备份恢复一切数据库

[root@centos01 ~]# mysqldump -uroot -ppwd@123 --opt --all-databases > ./test/benet_databases.sql     <!--备份一切库,opt选项是优化实行速率-->
[root@centos01 ~]# mysql -uroot -p     <!--登录数据库-->
Enter password:          <!--数据暗码-->
mysql> show databases;         <!--检察一切数据库-->
+--------------------+
| Database           |
+--------------------+
| information_schema |
| benet              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
mysql> drop database benet;  <!--删除benet数据库-->
mysql> show databases;      <!--检察数据库是不是删除-->
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
[root@centos01 ~]# mysql -u root -p < ./test/benet_databases.sql 
Enter password:     <!--恢复一切数据库-->
mysql> show databases;     <!--检察数据库是不是恢复-->
+--------------------+
| Database           |
+--------------------+
| information_schema |
| benet              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
mysql> source ./test/benet_databases.sql 
             <!--也可以经由过程这类要领恢复误删除的数据库-->

2)备份恢复数据库中的表

[root@centos01 ~]# mysqldump -uroo t -ppwd@123 benet 一班门生结果 > ./test/benet_一班门生结果.sql   
                         <!--备份数据库下的表-->
[root@centos01 ~]# mysql -uroot -p       <!--登录数据库-->
Enter password:        <!--输入暗码-->
mysql> use benet;      <!--切换到benet数据库-->
mysql> drop table 一班门生结果;      <!--删除一班门生结果表-->
mysql> show tables;        <!--检察表是不是删除--> 
Empty set (0.00 sec)
[root@centos01 ~]# mysql -uroot -p benet < ./test/benet_一班门生结果.sql  
                           <!--恢复误删除的表-->
[root@centos01 ~]# mysql -uroot -p    <!--登录数据库-->
Enter password:           <!--输入暗码-->
mysql> use benet;         <!--切换到benet数据库-->
Database changed
mysql> show tables;    <!--检察误删除的表是不是恢复-->
+--------------------+
| Tables_in_benet    |
+--------------------+
| 一班门生结果       |
+--------------------+
1 row in set (0.00 sec)

五、MySQL增量备份与恢复

运用mysqldump举行完全备份,备份的数据中有反复数据,备份时候与恢复时候太长。而增量备份就是备份自上一次备份以后增添或转变的文件或内容。

1、MySQL增量备份的特性

与完全备份差别,增量备份没有反复数据,备分量不大,时候短;但其恢复贫苦,须要上次完全备份及完全备份以后一切的增量备份才恢复,而且要对一切增量备份举行逐一反推恢复。可以经由过程MySQL供应的二进制日记间接完成增量备份。

2、MySQL增量备份与恢复

二进制日记保留了一切更新或许大概更新数据库的操纵。二进制日记在启动MySQL效劳器后入手下手纪录,并在文件到达二进制日记所设置的最大值或许接收到flush logs敕令后从新建立新的日记文件,生成二进制文件序列,并实时把这些日记保留到平安的存储位置,即可完成一个时候段的增量备份。
要举行MySQL的增量备份,首先要开启二进制日记功用,开启MySQL的二进制日记功用的完成要领以下:

[root@centos01 ~]# vim /etc/my.cnf       <!--进入MySQL配置文件-->
.......    <!--此处省略部分内容-->
log-bin=mysql-bin      <!--开启二进制日记功用-->
[root@centos01 ~]# systemctl restart mysqld   <!--重启MySQL效劳-->
[root@centos01 ~]# ls -l /usr/local/mysql/data/
......             <!--此处省略部分内容-->
-rw-rw---- 1 mysql mysql    27299 10月 31 00:00 mysql-bin.000001
-rw-rw---- 1 mysql mysql  1031892 10月 31 00:00 mysql-bin.000002
-rw-rw---- 1 mysql mysql     1574 10月 31 14:13 mysql-bin.000003
-rw-rw---- 1 mysql mysql   507535 11月  1 09:37 mysql-bin.000004
-rw-rw---- 1 mysql mysql   507229 11月  1 09:40 mysql-bin.000005
-rw-rw---- 1 mysql mysql       95 11月  1 09:37 mysql-bin.index
drwx------ 2 mysql mysql     4096 10月 31 00:00 performance_schema
drwxr-xr-x 2 mysql mysql       20 10月 30 23:56 test

1)增量备份

[root@centos01 ~]# mysqladmin -uroot -ppwd@123 flush-logs  <!--革新二进制日记-->
[root@centos01 ~]# ls -l /usr/local/mysql/data/     <!--检察二进制日记文件-->
......   <!--此处省略部分内容-->
-rw-rw---- 1 mysql mysql    27299 10月 31 00:00 mysql-bin.000001
-rw-rw---- 1 mysql mysql  1031892 10月 31 00:00 mysql-bin.000002
-rw-rw---- 1 mysql mysql     1574 10月 31 14:13 mysql-bin.000003
-rw-rw---- 1 mysql mysql   507535 11月  1 09:37 mysql-bin.000004
-rw-rw---- 1 mysql mysql   507272 11月  1 09:49 mysql-bin.000005
-rw-rw---- 1 mysql mysql      107 11月  1 09:49 mysql-bin.000006
-rw-rw---- 1 mysql mysql      114 11月  1 09:49 mysql-bin.index
drwx------ 2 mysql mysql     4096 10月 31 00:00 performance_schema
drwxr-xr-x 2 mysql mysql       20 10月 30 23:56 test
[root@centos01 ~]# mysql -uroot -ppwd@123  <!--登录mysql数据库-->
mysql> use benet;           <!--切换到benet数据库-->
mysql> insert into 一班门生结果 value ('李宁','二班','20170824','92','98','105','235');            
                    <!--录入新的数据-->
Query OK, 1 row affected (0.01 sec)
mysql> insert into 一班门生结果 value ('陈铭','二班','20170826','111','107','96','204');           
                    <!--录入新的数据-->
Query OK, 1 row affected (0.00 sec)
mysql> select *from 一班门生结果;    <!--检察新数据是不是录入-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
| 李宁   | 二班   | 20170824 | 92     | 98     | 105    | 235    |
| 陈铭   | 二班   | 20170826 | 111    | 107    | 96     | 204    |
+--------+--------+----------+--------+--------+--------+--------+
6 rows in set (0.00 sec)
[root@centos01 ~]# mysqladmin -uroot -ppwd@123 flush-logs  
                          <!--革新二进制日记-->
[root@centos01 ~]# ls -l /usr/local/mysql/data/    
                               <!--检察二进制日记文件-->
......          <!--此处省略部分内容-->
-rw-rw---- 1 mysql mysql    27299 10月 31 00:00 mysql-bin.000001
-rw-rw---- 1 mysql mysql  1031892 10月 31 00:00 mysql-bin.000002
-rw-rw---- 1 mysql mysql     1574 10月 31 14:13 mysql-bin.000003
-rw-rw---- 1 mysql mysql   507535 11月  1 09:37 mysql-bin.000004
-rw-rw---- 1 mysql mysql   507272 11月  1 09:49 mysql-bin.000005
-rw-rw---- 1 mysql mysql      649 11月  1 09:58 mysql-bin.000006
-rw-rw---- 1 mysql mysql      107 11月  1 09:58 mysql-bin.000007
-rw-rw---- 1 mysql mysql      133 11月  1 09:58 mysql-bin.index
drwx------ 2 mysql mysql     4096 10月 31 00:00 performance_schema
drwxr-xr-x 2 mysql mysql       20 10月 30 23:56 test
[root@centos01 ~]# cp /usr/local/mysql/data/mysql-bin.000006 /root/test/   
                            <!--复制二进制日记-->

2)模仿误操纵删除一班门生结果表

[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop table benet.一班门生结果;'       
                    <!--删除一班门生结果表-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'   
                      <!--检察表是不是删除-->
ERROR 1146 (42S02) at line 1: Table 'benet.一班门生结果' doesn't exist

3)恢复误删除的表

[root@centos01 ~]# mysql -uroot -ppwd@123 < ./test/benet_databases.sql   
                     <!--恢复完全备份-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'        
                        <!--检察完全备份数据是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
+--------+--------+----------+--------+--------+--------+--------+
[root@centos01 ~]# mysqlbinlog --no-defaults /root/test/mysql-bin.000006 |mysql -u root -p 
                   <!--恢复增量备份-->
Enter password:       <!--输入暗码-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'      
                     <!--检察增量恢复数据是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
| 李宁   | 二班   | 20170824 | 92     | 98     | 105    | 235    |
| 陈铭   | 二班   | 20170826 | 111    | 107    | 96     | 204    |
+--------+--------+----------+--------+--------+--------+--------+

3、基于位置恢复

[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop table benet.一班门生结果;'   
                <!--删除一班门生结果表-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'  
                 <!--检察表是不是删除-->
ERROR 1146 (42S02) at line 1: Table 'benet.一班门生结果' doesn't exist
[root@centos01 ~]# mysql -uroot -ppwd@123 < ./test/benet_databases.sql     
               <!--恢复完全备份-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'     
               <!--检察完全备份是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
+--------+--------+----------+--------+--------+--------+--------+
[root@centos01 ~]# mysqlbinlog --no-defaults /root/test/mysql-bin.000006       
                <!--检察二进制日记文件确认恢复的位置或时候点-->
......         <!--此处省略部分内容-->
# at 176                  <!--at就是我们称之为操纵ID,下面紧跟的是时候标记-->
#191101  9:55:33 server id 1  end_log_pos 329   Query   thread_id=9 exec_time=0 error_code=0
use benet/*!*/;
SET TIMESTAMP=1572573333/*!*/;
insert into 一班门生结果 value ('李宁','二班','20170824','92','98','105','235')
/*!*/;
# at 329
#191101  9:55:33 server id 1  end_log_pos 356   Xid = 278
COMMIT/*!*/;
# at 356
#191101  9:55:43 server id 1  end_log_pos 425   Query   thread_id=9 exec_time=0 error_code=0
SET TIMESTAMP=1572573343/*!*/;
BEGIN
/*!*/;
# at 425       <!--at就是我们称之为操纵ID,下面紧跟的是时候标记-->
#191101  9:55:43 server id 1  end_log_pos 579   Query   thread_id=9 exec_time=0 error_code=0
SET TIMESTAMP=1572573343/*!*/;
insert into 一班门生结果 value ('陈铭','二班','20170826','111','107','96','204')
/*!*/;
[root@centos01 ~]# mysqlbinlog --no-defaults --stop-position='425' /root/test/mysql-bin.000006 |mysql -uroot -p       <!--基于ID恢复增量备份-->
Enter password:       <!--输入暗码-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'    
               <!--检察数据是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
| 李宁   | 二班   | 20170824 | 92     | 98     | 105    | 235    |
+--------+--------+----------+--------+--------+--------+--------+

上述敕令中“--stop-position”指定的是住手的位置,假如仅恢复“陈铭”的信息,跳过“李宁”的信息恢复,可以运用“--start-position”选项指定入手下手恢复数据的位置。这时候所恢复的数据是从指定位置入手下手直到二进制日记文件的末了。

[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop table benet.一班门生结果;'    
                   <!--删除一班门生结果表-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'  
                  <!--检察表是不是删除-->
ERROR 1146 (42S02) at line 1: Table 'benet.一班门生结果' doesn't exist
[root@centos01 ~]# mysql -uroot -ppwd@123 < ./test/benet_databases.sql      
                          <!--恢复完全备份-->
[root@centos01 ~]# mysqlbinlog --no-defaults --start-position='425' /root/test/mysql-bin.000006 |mysql -uroot -p       <!--基于ID恢复增量备份-->
Enter password:        <!--输入暗码-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'    
                 <!--检察数据是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
| 陈铭   | 二班   | 20170826 | 111    | 107    | 96     | 204    |
+--------+--------+----------+--------+--------+--------+--------+

4、基于时候点恢复

基于时候点恢复数据所运用的选项是“--stop-datetime”,指定的时候一样也是查询二进制日记所得。实行一下操纵可以完成仅恢复到9:55:43之前的数据,即不恢复“陈铭”的信息。

[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop table benet.一班门生结果;' 
                      <!--删除一班门生结果表-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'  
                 <!--检察表是不是删除-->
ERROR 1146 (42S02) at line 1: Table 'benet.一班门生结果' doesn't exist
[root@centos01 ~]# mysql -uroot -ppwd@123 < ./test/benet_databases.sql    
                   <!--恢复完全备份-->
[root@centos01 ~]# mysqlbinlog --no-defaults --stop-datetime='2019-11-01  9:55:43' /root/test/mysql-bin.000006 |mysql -uroot -p     
                         <!--基于时候点恢复增量备份-->
Enter password:       <!--输入暗码-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'    
                           <!--检察数据是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
| 李宁   | 二班   | 20170824 | 92     | 98     | 105    | 235    |
+--------+--------+----------+--------+--------+--------+--------+

实行以下操纵可以完成仅恢复“陈铭”的信息,跳过“李宁”的信息恢复

[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop table benet.一班门生结果;'   
                      <!--删除一班门生结果表-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'    
                 <!--检察表是不是删除-->
ERROR 1146 (42S02) at line 1: Table 'benet.一班门生结果' doesn't exist
[root@centos01 ~]# mysql -uroot -ppwd@123 < ./test/benet_databases.sql     
                         <!--恢复完全备份-->
[root@centos01 ~]# mysqlbinlog --no-defaults --start-datetime='2019-11-01 9:55:43'
/root/test/mysql-bin.000006 |mysql -uroot -p      
                      <!--基于时候恢复增量备份-->
Enter password:        <!--输入暗码-->
[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.一班门生结果;'    
                       <!--检察数据是不是恢复-->
+--------+--------+----------+--------+--------+--------+--------+
| 姓名   | 班级   | 学号     | 语文   | 数学   | 英语   | 理综   |
+--------+--------+----------+--------+--------+--------+--------+
| 赵六   | 一班   | 20170816 | 100    | 109    | 112    | 265    |
| 王五   | 一班   | 20170818 | 95     | 103    | 108    | 270    |
| 李四   | 一班   | 20170820 | 95     | 115    | 110    | 260    |
| 张三   | 一班   | 20170822 | 110    | 105    | 92     | 235    |
| 陈铭   | 二班   | 20170826 | 111    | 107    | 96     | 204    |
+--------+--------+----------+--------+--------+--------+--------+

—————— 本文至此完毕,谢谢浏览 ——————

引荐进修:MySQL教程

以上就是详解MySQL备份与恢复的细致内容,更多请关注ki4网别的相干文章!

标签:MySQL


欢迎 发表评论: