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的位置