在 RHEL 4 x86-64 安装Oracle RAC 9i with OCFS

RAC 结点数,2个结点
oracle 版本号 10.2.0.1 for x86-64
pathc 10.2.0.4
os RedHat AS4 x84-64

网卡配置如下:
ocfs9i1 eth0 192.168.19.171/255.255.255.0 #Public
eth1 10.0.0.171/255.255.255.0 #Private

ocfs9i2 eth0 192.168.19.172/255.255.255.0 #Public
eth1 10.0.0.172/255.255.255.0 #Private

硬盘配制如下:
/dev/sda 本地磁盘
/dev/sdb 共享磁盘


软件包
amd64_db_9204_Disk1.cpio.gz #oracle 软件包
amd64_db_9204_Disk2.cpio.gz
amd64_db_9204_Disk3.cpio.gz

p3006854_9204_LINUX.zip 安装前就要打好的补丁,主要解决runInstaller脚本不能运行问题,x86_64版可以不需要安装此包
p2617419_210_GENERIC.zip 安装后要打的(这只是一个伴随补丁,只要设置它的环境变量)
p3238244_9204_LINUX.zip 安装后要打的9204的补丁,修复agent错误的补丁.

compat-libcwait-2.1-1.i386.rpm LINUX AS 4 的补丁在安装前就要打
compat-libcwait-2.1-2.x86_64.rpm LINUX AS 4 的补丁在安装前就要打 x86_64版
compat-oracle-rhel4-1.0-5.i386.rpm LINUX AS 4 的补丁在安装前就要打

rpm 包下载地址http://oss.oracle.com/projects/compat-oracle/files/RedHat/
oracle 软件包下载地址http://edelivery.oracle.com 注册信息就可以下载,学习是免费的。
补丁包下载需要到网上找找了,但这里没有用到过补丁包。

一、操作系统安装注意事项
1.RedHat AS4 操作系统选项

防火墙基本配置:
⊙ 无防火墙
⊙ 是否启用 SELinux:已禁用
安装方式的选项:
⊙ 定制要安装的软件包(C)
桌面选项:
(√) X窗口系统 (选取默认)
(√) GNOME桌面环境 (选取默认)
应用程序选项:
( ) 工程和科学 (选取默认)
(√ ) 图形化互联网 (选取默认)
服务器选项:
(√) 服务器配置工具 (选取全部)
(√) Windows文件服务器 (选取全部)
(√) 遗留网络服务器 (选取全部)
开发选项:
(√) 开发工具 (选择全部)
(√) X 软件开发(选取默认)
(√) 兼容性体系开发支持 (选择全部)
(√) 原有的软件开发 (细节中选取 rsh-server)
系统选项:
(√) 管理工具 (选取默认)
(√) 兼容性体系支持 (选取默认)
杂项选项:
全部不要选择;
请大家一要安装好以上所列出的软件包,否则安装Oracle系统时,会出现一些不必须要的错误信息!


2.同时检查以下包是否被安装

rpm -q kernel
rpm -q glibc-devel
rpm -q glibc
rpm -q glibc-common
rpm -q gcc
rpm -q gcc-c++
rpm -q compat-libgcc-296
rpm -q compat-gcc-32
rpm -q compat-gcc-32-c++
rpm -q compat-libstdc++-33
rpm -q libstdc++-devel
rpm -q libstdc++
rpm -q make
rpm -q gtk+
rpm -q gnome-libs
rpm -q tcp_wrappers
rpm -q ORBit
rpm -q libpng10
rpm -q libungif
rpm -q imlib
rpm -q setarch
rpm -q libaio
rpm -q audiofile
rpm -q esound
rpm -q sysstat
rpm -q xorg-x11-deprecated-libs
rpm -q xorg-x11-deprecated-libs-devel
rpm -q openmotif21
rpm -q libgcc
rpm -q compat-libcwait
rpm -q compat-oracle-rhel4
rpm -q rsh-server

