暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Infromix数据库异机恢复的实施与操作

永正信达 2021-05-11
2332

近日在某银行实施了基于Netbackup备份软件的Informix数据库的异机恢复异(Netbackup恢复重定向,在有关技术文档中叫re-direct restore/recover),这是一次完全自己搞定的一个小工程,历经从搭建环境,反复试验,掌握Netbackup重定向,理解消化Informix备份与恢复原理,查阅大量技术文档,解决遇到的问题,直到最后恢复成功,编写交付客户的技术文档,花费了大量的时间精力,当然,最后看到了成果,那一时刻真的很开心



下面向大家介绍实施与操作过程,

这其中有几个重点:

  1. 配置Netbackup支持重定向:默认配置下,使用Netbackup配置的备份,从哪个客户机备份的,就只能在哪个客户下恢复,如果需要重定向恢复,则需要进行相关的设置;

  2. 这家银行的源备份机是Netbackup Media Server,而恢复机是普通Netabckup Client,但是因为Master Server也是Media Server,因此,可以借助Master Server来读取源备份机的磁带卷;

  3. 一些Netabckup命令;

  4. Informix恢复的与Oracle等企业级数据库一样,恢复数据时,都需要最近   的一次全备份,然后再前滚与回滚,而前滚利用的就是Informix逻辑日志。


1

一.客户的备份结构拓扑



Ø  备份拓扑描述:

这家银行Netbackup集中备份系统组成为:一台备份服务器(MasterServer+MediaServer),两台核心informix主数据(HA)为Media ServerLAN Free),恢复验证机为普通客户端。

 

备份服务器为:PC服务器,Windows2008R2 service pack1 64位企业版 + Netbackup 7.6.0.4

服务器地址:7.1.1.24/24

服务器主机名:SZSNBU

 

两台数据库服务器为:IBM p系列小型机,AIX6.1 + Netbackup 7.6.0.4 + Informix 11.5FC8

服务器地址:7.0.1.14/24  7.0.1.15/24

服务器主机名:p750a_hxdb1p750b_hxdb2

 

恢复验证机为:IBM p系列小型机,IBM AIX6.1 + Netbackup 7.6.0.4+ Informix 11.5FC8

服务器地址:7.1.1.29/24

服务器主机名:hxdbrestore

 

参与备份的磁带库

EMC DD4200虚拟磁带库:152TB NL-SAS磁盘,虚拟出32LTO-3磁带机,100400GB磁带,此虚拟带库位于主中心;



"注意:

因目前核心数据库是在p750b_hxdb2上运行的,且备份数据都是p750b_hxdb2上发起的,因此以下文档中有关参数、环境变量,命令等都是与p750b_hxdb2相关的。当数据库切换至p750a_hxdb1后,要做相应变更。


2

.系统安装与配置



  1. 1.    在恢复验证机上安装Netbackup Client 7.6.0.4 for AIX版本,安装过程略。

  2. 2.    在恢复验证机上安装informix 11.5 FC8 for AIX版本,安装过程略,注意:informix用户IDinformixID必须与主数据库服务器一致。

  3. 3.    在恢复验证机上设置与主数据相同的目录结构,以及informix数据库结构,设置过程略。

  4. 4.    在恢复验证机上做如下配置:

Ø  Informix用户下,配置如下环境变量:

export INFORMIXDIR=/home/informix

export TERM=vt100

export ONCONFIG=onconfig.szs

export INFORMIXSERVER=szsbank

export PATH=.:$INFORMIXDIR/bin:$PATH

export LIBPATH=$INFORMIXDIR/bin:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/tools

####### for restore hx_informix ######

export DBTEMP=$INFORMIXDIR/tmp

export INFXBSA_CLIENT=p750b_hxdb2          这个变量是NBU重定向恢复需要的变量之一

export INFXBSA_SERVER=szsnbu               //这个变量是NBU重定向恢复需要的变量之一

 

Ø  root用户下的/etc/environment文件,加入如下内容:

########## for hx_informix restore ##########

INFORMIXDIR=/home/informix

INFXBSA_CLIENT=p750b_hxdb2       这个变量是NBU重定向恢复需要的变量之一

INFXBSA_SERVER=szsnbu           //这个变量是NBU重定向恢复需要的变量之一

 

Ø  编辑/etc/hosts,加入备份服务器与恢复验证机的相应解析

Ø  onconfig.szs配置为启用onbar工具,配置过程略

Ø  确保sqlhosts文件内容正确

 

  1. 5.    Netbackup Master备份服务器上做如下配置:

Ø  编辑Windowshosts文件,加入备份服务器与恢复验证机的相应解析

Ø  D:\Program Files\Veritas\NetBackup\db目录中新建altnames目录

Ø  altnames目录中新建文件hxdbrestore,内容为:p750b_hxdb2,即允许将p750b_hxdb2服务器的备份数据,重定向到hxdbrestore服务器。

Ø  因为恢复验证机不是media server,只能借助备份服务器读取磁带库(同时也是Media Server)来恢复数据,因此启动NBU Admin Console控制台,在主服务器szsnbu属性中,找到常规服务器,在介质主机覆盖中加入如下条目,含义为:允许原始备份服务器的数据通过szsnbu服务器恢复,如下图:




这个动作实际是在注册表中设置了FORCE_RESTORE_MEDIA_SERVER注册表项,如下图所示:




