Windows7 下安装 Oracle RAC11gR2
本文介绍了如何在 Window7 环境下安装 Oracle RAC11gR2 的方法以及安装过程中遇到的一些问题的解决方法
资源
- win64_11gR2_grid
- win64_11gR2_database_1of2
- win64_11gR2_database_2of2
以上资源可在官网下载
安装文档以 Rac11gR2OnWindows.pdf 为准,由于文档上面有很多步骤比较省略,且更接近真实环境下的配置方案,因此找了 一篇安装步骤非常接近官方文档的博客1作为参考,同时结合其他博客进行安装
首先给出网络拓扑结构如下,后面遇到问题可以返回来作为参照
正式开始配置
配置步骤
虚拟机准备
- 创建一个 Windows7 虚拟机(使用 VMware® Workstation 15 pro)
- 安装 jdk (版本应在 1.5 及以上)
- 为虚拟机添加一块网卡
- 克隆虚拟机
✴︎节点名称配置
修改主机名、统一用户名密码,分别更改两台服务器的主机名为 cluster1 和 cluster2,需要重启后生效,两台服务器统一使用 administrator 用户,并且保持密码一致。
修改主机名在“资源管理器->右键(计算机)->属性->更改设置(计算机名称、与和工作组)->更改“,保存后重启即可
用户必须使用 administrator 用户,需要在“资源管理器->右键(计算机)->管理->本地用户和组“中开启并设置密码
对所有节点执行上述操作,保证各节点 administrator 账户的密码相同,后续操作同样需要在 administrator 账户下进行,重启后注意切换用户
配置本地安全策略
- 运行
secpol.msc
,配置”安全设置->本地策略->安全选项->用户帐户控制:管理员批准模式中管理员的提升权限提示的行为”为”不提示,直接提升”。 - 确认”安全设置->本地策略->用户权限分配->管理审核和安全日志”中包括 Administrators 组。
- 运行
firewall.cpl
,关闭防火墙。
关闭防火墙需要在 “cmd->firewall.cp->高级设置->防火墙属性” 中确定防火墙状态为关闭
测试 net use
在每个节点执行 net use \\remote node name\C$
提示命令成功完成则正确,否则不正确
远程注册表连接测试
运行 regedit
,选择 “文件->连接网络注册表->输入远程节点nodename” 出现注册表结构树,测试成功.(所有节点执行)
✴︎配置网络
- 在“网络和共享中心->更改适配器设置”中将网络适配器的名称改为”net0”和”net1”
- 按照拓扑图修改ip地址(net0为公网,net1为私网)
示例:
cluster1:
net0 -> Public IP: 192.168.40.230/24
net1 -> Private IP: 10.0.0.95/24
cluster2:
net0 -> Public IP: 192.168.40.232/24
net1 -> Private IP:10.0.0.97/24
- 在“网络和共享中心->更改适配器设置->(按下alt)高级->高级设置”中修改连接顺序为net0->net1->…
- 修改hosts文件:位于C:\Windows\System32\drivers\etc
示例:
#public
192.168.40.230 cluster1
192.168.40.232 cluster2
#private
10.0.0.95 cluster1-priv
10.0.0.97 cluster2-priv
#vip
192.168.40.231 cluster1-vip
192.168.40.233 cluster2-vip
#scan
192.168.40.234 cluster-scan
- 使用ping验证hosts文件修改是否成功
关闭DHCP媒体感知
打开注册表定位到 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
子项,新建一个 DWORD
类型的键值 DisableDHCPMediaSense
,将值修改为 1.
重启后使用命令 netsh interface ipv4 show global
验证是否成功关闭.
关闭SNP Features
1 | C:\>netsh int tcp set global chimney=disabled |
重启后使用命令 C:\>netsh interface ipv4 show global
验证是否成功关闭
停止MSDTC服务
运行 services.msc
,将 Distributed Transaction Coordinator (MSDTC)
服务停止,并设为”手动”.
同步节点时间
1、运行 Regedit
定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
子项,将主键 MaxNegPhaseCorrection
数值修改为0,关闭注册表程序.
执行同步: C:\>W32tm /config /update
(需要连接Internet)
2、或者:在 RAC2 服务器上运行命令:net time \rac1
(查看 RAC1 的当前时间)然后在 RAC2 服务器上运行命令:net time \rac1 /set /y
(设置 RAC2 时间与 RAC1 同 步)(建议使用这种方式)
检查环境变量
计算机 右键->属性->高级系统设置->环境变量,确认变量TMP和TEMP值相同.
配置 DEP 和 UAC
1、分别配置两台服务器上的数据执行保护(DEP),选择‘仅为基本 windows程序和服务启用’,需要重启后才能生效(可配置完下一步后一起重启)
确认两台服务器上的 UAC,若需要配置则在重启后生效(默认不需要配置)
修改虚拟内存
由于服务器的内存为 16G,按照 Oracle 的官方文档,虚拟内存至少为实际内 存的 2 倍,此处选择在本地磁盘一个较大的空白分区(E 盘)中划分了虚拟 内存,取值范围:32G~64G,即初始值:32768MB,最大值:65536MB
✴︎配置共享磁盘
这一步与使用的虚拟机及其版本有关,这里使用的是VMware® Workstation 15 pro,使用其他如VirtualBox请自行搜索配置方式
在虚拟机中添加2块磁盘分别用作OCR_VOTE(表决磁盘)以及DATA(数据磁盘):
虚拟磁盘类型:SCSI(S)
→创建新的虚拟磁盘(第一次创建,之后使用现有的虚拟磁盘)
→磁盘大小(OCR:4G,DATA:16G,FRA:8G(如果有))、立即分配、存储为单个文件
在“虚拟机设置→选中硬盘→高级”中将新添加的虚拟设备节点按照顺序设为SCSI 1:x
在其他节点中添加相同数量的虚拟磁盘,并将设备节点一一对应设置
打开虚拟机文件(xxx.vmx)添加如下行(注意删除已存在的重复行):
1 | disk.locking="FALSE" |
并在克隆的虚拟机vmx文件中额外添加如下行(取决于磁盘数量):
1 | scsi1:0.mode = "independent-persistent" |
配置完成后重新打开“虚拟机设置”中可以看到克隆机显示磁盘为(独立)
开机,在“计算机→(右键)管理→磁盘管理”中可以看到刚刚添加的磁盘,同时会提示需要对磁盘进行初始化(没有弹出提示的话可以手动全部选中,点击右键→初始化磁盘),并选择使用GPT初始化
为每一个节点执行上一步操作
为每一块磁盘选择“右键→新建简单卷→不分配驱动器号或驱动器路径→不要格式化这个卷“
完成后应该显示磁盘为RAW设备
在另一台虚拟机上打开磁盘管理重新扫描磁盘即可
启用Automount (All Nodes)
进行命令行窗口,运行:
1 | C:\> diskpart |
标记ASM磁盘
在cluster1执行以下命令(cd至 grid安装目录\asmtool)
1 | E:\grid\asmtool>asmtoolg.exe |
在弹出的图形化界面中进行以下操作:
选择“Add or change label“
→选中作为表决磁盘的虚拟硬盘
→修改下方标记为“OCR”
→点击下一步
这一步只需在cluster1节点下操作,并且此时只标记OCR磁盘组,用于DATA组的硬盘暂不处理
✴︎安装Grid Infrastructure (cluster1)
执行预检查
D:\11\grid>runcluvfy stage -pre crsinst -n rac1,rac2 -verbose
如果有报错,检查修改前面的设置直到预检查成功
在grid目录下执行setup.exe程序
选择“跳过软件更新”
选择‘为集群安装和配置 集群的网络基础结构’
选择‘高级安装’
选择安装语言
填写集群名称和 SCAN 名称,必须填写 hosts 文件中 SCAN IP 对应的主机名,确认去掉“配置GNS”复选框。
示例:
集群名称:mer-cluster
scan名称:cluster-scan
scan端口:1521
添加其他节点(应当显示cluster1和cluster2)
更改网络接口类型,默认选项如果不对,需要手动更改
此处选择‘自动存储管理(ASM)
选择相应的OCR磁盘组,并输入磁盘组名称OCR
示例:
磁盘组名:OCR
冗余:外部
添加磁盘:候选磁盘(选择标记为OCR的磁盘路径)
- 添加 ASM (ASMSnmp)口令(topsec)
由于设置的密码不符合标准,需要确认来强制使用
此处选择‘不使用 IPMI
选择软件相关目录
示例:
Oracle基目录:C:\app\Administrator
软件位置:C:\app\11.2.0\grid
先决条件检查,如果检查通过,则出现概要,如果提示失败,会有相应的提示,请根据提示 检查之前步骤中的设置是否存在问题
开始安装后,会在”网格基础结构配置“处停顿较长时间,此处也是 grid 安装成功与否的关键所在,如果此处出现问题,则需要 卸 载 grid,并检查之前所有的设置,然后再次尝试安装,直到显示成功为止。
安装成功完成
检查ora.asm资源运行状态
grid 安装完成后,如果安装成功,可在 dos 环境下通过 crs_stat –t –v
命令或者 crsctl status res -t
查看集 群启动了哪 些服务
✴︎安装RDBMS(cluster1)
执行预检查
D:\grid>runcluvfy stage -pre dbinst -n rac1,rac2 -verbose
开始安装
执行database目录下setup.exe程序
确认跳过‘指定电子邮件地址
选择“跳过软件更新”
选择‘仅安装数据库软件
查看节点名称是否正确
选择安装语言
选择安装企业版,并且勾选所有组件
选择安装路径
示例:
Oracle基目录:C:\app\Administrator
软件位置:C:\app\Administrator\product\11.2.0\db_home1
- 先决条件检查
- 安装概要
- 安装到此处时,执行远程安装 RAC2 节点的数据库,此时等待时间会很长, 请耐心等待
- ✴︎安装完成后需要根据提示在cluster2节点上执行操作(注意别随手关闭提示)
C:\app\Administrator\product\11.2.0\dbhome_1\BIN\selecthome.bat
执行过程中出现的计数器尚未安装可以忽略
使用ASMCA创建ASM磁盘组
- 在命令行下执行
asmca
- 在磁盘组选项卡中点击新建
- 单击在磁盘上加载标记
- 参考标记OCR的方式标记DATA磁盘
- 标记完成后填写磁盘组为DATA,冗余为外部,选择标记的磁盘,点击确定
- 创建磁盘组
- 按照相同的方法标记和创建 FRA 磁盘组(有需要的话)
- 创建完成后退出.
✴︎创建数据库
执行预检查
D:\grid>runcluvfy stage -pre dbcfg -n all -d D:\app\Administrator\product\11.2.0\db1
创建数据库
D:\>dbca
- 选择RAC数据库
- 选择创建数据库
- 一般用途或事务处理
- 配置数据库标示
示例:
配置类型:管理员管理的
全局数据库名:mer
SID前缀:mer
单击全选
- 配置管理选项
示例:
勾选配置Enterprise Manager
选择配置Database Control进行本地管理
不勾选预警通知与每日备份
- 对所有账户使用同一管理口令
- 使用Oracle-Managed Files,选择数据库区为刚刚标记的DATA磁盘组
- 输入之前设置的ASM口令
- 取消勾选快速恢复区
- 配置字符集→从字符集列表中选择→”ZHS16GBK - GBK16位简体中文“
- 数据库存储
- 创建数据库
- 数据库概要
- 等待创建完成
数据库创建完成中可能弹出提示如下:
此时按照提示在相应节点上(此处为cluster2)执行命令:
首先确定dbconsole状态:
C:\>emctl status dbconsole
若显示:Environment variable ORACLE_UNQNAME not defined. Please define it.
则设置环境变量ORACLE_UNQNAME:
C:\>set ORACLE_UNQNAME=mer
若提示其他(如sid)未定义,则也设置相应的值
之后执行提示的第二步命令:
C:\…\db_home\bin\emctl.bat start dbconsole
执行完毕后回到cluster1节点点击确定提示集群数据库创建完成,并返回管理url
点击口令管理,解锁scott账户,设定密码
至此集群安装完成,在web端输入db control url即可访问管理登录界面,使用
用户名:SYSTEM
密码:topsec(之前设置的统一管理密码)
即可登录到集群管理界面
可能遇到的问题及解决方法
错误号5,拒绝访问:很可能你使用的用户不是管理员权限的,先提升权限;
错误号51,Windows无法找到网络路径:网络有问题;
错误号53,找不到网络路径:ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
错误号67,找不到网络名:你的lanmanworkstation服务未启动或者目标删除了ipc$;
错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个ipc$,请删除再连;
错误号1326,未知的用户名或错误密码:原因很明显了;
错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动;
错误号2242,此用户的密码已经过期:目标有帐号策略,强制定期要求更改密码;
- 确定当前登录用户为administrator
- 确定已为administrator用户设定密码
- 执行
net share
确定包含C$
- 在”Windows+R”中执行
secpol.msc
,确定“安全设置→本地策略→安全选项”中“网络访问:本地账户的共享和安全模型”设置为“经典:对本地用户…“
在多数的博客中,设置disk.EnableUUID
与scsi1.virtualDev
的值为如下
1 | disk.EnableUUID = "TRUE" |
但在少数博客中将这个值设置(或保持原来的值)为
1 | disk.EnableUUID = "FALSE" |
经测试这两种值似乎不影响共享磁盘的效果,但这里仍旧推荐使用第一种的配置值
检查是否所有节点都显示磁盘以联机,尝试重新配置
- 预检查成功,但安装时提示对于节点磁盘空间的先决检查失败
可以忽略该问题,对后续安装过程不造成影响
- 安装中途cluster2死机或重启导致安装中断
暂时不要关闭提示窗口,重启cluster2并切换至administrator账户,等待至集群服务启动后(各vip、scan-ip可以ping通)返回cluster1点击确定可以继续安装
- 所选安装与指定 Oracle 主目录中已安装的软件冲突 的问题
正确的做法是卸载RDBMS,清除相关文件、注册表以及服务并重新安装,但是没有找到相关的文档,删除所有Oracle项又会对以安装的grid项造成影响,因此此处选择修改数据库软件安装路径,将dbhome_1
修改为dbhome_2
,修改后可能会出现“无法启动/关闭/找到指定路径 OracleMTSRecoveryService”,解决方法同下
- OracleMTSRecoveryService 无法启动/关闭/找到指定路径
首先打开Win+R,“(输入)services.msc→(找到)OracleMTSRecoveryService “,若该服务不存在则不适用于下述解决方法,初次安装时提示无法启动不适用
确定该服务存在并确定其启动类型为自动后,打开Win+R,“(输入)regedit→(找到)HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→services→OracleMTSRecoveryService”,修改ImagePath的值为新的安装路径(dbhome_2),并对以下位置进行同样的修改:
HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→services→OracleMTSRecoveryService
HKEY_LOCAL_MACHINE→SYSTEM→ControlSet001→services→OracleMTSRecoveryService
HKEY_LOCAL_MACHINE→SYSTEM→ControlSet002→services→OracleMTSRecoveryService
其他节点的对应位置
修改完成后点击确定关闭提示窗口继续安装
若是初次安装时提示无法启动OracleMTSRecoveryService服务,则在cluster2节点打开Win+R,“(输入)services.msc→(找到)OracleRemExecService “,若ImagePath中的路径在Temp后有两个\,则删除后刷新注册表(重启explorer),返回cluster1节点点击重试即可
- ‘dbca’ 不是内部或外部命令,也不是可运行的程序或批处理文件:
重启cmd,若仍找不到命令请确定RDBMS安装正确
- 配置em失败,提示如下:
该问题未知明确的解决流程,首先尝试重新运行dbca,若再次失败则按照提示运行使用emca脚本,命令为
emca -config dbcontrol db -repos create
按照提示输入
确定后可能提示实例不存在或其他错误,返回重新执行dbca
,若依旧失败需自行寻找解决办法
已明确的:
不需要配置监听程序,即使查看监听程序不存在
此时emca执行失败是正常的,create或是recreate
大概率在emca失败后重新执行dbca可以解决该问题(可能的原因,emca执行过程中创建了监听器等dbca所需的环境)
若确定用户名/密码正确,尝试重启cluster
重启后执行crsctl check crs
,确定连接正常后再行尝试登录
若依旧失败尝试使用以下命令(administrator账户下)
1 | (1)以sysdba身份登录,不需要提供用户名和密码。 |
更多
任何情况下提示如下问题时:
CRS-4639:无法连接 Oracle 高可用性服务,ohasd.bin 未运行或 ohasd.bin 虽在运行但无 init.ohasd 或其他进程
CRS-4530:联系集群同步服务守护进程时出现通信故障,ocssd.bin 未运行
CRS-4535:无法与集群就绪服务通信,crsd.bin 未运行
请检查crsctl check crs
是否返回对应服务正常,若刚重启节点,请等待一段时间,否则请重启节点再试
安装完成后的检查项:
1 | crs_stat -t -v |
参考
- RAC11gR2OnWindows.pdf
- Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次)
- Oracle11gR2 RAC for Windows安装上篇
- 在安装oracle 11g时,出现执行先决条件失败的情况如下
- oracle下system用户解锁和改密码
- EM Express不起作用的故障排除 (Doc ID 1604062.1)
- 监听程序未启动或数据库服务未注册到该监听程序解决方法
- net use访问远程电脑
- ASM磁盘、目录的管理
- 安装oracle 11g时出现启动服务出现错误,找不到OracleMTSRecoveryService
- 以sysdba身份登录oracle报ORA-1031权限不足错误之完美分析
- Oracle中sqlplus登录报错SP2-0667和SP2-0750探究