查询版本号可以用以下语句
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH}) '
kernel
glibc-devel
glibc
glibc-common
gcc
gcc-c++
compat-libgcc-296
compat-gcc-32
compat-gcc-32-c++
compat-libstdc++-33
libstdc++-devel
libstdc++
make
gtk+
gnome-libs
tcp_wrappers
ORBit
libpng10
libungif
imlib
setarch
libaio
audiofile
esound
sysstat
xorg-x11-deprecated-libs
xorg-x11-deprecated-libs-devel
openmotif21
libgcc
compat-libcwait
compat-oracle-rhel4
rsh-server


注意,libaio要确认是x86_64位版本软件包,如果是装了32位版本,用
rpm -q libaio也能查询出来,如果已经装了libaio,如果保险启见,我们先用下面命令删除
rpm -e libaio
然后在挂载第4张光盘,转到/media/cdrom/RedHat/RPMS目录下,用以下命令安装64位的libaio包
rpm -i libaio-devel-0.3.105-2.x86_64.rpm

本人就碰到装了32位本后,用rpm -q libaio查询包都在,但最后用以上方法把包装上去的,如果包没装,在创建数据库的时候会报
ORA-12547:TNS:lost contact 错误

兼容性体系开发支持 也要全部选择,否则会在装clusterware软件时候报错误,本人就没装报过运行vipca 总是报PRKH-1010 Unable to communicate with CRS services错误

以下这些需要64位安装包
libaio-0.3.105-2.x86_64.rpm
sysstat-5.0.5-11.rhel4.x86_64.rpm
compat-gcc-32-3.2.3-47.3.x86_64.rpm
compat-gcc-32-c++-3.2.3-47.3.x86_64.rpm
compat-libstdc++-33-3.2.3-47.3.x86_64.rpm
compat-libcwait-2.1-2.x86_64.rpm

下面这些包32位的也需要
compat-oracle-rhel4-1.0-5.i386.rpm
compat-libgcc-296-2.96-132.7.2.i386.rpm
compat-libstdc++-296-2.96-132.7.2.i386.rpm
libaio-0.3.105-2.i386.rpm
openmotif21-2.1.30-11.RHEL4.6.i386.rpm
libgcc-3.4.6-3.i386.rpm
xorg-x11-deprecated-libs-6.8.2-1.EL.13.36.i386.rpm
compat-libcwait-2.1-1.i386.rpm

其他包不用看包是I386还是X86_64,只要有就可以了

以下是包找不到所在光盘
sysstat cd4
libaio cd4
xorg-x11-deprecated-libs-devel cd4
rsh-server cd4

3.对GCC编译器设置
如果不对GCC做任何改动,在安装到88%和98%时候都会报错

Error in invoking target install_isqlplus of makefile /opt/oracle/product/9.2/sqlplus/lib/ins_sqlplus.mk和

Error in invoking target install of makefile /opt/oracle/product/9.2/rdbms/lib/ins_rdbms.mk

解决这些错误在网上有很多方法,但是基本上都是错误的。例如:

gcc降级
#su – root
#mv /usr/bin/gcc /usr/bin/gcc34
#ln –s /usr/bin/gcc32 /usr/bin/gcc
#mv /usr/bin/g++ /usr/bin/g++34
#ln –s /usr/bin/g++32 /usr/bin/g++ 只可以解决第一个错误,第二个是解决不了的,还有一个自己写脚本解决的,试过了,没成功。我是采用下面的方法解决的

mv /usr/bin/gcc /usr/bin/gcc.sciprt
mv /usr/bin/g++ /usr/bin/g++.sciprt
ln -s /usr/bin/x86_64-redhat-linux-gcc32 /usr/bin/gcc
ln -s /usr/bin/x86_64-redhat-linux-g++32 /usr/bin/g++

二、网络配置

oracle RAC需要两块网卡,每个结点需要3个IP地址,一个公用,一个虚拟,一个私有

