Veritas Cluster Server for Oracle双机热备的配置

Veritas Cluster Server for Oracle双机热备的配置

-概述

Oracle的双机放在DB2双机后面讲有两个原因:一是DB2的配置相对于oracle的配置来说比较简单,数据库的模式也比较容易理解,从简单的开始了解有利于用户的学校,而其中相似的地方用户可以参照DB2的配置;二是DB2双机的配置,也只能说是oracle双机配置的子集,用户在学习了DB2的双机之后,oracle双机配置的很多相似的地方简单说明一下即可,不会让用户感觉到重复,但是用户可以比较一下这两种模式的异同,有利于用户选择更合适自己的双机配置模式。

sybase放在最后并不是因为它更复杂,而是它在这三个数据库之中,用户相对比较少,需要的人不多。

 

-DB2Oracle数据库的对比

DB2Oracle有很多的不同,要想了解清楚,那个不是一朝一夕的功夫了。幸运的是,因为我们现在只是需要做双机配置,所以我们只是在可能会影响配置的概念上,做一个简单的比较。

1. 配置结构的不同:

DB2数据库的双机热备只支持一种模式,就是DB2的程序在两台机器上各有一份,只有数据文件存放在共享存储中,如下图所示:

 


1DB2双机配置结构图

这种配置模式的优点是有利于数据库的升级,当其中systemA需要升级的时候,就把服务切换到systemB上运行,升级ADB2程序,之后还可以把服务切换回到A来,然后升级BDB2程序。这个升级过程不会影响用户的DB2使用,因为总有一台机器可以使用DB2程序来响应用户的服务请求。

对于oracle来说不但可以支持这种程序存放在不同机器上的做法,而且支持把oracle的程序文件也同时放在共享盘上,其结构图如下所示:

 

2oracle双机结构图-程序在各个服务器上

 

3oracle双机结构图-程序和数据都在共享盘上

将数据与程序同时放在共享盘上的优点有两个:一是节省磁盘空间,用户只需要保留一份数据库备份;二是有利于程序的一致性,不会因为数据库版本的不同,产生差异,可以避免产生一些莫名的问题。

2. 数据库的工作模式不同

DB2数据库是以实例为基础的:多个硬盘或者服务器组成一个实例,一个实例下面可以划分多个数据库,一个数据库只能属于一个实例。

Oracle可以理解为以用户为基础的数据库,不同的用户访问不同的实例,不同的实例其实就是不同的数据库。

 

-双机配置

闲话少说,现在开始介绍一下利用VCS来配置oracle双机的过程:

a) 创建数据文件使用的共享存储(在system1上面执行下列5个命令):

i. # vxdg init oracleDG c0t0d0; 创建磁盘组oracleDG,使用c0t0d0这个硬盘;

ii. # vxassist -g oracleDG make oracleVol 5g; 在磁盘组上创建5G大小的卷oracleVol

iii. # mkfs -F vxfs -o largefiles /dev/vx/rdsk/oracleDG/oracleVol; 创建文件系统;

iv. # mkdir /oracle ; 创建mount点,共享磁盘将mount到这里;

v. # mount -F vxfs /dev/vx/dsk/oracleDG/oracleVol /oracle; 将共享盘mount到本机;

b) 在两台机器上面分别执行下列命令,创建相同的用户组和用户:

i. # groupadd -g 500 dba; 创建oracle管理组; 

ii. # useradd -g dba -u 500 -d /home/oracle -m oracle; 创建oracle管理用户;

注意:组ID或者用户ID可以是任意尚未被使用的数值,但是一定要保证多台机器必须一致。

c) 安装oracle程序

oracle安装文件的目录下,运行下列命令安装oracle程序

#.  /runInstaller

在安装过程中,指定oracle用户为“oracle”。

注意:如果需要在多台机器安装oracle,则需要在多台机器运行该程序;如果仅仅想把程序安装在共享盘上面,则仅仅需要在一台机器安装。

注意:安装过程中有一步会问用户是否需要配置数据库,我们选择“仅仅安装软件”,我们会在稍后配置数据库文件到共享磁盘。

d) 配置数据库:

oracle程序安装完毕后,我们需要配置数据库到共享磁盘上,这样多台机器才能够共享其数据资源;

# dbca 

运行数据库配置助手来帮助用户安装数据库,注意需要将路径指明到共享磁盘中。

e) 设置环境变量

在各个机器的/home/oracle/.profile文件中,设置两个全局变量:

$ORACLE_HOME=/oracle 该变量指明数据库的安装位置;

$ORACLE_SID=oracle 该变量指明访问哪个数据库实例;

f) 安装VCSoracle代理软件:(以redhat为例)

# rpm -ivh VRTSvcsor 

# rpm -ivh VRTScsocw

这样,oracle的安装就完成了。

 

测试

在安装结束之后,我们需要测试一下oracle能否在多台机器上正常工作。

a) 将共享盘mount到第一台机器(步骤可以参考DB2双机配置)

b) 从这台机器登陆数据库并创建一个表

i. su – oracle 将系统用户切换到oracle用户;

ii. export $ORACLE_HOME=/oracle; 导出全局变量;

export $ORACLE_SID=oracle;

iii. $ORACLE_HOME/bin/sqlplus /nolog 进入数据库模式;

iv. connect / as sysdba 以系统管理员身份登陆数据库;

v. create user tester identified by '123456' default tablespace USERS temporary tablespace TEMP quota 100K on USERS; 创建一个新用户tester

vi. grant create session to tester; 赋予新用户tester创建表的权限;

vii. create table tester.mytime ( tstamp date ); 在tester用户空间下创建一个新表;

viii. insert into tester.mytime (tstamp) values (SYSDATE); 在新表中插入数据;

ix. disconnect; 断开连接;

c) 测试其他集群节点可以工作:

i. connect tester/123456 以新用户身份登陆数据库;

ii. update tester.mytime set ( tstamp ) = SYSDATE; 更新表的内容;

iii. select TO_CHAR(tstamp, ’MON DD, YYYY HH:MI:SS AM’) from tester.mytime; 确认表的内容已经被更新;

iv. exit 推出。

在经过这个检查之后,就说明数据库已经正确安装并可以被每个节点正常的访问,测试成功。

 

-配置VCSoracle代理

这个过程与DB2的非常相似,唯一的不同在于DB2只有一个主进程工作,监控DB2是否正常工作只需监控这个进程即可。在oracle中有两个进程,一个是数据库运行的主进程,另一个是监控用户请求的进程,两个进程同时工作才能确保oracle的正常运行。所以在oracle代理的配置过程中,需要多添加一个lsnr的资源,用来保证oracle监控进程的正常工作。

配置好的oracle代理结构如图所示:

 

4oracle代理的配置结构

按照该图所示,配置oracle代理需要下列资源:

NIC:提供oracle相应的网卡;

IP:提供oracle服务的IP地址;

DiskGroup:共享磁盘组;

Volume_data:存放oracle共享数据的卷;

Volume_binary:存放oracle程序的卷(如果程序不是放在共享磁盘,该资源可以忽略);

Mount_data:数据库共享数据的访问路径;

Mount_binary:数据库程序的访问路径(如果程序不是放在共享磁盘,该资源可以忽略);

Oracle:监控oracle进程是否正常工作;

Netlnsr:监控oracle监听进程是否工作。

 

在这些资源都配置好之后,打开VCS的图形界面,可以让该服务组执行上线、下线或者切换,这样,VCS就会自动监控oracle的工作情况,并在某台机器发生故障的时候,自动切换到其他节点继续提供服务。这样,oracle的双机配置就完成了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值