加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL数据库备份方案

发布时间:2022-10-25 15:01:10 所属栏目:MySql教程 来源:网络
导读: 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交互的原理:

备份:

mysql逻辑备份和物理备份区别_mysql mysqldump触发器备份_mysql备份

恢复:

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

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!