其中Public和虚拟绑定在同一网卡上,需要规划到网络当中,于企业的现有网络能连通
私有的网络是oracle专用网络,最好能提供一个专用交换机和专用网端,可以不和现有网络连通,只要保证所连接几台结点能连通就行了
同时oracle Clusterware规定所有结点网络配制要一制,也就是eth0为公用和虚拟,eth1为私有,所有结点都需要这样配置

下面是我每个结点配置如下
ocfs9i1 eth0 192.168.19.171/255.255.255.0 #Public
eth1 10.0.0.171/255.255.255.0 #Private

ocfs9i2 eth0 192.168.19.172/255.255.255.0 #Public
eth1 10.0.0.172/255.255.255.0 #Private


配置/etc/hosts文件,文件内容如下

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost

#Public
192.168.19.171 ocfs9i1
192.168.19.172 ocfs9i2

#Private
10.0.0.171 ocfs9i1-priv
10.0.0.172 ocfs9i2-priv


其中192.168.19.176...178两个IP是虚拟IP,等下安装Clusterware时候会自动绑定到网卡eth0上面的。
而127.0.0.1 localhost.localdomain localhost 这行信息也不能删除,否则在以后错误。
有些 Linux 发行版本将主机名与回送地址 (127.0.0.1) 相关联。 如果出现这种情况,则从回送地址中删除主机名。


三、建立ntp时间同步
选用一台节点充当ntpd服务,这里我们选用racocfs1做为ntpd服务

在racocfs1节点上启动ntpd服务
chkconfig ntpd on
service ntpd restart

然后在其他两个节点自动同步时间,在/etc/rc.local加入以下内容

while [ 1 ]; do ntpdate ocfs9i1 1>/dev/null 2>&1; sleep 2; done &

同时确保这个节点ntpd要关闭


四、操作系统内核设置等参数

1、配置系统内核参数,以root用户登录,修改在/etc/sysctl.conf文件,在该文件中添加以下参数:
#Install oracle setting
kernel.shmall = 2097152
kernel.shmmax = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144

完成后,运行以下命令激活更改:
/sbin/sysctl -p


2、Setting Shell Limits for the oracle User

1.在文件 /etc/security/limits.conf 加以下参数:
#Install oracle setting
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

2.如果以下内容在文件 /etc/pam.d/login 中不存在,请加以下内容
#Install oracle setting
session required pam_limits.so

Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows
SELINUX=disabled


3.设置oracle 用户打开文件限制
在以下文件 /etc/profile 加入以下内容:
#Install oracle setting
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi


4.配置hangcheck-timer, 将下面命令添加到/etc/rc.d/rc.local

modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

然后激活这一命令, 加载hangcheck-timer模块

# modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

检查是否加载命令
# lsmod | grep hangcheck_timer

5、创建安装数据库时所需要使用的用户组oinstall,dba及Oracle用户,并将oinstall,dba组定义成oracle用户的主次组。命令参考如下:
这里确保所有节点oracle用户的id和onstall,dba等gid要相同
# groupadd -g 999 oinstall
# groupadd -g 998 dba
# useradd -g oinstall -G dba -u 999 oracle (设定oracle用户为oinstall、dba用户组的成员)
# passwd oracle (设定oracle用户的密码)


6.为了方面管理,我们同时需要设置root用户的环境变量

vi .bash_profile (执行vi命令来修改.bash_profile) ,在文件最后面加入以下内容

export ORACLE_HOME=/home/oracle/app/oracle/product/ora92
export PATH=$ORACLE_HOME/bin:$PATH

7、配置oracle用户环境,以oracle用户登录,修改oracle用户下的 .bash_profile 文件。增加以下参数:
vi .bash_profile (执行vi命令来修改.bash_profile)
# Get the aliases and functions
  
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
  
# User specific environment and startup programs
  
PATH=$PATH:$HOME/bin
  
export PATH
unset USERNAME

# 以下是我们所需配置的内容

#Install oracle setting
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/ora92
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
export ORACLE_SID=oc9i1
export LD_ASSUME_KERNEL=2.4.1
stty erase ^H