Ø  在控制台中找到客户端一项,配置恢复验证机hxdbrestore客户端属性,将介质服务器添加szsnbu主机,如下图所示:




以上,有关开启Netbackup重定向恢复功能的设置完毕。




3

.完全恢复操作



简要步骤:

  1. 1.       恢复生产库的ixbar.0oncfg_szsbank.0文件,这两个文件是informix备份恢复的关键文件,其中ixbar.0文件记录了源数据库服务器上onbar备份的数据信息;

  2. 2.       物理恢复:onbar –r –p

  3. 3.       逻辑恢复:onbar –r –l

  4. 4.       将数据库从quiescent模式转换为online模式

 

操作如下:

root身份登陆恢复验证机hxdbrestore,输入命令:       

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/ixbar.0

 

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/oncfg_szsbank.0

 

-B代表从备份中还原,-p代表对应的策略,-t 0代表文件级恢复,–w代表等待系统恢复完毕返回提示符,–C代表原始客户端,-D代表目标客户端(异机),-S代表Master Server

 

完成两个onbar备份信息文件的恢复后,破坏数据文件:

# dd if=/dev/zero of=/dev/rrootdbs count=200

 

继续以informix身份登陆恢复验证机hxdbrestore,运行如下命令:$ onbar –r –p,做物理文件恢复,上述命令完成后,继续运行:$ onbar –r –l,做逻辑日志恢复

 

上述命令完成后,数据库一般为Quiescent状态,运行如下命令:

$ onmode -m将数据库置为online状态

 

至此,恢复验证机数据库恢复完毕。



4

.基于时间点恢复自凌晨全备份以来的操作



例如:今日是2016412日,要恢复今日早900分之前的所有数据,则恢复今日凌晨的全备,然后前滚日志。

 

Ø  首先恢复ixbar.0oncfg.szsbank.0两个文件,root身份登陆恢复验证机hxdbrestore,输入命令:

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/ixbar.0

 

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/oncfg_szsbank.0

 

Ø  完成两个onbar备份信息文件的恢复后,破坏数据文件:

# dd if=/dev/zero of=/dev/rrootdbs count=200


Ø  在恢复验证机上informix身份登陆,运行命令:

$ more ixbar.0  确认存在9点的备份信息



                                             


Ø  继续以informix身份登陆恢复验证机hxdbrestore,运行如下命令:$ onbar –r –p,做物理文件恢复,命令完成后,继续运行:onbar -r -l -t "2016-04-12 9:02:00",做逻辑日志恢复 

Ø  上述命令完成后,数据库一般为Quiescent状态,运行如下命令:

$ onmode -m将数据库置为online状态

 

至此,今日早900分之前的所有数据在恢复验证机上恢复完毕。



5

.基于逻辑日志恢复自凌晨全备份以来的操作



例如:今日是2016412日,要恢复今日早1000分之前的所有数据,则恢复今日凌晨的全备,然后前滚日志。


Ø  首先恢复ixbar.0oncfg.szsbank.0两个文件root身份登陆恢复验证机hxdbrestore,输入命令:

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/ixbar.0

 

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/oncfg_szsbank.0

 

Ø  完成两个onbar备份信息文件的恢复后,破坏数据文件:

# dd if=/dev/zero of=/dev/rrootdbs count=200

Ø  在恢复验证机上informix身份登陆,运行命令:

$ more ixbar.0  确认存在10点的备份信息



                                             


Ø  informix身份登陆恢复验证机hxdbrestore,运行如下命令:$ onbar –r –p,做物理文件恢复,命令完成后,继续运行:onbar -r -l -n 93381,做逻辑日志恢复 

Ø  上述命令完成后,数据库一般为Quiescent状态,运行如下命令:

$ onmode -m将数据库置为online状态

 

至此,今日早1000分之前的所有数据在恢复验证机上恢复完毕。



6

.基于逻辑日志恢复自前一日全备份以来的操作(日结前一日的数据)



例如:今日是2016412日,要恢复2016411日中午1200分之前的所有数据,则利用11日凌晨的全备,然后前滚日志。


Ø  首先恢复ixbar.0oncfg.szsbank.0两个文件root身份登陆恢复验证机hxdbrestore,输入命令:

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/ixbar.0

 

# bprestore -B -p Backup_HXInfmx_p750B_ETC -t 0  -w -C p750b_hxdb2 -D hxdbrestore -S szsnbu home/informix/etc/oncfg_szsbank.0

 

Ø  完成两个onbar备份信息文件的恢复后,破坏数据文件:

# dd if=/dev/zero of=/dev/rrootdbs count=200

Ø  在恢复验证机上informix身份登陆,运行命令:

$ more ixbar.0  确认存在前一日早9点的备份信息



                                            


Ø  informix身份登陆恢复验证机hxdbrestore,运行如下命令:

$ onbar -r -p -t "2016-04-11 05:00:00" ,这里指定一个大致11日凌晨完成全备的时间做物理文件,例如5点。




Ø  上述命令完成后,继续运行:onbar -r -l -n 93295,做逻辑日志恢复 

Ø  上述命令完成后,数据库一般为Quiescent状态,运行如下命令:

$ onmode -m将数据库置为online状态


至此,日结前一日1200分之前的所有数据在恢复验证机上恢复完毕。





文章转载自永正信达,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论