暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
MySQL数据库备份与还原脚本说明.doc
117
3页
5次
2024-03-05
5墨值下载
1.
完整备份
1.1
备份方法
采用免费工具
MySQLhotcopy
,直接拷贝数据库文件(
*.FRM
*..MYD
*.MYI
)。在进行拷贝文件时,
会锁定需要进行备份的数据库,加上读锁。然后执
flush tables
把缓存在内存里的修改写入硬盘上的数据
件, 最后把备份的数据库文件复制下来。此过程,可能会造成玩家数据丢失,但是会比使
mysqldump
等备
份方法速度快,锁定表时间少,从而能最大限度地降低数据丢失的情况。
1.2
脚本说明
完整脚本备份文件名称:
fullybackup.sh
,存放目录:
/back
需要创建个目
back
用来放备文件也可进行改为他目则需对脚中的
backdir
修改;所属组:
root
;拥有者:
root
脚本参数:
backdir ----------------
备份文件存放的路径(第一次运行该脚本时会自动创建)
server -----------------
为数据库服务器名称;
dbname----------------
为数据库名称;
password ---------------
admin
帐号登陆数据库的密码;
mysqlbak.log ---------
备份脚本自己的日志,记录脚本运行与结束时间信息;
admin---------------------
为数据库服务器帐号,若需要使用其他帐号的请修改:
/usr/local/mysql/bin/mysqlhotcopy $dbname --flushlog -u admin -p $rootpass $backdir | logger -t mysqlhotcopy
u admin
中的
admin
改为具有读取数据库文件的数据库服务器帐号,即可!
1.3
备份文件存放结构
ccxydata_test
eugene
/back/mysql/ccxydata_test-07-07-01.tgz
eugene
之下才是备份过来的文件:
*.frm
*.MYD
*.MYI
,以及
db.opt
1.4
其他说明
若备份文件一直存放在数据库服务器的话,脚本会自动检测存放的备份文件,根据设置的删除时间,删
除存放的备份文件。目前是设置删除
30
天之前的备份文件,也可以执行修改,只需要修改:
for d in `find . -type d -mtime +30 -maxdepth 1`
30
改为您所要设置的数字即可。
没有供数库备文件缩传功能可以使
ftp
命令备份件定传送指定服务上,
传送脚本另外写,并且在玩家很少的时候,进行文件传送操作。
Linux
安装后,统需再安
Perl-DBD-mysql
组件
Linux
安装,会动安
Perl5.8
组件但是
个组 件不会自动安装),用于支持
Mysqlhotcopy
工具。
Linux
自带的
perl-DBD-mysql
,需要安装
mysql3.23
客户端才能继续安装该组建,而由加密等问题,我们
一般情况会卸载低版本的
mysql
Perl-DBD-mysql
组件版本:
DBD-mysql-2.9005
,源码压缩包:
DBD-
mysql-2.9005.tar.gz
,编译安装步骤:
# tar zxvf DBD-mysql-2.9005.tar.gz
#cd DBD-mysql-2.9005
#export LANG=C
#perl Makefile.PL –mysql_config=/usr/local/mysql/bin/mysql_config
#make ; make install
2.
日志备份
2.1
备份方法
采用
MySQL
自带的管理工
mysqladmin
和文件拷贝命令,进行日志文件备份。只是在刷新日志的时候
会短 暂地锁定数据库表,发生数据丢失的几率很小。
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
自动还原脚本
自动备份的基础是完整备份与日志备份,且文件结构也不能随便修改,则备份脚本需要修改还原脚本。
of 3
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