export LD_ASSUME_KERNEL=2.4.1 这个必须在RHAS3.0和RHAS4.0下设置,否这在安装Oracle 9.2 Cluster Manager
的时候会停止在98%不动,还有在安装数据库软件到17%时候会有错误提示,可以用2。4。21或正确的内核版本(一般用2.4.1就可以)

注意,在ocfs9i2把ORACLE_SID改成export ORACLE_SID=oc9i1

五、在所有结点配置互信任rsh

启动rsh和rlogin服务
chkconfig rsh on
chkconfig rlogin on
service xinetd restart

建立文件/etc/hosts.equiv, 内容如下:
ocfs9i1 oracle
ocfs9i2 oracle
ocfs9i1-priv oracle
ocfs9i2-priv oracle

设置/etc/hostss.equiv属主为root, 模式为600, 即只允许root用户读写该文件,执行如下命令.
chmod 600 /etc/hosts.equiv


切换oracle查询连通信

在ocfs9i1机器上执行如下命令
rsh ocfs9i2 ls -l /etc/hosts.equiv
rsh ocfs9i2-priv ls -l /etc/hosts.equiv

在ocfs9i2机器上执行如下命令
rsh ocfs9i1 ls -l /etc/hosts.equiv
rsh ocfs9i1-priv ls -l /etc/hosts.equiv

能显示如下信息就代表正确
$ rsh ocfs9i2 ls -l /etc/hosts.equiv
connect to address 192.168.19.172: Connection refused
Trying krb4 rsh...
connect to address 192.168.19.172: Connection refused
trying normal rsh (/usr/bin/rsh)
-rw-r--r-- 1 root root 70 2月 26 09:53 /etc/hosts.equiv


六、配置 Oracle 集群文件系统 (OCFS2)

以下所有以root用户操作

1.安装Oracle Cluster File System (OCFS)

OCFS2的发行版包括了2个安装包,一个称为核心模块,另一个叫工具包。
核心模块可以从以下链接下载:
http://oss.oracle.com/projects/ocfs2/files/
工具包可以从以下链接下载;
http://oss.oracle.com/projects/ocfs2-tools/files/
首先要下载相应的软件包.对于核心模块,下载时要考虑它的发行号,适用的平台,操作系统内核版本以及内核的类型(比如SMP,HUGEMEM,PSMP等),对于工具包,只要符合发行版本和平台就可以了。
我的系统内核是2.6.9-42.ELsmp, 可以用uname -a命令查询,我下载了以下几个文件
ocfs2-2.6.9-42.EL-1.2.9-1.el4.x86_64.rpm 内核为2.6.9-42.EL
ocfs2-2.6.9-42.ELsmp-1.2.9-1.el4.x86_64.rpm 内核为2.6.9-42.ELsmp
ocfs2-2.6.9-42.ELlargesmp-1.2.9-1.el4.x86_64.rpm 内核为2.6.9-42.ELlargesmp
ocfs2-tools-1.2.7-1.el4.x86_64.rpm ocfs的tools,先安装这个,在装上面软件包
ocfs2console-1.2.7-1.el4.x86_64.rpm ocfs的tools的控制台图形界面工具
ocfs2-tools-devel-1.2.7-1.el4.x86_64.rpm ocfs的tools的开发库

注意安装顺序,先安装ocfs2-tools-1.2.7,在安装其他包,
包ocfs2-2.6.9-42只要安装其中一个就行了,可以用uname -r命令查询
# uname -r
2.6.9-42.ELsmp


如的我安装包顺序如下

rpm -i ocfs2-tools-1.2.7-1.el4.x86_64.rpm
rpm -i ocfs2-2.6.9-42.ELsmp-1.2.9-1.el4.x86_64.rpm
rpm -i ocfs2console-1.2.7-1.el4.x86_64.rpm
rpm -i ocfs2-tools-devel-1.2.7-1.el4.x86_64.rpm

2.设置ocfs为自动启

/etc/init.d/o2cb enable
如果碰到 Checking O2CB Cluster configuration : Failed . 等第3步创建 OCFS2 配置文件在重新启动几个节点。


