linux下安装oracle集群

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux下安装Oracle集群
一、操作系统
节点系统:Red Hat Enterprise 5
数据存储系统:Openfiler2.2
操作系统注意事项:
1.所有节点的操作系统要求一样,尤其是操作系统的位数(32位、64位)一定要相同,
否则oracle将无法在远端节点上进行操作,从而导致集群安装失败
2.Oracle RAC对操作系统的要求很高,其中有几个驱动程序如果无法安装,整个集
群都将无法安装。

所以在安装操作系统之后执行以下命令:
a)rpm -qa | grep glibc,查看glibc版本,要求至少为2.4以上。

如果查到的版本
小于2.4,或者升级glibc,或者安装另外的操作系统。

b)rpm -qa | grep ocfs2 | sort,查看是否已安装了ocfs2的驱动。

如果没有安装,执
行uname –r,查看内核版本,然后从网址/下载ocfc2的三
个文件(驱动,support,tool)。

注意:一定要找到与系统内核相同的版本,如果找
不到与系统内核相同的版本,或者升级kernel,或者安装另外的操作系统。

c)rpm -qa | grep oracleasm | sort,查看是否已安装了asmlib的驱动。

如果没有安
装,执行uname –r,查看内核版本,然后从网址
/technology/software/tech/linux/asmlib/index.html下载
asmlib2.0的三个文件(驱动,support,tool)。

注意:一定要找到与系统内核相同的
版本,如果找不到与系统内核相同的版本,或者升级kernel,或者安装另外的
操作系统。

以上全都确认完毕以后才能继续以下的安装,否则可能会导致整个安装的失败。

二、机器连接方式
本文中以两个节点、一个存储为例,本文中所有相关的机器IP均以图中为例。

下图将说明连接方式。

其中存储器需要有两块硬盘,一块存储操作系统,另一块存储oracle数据库文件(需大容量存储,除这一块硬盘外,其余节点硬盘仅需40-60G即可)。

三、操作系统安装
操作系统的具体安装将有另外的文档进行说明。

在此强调两点:
1.为避免oracle出现编码问题而导致乱码,所有节点的Red hat Enterprise 5的安装
均需选择语言为简体中文。

2.所有节点的操作系统要求一样(版本、位数)。

四、存储器(openfiler)配置
编辑/etc/hosts,配置以下几行(这一步,要求在所有节点、存储器上进行):
192.168.0.150 linux1
192.168.0.170 linux2
192.168.1.170 linux2-priv
192.168.1.150 linux1-priv
192.168.0.151 linux1-vip
192.168.0.152 linux2-vip
192.168.0.160 openfiler1
192.168.1.160 openfiler1-priv
安装好openfiler操作系统之后,在浏览器中打开网址:https://192.168.0.160:446,打开页面,输入用户名openfiler,密码password,进入配置界面。

第一步,打开iscsi配置。

进入Services->Enable/Disable页面,将iSCSI target设置为
enable,如下图所示。

验证是否生效,在存储器中敲入命令service iscsi-target status,如果得到ietd (pid ****) is running...,就表示已生效。

第二步,配置访问控制。

进入General->Local Networks页面,如下图所示新建两个访问
控制。

volumes。

然后按下面一组图示进行操作。

中crs一项至少2G,其余空间要视具体硬盘大小而定)。

建好以后,将如下图所示。

点击每一个分区的Edit,进入编辑页面,将对节点的访问权限由Deny改为Allow。

最后一步,在存储器上执行命令service iscsi-target restart。

五、节点(Red Hat Enterprise)配置
先说明一点:节点的配置通常会需要在所有(本文中为两个)节点上进行,但也有部分步骤只需在某一节点上运行。

以下步骤中,凡只需在单个节点上进行的步骤,都会突出加以说明。

1.安装必需的程序包。

