在最近项目中,有个客户要搭建windows 2008+Oracle 10 R2群集。由于windows 下的Oracle HA大都是在windows 2003环境实施的。所以事先就利用VMware 把2008群集测试了一下,发现2003和2008的群集还是有蛮大的变动的。但万变还是不离其宗得,不多废话了,先看实验再说。具体的涉及到的一些该注意的地方会在实验最后陈述。欢迎大家相互交流和讨论。
一. 故障转移群集环境介绍:
1.1 逻辑拓扑图
1.2 服务器A
OS:win 2008 entprise sp1 ServerName:node1
Pubic_IP:192.168.200.1/24 DNS:192.168.200.1
Heartbeat_IP:10.10.10.10/24
1.2 服务器B
OS:win 2008 entprise sp1 ServerName:node2
Public_IP:192.168.200.2/24 DNS:192.168.200.1
Heartbeat_IP:10.10.10.20/24
1.3 群集cluster
DomainName:mscs.com ClusterName:cluster
Cluster_IP:192.168.200.3/24
1.4 服务器C(通过starwind软件虚拟仲裁和共享盘)
IP:192.168.200.200/24
仲裁盘Q:Quorum/1GB
共享盘R:Sharedisk/12GB
二、准备工作:
2.1 服务器A、B网卡的设置
(1)网卡优先级:“Heartbeat”网卡置顶
(2)修改服务器A和B的“Heartbeat”网卡属性
2.2 分别在本地host文件添加各自的记录(C:\windows\system32\drivers\etc\hosts)
A:192.168.200.2 node2
192.168.200.3 cluster
192.168.200.200 BackupServer
B:192.168.200.1 node1
192.168.200.3 cluster
192.168.200.200 BackupServer
2.3 A和B防火墙设置:把两片网卡勾去掉,不然彼此不能正常通信
三、创建仲裁盘和共享盘:
3.1 在服务器C上安装starwind软件(我用的是破解的4.0版本,现在已经更新至5.x版本了),安装比较简单,就截几张重要的图。
(下面要选择完全安装)
3.2 连接Starwind软件
3.3 创建仲裁盘
(1)如图右击“添加设备”
(2)选择p_w_picpath文件设备
(3)选择创建新的虚拟磁盘(我创建在C盘的根目录,一定是以“.img”后缀结尾的文件)
(4)置顶Img文件参数:第三个选项一定勾上,否则建群集找不到仲裁盘和共享盘
(5)给设备文件命名
(6)创建完成
3.4 创建共享盘(不作过多描述,同理中裁判的创建)
(1)(2)(3)步骤同3.3的一样操作
四、在服务器A和B上连接仲裁盘和共享盘
首先让iSCSI服务通过防火墙
第二就是在服务里把iSCSI服务设置为自动启动(不然下面的工作就进行不下去了)
4.1 在A上打开“ISCSI发起程序”:
(1)开始-->管理工具-->ISCSI发起程序
(2)点击“发现”选项,然后添加target端的IP地址(服务器C)
(3)点击“目标”(开始的时候“quo”和“sha”默认都是“不活动”的),把鼠标移到“quo”上,然后点击下面的“登陆”,就会弹出右边的对话框,把第一个勾勾上就可以了。此时“quo”和“sha”的状态都是“已经接”。
(4)iSCSI发起程序已经设置好了,接下来打开磁盘管理器,初始化磁盘,分别格式化并分配盘符。
4.2 在服务器B上做同样的操作,具体参考4.1的步骤
4.3 服务器A和B都操作完后,再到服务器C上,进入starwind软件就会发现,仲裁盘和共享盘已成功分配给A和B。如下图:
五、安装主域控和备份域控
5.1 在A上安装主域控(安装都比较简单,见图说话)
(1)运行dcpromo
5.2 在B上安装备份域控
(1)运行dcpromo
//至此,主域控和备份域控已经安装好了//
六、安装和配置故障转移群集
6.1 分别在A和B上安装“故障转移群集管理”
(1)开始-->管理工具-->服务器管理器-->右击左上角“功能选项”,选择“添加功能”
(2)选中“故障转移群集”
(3)确认选择并开始安装
6.2 待A和B都安装完了之后,开始创建故障转移群集了(A和B可以一起创建,群集会自动关联仲裁盘和数据盘的;也可以先创建一个,然后把另外一个添加到群集)
(1)在管理工具里点击故障转移群集
(2)点击右上角“创建一个群集”
(3)选中要加入群集的服务器A和B
(4)测试群集的安装环境
(5)测试通过后,下一步就是输入群集名和群集IP(一般来说测试通过的话群集也就差不多成功一大半了)
(6)确认群集信息
(7)正在配置群集
(8)此时群集已经创建完成
6.3 模拟群集故障转移环境:
(1)停掉活动节点的群集服务,把群集切换到不活动节点上
(2)关机或重启活动群集的服务器,切换到另一台上
群集切换没问题的话,接下来可以直接安装数据库了。
七、开始安装Oracle 11g R2数据库
7.1 在A节点安装Oracle 11g,但不创建数据库
(1)把群集切换到A节点上
(2)把Oracle 11g的两个“.zip”文件解压到同一个目录中,然后点击“setup”程序开始安装。
(3)有邮件的输入电子邮件,没有就直接下一步
(4)选择第二个,只安装软件
(5)选择第一个,这里不是搭建Oracle RAC
(6)选择语言
(7)选择所需安装的版本
(8)Oracle软件和相关目录都安装在共享磁盘 R盘上
(9)直接点击完成
(10)正在安装中
(11)已经安装成功
(11)至此,A节点的Oracle 软件已经安装完。
7.2 在节点B上安装Oracle 11g ,但不创建数据库
(1)把群集切换到节点B上,
(2)接下来的步骤同7.1的一样,Oracle 软件直接安装覆盖7.1的安装目录(即同一目录下)
7.3 在节点A上创建Oracle 11g 数据库
(1)把群集切换到节点A上
(2)运行“dbca”,配置数据库
(3)下一步
(4)创建数据库,下一步
(5)选择第一个,下一步
(6)配置数据库名“oracluster”,下一步
(7)下一步
(8)配置Oracle账户密码
(9)指定数据库的安装位置---共享盘 R盘上
(10)下一步
(11)下一步
(12)下一步
(13)点击完成,开始创建
(14)确认数据库的配置信息
(15)正在创建数据库
(16)数据库创建完成
此时A节点的数据库已经创建完。
7.4 在节点B上创建数据库
(1)把群集切换到节点B上
(2)运行“dbca”创建数据库,过程和7.3一样,数据库的安装路径也A节点都是在同一个目录(即覆盖安装)
(3)节点B的数据库创建完
7.5 在节点B上创建Oracle侦听程序
(1)运行“netca”
(2)第一个,下一步
(3)添加,下一步
(4)直接下一步
(5)下一步
(6)下一步
(7)选择否,下一步
(8)监听程序配置完成
(9)节点B的监听程序配置完成
7.6 在节点A上创建监听程序
(1)把群集切换到节点A上,运行“netca”配置
从第二步道第九步和7.5的一样,除了第三步:
在这里要选择“第二个”---->“重新配置”
7.7 把Oracle 实例服务和监听服务添加到群集里
7.7.1 分别在A和B节点上,修改Oracle实例服务和监听程序服务为手动
(1)节点A
(2)节点B
7.7.2添加Oracle 实例服务到群集里。
(1)打开群集管理器,右击“服务和应用程序”,选择“配置服务或应用程序”
(2)直接下一步
(3)选择通用服务,下一步
(4)选择Oracle实例服务
(5)输入服务名称和关联的IP(群集IP)
(6)选择关联的存储,即共享磁盘。
(7)下一步
(8)确认信息,下一步
(9)Oracle实例服务已经成功添加到群集
7.7.3添加监听程序到群集。
(1)右击“服务和应用程序”,选择“配置服务或应用程序”,下一步
(2)选择通用服务
(3)选择Oracle监听服务,下一步
(4)输入监听程序服务名称和关联的IP(群集IP)
(5)下一步
(6)下一步
(7)确认信息
(8)监听程序服务已经添加完成
(9)在群集中查看添加的服务
八、最后验证windows 2008+Oracle 11g 故障转移群集
双向验证:
1. 把群集切换到节点A上,运行 sqlplus " /as sysdba" 。如显示下图表示已经连接到实际的数据库,否则就是连接到一个空的实例。
2. 把群集切换到节点B上,运行 sqlplus " /as sysdba" 。如显示下图表示已经连接到实际的数据库,否则就是连接到一个空的实例。
*****切记:Oracle实例服务和监听程序服务启动了,并不代表已经连接到了实际的数据库,如果群集配置切换不成功的话,往往就会在这个服务上给人假象,只要通过“splplus” 已连接就知道了。而且在切换之后也可以通过查看Oracle进程,来判断Oracle数据库有没有起来。
九、实验过程中的问题
1. windows 2008群集存储(仲裁盘和共享盘)使用的是最新的 SCSI-3标准,已不支持SCSI-2的标准了。
所以我们在通过openfiler或者VMware自带的工具创建仲裁盘和共享盘时,windows 2008会报错(认不到存储,或者开机不了等等),但是像FreeNAS和starwind软件来创建群集存储时就不会报错了。
2. windows 2008群集对Oracle版本的要求。
官网说时要安装Oracle 10g 10.2.0.4或以上版本。难怪第一次用10.2.0.1 安装的时候一直报错(软件装不了、不能正常创建数据库、要打补丁等等),正好有的11g R2版本的,就直接拿来安装了。
3. 当添加Oracle实例服务和监听程序服务时,选择地IP是群集的IP地址。
但是我的群集IP地址就一直是添加不上去,于是选择了另外两个IP。估计和DNS里的主机记录有关,不过切Oracle群集切换的时候,还是可以正常的连接到数据库的,不需手动发起。
4. Oracle软件和数据库都安装在共享磁盘上。
在MSCS 2003+Oracle HA是Oracle软件安装在本地磁盘,数据库安装在共享磁盘时,当做Oracle群集切换的时候,有的时候成功,有的时候不成功。不成功情况会显示:“splplus 就会连接到一个空的Oracle实例”,然后解下来又要手动开启数据库。但是之间把Oracle软件和数据库都放在共享磁盘上,做Oracle群集切换的时候就很少会出现那种情况了。
如有问题和建议直接提出,以求共同提高。
本文出自 “销魂Bird” 博客,请务必保留此出处http://shawnephay.blog.51cto.com/2573807/475066