3.创建 OCFS2 配置文件
# ocfs2console

OCFS2 控制台:选择 Cluster,然后选择 Configure Nodes。
“集群堆栈已经启动”:单击 Close。
节点配置:单击 Add。
新增节点:添加以下节点,然后单击 Apply。
名称:ocfs9i1
IP 地址: 10.0.0.171 #此处IP用Private IP
IP 端口: 7777
名称:ocfs9i2
IP 地址: 10.0.0.172
IP 端口: 7777


验证生成的配置文件。
[root@ocfs9i1 ocfs2]# cat cluster.conf
node:
ip_port = 7777
ip_address = 10.0.0.171
number = 0
name = ocfs9i1
cluster = ocfs2

node:
ip_port = 7777
ip_address = 10.0.0.172
number = 1
name = ocfs9i2
cluster = ocfs2

cluster:
node_count = 2
name = ocfs2

把文件/etc/ocfs2/cluster.conf 复制到每个结点上


4.错误信息参考

用ocfs2console配置报o2cb_ctl: Unable to access cluster service while creating node
Configure Nodes --&gt Add --&gt 输入NODE名和IP --&gt OK --&gt Apply
出现如下错误:
o2cb_ctl: Unable to access cluster service while creating node
Could not add node node1
解决办法:
将/etc/ocfs2/下的不正确的cluster.conf文件删掉,重新用ocfs2console 配置


5.格式化文件系统


选择一个节点首先做好/dev/sdb磁盘的分区,我这里用fdisk工具来分区

分区号信息如下:
# fdisk /dev/sdb -l

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 83 Linux

分区好以后,另外几台需要重起后才能认识分区后的结果。

在格式化和挂载文件系统之前,应验证 O2CB 在所个节点上均联机;O2CB 心跳当前没有活动,因为文件系统未挂载。

# /etc/init.d/o2cb status
Module "configfs": Loaded
Filesystem "configfs": Mounted
Module "ocfs2_nodemanager": Loaded
Module "ocfs2_dlm": Loaded
Module "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Online
Checking O2CB heartbeat: Not active

您只需在一个节点上格式化文件系统。在 racocfs1 上,以 root 用户身份执行
# ocfs2console

OCFS2 控制台:选择 Tasks、Format。
格式:
可用设备:/dev/sdb1
卷标:ocfs2
集群大小:Auto
节点插槽数量: 4
块大小:Auto
OCFS2 控制台:按 CTRL-Q 退出。

6.挂载文件系统

用root用户在每个结点创建/u01目录
#mkdir /u01

要在引导时挂载文件系统,在所有节点的 /etc/fstab 中添加以下行。

/dev/sdb1 /u01 ocfs2 _netdev,datavolume,nointr 0 0

最后所有节点执行mount /u01命令

在ocfs9i1节点上执行
chown -R oracle:oinstall /u01
现在,所有节点都已经配置好,接下来安装clusterware软件了。


七、安装Cluster Manager 软件

安装Cluster Manager 软件以oracle用户登录


1.获取解压软件包
创建如下目录
mkdir /u01/orasoft
mkdir /u01/shared_config

touch /u01/shared_config/share_configuration
touch /u01/shared_config/quorum_disk

然后用ftp把软件包
amd64_db_9204_Disk1.cpio.gz
amd64_db_9204_Disk2.cpio.gz
amd64_db_9204_Disk3.cpio.gz
转到/u01/orasoft目录下


用以下命令解压两个文件
gunzip amd64_db_9204_Disk1.cpio.gz
cpio -idmv < amd64_db_9204_Disk1.cpio

gunzip amd64_db_9204_Disk2.cpio.gz
cpio -idmv < amd64_db_9204_Disk2.cpio

gunzip amd64_db_9204_Disk3.cpio.gz
cpio -idmv < amd64_db_9204_Disk3.cpio


