linux下mysql数据库备份与恢复(全量+增量)

            为了模拟mysql数据库的备份与恢复,本文档将介绍数据库的创建、表创建、数据插入、数据库全备份、日志分割、数据恢复等内容

1、数据库创建

登录数据库:

[root@zeshintax02 ~]# mysql -uroot –p

创建数据库tb1,表ttab01:

mysql> create database tb1 default charset utf8mb4;

Query OK, 1 row affected (0.01 sec)

mysql> use tb1

Database changed

mysql> create table ttable01(

    -> id int auto_increment primary key,

    -> name varchar(15)

    -> )engine = InnoDB;

Query OK, 0 rows affected (0.02 sec)

2、插入数据:

linux下mysql数据库备份与恢复(全量+增量)_第1张图片

3、使用mysqldump全量备份数据:

linux下mysql数据库备份与恢复(全量+增量)_第2张图片

【注】:  通常使用全备份命令时需要加入参数:

Mysqldump -uroot -p --single-transaction --master-data=2 --routines --flush-logs -B --all-databases > fullbackupfile.sql

参数--single-transaction、 --master-data=2表示一致性备份,一般一起使用,不单用。--routines备份函数触发器、--flush-logs备份前刷新日志(保证数据完全备份,若数据库开了二进制日志,则不需要使用该参数和一致性参数--single-transaction、 --master-data=2)参数-B:最大的特点就是加入了库,数据恢复时不需要再创建库。

4、继续插入数据:

linux下mysql数据库备份与恢复(全量+增量)_第3张图片

5、使用mysqlbinlog查看日志

mysqlbinlog可以查看数据库二进制日志文件的内容,里面保存了插入数据的语句。查看日志文件:

linux下mysql数据库备份与恢复(全量+增量)_第4张图片

linux下mysql数据库备份与恢复(全量+增量)_第5张图片

linux下mysql数据库备份与恢复(全量+增量)_第6张图片

linux下mysql数据库备份与恢复(全量+增量)_第7张图片

6、mysqladmin分割日志

为了查看数据库的变化,使用mysqladmin命令中选项flush-logs将数据库新生成的二进制文件进行分割,这样在写入新的数据后,新的二进制文件对应的就是数据库的变化的内容。

查看二进制日志文件是否增加:

linux下mysql数据库备份与恢复(全量+增量)_第8张图片

插入一条新数据;

linux下mysql数据库备份与恢复(全量+增量)_第9张图片

使用mysqlbinlog命令可以查看mysql-bin.000003数据库二进制日志文件的内容,里面保存了新插入数据的语句:

linux下mysql数据库备份与恢复(全量+增量)_第10张图片

再使用mysqladmin中的选项flush-logs将数据库二进制日志文件进行分割:

linux下mysql数据库备份与恢复(全量+增量)_第11张图片

由于数据库未增删改新的数据,故分割后的二进制日志文件没有相关内容。

此时插入一条数据:

linux下mysql数据库备份与恢复(全量+增量)_第12张图片

再查看二进制日志文件:

linux下mysql数据库备份与恢复(全量+增量)_第13张图片

新的二进制日志文件保存了新插入的内容,如上。

二、恢复数据

1、全备份后的部分数据恢复

            (1)模拟数据丢失:使用delete删除插入的两条数据

linux下mysql数据库备份与恢复(全量+增量)_第14张图片

        可以查看表中数据少了两条。

        (2)利用之前产生的二进制日志文件恢复数据,(需要注意恢复顺序,最早的数据需要先恢复对应的二进制文件):

linux下mysql数据库备份与恢复(全量+增量)_第15张图片

        可以查看到已经恢复成功一条数据,继续恢复另一条:

linux下mysql数据库备份与恢复(全量+增量)_第16张图片

如此完成两条数据的恢复。

2、全备份后的所以数据恢复

        (1)、查看数据数据:

linux下mysql数据库备份与恢复(全量+增量)_第17张图片

        进行日志分割后,二进制文件列表如下:

 linux下mysql数据库备份与恢复(全量+增量)_第18张图片

插入一条数据:

linux下mysql数据库备份与恢复(全量+增量)_第19张图片

进行日志分割,并查看产生新的二进制文件:

linux下mysql数据库备份与恢复(全量+增量)_第20张图片

再次插入一条数据:

linux下mysql数据库备份与恢复(全量+增量)_第21张图片

查看对应的二进制文件,发现写入的数据已经记录:

linux下mysql数据库备份与恢复(全量+增量)_第22张图片

删除表,之后使用全备+增量备份来恢复数据:

linux下mysql数据库备份与恢复(全量+增量)_第23张图片

现在进行数据恢复:

        A、先全量数据恢复:

linux下mysql数据库备份与恢复(全量+增量)_第24张图片

可以发现表恢复回来了,查看表数据:

linux下mysql数据库备份与恢复(全量+增量)_第25张图片

表中保存了全备时的数据,接着恢复增量日志。

        B、增量数据恢复,一直到最后一个文件:

linux下mysql数据库备份与恢复(全量+增量)_第26张图片

【注】:在恢复增量日志时,遇到报错一定要解决才能进行下一个文件恢复,否则可能数据不完整。

你可能感兴趣的:(Linux入门,数据库,mysql,数据库,linux)