MySQL数据库备份与还原脚本说明_第1页
MySQL数据库备份与还原脚本说明_第2页
MySQL数据库备份与还原脚本说明_第3页
MySQL数据库备份与还原脚本说明_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.完整备份 1.1 备份方法MySQL数据库备份脚本说明*网络科技(上海)有限公司采用免费工具MySQLhotcopy,直接拷贝数据库文件(*.FRM,*.MYD,*.MYI)。在进行拷贝文件时,会锁定需要进行备份的数据库,加上读锁。然后执行flush tables把缓存在内存里的修改写入硬盘上的数据库文件, 最后把备份的数据库文件复制下来。此过程,可能会造成玩家数据丢失,但是会比使用mysqldump等备 份方法速度快,锁定表时间少,从而能最大限度地降低数据丢失的情况。1.2 脚本说明完整脚本备份文件名称:fullybackup.sh ,存放目录: /back需要先创建一个目录back用来

2、存放备份文件,也可以进行修改为其他目录,则需要对脚本中的backdir 值修改;所属组:root;拥有者:root 。 脚本参数:backdir -备份文件存放的路径(第一次运行该脚本时会自动创建) server -为数据库服务器名称; dbname-为数据库名称;password -为admin帐号登陆数据库的密码;mysqlbak.log -备份脚本自己的日志,记录脚本运行与结束时间信息;admin-为数据库服务器帐号,若需要使用其他帐号的请修改:/usr/local/mysql/bin/mysqlhotcopy $dbname -flushlog -u admin -p $rootpas

3、s $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天之前的备份文件,也可以执行修改,只需

4、要修改: for d in find . -type d -mtime +30 -maxdepth 1 把 30 改为您所要设置的数字即可。没有提供数据库备份文件压缩传送功能,可以使用ftp命令把备份文件定期传送到指定的服务器上,建议Linux安装完后,系统需要再安装Perl-DBD-mysql组件(Linux安装时,会自动安装Perl5.8组件,但是这Linux自带的perl-DBD-mysql,需要安装mysql3.23客户端才能继续安装该组建,而由加密等问题,我们 传送脚本另外写,并且在玩家很少的时候,进行文件传送操作。个组 件不会自动安装),用于支持Mysqlhotcopy工具。#pe

5、rl Makefile.PL mysql_config=/usr/local/mysql/bin/mysql_config #make ; make install2013-9-10 MySQL数据库备份脚本说明Page 1 of 32.日志备份 2.1 备份方法采用MySQL自带的管理工具mysqladmin和文件拷贝命令,进行日志文件备份。只是在刷新日志的时候,完整脚本备份文件名称:incrementbackup.sh ,存放目录: /back需要先创建一个目录back用来存放备份文件(注:若在完整备份时已创建该目录,则不需要再重复创建),会短 暂地锁定数据库表,发生数据丢失的几率很小。2

6、.2 脚本说明也可以进行修改为其他目录,则需要对脚本中的backdir 值修改;所属组:root;拥有者:root 。 脚本参数:server -为数据库服务器名称;测试目录为: /usr/local/mysql/var;logfile -为数据库服务器存放日志的文件路径,安装目录不同则需要修改 password -为admin帐号登陆数据库的密码; backdir -日志备份文件存放路径admin-为数据库服务器帐号,若需要使用其他帐号的请修改:/usr/local/mysql/bin/mysqladmin -u admin -p$rootpass flush-logs把 u admin中的

7、admin改为具有读取数据库文件的数据库服务器帐号,即可!另外:测试的日志文件格式为:mysql-bin.00001 若不一样则需要修改两行脚本(替换掉mysql-bin 1> total1=ls $logfile/mysql-bin.*|wc -l2> 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-为服务

8、器名称加备份的日期组成,每天会创建一个这样的目录; 13-为每次备份日志时,当前整点。1-拷贝过来的日志文件编号,每次备份都是从1开始递增,有两个日志文3.1 还原方法创建一个与需要还原的数据库名称一样的数据库,然后把完整备份的*.FRM、*.MYD、*.MYI,以及db.opt,再在此基础上,利用mysqlbinlog工具把二进制格式的日志生成可执行的*.sql文件,并且删除掉不必要的关闭与启动MySQL服务的语句为: /etc/init.d/mysql stop,请确认在安装MySQL后,把mysql.server文 复制到新数据库名称目录下,然后重新启动MySQL服务。 语句,然后使用客

9、户端工具执行,则还原到所要求的时间点。 件拷贝到 /etc/init.d目录下,语句如下:件,则:/back/mysql /ccxydata_test-07-07-19-13-1.tgz、/back/mysql /ccxydata_test-07-07-19-13-2.tgz; 3 还原2013-9-10 MySQL数据库备份脚本说明 Page 2 of 33.3 参数说明fulldir -完整备份文件存放的目录(例如:/back/mysql); incrementdir -日志备份文件存放的目录(例如:/back/increment); bindir -MySQL自带工具程序目录(例如:/u

10、sr/local/mysql/bin); vardir -MySQL数据文件存放的目录(例如:/usr/local/mysql/var); backuptime -完整备份的时间(即每天发生完整备份的整点部分时间:小时,格式:hh); password -MySQL 的root帐号对应的密码; para -还原的日期(格式要求:yy-mm-dd); time -时间点(小时,格式:hh);dbname -需要还原的数据库名;4 调度脚本自动运行代码4.1 完整备份调度执行的代码(每天的05点30分与17:00进行完整备份) 30 05 * * * cd /back;./fullybackup.sh>>/back/mysql/mysqlbak.log &4.2日志备份调度执行的代码(每天的每个整点进行日志备份)00 0-23/1 * * * cd /back;./incrementbackup.sh 00 17 * * * cd /back;./fullybac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论