MySQL数据库备份方案
一、准备工作
1.1Mysql相关信息收集
My.cnf文件位置
mysql使用端口
mysql数据库data目录(恢复用)
具有备份权限的mysql用户名和密码
存放备份数据的目录(该目录实际上
MySQL 数据库备份方案 一、准备工作 1.1Mysql相关信息收集 My.cnf文件位置 mysql使用端口 mysql数据库data目录(恢复用) 具有备份权限的mysql用户名和密码 存放备份数据的目录(该目录实际上是存放) 操作系统用户访问mysql目录的权限 innodb redo日志文件大小 redo日志切换频率(根据redo日志切换频率确定redo日志的备份频率) 1.2安装NBU media server或client(略) 因为虚机均认不到driver,故所有mysql虚机均安装nbu7.5 client包,该包介质位于200.68主机,路径/software/nbu/NetBackup_7.5_CLIENTS.tar,该tar包包含了所有unix、linux版本的客户端。 详细安装步骤参考文档: nbu备份虚拟机数据库操作手册@20140126.doc a)NBU安装成功后修改主机 hosts(格式如下) #more /etc/hosts 127.0.0.1 localhost 134.64.115.176 wjjydymysql2 ######NBU########### 134.64.200.68 RLZY 172.17.17.2 ahtel5230 134.64.200.71 vlscontr b)修改主机nbu配置文件(格式如下,修改CLIENT_NAME为要备份的主机名) Vi/usr/openv/netbackup/bp.conf SERVER = RLZY SERVER = ahtel5230 SERVER = vlscontr CLIENT_NAME = kyjkdb CONNECT_OPTIONS = localhost 1 0 2 c)NBU安装成功确认 最后在134.64.200.68 、134.64.200.71 、134.64.209.10执行如下命令bpclntcmd -clear_host_cache bptestbpcd -client 主机名 用于更新缓存和查看主机与Nbu通信是否正常。 1.3MEB安装 直接下载tar包解压即可,解压后只有一个 mysqlbackup可执行文件,本文将文件拷贝至mysql安装目录下,例如: /usr/local/mysql/bin目录中 操作脚本如下: # which mysql /opt/mysql/bin/mysql (查出mysql的安装目录) cd /opt/mysql/bin/mysql #登录FTP134.64.105.155 二进制下载mysqlbackup 根据操作系统选择下载/zxl/mysql/meb/mebrhel6(5)/mysqlbackup chmod u+x mysqlbackup 赋运行权限 二、MySQL如何使用NBU备份 2.1备份原理 1、MEB与NBU的接口 MySQL备份与oracle使用相同的SPT API,因此可以直接使用NBU for Oracle的libobk.xxx文件。与Oracle不同的是,MySQL备份是在MEB命令mysqlbackup中指定lib库的路径(类似于DB2),其语法是: mysqlbackup –sbt-lib-path /usr/openv/netbackup/libobk.xxx 下图是MEB使用SBT接口与NBU交互的原理: 备份: 恢复: 2.2备份操作步骤 收集好mysql相关信息,确认nbu工作正常后,便可实施meb备份 操作过程: Nbu中配置策略->修改脚本中的变量->添加至crontab; 1、配置备份策略 策略类型选择Oracle Schedule类型为Application Backup 具体可参考test_mysql_backup策略,可直接复制该策略并修改 注意: mysql的全备和增量备份均调用这一个策略 在nbu中不能自动发起mysql策略的备份;该策略的备份由client上的 mysqlbackup命令发起,由 crontab负责定时运行mysqlbackup备份脚本 2、备份命令参数解释 /usr/local/mysql/bin/mysqlbackup \ --port=3126 \ --protocol=tcp \ --user=test \ --password=123456 \ --backup-image=sbt:bkpsbtNB \ --sbt-lib-path=/usr/openv/netbackup/bin/libobk.so64 \ --sbt- environment="NB_ORA_SERV=RLZY,NB_ORA_CLIENT=sssjfxptmysql1,NB_ORA _POLICY=sssjfxptmysql1_full,ORACLE_HOME=/data01/mysql/" \ --backup-dir=/data01/mysqlbackup/fullbackup \ --with-timestamp \ backup-to-image 参数说明: --port=3126 指定mysql端口 --user=test 指定mysql用户 --password=123456 指定mysql用户密码 --backup-image=sbt:bkpsbtNB sbt表示使用SBT API接口备份,bkpsbtNB是自定义的image名字 --sbt-lib-path=/usr/openv/netbackup/bin/libobk.so64 用于指定NBU的SBT API链接库位置 --sbt-environment="NB_ORA_SERV= RLZY,NB_ORA_CLIENT= sssjfxptmysql1,NB_ORA_POLICY= sssjfxptmysql1_full, ORACLE_HOME=/data01/mysql/" 指定策略相关信息及mysql的home目录 --backup-dir=/data01/mysqlbackup/fullbackup 指定备份数据存放位置,如果和backup-to-image一起使用,则该目录下存 放备份日志信息以及备份控制信息,数据则发往nbu写入带库 注意:该目录如果不为空mysql备份,则不能备份,因此备份脚本中需要加上时间戳 可以通过--with-timestamp指定使用带时间戳的子目录 backup-to-image Produces a single-file backup rather than a directory structure holding the backup files. Requires the --backup-image option to specify the destination file. Can be used to stream the backup to a storage device or another system without ever storing the data on the database server. 3. 备份脚本 meb.sh.txt #vi /usr/openv/netbackup/scripts/meb.sh 存放备份脚本目录 粘贴脚本中需要修改的变量: dMYSQLBACKUP="/usr/local/mysql/bin/mysqlbackup" –meb命令目录 dBACKUPDIR=/opt/mysqlbackup/fullbackup -全备目录 dINCREMENTALDIR=/opt/mysqlbackup/increment –增备目录 dBACKUPIMAGENAME=backup -备份镜像名称 dport=3306 -mysql连接端口 duser=root -mysql用户 dpassword=root -用户密码 dsbtlibpath=/usr/openv/netbackup/bin/libobk.so64 –nbu备份oracle的lib库文件 dNB_ORA_SERV=RLZY -nbu master server dNB_ORA_CLIENT=ydbf_linux -mysql数据库主机名 dNB_ORA_POLICY=test_mysql_incr –nbu策略名 dORACLE_HOME=/usr/local/mysql #mysql安装home目录 #chmod u+x meb.sh 赋予meb.sh运行权限 4. 设置crontab, 0 0 * * 0 meb.sh full >> –每周日零点全备 0 4 * * * meb.sh incremental –每天4点增备 0 */1 * * meb.sh incremental-with-redo-log-only 每小时备一次在线redo日志 部署脚本如下: 0 0 * * 0 nohup /usr/openv/netbackup/scripts/meb.sh full >> /usr/openv/netbackup/scripts/full.log & 0 18 * * * nohup /usr/openv/netbackup/scripts/meb.sh incremental >> /usr/openv/netbackup/scripts/incremental.log & #0 */1 * * nohup /usr/openv/netbackup/scripts/meb.sh incremental-with-redo-log-only >> /usr/openv/netbackup/scripts/redo.log & 三、Mysql恢复表 3.1本机恢复 1、读取备份Image写往备份目录 /usr/local/mysql/bin/mysqlbackup \ --sbt-lib-path=/usr/openv/netbackup/bin/libobk.so64 \ --backup-dir=/data01/mysqlbackup/fullbackup /2014-07-30_17-54-34 \ --backup-image=sbt:bkpsbtNB \ image-to-backup-dir 2、关闭数据库并将恢复的数据拷贝回mysql的data目录并应用日志 /usr/local/mysql/bin/mysqlbackup \ --backup-dir=/data01/mysqlbackup/fullbackup /2014-07-30_17-54-34 \ --datadir=/data01/mysql/data \ copy-back-and-apply-log 3.2异机恢复 环境准备:一台新的虚拟机,安装nbu客户端,并可以正常备份 1.在备份日志中找到要恢复的mysql库最后一次备份成功的记录 找到backup-image 2.读取备份Image写往备份目录,恢复脚本如下,参数可以参考备份日志获得 /opt/mysql/bin/mysqlbackup --sbt-lib- path=/usr/openv/netbackup/bin/libobk.so64 --backup- dir=/data01/mysqlbackup/fullbackup/151216_095345 --backup- image=sbt:tyzw70145.151216_095345.bki --sbt-lib- path=/usr/openv/netbackup/bin/libobk.so64 --sbt- environment="NB_ORA_SERV=RLZY, NB_ORA_CLIENT=tyzw70145,NB_ORA_POLICY=t yzw70145_backup, ORACLE_HOME=/opt/mysql" image-to-backup-dir 3.关闭数据库并将恢复的数据拷贝回mysql的data目录并应用日志 /opt/mysql/bin/mysqlbackup --backup- dir=/data01/mysqlbackup/fullbackup/151216_095345 -- datadir=/data01/mysql copy-back-and-apply-log 4.启库检查,恢复成功. (编辑:云计算网_宿迁站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |