1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux下mysql数据库备份与恢复(全量+增量)

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

时间:2021-03-27 10:53:54

相关推荐

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、插入数据:

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

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

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、继续插入数据:

5、使用mysqlbinlog查看日志

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

6、mysqladmin分割日志

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

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

插入一条新数据;

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

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

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

此时插入一条数据:

再查看二进制日志文件:

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

二、恢复数据

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

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

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

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

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

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

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

(1)、查看数据数据:

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

插入一条数据:

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

再次插入一条数据:

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

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

现在进行数据恢复:

A、先全量数据恢复:

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。