会短 暂地锁定数据库表,发生数据丢失的几率很小。
2.2
脚本说明
完整脚本备份文件名称:
incrementbackup.sh
,存放目录:
/back
需要先创建一个目录
back
用来存放备份文件(注:若在完整备份时已创建该目录,则不需要再重复创
建), 也可以进行修改为其他目录,则需要对脚本中的
backdir
值修改;所属组:
root
;拥有者:
root
。
脚本参数:
server -----------------
为数据库服务器名称;
logfile ---------------
为数据库服务器存放日志的文件路径,安装目录不同则需要修改
测试目录为:
/usr/local/mysql/var
;
password -------------
为
admin
帐号登陆数据库的密码;
backdir ---------------
日志备份文件存放路径
admin---------------------
为数据库服务器帐号,若需要使用其他帐号的请修改:
/usr/local/mysql/bin/mysqladmin -u admin -p$rootpass flush-logs
把
–
u admin
中的
admin
改为具有读取数据库文件的数据库服务器帐号,即可!
另外:测试的日志文件格式为:
mysql-bin.00001
若不一样则需要修改两行脚本(替换掉
mysql-bin
即可):
1> total1=`ls $logfile/mysql-bin.*|wc -l`
2> for f in `ls $logfile/mysql-bin.*|head -n $total`
2.3
备份文件存放结构
以
ccxydata_test
服务器中数据库
eugene
为例:
/back/mysql /ccxydata_test-07-07-19-13-1.tgz
注:
ccxydata_test-7-07-19----------------
为服务器名称加备份的日期组成,每天会创建一个这样的目录;
13-----------------------------------------
为每次备份日志时
,
当前整点。
1-------------------------------------------
拷贝过来的日志文件编号,每次备份都是从
1
开始递增,有两个日志文
件,则:
/back/mysql /ccxydata_test-07-07-19-13-1.tgz
、
/back/mysql /ccxydata_test-07-07-19-13-2.tgz
;
3
还原
3.1
还原方法
创建一个与需要还原的数据库名称一样的数据库,然后把完整备份的
*.FRM
、
*..MYD
、
*.MYI
,以及
db.opt
,
复制到新数据库名称目录下,然后重新启动
MySQL
服务。
再在此基础上,利用
mysqlbinlog
工具把二进制格式的日志生成可执行的
*.sql
文件,并且删除掉不必要
的 语句,然后使用客户端工具执行,则还原到所要求的时间点。
关闭与启动
MySQL
服务的语句为:
/etc/init.d/mysql stop
,请确认在安装
MySQL
后,把
mysql.server
文
件拷贝到
/etc/init.d
目录下,语句如下:
cp /home/mysql-5.0.22/support-files/mysql.server /etc/init.d/mysql
3.2
自动还原脚本
自动备份的基础是完整备份与日志备份,且文件结构也不能随便修改,否则备份脚本需要修改还原脚本。
评论