放入Red Hat Enterprise 5的安装光盘,然后依次执行
mkdir –p /media/cdrom
mount –r /dev/cdrom /media/cdrom
cd /media/cdrom/Server
(以上三步为挂载光驱,本文以后凡挂截光驱部分均需执行这三步,将不再说明)
rpm -Uvh binutils-2.*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh libaio-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh make-3.*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-devel-0.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*
rpm -Uvh sysstat-7.*
2.配置iSCSI卷
挂截光驱,执行rpm –Uvh iscsi-initiator-utils-6.2.0.742-0.5.el5.i386.rpm(根据系统版本的区别,具体的如6.2.0.742-0.5之类的版本可能会有少量差别)。

i.配置iSCSI服务,并设定自动启动
service iscsid start
chkconfig iscsid on
chkconfig iscsi on
ii.查找存储器的可用目标
iscsiadm -m discovery -t sendtargets -p openfiler1-priv
如果返回(顺序可能不一致)
192.168.1.160:3260,1 .openfiler:rac1.asm3
192.168.1.160:3260,1 .openfiler:rac1.crs
192.168.1.160:3260,1 .openfiler:rac1.asm4
192.168.1.160:3260,1 .openfiler:rac1.asm1
192.168.1.160:3260,1 .openfiler:rac1.asm2
表示iSCSI服务已启动完毕。

