单机安装Oracle RAC (zt)
单机安装Oracle RAC (zt)
本文的试验环境:
硬件 hp 服务器, 1G 内存 ,120G 硬盘
OS : Windows2000 advance server
Vmware: 800M 内存 ,10G 硬盘 , red hat advance server 3.0
Oracle: Oracle 9i Realease 2 9.2.0.4
安装 wmware 上的 rhel 3.0 这里不详细的说明
把下载了的 oracle 9204 的三个文件 ftp 到 redhat 上面去。
按照 Oracle 的安装指南,设置好 oracle 的环境,目录, oracle 用户,环境变量等等。
注意,我选的是比较高版本的 linux 和 oracle ,否则又是要打这个补丁,那个补丁,很麻烦。
但是,在安装 oracle 之前,需要以 root 登录,打上 3006854 号补丁。
文件名称是 p3006854_9204_linux.zip 。这个是我安装过程中唯一打过的补丁。
su – root
unzip p3006854_9204_linux.zip
cd 3006854
./rhel3_pre_install.sh
如果安装报告以下错误:
-bash: ./rhel3_pre_install.sh Permission denied
修改下权限
chmod +x *.sh
下面开始进行 RAC 的安装
一. 安装OCM( Oracle Cluster Manager)
首先需要生成一个 Quorum Disk File ,因为我们是单机,所以需要用命令来生成一个
dd if=/dev/zero of=/u02/rac/Racfile bs=1024 count=1024
这个文件至少需要 4+(4*number_of_node)KB, 我们给它 1M ,足够了。
把 oracle 安装的原文件解压缩,这个时候,就可以运行安装 ocm 了
./runInstaller
在产品选择画面,选择 Oracle Cluster Manager,
出现 Public Node Information 的时候,填好本机的 hostname ,也就是 hostname 命令返回的值。因为是单机,只要填写第一个,同样,在 Private Node Information 中,也填写 hostname 。
在出现 Quorum Disk Information 选项的时候,填写刚才生成的文件 /u02/rac/RacFile
二配置RAC,并且启动****
我们需要启动 oracm 服务
首先我们要启动 hangcheck_timer
加载 hangcheck-timer
insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
确认模块已经加载:
lsmod | grep hang
为了在系统启动自动加载,我们在 /etc/rc.local 文件加入
/sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
下面准备启动 ocm 的脚本
在 ORACLE_HOME 目录下面的 oracm 目录下面有 admin 目录
下面有个文件 cmcfg.ora.tmp
cp cmcfg.ora.tmp cmcfg.ora
并且修改成
HeartBeat=15000
ClusterName=Oracle Cluster Manager, version 9i
PollInterval=1000
MissCount=210
PrivateNodeNames=hp-linux
PublicNodeNames=hp-linux
ServicePort=9888
CmDiskFile=/u02/rac/RacFile
KernelModuleName=hangcheck-timer
下面要以 root 来执行脚本
su
cd $ORACLE_HOME/oracm/bin
./ocmstart.sh
现在就已经完成 ocm 的启动了
三**.安装oracle 软件**
这个没有什么好说的 , 把 oracle 安装好 , 我选择了不创建数据库 .
四准备创建数据库****
在创建数据库之前 , 要启动公共服务进程 .
以 oracle 用户身份运行
gsdctl start
我选择了 dbca 来创建数据库 , 它能找到节点 . 如果找不到节点 , 说明 ocm 安装失败 , 或者启动失败
五配置监听和服务名****
我是使用 netca 创建了两个监听 , 一个是 rac1, 一个是 rac2
listerer.ora 的内容
# LISTENER.ORA.HP-LINUX Network Configuration File: /opt/oracle/product/9.2.0/network/admin/listener.ora.hp-linux
# Generated by Oracle configuration tools.
SID_LIST_RAC2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0)
(PROGRAM = extproc)
)
)
SID_LIST_RAC1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
)
)
)
RAC2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1523))
)
)
)
RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1522))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(ORACLE_HOME = /opt/oracle/product/9.2.0)
(SID_NAME = rac1)
)
)
tnsnames.ora 的内容
# TNSNAMES.ORA Network Configuration File: /opt/oracle/product/9.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENERS_RAC =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
)
LISTENER_RAC1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac1)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
)
)
RAC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac)
)
)
RAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hp-linux)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = rac)
(INSTANCE_NAME = rac2)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
六**,启动数据库**
安装完成后 , 应该就可以启动第一个实例了 .
我的初试化参数文件的内容是这样的
*.aq_tm_processes=1
*.background_dump_dest='/opt/oracle/admin/rac/bdump'
*.cluster_database_instances=2
*.cluster_database=true
*.compatible='9.2.0.0.0'
*.REMOTE_LOGIN_PASSWORDFILE = NONE
*.control_files='/opt/oracle/oradata/rac/control01.ctl','/opt/oracle/oradata/rac/control02.ctl','/opt/oracle/oradata/rac/control03.ctl'
*.core_dump_dest='/opt/oracle/admin/rac/cdump'
*.db_block_size=8192
*.db_cache_size=33554432
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='rac'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=racXDB)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
rac1.instance_name='rac1'
rac2.instance_name='rac2'
rac1.instance_number=1
rac2.instance_number=2