构建Oracle双机热备系统
中国工程物理研究院 王朝阳
在一个关键业务的网络系统中,为了保障Oracle数据库的持续不间断应用,对Oracle数据库的应用服务可采用双机热备来实现。即在两台服务器上安装Oralce数据库,Oracle的数据文件存储在一个共享的SAN存储服务器上,并且在这两台服务器上安装双机软件,实现Oracle服务的双机热备。
由于数据库的数据文件放在共享的存储设备上,当一台服务器提供服务时,直接在存储设备上进行读写,而当系统切换后,另一台服务器也同样读取该存储设备上的数据。
由于Oracle数据库文件存放在存储服务器上,当存储介质出现问题时,应尽快恢复数据库,使其尽快投入使用,因此Oracle数据库的备份是必不可少的。
Oracle数据库双机架构
Oracle数据库分别安装在主机名为PriOracle和SecOracle的服务器上,同时在这两台服务器上安装双机软件Lander Cluster,在双机软件的设置中对这两台服务器建立虚拟主机名OracleVL。在主机名为OraRec的服务器上安装Oracle服务,建立作为Oracle数据库RMAN备份要用到的恢复目录数据库。采用BakBone公司的NetVault备份软件,在OraRec服务器上安装NetVault的服务器端,分别在PriOracle和SecOracle服务器上安装NetVault客户端和Oracle APM插件。具体的架构如图1所示。
图1 Oracle数据库双机架构图
Oracle数据库配置
在服务器PriOracle和SecOracle上安装的Oracle数据库的服务名和实例名都是Oratc,采用Archivelog模式。共享的Oracle数据文件存放在SAN存储服务器上,映射在这两台计算机的F盘和G盘。所有的数据文件存放在F:\oracle\oradata\oratc文件夹中。
为了防止磁盘损坏导致控制文件丢失或损坏,建立六个控制文件,分别存放在F盘和G盘上,控制文件分别为:
F:\oracle\oradata\oratc\control01.ctl
F:\oracle\oradata\oratc\control02.ctl
F:\oracle\oradata\oratc\control03.ctl
G:\oracle\oradata\oratc\control04.ctl
G:\oracle\oradata\oratc\control05.ctl
G:\oracle\oradata\oratc\control06.ctl
为了保障例程恢复和介质恢复,需要多元化重做日志,建立三个重做日志组,每个组里有两个日志成员,分别存放在F盘和G盘上。重做日志分别为:
F:\oracle\oradata\oratc\redo01.log
F:\oracle\oradata\oratc\redo02.log
F:\oracle\oradata\oratc\redo03.log
G:\oracle\oradata\oratc\redo01_2.log
G:\oracle\oradata\oratc\redo02_2.log
G:\oracle\oradata\oratc\redo03_2.log
同时多元化归档日志,归档日志分别存放在F盘和G盘上,归档日志所在的目录分别为:
F:\oracle\oradata\oratc\archive目录中
G:\oracle\oradata\oratc\archive目录中
将两台服务器上的Oracle OraHomeTNSListener服务和OracleServiceOratc服务改为手动启动。
Lander Cluster双机配置
在服务器PriOracle和SecOracle上分别安装Lander Cluster双机软件,对Oracle双机任务的配置为:
任务名:OracleApp
绑定网卡:1
虚拟主机名:ORACLEVL
漂移地址:10.4.20.200
掩码:255.255.255.0
卷:共享卷:F;G;
服务:先选择OracleOra HomeTNSListener,再选择OracleServiceOratc
规则:切换规则:回切模式
设置Oracle侦听器和网络服务名
在服务器PriOracle和SecOracle上分别配置Oracle数据库侦听器,侦听位置为:
主机:oraclevl
端口:1521
数据库服务:全局数据库oratc
Oracle主目录:c:\oracle\ora92
SID:oratc
NetVault备份软件设置
在服务器OraRec上安装NetVault服务器软件,在服务器PriOracle和SecOracle上分别安装NetVault客户端软件,在服务器OraRec的NetVault服务端,将PriOracle和SecOracle客户端分别加入服务器端。在NetVault Server上增加存取权限(关于介质管理):
(1)在NetVault主菜单中选择【Administration】→【Access Control】。
(2)在Access Control中的Users里面选中Admin,单击鼠标右键,在弹出菜单中选择【Set Password】命令。
(3)在Set User's Password窗口中,输入“New Password”和“Confirm Password”。
(4)在Access Control中的Users里面选中Admin,单击鼠标右键,在弹出菜单中选择【User Properties】命令。
在User Properties窗口中选择Privileges,在Privileges窗口中选择窗口左下角的“User is Granted All Privileges”,然后保存该设置后退出Access Control程序。
(5)配置Oracle RMAN Plugins的权限:在NetVault Server上使用Windows的命令行窗口“cmd”,进入NetVault安装目录下的Util子目录,运行命令:nvpluginaccess-client PriOracle和nvpluginaccess -client SecOracle。
在命令中选择存取Oracle RMAN Plugin的数字编号后按回车键,输入用户账号:Admin。
输入用户账号的密码(在存储权限中设置的Admin用户的密码)。
运行效果
本单位的Oracle数据库是PDM应用系统的后台数据库,在运行过程中曾出现以下几种情况,由于采用了Oracle数据库双机热备的备份架构,保障了PDM应用系统的有效可靠的运行。
(1)安装Oracle数据库的主服务器网卡损坏,Oracle服务自动切换到备机上。由于在备机上还安装有Teamcenter服务,主服务器的网卡更换后,Oracle服务自动切换到主服务器上,减轻了备机的负担,保障了PDM应用系统的不间断性和有效可靠的运行。
(2)PDM应用系统升级,在升级过程中由于应用管理员处理不当,保存PDM应用系统相关数据的Oracle表空间遭到破坏。由于对Oracle数据库采用了表空间的实时备份,表空间得到了有效的恢复。
(3)EMC存储服务器升级,增加磁盘阵列,合并存储空间。在迁移数据的过程中,发生了数据文件的丢失。由于对数据库的控制文件、数据文件进行了有效的备份,保障了Oracle数据文件的恢复。