2.安装Cluster Manager 软件
在节点1ocfs9i1上安装
运行之前先设置LANG环境变量,目前9i安装对中文支持不是很好。
export LANG=en_US.UTF-8

cd /u01/orasoft/Disk1
./runInstaller
欢迎页面:单击 Next。
输入 inventory 目录的完整路径:/home/oracle/app/oracle/oraInventory。
组名:oinstall。

点下一步,提示需要用root用户执行/tmp/orainstRoot.sh脚本。
在新打开一个终端,切换到root用户下执行/tmp/orainstRoot.sh脚本,然后在点Continue按钮。

指定 Home 详细内容:
名称:Ora9iHome
/home/oracle/app/oracle/product/ora92

在选择产品时候选择Oracle Cluster Manager 9.2.0.4.0产品
在右边Product Languages按钮选择上Simplified Chinese

在输入公有节点信息时候,输入如下信息:

Public Node 1:ocfs9i1
Public Node 2:ocfs9i2

在输入Private节点信息时候,输入如下信息:

Private Node1:ocfs9i1-priv
Private Node1:ocfs9i2-priv

在Quorum Disk Information时候输入如下信息:
Quorum Disk Information:/u01/shared_config/quorum_disk

然后点下一步查看汇总信息,点一下步开始安装。

Cluster Manager 软件安装完后,先退出安装程序,按下面设置在安装数据库软件。


3.配置运行oracm
对每个节点的文件$ORACLE_HOME/oracm/admin/cmcfg.ora进行编辑

对MissCount=20改成MissCount=120
在文件最后面加入
KernelModuleName=hangcheck-timer

修改好后的内容如下:
$ cat cmcfg.ora
ClusterName=Oracle Cluster Manager, version 9i
MissCount=120
PrivateNodeNames=ocfs9i1-priv ocfs9i2-priv
PublicNodeNames=ocfs9i1 ocfs9i2
ServicePort=9998
CmDiskFile=/u01/shared_config/quorum_disk
HostName=ocfs9i1-priv
KernelModuleName=hangcheck-timer


对每个节点进入$ORACLE_HOME/oracm/bin目录,并切换为root权限执行:
$ su root
[root@ocfs9i1 bin]# ./ocmstart.sh
oracm &1 >/home/oracle/app/oracle/product/ora92/oracm/log/cm.out &
启动oracm之后,可以通过ps -ef|grep cm来检查启动是否成功。注意,多检查几次,很可能oracm启动后几秒中内发现错误并退出。如果发现oracm退出,可以检查$ORACLE_HOME/oracm/log/cm.log文件。里面会有详细的日志。
[root@ocfs9i1 bin]# ps -ef | grep cm
root 3108 12 0 13:00 ? 00:00:00 [ocfs2cmt-0]
root 4818 1 0 13:02 pts/1 00:00:00 oracm
root 4820 4818 0 13:02 pts/1 00:00:00 oracm
root 4821 4820 0 13:02 pts/1 00:00:00 oracm
root 4822 4820 0 13:02 pts/1 00:00:00 oracm
root 4823 4820 0 13:02 pts/1 00:00:00 oracm
root 4824 4820 0 13:02 pts/1 00:00:00 oracm
root 4825 4820 0 13:02 pts/1 00:00:00 oracm
root 4826 4820 0 13:02 pts/1 00:00:00 oracm
root 4827 4820 0 13:02 pts/1 00:00:00 oracm
root 4830 4820 0 13:02 pts/1 00:00:00 oracm
root 4832 4762 0 13:02 pts/1 00:00:00 grep cm
注意,是su root而不是su – root。此处需要oracle的环境变量参数等
这里参数包括$ORACLE_HOME和$LD_ASSUME_KERNEL环境变量,如果直接用root去登录,会报启动失败问题在$ORACLE_HOME/oracm/log/cm.log文件中记有如下日志错误:

InitializeCM: ModuleName = hangcheck-timer {Tue Mar 2 12:56:10 2010 }

>ERROR: InitializeCM: query_module() failed, tid = main:16384 file = cmstartup.c, line = 341 {Tue Mar 2 12:56:10 2010 }

