1、oracle双机热备架构方案132020年4月19日资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。双机热备概述双机热备有两种实现模式, 一种是基于共享的存储设备的方式, 另一种是没有共享的存储设备的方式, 一般称为纯软件方式。 基于存储共享的双机热备是双机热备的最标准方案。 对于这种方式, 采用两台( 或多台) 服务器, 使用共享的存储设备( 磁盘阵列柜或存储区域网SAN) 。两台服务器能够采用互备、 主从、 并行等不同的方式。在工作过程中, 两台服务器将以一个虚拟的IP地址对外提供服务, 依工作方式的不同, 将服务请求发送给其中一台服务器承担。同时, 服务器经过心跳线(当前往往
2、采用建立私有网络的方式)侦测另一台服务器的工作状况。当一台服务器出现故障时, 另一台服务器根据心跳侦测的情况做出判断, 并进行切换, 接管服务。对于用户而言, 这一过程是全自动的, 在很短时间内完成, 从而对业务不会造成影响。由于使用共享的存储设备, 因此两台服务器使用的实际上是一样的数据, 由双机或集群软件对其进行管理。 对于纯软件的方式, 则是经过支持镜像的双机软件, 将数据能够实时复制到另一台服务器上, 这样同样的数据就在两台服务器上各存在一份, 如果一台服务器出现故障, 能够及时切换到另一台服务器。 纯软件方式还有另外一种情况, 即服务器只是提供应用服务, 而并不保存数据( 比如只进行
3、某些计算, 做为应用服务器使用) 。这种情况下同样也不需要使用共享的存储设备, 而能够直接使用双机或集群软件即可。但这种情况其实与镜像无关, 只不过是标准的双机热备的一种小的变化。本方案是前者基于共享存储设备的数据库热备。数据库服务器双机热备的好处这种配置模式的优点是有利于数据库的升级, 当其中systemA需要升级的时候, 就把服务切换到systemB上运行, 升级A的DB2程序, 之后还能够把服务切换回到A来, 然后升级B的DB2程序。这个升级过程不会影响用户的DB2使用, 因为总有一台机器能够使用DB2程序来响应用户的服务请求。服务器的故障可能由各种原因引起, 如设备故障、 操作系统故障
4、、 软件系统故障等等。一般地讲, 在技术人员在现场的情况下, 恢复服务器正常可能需要分钟、 几小时甚至几天。从实际经验上看, 除非是简单地重启服务器( 可能隐患依然存在) , 否则往往需要几个小时以上。而如果技术人员不在现场, 则恢复服务的时间就更长了。 而对于一些重要系统而言, 用户是很难忍受这样长时间的服务中断的。因此, 就需要经过双机热备, 来避免长时间的服务中断, 保证系统长期、 可靠的服务。 决定是否使用双机热备, 正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度, 以此决定是否使用双机热备。即, 你的用户能容忍多长时间恢复服务, 如果服务不能恢复会造成多大的影响。 在考虑
5、双机热备时, 需要注意, 一般意义上的双机热备都会有一个切换过程, 这个切换过程可能是一分钟左右。在切换过程中, 服务是有可能短时间中断的。可是, 当切换完成后, 服务将正常恢复。因此, 双机热备不是无缝、 不中断的, 但它能够保证在出现系统故障时, 能够很快恢复正常的服务, 业务不致受到影响。而如果没有双机热备, 则一旦出现服务器故障, 可能会出现几个小时的服务中断, 对业务的影响就可能会很严重。 另有一点需要强调, 即服务器的故障与交换机、 存储设备的故障不同, 其概念要高得多。原因在于服务器是比交换机、 存储设备复杂得多的设备, 同时也是既包括硬件、 也包括操作系统、 应用软件系统的复杂
6、系统。不但设备故障可能引起服务中断, 而且软件方面的问题也可能导致服务器不能正常工作。 还应指出的是, 一些其它的防护措施如磁盘阵列( RAID) 、 数据备份虽然是非常重要的, 但却不能代替双机热备的作用。双机热备与数据备份的关系 一些用户在规划双机热备或双机备份时, 会有这样的问题: 我已经有了RAID, 以及磁带备份, 还有必须做双机吗? 或者, 如果我做了双机备份, 还有必要做磁带备份吗? 应该说RAID和数据备份都是很重要的。可是, RAID技术只能解决硬盘的问题, 备份只能解决系统出现问题后的恢复。而一旦服务器本身出现问题, 不论是设备的硬件问题还是软件系统的问题, 都会造成服务的
7、中断。因此, RAID及数据备份技术不能解决避免服务中断的问题。对于需要持续可靠地提供应用服务的系统, 双机还是非常重要的。只要想一想, 如果你的服务器坏了, 你要用多少时间将其恢复到能正常工作, 你的用户能容忍多长的恢复时间就能理解双机的重要性了。 从另外一个方面, RAID以及磁带备份也是非常需要的。对于RAID而言, 能够以很低的成本大大提高系统的可靠性, 而且其复杂程度远远低于双机。因为毕竟硬盘是系统中机械操作最频繁、 易损率最高的部件, 如果采用RAID, 就能够使出现故障的系统很容易修复, 也减少服务器停机进行切换的次数。 数据备份更是必不可少的措施。因为不论RAID还是双机, 都
8、是一种实时的备份。任何软件错误、 病毒影响、 误操作等等, 都会同步地在多份数据中发生影响。因此, 一定要进行数据的备份( 不论采取什么介质, 都建议用户至少要有一份脱机的备份) , 以便能在数据损坏、 丢失时进行恢复。数据库服务器双机热备组网图网络拓扑图逻辑图设备清单软件清单软件名称版本安装说明安装目录操作系统磁盘多路径管理群集软件软件VeritasOracle硬件清单磁盘阵列( 存储) 主机配光纤卡( hba卡) 两台型号一直的主机光纤技术部分操作系统安装Oracle安装a) 创立数据文件使用的共享存储( 在system1上面执行下列5个命令) : i. # vxdg init oracl
9、eDG 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
10、到本机; 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”。注意: 如果需要在多台机器安装oracl
11、e, 则需要在多台机器运行该程序; 如果仅仅想把程序安装在共享盘上面, 则仅仅需要在一台机器安装。注意: 安装过程中有一步会问用户是否需要配置数据库, 我们选择”仅仅安装软件”, 我们会在稍后配置数据库文件到共享磁盘。d) 配置数据库: oracle程序安装完毕后, 我们需要配置数据库到共享磁盘上, 这样多台机器才能够共享其数据资源; # dbca 运行数据库配置助手来帮助用户安装数据库, 注意需要将路径指明到共享磁盘中。e) 设置环境变量在各个机器的/home/oracle/.profile文件中, 设置两个全局变量: $ORACLE_HOME=/oracle该变量指明数据库的安装位置; $
12、ORACLE_SID=oracle该变量指明访问哪个数据库实例; f) 安装VCS的oracle代理软件: ( 以redhat为例) # rpm -ivh VRTSvcsor # rpm -ivh VRTScsocw这样, oracle的安装就完成了。测试在安装结束之后, 我们需要测试一下oracle能否在多台机器上正常工作。a) 将共享盘mount到第一台机器( 步骤能够参考DB2双机配置) b) 从这台机器登陆数据库并创立一个表i. su oracle将系统用户切换到oracle用户; ii. export $ORACLE_HOME=/oracle;导出全局变量; export $ORAC
13、LE_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 te
14、ster.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推出。在经过这个检查之后, 就说明数据库已经正确安装并能够被每个节点正常的访问, 测试成功。存储安装集群软件安装选择相应的集群软件, 厂家负责上门安装。并按照业务的设计需要做相关的规划, 最后输出安装文档, 作为实施的交付件。