作者:一个字-刘斌 | 来源:互联网 | 2017-05-12 15:45
对于大容量的数据库来说。用户当然想每一个时刻都备份所有数据,保证数据库的备份完整性,以免以外情况下,丢失的原数据库内容时候可以做到完全备份,把损失减低到最
对于大容量的数据库来说。用户当然想每一个时刻都备份所有数据,保证数据库的备份完整性,以免以外情况下,丢失的原数据库内容时候可以做到完全备份,把损失减低到最小。
一般来说,很多人都用直接把数据库或者表备份到一个文件,而且是每周一次或者是每天一次,当数据库或者是表非常大的时候,一次备份的时间就需要很长了,而且有时候也要人工操作。理想的方法当然是自动完成而且是不需要用户手工操作。下面介绍一个方法,实时备份(也叫增量备份)。
mysql4.0+版本和mysql5.0+版本操作有些不同。
1、对于mysql4.0+
首先在C:盘的windows文件夹里面找到my.ini配置文件。
里面的内容通常为如下:
#This File was made using the WinMySQLAdmin 1.4 Tool
#20014-03-11 15:17:00
#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions
[mysqld]
basedir=C:/mysql
#bind-address=192.168.1.5
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
log-update=f:\update
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=iouioupp(自定义的)
password=iouioupp(自定义的)
上面的配置文件说明了我的mysql数据库装在c:盘里面,接着我们只需要在[mysqld]项目下面增加一条语句就可以实现增量备份了。
#This File was made using the WinMySQLAdmin 1.4 Tool
#2014-03-11 15:17:00
#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions
[mysqld]
log-update=f:\update
basedir=C:/mysql
#bind-address=192.168.1.5
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
log-update=f:\update
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=iouioupp(自定义的)
password=iouioupp(自定义的)
请注意看紫红色的语句(它就是了)。
输入后,你可以重启电脑,或者启动任务管理器,把mysqld-nt终止进程。
前者重启电脑后会自动启动mysql服务器,后者需要你重新启动这个程序c:\mysql\bin\mysqladmin
然后,你就可以看到f:盘根目录下多了一个文件,名为update.00001,如果你一直使用着这个mysql服务器,那么这个文件就记录了mysql里面所有的数据库的表的变化(查询语句不包括)。
这种方法是最方便和最快捷的实时备份。
当然,你现在会想到如果mysql服务器真的出现意外时候,应该怎么还原呢?
看下面:
在你实行增量备份时,应该备份一次整个msyql的所有数据库(其实最简单的方法就是复制data文件夹)。
之后所有的变化都会出现在update.00001…………update.00002……………里面了,为什么有这么多的update.0000x呢?
因为每次重启电脑都会相应的增加一个更新的增量备份文件。
如果真的出现数据库意外时候,那就在msyql数据库里面删除所有资料,接着把原来复制出来的data文件夹粘贴到原来位置,接着就是执行所有的update.0000x文件。最后就完成了。
你还可以每一次关机之前都备份一次mysql里面的所有数据库,那么当出现意外时候,只需要还原最后一次的update.0000x文件就行了。
还原update.0000x文件用以下语句:mysqladmin -u -p flush-logs