iii.配置iSCSI的自动启动
iscsiadm -m node -T .openfiler:rac1.asm1 -p 192.168.1.160 -l
iscsiadm -m node -T .openfiler:rac1.asm2 -p 192.168.1.160 -l
iscsiadm -m node -T .openfiler:rac1.asm3 -p 192.168.1.160 -l
iscsiadm -m node -T .openfiler:rac1.asm4 -p 192.168.1.160 -l
iscsiadm -m node -T .openfiler:rac1.crs -p 192.168.1.160 –l
iscsiadm -m node -T .openfiler:rac1.asm1 -p 192.168.1.160 --op update -n node.startup -v automatic
iscsiadm -m node -T .openfiler:rac1.asm2 -p 192.168.1.160 --op update -n node.startup -v automatic
iscsiadm -m node -T .openfiler:rac1.asm3 -p 192.168.1.160 --op update -n node.startup -v automatic
iscsiadm -m node -T .openfiler:rac1.asm4 -p 192.168.1.160 --op update -n node.startup -v automatic
iscsiadm -m node -T .openfiler:rac1.crs -p 192.168.1.160 --op update -n node.startup -v automatic
iv.创建永久性本地SCSI设备名称
创建文件/etc/udev/rules.d/55-openiscsi.rules,内容如下:
# /etc/udev/rules.d/55-openiscsi.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c/part%n"
创建目录mkdir -p /etc/udev/scripts
创建文件/etc/udev/scripts/iscsidev.sh,内容如下:
#!/bin/sh
# FILE: /etc/udev/scripts/iscsidev.sh
BUS=${1}
HOST=${BUS%%:*}
[ -e /sys/class/iscsi_host ] || exit 1
file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname" target_name=$(cat ${file})
# This is not an open-scsi drive
if [ -z "${target_name}" ]; then
exit 1
fi
echo "${target_name##*.}"
更改文件权限:chmod 755 /etc/udev/scripts/iscsidev.sh
重启iscsi服务:
service iscsi stop
service iscsi start
执行ls -l /dev/iscsi/*,如果返回类似下面的结果,就表示永久性本地SCSI设备名称已创建。

/dev/iscsi/asm1:
total 0
lrwxrwxrwx 1 root root 9 Oct 4 01:50 part -> ../../sde
/dev/iscsi/asm2:
total 0
lrwxrwxrwx 1 root root 9 Oct 4 01:50 part -> ../../sdd
/dev/iscsi/asm3:
total 0
lrwxrwxrwx 1 root root 9 Oct 4 01:50 part -> ../../sdb
/dev/iscsi/asm4:
total 0
lrwxrwxrwx 1 root root 9 Oct 4 01:50 part -> ../../sda
/dev/iscsi/crs:
total 0
lrwxrwxrwx 1 root root 9 Oct 4 01:50 part -> ../../sdc
v.在iSCSI卷上创建分区
本小节只需在一个节点上执行
需要建立五个分区,分别为
/dev/iscsi/asm1/part
/dev/iscsi/asm2/part
/dev/iscsi/asm3/part
/dev/iscsi/asm4/part
/dev/iscsi/crs/part
以下只以其中一个为例。

# fdisk /dev/iscsi/asm1/part
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-15134, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-15134, default 15134): 15134 Command (m for help): p
Disk /dev/iscsi/asm1/part: 124.4 GB, 124486942720 bytes
255 heads, 63 sectors/track, 15134 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/iscsi/asm1/part1 1 15134 121563823+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
vi.验证新分区
从另一个节点上执行:
partprobe
fdisk –l
如果返回类似以下的信息,就表示新分区已创建成功。

Disk /dev/hda: 40.0 GB, 40000000000 bytes
255 heads, 63 sectors/track, 4863 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 4863 38957625 8e Linux LVM
Disk /dev/sda: 124.4 GB, 124486942720 bytes
255 heads, 63 sectors/track, 15134 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 15134 121563823+ 83 Linux
Disk /dev/sdb: 124.4 GB, 124486942720 bytes
255 heads, 63 sectors/track, 15134 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 15134 121563823+ 83 Linux
Disk /dev/sdc: 2147 MB, 2147483648 bytes
67 heads, 62 sectors/track, 1009 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 1009 2095662 83 Linux
Disk /dev/sdd: 124.4 GB, 124486942720 bytes
255 heads, 63 sectors/track, 15134 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 15134 121563823+ 83 Linux
Disk /dev/sde: 124.4 GB, 124486942720 bytes
255 heads, 63 sectors/track, 15134 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sde1 1 15134 121563823+ 83 Linux
3.创建oracle用户、组
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asm
groupadd -g 506 asmdba
useradd -m -u 501 -g oinstall -G dba,oper,asm -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle
passwd oracle(为oracle用户设置口令,设置的口令要记好,后面要用到)
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
mkdir -p /u01/app/crs
chown -R oracle:oinstall /u01/app/crs
chmod -R 775 /u01/app/crs
mkdir -p /u02/oradata/orcl
chown -R oracle:oinstall /u02/oradata/orcl
chmod -R 775 /u02/oradata/orcl
以下为oracle用户设置环境变量,注意这一步有些特别,其中的export ORACLE_SID=orcl*一句,在每个节点上的值不一样,建议:
linux1:ORACLE_SID=orcl1
linux2:ORACLE_SID=orcl2
将/home/oracle/.bash_profile替换为以下内容:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
alias ls="ls -FA"
export JA V A_HOME=/usr/local/java
# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
export ORA_CRS_HOME=/u01/app/crs
export
ORACLE_PA TH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/a dmin
# Each RAC node must have a unique ORACLE_SID. (i.e. orcl1, orcl2,...)
export ORACLE_SID=orcl1
export PA TH=.:${JA V A_HOME}/bin:${PA TH}:$HOME/bin:$ORACLE_HOME/bin export PA TH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PA TH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PA TH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PA TH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PA TH=${LD_LIBRARY_PA TH}:/lib:/usr/lib:/usr/local/lib
export CLASSPA TH=$ORACLE_HOME/JRE
export CLASSPA TH=${CLASSPA TH}:$ORACLE_HOME/jlib
export CLASSPA TH=${CLASSPA TH}:$ORACLE_HOME/rdbms/jlib
export CLASSPA TH=${CLASSPA TH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
4.修改linux核心参数
i.修改文件/etc/sysctl.conf,在最后面加上以下几行:
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
ii.修改文件/etc/bashrc,加上以下几行:
if [ -t 0 ]; then
stty intr ^C
fi
iii.修改文件/etc/security/limits.conf,加上以下几行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
iv.修改文件/etc/pam.d/login,加上以下几行:
session required pam_limits.so
v.修改文件/etc/profile,加上以下几行:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
5.配置ssh信任连接
所谓ssh信任连接,就是指在节点之间互相通过ssh访问时,彼此不用再输入口令。

只有配置了ssh信任连接,oracle的集群组件在安装时才能执行远端操作。

在执行本小节步骤之前,先确认每个节点上的sshd服务已打开。

(默认情况下的sshd服务是自动安装并运行的)本小节内容需要在多个节点上先后执行,每个节点上的执行有一点小差别,需要注意。

在每个节点上执行:
su - oracle(以oracle用户登录)
mkdir ~/.ssh(注意~/.的顺序)
chmod 700 ~/.ssh
ssh-keygen -t rsa(以下会有确认提示,全部直接回车)
cd /home/oracle/.ssh
以下在节点1上执行:
cat id_rsa.pub >> authorized_keys
scp authorized_keys linux2:/home/oracle/.ssh/(以下的提示,先输入yes,然后输入节点linux2的oracle用户密码)
以下在节点2上执行:
cat id_rsa.pub >> authorized_keys
scp authorized_keys linux1:/home/oracle/.ssh/(以下的提示,先输入yes,然后输入节点linux1的oracle用户密码)
如果节点数多于两个,则执行的步骤比上面的多,总之目的是要把每个节点的公用信息也就是id_rsa.pub文件里的内容存到authorized_keys里,然后使所有的节点都有这个authorized_keys文件。

然后在所有节点上执行:
ssh linux1 date
ssh linux1-priv date
ssh linux2 date
ssh linux2-priv date(如果有提示,就输入yes,只要不再出现输入密码的提示,就代表ssh信任连接已配置成功)
6.安装oracle集群文件系统(OCFS2)
首先执行rpm -qa | grep ocfs2 | sort,查看是否已安装了ocfs2。

如果没有安装,则按以下步骤进行安装。

i.安装程序
从/下载ocfs2的安装文件,有三个文件,用uname –r查看系统的内核版本,下载对应的文件,文件名大概是
ocfs2-x.x.x-x.el5-x.x.x-x.el5.i686.rpm
ocfs2-tools-x.x.x-x.el5.i386.rpm
ocfs2console-x.x.x-x.el5.i386.rpm
以下进行安装,注意安装顺序:
rpm –Uvh ocfs2-tools-x.x.x-x.el5.i386.rpm
rpm –Uvh ocfs2-x.x.x-x.el5-x.x.x-x.el5.i686.rpm
rpm –Uvh ocfs2console-x.x.x-x.el5.i386.rpm
再次执行rpm -qa | grep ocfs2 | sort,验证ocfs2是否已安装成功,应该返回类似以下的结果:
ocfs2-2.6.18-8.el5-1.2.9-1.el5
ocfs2console-1.2.7-1.el5
ocfs2-tools-1.2.7-1.el5
ii.禁用防火墙和SELinux
以下需要在图形界面上执行:
system-config-securitylevel
将会显示以下屏幕,将防火墙和SELinux全都禁用
iii.配置ocfs2
以下需要在图形界面上执行:
ocfs2console
将会显示以下屏幕
点击菜单Cluster->Configure Nodes...,在弹出的界面里点击“添加”,把所有节点都添加进去,注意IP地址应该填写私有地址,在本文中也就是192.168.1.*,完成后如下图所示。

确认所有节点上的文件/etc/ocfs2/cluster.conf内容完全相同。

iv.配置o2cb自动启动并调整o2cb心跳阈值
/etc/init.d/o2cb offline ocfs2
/etc/init.d/o2cb unload
/etc/init.d/o2cb configure
以下会出现确认提示,按下面的提示进行输入:
*****************************
Load O2CB driver on boot (y/n) [n]: y
Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfs2
Specify heartbeat dead threshold (>=7) [31]: 61
Specify network idle timeout in ms (>=5000) [30000]: 30000
Specify network keepalive delay in ms (>=1000) [2000]: 2000
Specify network reconnect delay in ms (>=2000) [2000]: 2000
*****************************
v.格式化ocfs2文件系统
这一步只需要在一个节点上执行
mkfs.ocfs2 -b 4K -C 32K -N 4 -L oracrsfiles /dev/iscsi/crs/part1
vi.挂载ocfs2文件系统
从这一步开始需要在所有节点上执行
mount -t ocfs2 -o datavolume,nointr -L "oracrsfiles" /u02/oradata/orcl
vii.配置ocfs2文件系统自动挂载
编辑文件/etc/fstab,加上以下几行:
LABEL=oracrsfiles /u02/oradata/orcl ocfs2 _netdev,datavolume,nointr 0 0 viii.验证ocfs2是否已安装成功
chkconfig --list o2cb
应返回以下结果:
o2cb 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
ix.修改ocfs2文件系统的权限
chown oracle:oinstall /u02/oradata/orcl
chmod 775 /u02/oradata/orcl
x.重新启动所有节点,用mount命令查看ocfs2是否已自动挂载,至此ocfs2的安装结束
7.安装自动存储管理(ASMLib 2.0)
首先执行rpm -qa | grep oracleasm| sort,查看是否已安装了asmlib2.0。

如果没有安装,则按以下步骤进行安装。

i.安装程序
从/technology/software/tech/linux/asmlib/index.html下载asmlib 2.0的安装文件,有三个文件,用uname –r查看系统的内核版本,下载对应的文件,文件名大概是
oracleasm-x.x.x-x.el5-x.x.x-x.el5.i686.rpm
oracleasmlib-x.x.x-x.el5.i386.rpm
oracleasm-support-x.x.x-x.el5.i386.rpm
以下安装程序,注意安装顺序:
rpm –Uvh oracleasm-support-x.x.x-x.el5.i386.rpm
rpm –Uvh oracleasm-x.x.x-x.el5-x.x.x-x.el5.i686.rpm
rpm –Uvh oracleasmlib-x.x.x-x.el5.i386.rpm
再次执行rpm -qa | grep oracleasm| sort,查看asmlib2.0是否已安装成功,应该返回类似以下的结果:
oracleasm-2.6.18-8.el5-2.0.4-1.el5
oracleasmlib-2.0.3-1.el5
oracleasm-support-2.1.2-1.el5
ii.配置和加载ASMLib2.0
/etc/init.d/oracleasm configure
按以下进行输入:
**********************
Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
***********************
iii.创建ASM磁盘
以下只需要在一个节点上进行
执行/etc/init.d/oracleasm listdisks,应该没有任何返回信息,如果有返回信息,则按返回的信息,每一行为一个磁盘,执行以下命令:
/etc/init.d/oracleasm deletedisk 磁盘名
以下创建ASM磁盘:
/etc/init.d/oracleasm createdisk VOL1 /dev/iscsi/asm1/part1
/etc/init.d/oracleasm createdisk VOL1 /dev/iscsi/asm2/part1
/etc/init.d/oracleasm createdisk VOL1 /dev/iscsi/asm3/part1
/etc/init.d/oracleasm createdisk VOL1 /dev/iscsi/asm4/part1
以下在其它节点上进行
/etc/init.d/oracleasm scandisks
以下在所有节点上进行
/etc/init.d/oracleasm listdisks
返回以下结果,就说明ASMLib2.0已安装成功
VOL1
VOL2
VOL3
VOL4
8.安装oracle集群件之前的最后任务
首先来确认节点的时间。

Oracle集群组件的安装要求操作的节点的时间要早于其余节点。

所以在此,建议将要执行安装操作的节点(本文中为节点1:linux1)的时间向前调一个小时,安装完毕后再改回来。

将oracle RAC 11g下载至节点1的/home/oracle/orainstall目录(如果没有这个目录,就新建一个)。

执行unzip解压之。

在其余节点上执行mkdir -p /home/oracle/orainstall/clusterware/rpm新建目录。

然后在节点1上执行scp /home/oracle/orainstall/clusterware/rpm/cvuqdisk-1.0.1-1.rpm
linux2:/home/oracle/orainstall/clusterware/rpm,把这个文件拷贝至其余节点。

在所有节点上执行:
cd /home/oracle/orainstall/clusterware/rpm
CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
rpm -iv cvuqdisk-1.0.1-1.rpm
在节点1上执行:
cd /home/oracle/orainstall/clusterware
./runcluvfy.sh stage -pre crsinst -n linux1,linux2 –verbose(如果节点数超过两个,这一句将会有所不同)
以下将会检测所有节点是否可以安装oracle RAC 11g。

如果任一步出现了错误,都要先解决了才能进行下一步的安装。

错误大致分为两类:
第一,系统核心参数值不满足需求。

当出现这一种情况时,编辑/etc/sysctl.conf,对相应的参数进行修改。

第二,有程序包未安装。

当出现这一种情况时,先从安装光盘上查找是否有相应的程序包,如果没有就从网上搜索一个下载(一定要注意系统核心版本),找到后进行安装。

所有的检测都通过以后,就可以安装Oracle RAC 11g了。

9.安装oracle集群件软件
确保在上一步中,oracle RAC 11g的软件已经下载并解压。

本节中所有步骤需要在图形界面下进行,且只需要在一个节点上进行。

在图形界面里打开终端,先执行xhost +。

然后执行su – oracle(以oracle用户来执行),执行命令/home/oracle/orainstall/clusterware/runInstaller,以下会弹出界面。

每一步按下面的提示进行:
验证oracle RAC 11g的安装,以oracle用户执行命令crs_stat -t –v,应当返回以下的结果
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.linux1.gsd application 0/5 0/0 ONLINE ONLINE linux1
ora.linux1.ons application 0/3 0/0 ONLINE ONLINE linux1
ora.linux1.vip application 0/0 0/0 ONLINE ONLINE linux1
ora.linux2.gsd application 0/5 0/0 ONLINE ONLINE linux2
ora.linux2.ons application 0/3 0/0 ONLINE ONLINE linux2
ora.linux2.vip application 0/0 0/0 ONLINE ONLINE linux2
表示oracle RAC 11g已安装成功。

10.安装oracle数据库软件
下载oracle 11g的安装文件到/home/oracle/orainstall,unzip解压之。

在图形界面里打开终端,先执行xhost +。

然后执行su – oracle(以oracle用户来执行),执行命令/home/oracle/orainstall/database/runInstaller,以下会弹出界面。

每一步按
11.安装oracle示例
将oracle example安装文件下载到节点1的/home/oracle/orainstall,unzip解压之。

在图形界面里打开终端,先执行xhost +。

然后执行su – oracle(以oracle用户来执行),执行命令/home/oracle/orainstall/example/runInstaller。

本节的安装内容非常简单,基本是一路Next安装完毕。

这里就不再更多说明了。

12.创建TNS 监听器进程
本节内容只需在一个节点上进行
在图形界面里打开终端,先执行xhost +。

然后执行su – oracle(以oracle用户来执行),执行命令netca,每一步按下面的图示进行:
13.创建oracle集群数据库
在图形界面里打开终端,先执行xhost +。

然后执行su – oracle(以oracle用户来执行),执行命令dbca,每一步按下面的图示进行:
点击“新建”,新建两个磁盘组,名称分别是ORCL_DATA1和FLASH_RECOVERY_AREA,分别对应VOL1,VOL2和VOL3,VOL4
再次返回时,ASM磁盘组就会有所改变,选择ORCL_DATA1,继续:
点击“完成”,开始创建数据库。

注意:这一步需要的时间很长,可能会有一个小时以上。

一定耐心等待数据库的创建。

完成以后,所有的对话框都将关闭,oracle 集群数据库创建成功。

经过漫长的等待
六、安装后任务
Oracle集群已安装成功。

但接下来还有一些任务需要完成。

1.启用存档日志
本节内容只需要在一个节点上进行
sqlplus "/ as sysdba"
键入sql命令:alter system set cluster_database=false scope=spfile sid='orcl1';
执行命令srvctl stop database -d orcl
再次sqlplus "/ as sysdba",键入sql命令
startup mount
alter database archivelog;
alter system set cluster_database=true scope=spfile sid='orcl1';
shutdown immediate
退出sqlplus,执行命令srvctl start database -d orcl
验证是否成功:sqlplus "/ as sysdba",键用度sql命令archive log list,应该返回以下结果:
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 64
Next log sequence to archive 65
Current log sequence 65
2.安装自定义oracle数据库脚本
从/data/Oracle/DBA_scripts/common.zip下载zip文件到/u01/app/oracle,unzip解压之。

3.创建共享oracle口令文件
在节点1上以oracle用户执行:
mkdir -p /u02/oradata/orcl/dbs
mv $ORACLE_HOME/dbs/orapw+ASM1 /u02/oradata/orcl/dbs/orapw+ASM
mv $ORACLE_HOME/dbs/orapworcl1 /u02/oradata/orcl/dbs/orapworcl
ln -s /u02/oradata/orcl/dbs/orapw+ASM $ORACLE_HOME/dbs/orapw+ASM1
ln -s /u02/oradata/orcl/dbs/orapworcl $ORACLE_HOME/dbs/orapworcl1
在节点2上以oracle用户执行:
rm $ORACLE_HOME/dbs/orapw+ASM2
rm $ORACLE_HOME/dbs/orapworcl2
ln -s /u02/oradata/orcl/dbs/orapw+ASM $ORACLE_HOME/dbs/orapw+ASM2
ln -s /u02/oradata/orcl/dbs/orapworcl $ORACLE_HOME/dbs/orapworcl2
4.修正oracle的一小bug
Oracle有一个小bug,会导致客户端连接经常会失败。

修正如下:
用sqlplus连接每一个节点,分别执行以下语句(以两节点为例):
节点1:
ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.150)(PORT = 1521))' SID = 'orcl1';
节点2:
ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.170)(PORT = 1521))' SID = 'orcl2';
七、客户端访问
打开客户端的tnsnames.ora文件(这个文件的具体位置要取决于客户端的安装位置,一般在安装目录的NETWORK\ADMIN下面),在最后加上下面几行:(最好是把linux1,linux2,linux1-vip,linux2-vip四个IP全部写入)
RAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.151)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.152)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.150)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.170)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DA TA =
(SERVER = DEDICATED)
(SERVICE_NAME = )
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
然后打开oracle客户端,看看数据库树有没有RAC数据库,如果没有,右键点击数据库,在菜单中选择“将数据库添加到树”,在弹出的对话框中按下图所示操作:
确认RAC已添加至数据库树后,点击RAC数据库,会出现登录窗口,用户名:SYS,密码为设定的密码,连接身份为SYSDBA,如下图所示。

登录成功,表示oracle集群服务器已登录。

八、ODBC设置
为了方便.NET访问oracle集群数据库,可以通过ODBC进行访问。

从控制面版->管理工具->数据源(ODBC)进入。

在用户DSN里选择“添加”,驱动程序选择Oracle in ***(这个会根据客户端的安装不同而有所不同)。

TNS Service Name 选择RAC,输入用户名,点击Test Connection,输入密码。

只要出现Connection successful对话框,就表示连接成功。

九、OLEDB连接串
.net里通过OLEDB连接oracle RAC,连接字符串如下(以本文中的两个节点为例):Provider=OraOLEDB.Oracle.1;Password=siweicn;Persist Security Info=True;User ID=newaudit;Data
Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.151)(PORT= 1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.152)(PORT=1521))(ADDRESS= (PROTOCOL=TCP)(HOST=192.168.0.150)(PORT=1521))(ADDRESS=(PROTOCOL=TCP )(HOST=192.168.0.170)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DA TA=(SER VER=DEDICATED)(SERVICE_NAME=)(FAILOVER_MODE=(TY PE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))))
最好是把linux1,linux2,linux1-vip,linux2-vip四个IP全部写入。

相关文档
最新文档