ClusterListener: Spawned with tid 0xc004 pid: 4775 {Tue Mar 2 12:56:10 2010 }


八、安装database软件


1.安装软件

重新运行以下安装程序

export LANG=en_US.UTF-8
cd /u01/orasoft/Disk1
./runInstaller

欢迎页面:单击 Next。
在Cluster Node Selection时候,把所有节点都选择上.
在选择的时候,用Ctrl键按上。如果没有出现节点选择的画面, 请检查oracm
是否启动. 单击 Next。

指定 Home 详细内容:
名称:Ora9iHome
/home/oracle/app/oracle/product/ora92
单击 Next。

在选择产品时候选择Oracle9i Database 9.2.0.4.0产品
在右边Product Languages按钮选择上Simplified Chinese
单击 Next。

选择安装类型:
选择 Enterprise Edition。
单击 Next。

在Database Configuration的时候,选择 Software Only
单击 Next。

Shared Configuration File Name:/u01/shared_config/share_configuration
单击 Next。

查看汇总信息,确认是否选择自己安装类型,如是否选择了Simplified Chinese等。
确认后单击 Install。
然后等待安装过程。

安装到最后会弹出一个对话框 Setup Privileges对话框
提示在每个结点用root用户运行/home/oracle/app/oracle/product/ora92/root.sh这个脚本,注意先后顺序。

运行好后在点OK按钮关闭

2.安装远成后进行配置,下面操作用oracle身份运行

安装完成后需要初始化share_configuration,用如下命令
[oracle@ocfs9i1 oracle]$ srvconfig -init
[oracle@ocfs9i2 oracle]$ srvconfig -init

以上这步不操作,用dbca创建数据库时候会报"DBCA时碰到的PRKR-1064 error in a RAC environment错误"

启动gsd服务,份运行gsdctl start启动gsd

[oracle@ocfs9i1 ~]$ gsdctl start
Successfully started GSD on local node

oracle@ocfs9i2 ~]$ gsdctl start
Successfully started GSD on local node

两个节点都启动成功


九、配置Listener

在用dbca创建数据库之前,需要先配置Listener,否则在创建数据时候也会报


在ocfs9i1节点oracle用户下输入netca命令。

export LANG=en_US.UTF-8
netca

Cluster configuration(选择集群配置)
在节点选择全部
Listener configuration(选择配置监听)
接下来全部默认,最后点完成。


十、创建数据库


以下操作在ocfs9i1节点下完成

用oracle用户登录

mkdir /u01/oradata/
mkdir -p /u01/archvelog/oc9i
export LANG=en_US.UTF-8

dbca -datafileDestination /u01/oradata #指定数据文件创建在/u01/oradata/

选择"Oracle Cluster database"
选择"Create a database"(创建数据库)
点Select all(全选)
选择New Database(定制数据库)
全局数据库名"oc9i"
Database Features根据需要选择,这里所有都不选择
连接方式选择Dedicated Server Mode(专业连接)
Memory Typical Database Type:Multipurpose
Character Sets选择ZHS16GBK
File Locations 配置 spfile文件为:/u01/oradata/{DB_NAME}/spfile{SID}.ora
Archive 开启归档,配置归档路径为:/u01/archvelog/oc9i
查看创建信息。
开始创建数据库,接下来数据库在创建库进度条。
创建完成后会弹出对话框来输入密码,点exit按钮创建完成。

十一、配置数据库

如果连接数据库经常出现:
ORA-12545:因目标主机或对象不存在,连接失败。
如下修改参数:

alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.171)(PORT = 1521))' scope=both sid='oc9i1';
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.172)(PORT = 1521))' scope=both sid='oc9i2';

十二、RAC的启动和关闭


