前期规划:
节点1: tc1 192.168.56.101 内存:2G
节点2: tc2 192.168.56.102 内存:2G
物理备库:tcdg192.168.56.108内存:1G
操作系统:Windows 2008 R2 Enterprise
*******
RAC部分
*******
一、准备工作
1.修改提升权限提示方式为“不提示,直接提升”(默认为“非Windows二进制文件的同意提示”)
cmd> secpol.msc->本地策略->安全选项->用户账户控制->管理员批准模式中管理员的提升权限提示的行为
2.禁用防火墙
cmd> firewall.cpl->打开或关闭防火墙->关闭Window防火墙
3.修改注册表关闭DHCP媒体感知(修改后重启生效)
cmd> regedit->\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters下面添加一项,名字是DisableDHCPMediaSense,类型为DWORD,值为1
4.检查是否生效
cmd> netsh interface ipv4 show global
DHCP 媒体感知 :enabled
5.关闭可伸缩网络包(SNP)特性(修改后立即生效)
cmd> netsh int tcp set global rss=disabled
cmd> netsh int tcp set global chimney=disabled
c:\grid>netsh int tcp show global
查询活动状态...
TCP 全局参数
----------------------------------------------
接收方缩放状态 : disabled
烟囱卸载状态 : disabled
NetDMA 状态 : enabled
直接缓存访问(DCA) : disabled
接收窗口自动调谐级别 : normal
附加拥塞控制提供程序 : ctcp
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
6.调整网络绑定顺序
cmd> ncpa.cpl->高级->高级设置->调整public在前,private在后,并且确保IPV4协议在IPV6协议之前
7.停止Distributed Transaction Coordinator,并设置成手动启动
cmd> services.mcs->点属性修改
8.同步各节点时间(可选)
通常节点之间的时间是由CTSSD(Cluster Time Synchronization Services Daemon)或 Windows Time Service来保证的
如果开启了Windows Time Service(默认关闭),那么必须保证不会被反向修改,需要做以下调整
cmd> regedit->\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
把MaxNegPhaseCorrection的值改为0
cmd> w32tm /config /update --使修改生效
9.设置环境变量(可选)
装完系统默认应该已经有TMP和TEMP这两个环境变量了,路径都为%USERPROFILE%\AppData\Local\Temp
由于在安装OUI的时候,会用到这2个环境变量,所以如果没有的话需要添加上,并且确保路径是一致的
10.修改C:\windows\system32\etc\hosts
#public ip
192.168.56.101 tc1
192.168.56.102 tc2
#virtual ip
192.168.56.103 tc1-vip
192.168.56.104 tc2-vip
#private ip
10.0.0.1 tc1-priv
10.0.0.2 tc2-priv
192.168.56.105 tc-cluster-scan
11.full clone节点1至节点2
启动并修改节点2的网卡ip地址和主机名后再次重启
12.测试连通性
节点1执行
cmd> ping tc2
cmd> ping tc2-vip
cmd> ping tc2-priv
cmd> net use \\tc2\c$
节点2执行(略)
13.测试远程注册表
节点1执行
cmd> regedit->文件->连接网络注册表->输入tc2->检查名称-确定
节点2执行(略)
二、配置共享磁盘
1.共享磁盘划分规划
DISK1 TC_OCR_VOTE1 1G
DISK2 TC_OCR_VOTE2 1G
DISK3 TC_OCR_VOTE3 1G
DISK1 TC_DATA12G
DISK5 TC_DATA22G
DISK6 TC_FRA1 2G
DISK7 TC_FRA2 2G
从11g开始,Oracle推荐把OCR和VOTEDISK放到ASM中进行管理,所以这里共划分了7块磁盘,3块用于磁盘组OCRVOTE,采用NORMAL冗余,2块用于DATA,2块用于FRA,都是外部冗余。注意,这里分配的用于创建ASM磁盘组的磁盘必须是不带盘符的裸磁盘,在Windows 2003中,可以用diskmgmt.msc来代替diskpart来创建磁盘分区,但是在Windowns 2008中只能用diskpart来分区
2.设置自动挂载(所有节点)
cmd> diskpart
diskpart> automount enable
3.清除磁盘(节点1)
cmd> list disk
cmd> select disk 1
cmd> clean all
...
cmd> select disk 7
cmd> clean all
4.创建扩展分区和逻辑磁盘(节点1)
cmd> select disk 1
cmd> create part ext
cmd> create part log
...
cmd> select disk 7
cmd> create part ext
cmd> create part log
5.删除逻辑磁盘盘符(节点2)
本地节点上用diskpart创建完扩展分区和逻辑盘后不会显示逻辑盘符,但其他节点上可能会有,需要全部去除,注意,刚在节点2需重启才能发现节点1上对磁盘的分区
cmd> select disk 3 --注意对应的逻辑驱动器卷标,并不是从1开始的
cmd> remov
...
cmd> select disk 9
cmd> remov
6.用asmtool或asmtoolg来划分asm磁盘组分区
进入grid安装介质中,如:C:\grid\asmtools,运行amstoolg
选中要添加到同一个磁盘组的盘,输入磁盘组名称,点击下一步
三、安装Grid Infrastructure软件
1.预检安装条件是否满足
C:\grid> runcluvfy stage -pre crsinst -n tc1,tc2 -verbose
C:\grid> runcluvfy stage -post hwos -n tc1,tc2 -verbose
会提示集群服务配置失败,由于此时并没有配置过vip,忽略。还有一个警告是无法将用户 "Administrator" 作为域用户进行验证,这个可以忽略。最后一个警告是提示防火墙没有关闭,但检查了一下,确实是关闭的,根据后面OUI里面的提示,通过修改注册表可以关闭防火墙。但是后来发现是因为域配置文件中的防火墙没有关造成的
2.安装(略)
四、安装Database软件
1.预检安装条件是否满足
C:\grid> runcluvfy stage -pre dbinst -n tc1,tc2 -verbose
2.安装(略)
安装数据库软件卡在100%,卡了大约1个小时,一度以为卡死掉了,最后终于等到它完全装好
结束之后要在远程节点执行ORACLE_HOME/bin/selecthome.bat,以激活以下5个产品:
Oracle Data Provider for .NET
Oracle Provider for OLE DB
Oracle Objects for OLE
Oracle Counters for Windows Performance Monitor
Oracle Administration Assistant
五、创建磁盘组(ASMCA)
1.创建+DATA和+FRA磁盘组
C:\Users\Administrator>set oracle_home=c:\app\11.2.0\grid
C:\Users\Administrator>set oracle_sid=+asm1
C:\Users\Administrator>asmcmd
ASMCMD> ls
DATA/
FRA/
OCRVOTE/
2.创建OCR镜像备份
虽然之前已经单独为OCR和VOTEDISK创建了一个磁盘组,但Oracle建议至少在其他磁盘组中存放OCR的镜像,注意,每个磁盘组只能存放一个OCR镜像
C:\Users\Administrator>asmcmd lsof
DB_Name Instance_Name Path
+ASM +asm1 +ocrvote.255.4294967295
由于此时并未创建数据库实例,所以目前只有在+OCRDATE磁盘组中有唯一的一个文件,就是OCR文件
C:\Users\Administrator>asmcmd
ASMCMD> cd ocrvote/tc-cluster/ocrfile
ASMCMD> ls
REGISTRY.255.854982335
ASMCMD> pwd
+ocrvote/tc-cluster/ocrfile
注意,OCR实际的文件名是REGISTRY.255.854982335,而并不是+ocrvote.255.4294967295,这只是一个路径
OCR文件的备份方式
--自动备份
C:\Users\Administrator>ocrconfig -showbackup
PROT-24: Oracle 集群注册表的自动备份不可用
PROT-25: Oracle 集群注册表的手动备份不可用
默认Oracle会提供5份自动备份,按月、星期、天、以及保留最后3次改动,也可以手动执行备份,由于是新部署的环境,所以自动备份还未生成,也没有执行过手动备份
--手工备份
C:\Users\Administrator>ocrconfig -manualbackup
tc2 2014/08/08 11:05:30 C:\app\11.2.0\grid\cdata\tc-cluster\backup_20140
808_110530.ocr
默认存放在“%ORACLE_CRS_HOME%\cdata\集群名\”下面,文件名格式为“backup_xxxxxxxx_xxxxxx.orc”
这个默认位置可以通过-backuploc参数来改
C:\Users\Administrator>ocrconfig -backuploc c:\app
C:\Users\Administrator>ocrconfig -manualbackup
tc2 2014/08/08 11:20:38 c:\app\backup_20140808_112038.ocr
tc2 2014/08/08 11:05:30 C:\app\11.2.0\grid\cdata\tc-cluster\backup_20140
808_110530.ocr
注意,以上命令我是在tc1节点上执行的,但是默认却放到了tc2节点的本地路径,我又尝试在节点2上再次执行手工备份,依然是在tc2节点本地指定的路径生成OCR备份,难道是Oracle专门这样设计的吗?
--导出/导入到本地磁盘的方式
ocrconfig -export C:\ocr_bak.ocr
ocrconfig -import C:\ocr_bak.ocr
注意:利用自动或手动备份进行恢复是用restore而不是import
--在磁盘组中添加OCR冗余
C:\Users\Administrator>ocrconfig -add +DATA
C:\Users\Administrator>ocrconfig -add +FRA
C:\Users\Administrator>ocrcheck
Oracle 集群注册表的状态如下:
版本 : 3
总空间 (KB) : 262120
已用空间 (KB) : 2808
可用空间 (KB): 259312
ID : 513928542
设备/文件名 : +OCRVOTE
设备/文件完整性检查成功
设备/文件名 : +DATA
设备/文件完整性检查成功
设备/文件名 : +FRA
设备/文件完整性检查成功
设备/文件尚未配置
设备/文件尚未配置
集群注册表完整性检查成功
逻辑损坏检查成功
这里在+DATA和+FRA磁盘组都配置了OCR的备份,可以看到,Oracle提供最多5个位置用来备份OCR
可以看到,Oracle提供了多种备份ORC的方法,在10g中,用得比较多的就是存放在多个RAW设备上,然后用export/import到RAW磁盘的方式进行备份恢复,到了11g,Oracle把OCR放入了磁盘组,默认就是放VOTEDISK的那个磁盘组,并且建议在其他磁盘组中创建冗余
3.查看表决磁盘
C:\Users\Administrator>crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 7a6a6919ffe84fcfbf1e242c18f0b93e (\\.\ORCLDISKOCRVOTE2) [OCRVOTE]
2. ONLINE 5857035b4da74fb3bf2f9c7d79a8aa2e (\\.\ORCLDISKOCRVOTE1) [OCRVOTE]
3. ONLINE 7dd5966551d84fcbbffd88b32c038537 (\\.\ORCLDISKOCRVOTE0) [OCRVOTE]
找到了 3 个表决磁盘。
六、创建数据库实例(DBCA)
1.预检之前安装的RAC数据库软件是否正常
c:\grid> runcluvfy stage -pre dbcfg -n all -d C:\app\11.2.0\grid -verbose
2.创建数据库实例
c:\grid> dbca