MYSQL备份:启用二进制日志功能的MYSQL增量备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL备份:启用二进制日志功能的MYSQL增量备份相关的知识,希望对你有一定的参考价值。

参考技术A   小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整备份,每天一次增量备份类似这样的备份策略。增量备份的原理就是使用了mysql的二进制日志,所以我们必须启用二进制日志功能。
  一、增量备份
  1、比如我们在星期天下午11点做一次完整备份:
  mysqldump
--single-transaction
--flush-logs
--master-data=2
--all-databases
>
fullbackup_sunday_11_PM.sql
  在sql文件中我们会看到两行:
  –
Position
to
start
replication
or
point-in-time
recovery
from
  –
CHANGE
MASTER
TO
MASTER_LOG_FILE=’bin-log.000002′,
MASTER_LOG_POS=107;
  第二行包含了我们需要的信息,是指备份后所有的更改将会保存到bin-log.000002二进制文件中。
  2、然后在星期一下午11点我们来做一次增量备份:
  mysqladmin
flush-logs
  这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了自星期天下午11点到现在的所有更改,我们只需要把这个文件备份到安全的地方就行了。然后星期二我们又做增量备份,还是执行同样的命令,这时我们保存bin-log.000003文件。
  二、恢复备份
  比如星期三中午12点出现了故障,这时需要恢复,我们首先导入星期天的完整备份:
  mysql
<
fullbackup_sunday_3_AM.sql
  接着我们导入星期一和星期二的增量备份:
  mysqlbinlog
bin-log.000002
bin-log.000003
mysql
  这时我们已经恢复了所有备份数据,我们还可以找到bin-log.000004,进一步恢复最新的数据。

MYSQL增量备份(日志备份)

MYSQL数据库在使用过程中,一般都需要对使用的数据库进行备份处理,对于数据量较小时可以通过mysqldump命令进行数据库全备份,但是当数据库数据量达到一定程度之后,显然增量备份更加适合。

MYSQL增量备份主要通过二进制日志文件进行增量备份。mysql数据库会以二进制形式自动把用户对mysql数据库的操作记录到文件,当用户希望恢复的时候可以使用备份文件进行恢复。

本文主要介绍如何实现在本地服务器上对远程服务器的数据库文件进行在本地服务器的备份。(以下的cmd均需跳转到mysql的bin文件夹路径下,eg:cd C:\Program Files\MySQL\MySQL Server 5.7\bin )

1、完全备份:在远程服务器上进行数据库全备份

cmd> mysqldump -u root -p test > test.sql   :输入密码 ,将会备份数据库名为test的数据库到mysqldump.exe所在的目录的test.sql文件,test.sql可以直接写磁盘的绝对路径进行保存。

2、还原备份:在本地服务器上进行数据库全还原

cmd> mysqldump -u root -p test < test.sql   :输入密码,test.sql为本地服务器上的拷贝回来的还原文件的绝对路径,运行后实现对数据库的还原。

3、打开二进制日志配置 :

在Windows系统下,对MYSQL的my.ini的log-bin等进行配置目录位置时,假设要将log-bin的日志配置到E盘bak文件夹下的文件为binlog.log。则可以如下配置 :

# Binary Logging.
log-bin=E:/bak/logbin.log

开启后确保路径存在,然后重启MYSQL服务就会在E:/bak目录下多了2个文件 

logbin.index  这个是索引文件 有哪些增量备份
logbin.000001   存放用户对数据库操作的文件
 
4、日志还原:
之后对数据库的增删改都会在日志中写入相应的记录,此时将远程服务器上的日志文件拷贝到本地服务器就可以进行增量备份的还原。
 
日志还原指令:
 
全部还原---------:mysqlbinlog e:/mysqldb/logbin.000001 | mysql -u root -p pdserver
 
按照时间还原-----: mysqlbinlog  --stop-datatime="2017-04-10 20:50:00" e:/mysqldb/logbin.000001
           上面这句的意思是 一直恢复到 2017-04-10 20:50:00  停止
按照位置来恢复----:mysqlbinlog  --stop-position="100" e:/mysqldb/logbin.000001  | 
                            上面这个语句意思是 恢复到100的位置
 
 

以上是关于MYSQL备份:启用二进制日志功能的MYSQL增量备份的主要内容,如果未能解决你的问题,请参考以下文章

05: 实时增量备份 XtraBackup 备份 总结和答疑 MySQL 主从同步

mysql实时增量备份 binlog日志备份

mysql实时增量备份

MySQL第六天(主从同步,数据读写分离)

MySQL的增量备份与恢复

MYSQL增量备份(日志备份)