1. 共享磁盘启动 。
2. 共享磁盘启动完成后,对服务器进行开机。
3. 启动OCM
以 root 用户登录系统(保留Oracle环境), 在所有节点运行如下命令:
$ su root (注意root前面没有 - )
$ cd $ORACLE_HOME/oracm/bin
$ ./ocmstart.sh
退出root
$exit
查看OCM是否正常启动
$ ps -ef | grep oracm
4. 启动GSD
以 Oracle 用户登录系统, 在所有节点运行如下命令:
$ gsdctl start

5. 启动数据库
以 Oracle 用户登录系统, 在任一节点运行如下命令:
$ srvctl start database -d oc9i
如果需要启动单个节点,命令如下:
$ srvctl start instance -d orcl -i oc9i1
注:oc9i 是DB Name, oc9i1 是实例名

查看所有节点状态
$ srvctl status database -d oc9i
显示如下内容, 表示正常启动
例程 oc9i1 正在节点 ocfs9i1 上运行
例程 oc9i2 正在节点 ocfs9i2 上运行

6. 启动监听(查看监听是否启动,我用srvctl启动数据库时候监听已经启动)
$ lsnrctl start
7. 关闭数据库
以 Oracle 用户登录系统, 在任一节点运行如下命令:
$ srvctl stop database -d oc9i
关闭单个节点的命令如下:
$ srvctl stop instance -d oc9i -i oc9i1
注: oc9i是DB Name, oc9i1 是实例名

--END

参考文献
在 RHEL 4 x86-64 安装Oracle RAC 10G with OCFS.txt
Oracle Clusterware and Oracle Real Application Clusters Installation Guide for Linux
RHEL AS 3.0 + Oracle 9i R2 (RAC) 两节点集群安装笔记 http://blog.chinaunix.net/u/27852/showart_215761.html
RHEL AS4u2下安装oracle 9i rac http://blog.chinaunix.net/u/7667/showart_155000.html
Redhat AS4 for x86_64上安装Oracle 9204 RAC概述 http://yangtingkun.itpub.net/post/468/213417
Tru64上Oracle 9.2.0.5 用DBCA创建RAC DB时PRKR错误的解决 http://bbs.chinaunix.net/viewthread.php?tid=624913
Oracle9i / 10g RAC 启动与关闭 http://space.itpub.net/35489/viewspace-594689

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/236283/viewspace-1031545/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/236283/viewspace-1031545/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
红帽企业 Linux 详情 服务器解决方案 红帽企业 Linux AS 最高性能的企业级服务器,支持高端系统和用于关键任务的系统。可提供最高级别的支持服务。 红帽企业 Linux ES 适用于当今大多数商业计算环境中的小到中型服务器解决方案。 客户机解决方案 红帽企业 Linux WS 适用于软件开发,高性能台式机计算,特定的客户端应用程序和高性能计算(HPC)。 红帽 Desktop 红帽 Desktop 是需要大量客户机系统的理想选择。它提供了包括红帽网络代理或红帽卫星服务器的10单元和50单元两种选择。 红帽企业 Linux 包括了大约 1500 个软件包,为用户提供了一个多性能的计算环境。以下列出了其中的一些主要功能。如需了解更多的信息,请参阅产品文档。 2. 红帽企业 Linux 系列中的各个产品有什么不同?我应该选择哪一个? 从技术的角度来讲,红帽企业 Linux 系列中的四种产品 – 红帽企业 Linux AS、ES、WS 和 Desktop 是非常相似的。红帽企业 Linux 系列的一个设计目标是所有的产品都具有高度的共性:无论是运行应用程序的环境还是系统管理的环境都高度的统一。AS 和 ES 是为服务器所设计的;WS 是为计算节点和技术工作站所设计的;而红帽 Desktop 则适用于普通的办公环境。AS 和 ES 提供相同的功能。它们的不同之处在于,ES 支持双 CPU 服务器和16GB的主内存,而 AS 支持任何配置的服务器。WS 和红帽 Desktop 不包括 AS 和 ES 提供的一些服务器应用程序,因此它们并不适用于服务器环境。红帽 Desktop 支持大到4GB内存的单 CPU 系统,而 WS 支持双 CPU, 并且没有对内存的限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值