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.启库检查,恢复成功.


本文标签: 备份 目录 日志