admin 管理员组文章数量: 887021
2023年12月24日发(作者:进销存源码下载)
MySQL 数据库备份方案
一、 准备工作
1.1 Mysql相关信息收集
文件位置
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_,该tar包包含了所有unix、linux版本的客户端。
详细安装步骤参考文档:
nbu备份虚拟机数据库操作手册@
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/
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.3 MEB安装
直接下载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的文件。与Oracle不同的是,MySQL备份是在MEB命令mysqlbackup中指定lib库的路径(类似于DB2),其语法是:
下图是MEB使用SBT接口与NBU交互的原理:
备份:
mysqlbackup –sbt-lib-path /usr/openv/netbackup/
恢复:
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/64
--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/64
用于指定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写入带库
注意:该目录如果不为空,则不能备份,因此备份脚本中需要加上时间戳
可以通过--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. 备份脚本
#vi /usr/openv/netbackup/scripts/ 存放备份脚本目录
粘贴脚本中需要修改的变量:
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/64 –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 赋予运行权限
4. 设置crontab,
0 0 * * 0 full >> –每周日零点全备
0 4 * * * incremental –每天4点增备
0 */1 * * incremental-with-redo-log-only 每小时备一次在线redo日志
部署脚本如下:
0 0 * * 0 nohup /usr/openv/netbackup/scripts/ full >>
/usr/openv/netbackup/scripts/ &
0 18 * * * nohup /usr/openv/netbackup/scripts/ incremental >>
/usr/openv/netbackup/scripts/ &
#0 */1 * * nohup /usr/openv/netbackup/scripts/ incremental-with-redo-log-only >> /usr/openv/netbackup/scripts/ &
三、Mysql恢复表
3.1 本机恢复
1、读取备份Image写往备份目录
/usr/local/mysql/bin/mysqlbackup
--sbt-lib-path=/usr/openv/netbackup/bin/64
--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客户端,并可以正常备份
ip
134.64.70.146
1.在备份日志中找到要恢复的mysql库最后一次备份成功的记录
操作系统
Redhat5.6
Mysql版本
mysql 5.6
找到backup-image
2.读取备份Image写往备份目录,恢复脚本如下,参数可以参考备份日志获得
/opt/mysql/bin/mysqlbackup --sbt-lib-path=/usr/openv/netbackup/bin/64 --backup-dir=/data01/mysqlbackup/fullbackup/151216_095345 --backup-image=sbt:tyzw70145.151216_ --sbt-lib-path=/usr/openv/netbackup/bin/64 --sbt-environment="NB_ORA_SERV=RLZY, NB_ORA_CLIENT=tyzw70145,NB_ORA_POLICY=tyzw70145_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.启库检查,恢复成功.
版权声明:本文标题:MySQL数据库备份方案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703407806h450006.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论