数据备份类型简介

目录

一.简介

数据可以重复导入,每次都是导入的那个数据,如果数据不一致,会以导入的数据覆盖现在有的。

完全备份 备份所有数据(整个/整个库/整个表)
a.只能把数据恢复到备份之前的状态,新产生的数据无法恢复
b.备份数据和恢复数据都要加写锁

差异备份 备份完全备份后新产生的 从完全开始叠加

增量备份 备份上一次备份后新产生的 只增加新的

二.物理备份

直接备份mysql的data或者存储文件。

查看存储文件所在位置
show global variables like "%datadir%";

备份后直接恢复即可
tar -zcvf mysqlbak.tar.gz /var/lib/mysql

三.导出查询结果

查看默认使用目录,一般为空
show variables like "secure_file_priv";

配置数据目录
[mysqld]下添加

secure_file_priv="/data"

导出查询结果,只能到/data这个默认目录下面
select * from mysql.user into outfile "/data/one.txt";

四.逻辑备份

开启binlog日志

开启binlog日志
vim /etc/my.cnf

log_bin
server_id=20 #局域网内不能重复,1-255

查看binlog日志,将从开启binlog日志时开始记录
cd /var/lib/mysql
mysqlbinlog xx.000001

备份binlog日志

1.首先做一次完整备份:
这时候就会得到一个全备文件test.sql
mysqldump test>test.sql

在sql文件中我们会看到:是指备份后所有的更改将会保存到bin-log.000002二进制文件中。
cat test.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;

2.在test库的t_student表中增加两条记录,然后执行flush logs命令。这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了全备过后的所有更改,既增加记录的操作也保存在了bin-log.00002中。

3.再在test库中的a表中增加两条记录,然后误删除t_student表和a表。a中增加记录的操作和删除表a和t_student的操作都记录在bin-log.000003中。

恢复binlog日志

1.首先导入全备数据
mysql test < test.sql;

2.恢复整个bin-log.000002
mysqlbinlog bin-log.000002 |mysql test -uroot -p123456

上一篇:https安全证书如何申请 https证书申请流程及费用


下一篇:免费用流量?三大运营商流量计费系统被曝存漏洞