当前位置:文档之家› Oracle10g RAC安装文档

Oracle10g RAC安装文档

ORACLE 10.2.0.1 RAC FOR RedHat Linux AS4 update4

安装操作手册

修改历史

计划

本次数据库采用10G RAC集群,由于10G提供了Oracle 集群文件系统(OCFS)、自动存储管理器(ASM)、原始设备这三种共享磁盘方式用于RAC的安装,因此我们准备计划先采用ASM安装RAC并进行建库。下面的计划主要是针对ASM方式的部署RAC

一、硬件环境描述

1、节点1与节点2硬件

2、集群拓扑

二、前期准备

1、准备ORACLE的安装配置文件

.bash_profile

/etc/sysctl.conf

2、准备安装数据库+ASM所需要的ASMLIB

oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686

oracleasmlib-2.0.2-1.i386

oracleasm-support-2.0.3-1.i386

三、RAC系统规划

1、节点1、节点2规划、注册文件规划(ocr)、表决磁盘规划(VOTING DISK)、

2、操作系统安装规划

四、根据规划安装操作系统

1、在节点1安装操作系统

2、在节点2安装操作系统

3、配置时钟同步

五、ORACLE RAC安装环境检查与准备

1、检查安装ORACLE所需要的操作系统RPM包

2、创建ORACLE用户与DBA组

3、修改系统内核参数./etc/sysctl.conf

4、设置ORACLE用户环境变量(修改ORACLE的.bash_profile)

5、配置/etc/hosts文件

6、配置hangcheck_timer内核

7、配置SSH

8、根据规划共享存储系统

9、调整配置错误

六、ASMlib安装与检查

1、安装ASMlib

2、配置ASM磁盘

七、安装Clusterware与ORACLE数据库系统

1、安装CRS软件

2、安装ORACLE数据库

八、DBCA以ASM创建数据库

九、测试RAC

十、数据库部署

十一、参考文献

具体步骤

若无特别说明,“$”提示符均表示在oracle用户下执行,“#”提示符均表示在root用户下执行

一、硬件环境描述

1、

2、RAC体系

二、前期准备

1、准备ORACLE的安装配置文件

.bash_profile

/etc/sysctl.conf

2、准备安装数据库+ASM所需要的ASMLIB,注意这个ASMLIB的版本要跟你操作系

统的内核相匹配

验证内核版本如下命令:

# uname -r

我们这里内核是2.6.9-42.ELsmp、i386(32位)

因此下载以下ASMLIB:

oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686

oracleasmlib-2.0.2-1.i386

oracleasm-support-2.0.3-1.i386

提示:如果是单处理器系统需要下载EL的ASMLIB 三、RAC系统相关规划

2、节点1、节点2上ORACLE安装规划、注册表规划(OCR)、表决磁盘规划(VOTING

四、根据规划安装操作系统,并配置时钟同步

1、在节点1安装操作系统

2、在节点2安装操作系统

提示:选择全部安装包方式,这样就不用给系统打那烦人的补丁包了,不过所需要的磁盘空间7G左右

3、配置时钟同步

在一台节点服务器上启动时钟服务器服务,在另外一台节点服务器上使用时钟同步命令如:rdate –s IP,然后在这台节点服务器,通过做调度,来定时同步两台服务器时钟。

提示:建议RAC可以连接到互联网上,以便互联网上的时钟服务器,如果没有接

入互联网的条件也可以让其余节点向某一个节点做时钟同步,因为RAC不能容

忍节点间时钟不同步,否则RAC会Down掉!

在这里我们如下操作:

A、在125.233.9.101节点上开启时钟服务,“applications(应用程序)”----->“system

settings(系统设置)”----->“server settings(服务设置)”----->“services(服务)”,如图

B、在出来的”service configuration(服务配置)”中,选中“time、time-udp”,然后点击窗

口工具栏中的“save(保存)”按钮,如图

C、在135.233.9.102节点上创建一个shell文件,包含如下内容rdate –s 135.233.9.101

# vi /rdate

在vi 编辑器中按” i”转换为插入模式,然后输入“rdate –s 135.233.9.101”,再按”esc”

键,退出插入模式,最后”shift”+”:”后再输入”wq!”,存盘退出。

给于这个shell于执行权限

# chmod 755 rdate

D、在135.233.9.102节点上,把该shell加入到调度中,让系统每6小时向

135.233.9.101节点同步时钟,这里可以使用命令”crontab”,也可以使用图形界面在

“applications(应用程序)”----->“system tools(系统设置)”----->“task scheduler(任

务计划)”。命令如下

# crontab –e

同样在编辑器里输入如下(我这里是每两个小时同步一次)

0 1,4,8,13,17,20 * * * /rdate

五、ORACLE RAC安装环境检查与准备

1、在每个节点上创建ORACLE用户与DBA组

2、groupadd –g 1001 dba

3、groupadd –g 1002 oinstall

4、useradd –u 1001 –g oinstall –G dba oracle

5、passwd oracle

使用图形界面创建DBA组和ORACLE用户,并手工指定他们的ID,注意在这里,每个节点的oracle用户ID,DBA组ID必须一致,其他使用默认值,同时创建完毕后在每个节点执行如下命令

#chown –R oracle:dba /home/oracle

6、修改每个节点系统内核参数./etc/sysctl.conf,

#vi /etc/sysctl.con f

然后加入如下内容

kernel.shmall = 2097152

kernel.shmmax = 2147483648

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 = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

4、设置每个节点ORACLE用户环境变量(修改ORACLE的.bash_profile),该文件见

附件

$vi .bash_profile

然后加入如下内容

umask=022

# User specific environment and startup programs

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

# Each RAC node must have a unique ORACLE_SID.(i.e. dbserver1, dbserver2,...)

export ORACLE_SID=oradb1

export PA TH=.:${PA TH}:$HOME/bin:$ORACLE_HOME/bin

export PA TH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export ORACLE_TERM=xterm

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PA TH=$ORACLE_HOME/lib

export LD_LIBRARY_PA TH=${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

注意:在节点dbserver2上,ORACLE_SID应该变为oradb2

5、配置每个节点的/etc/hosts文件

#vi /etc/hosts

然后修改里面的内容为如下

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

135.233.9.101 dbserver1

135.233.9.201 db-vip1

135.233.9.102 dbserver2

135.233.9.202 db-vip2

10.10.10.1 db-priv1

10.10.10.2 db-priv2

注意:确保在每个节点上/etc/hosts文件的回送地址中不包含节点名(dbserver1或dbserver2)。如果机器名出现在回送地址条目中,如下所示:

127.0.0.1 JMRAC1 localhost.localdomain localhost

需要将其如下删除:

127.0.0.1 localhost.localdomain localhost

6、配置每个节点的hangcheck_timer内核:

# find /lib/modules -name "hangcheck-timer.ko"

#vi /etc/modprobe.conf

加入如下内容

modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 设置为自动启动hangcheck-timer

/sbin/modprobe hangcheck_timer

检查是否成功启动

#grep hangcheck /var/log/messages |tail -2

7、配置SSH

SSH方式

以oracle用户身份执行,在所有节点上做如下配置以生成SSH密钥。

$ mkdir ~/.ssh

$ chmod 755 ~/.ssh

$ /usr/bin/ssh-keygen -t rsa

$ /usr/bin/ssh-keygen -t dsa

$ touch ~/.ssh/authorized_keys

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$ cp ~/.ssh/authorized_keys ~/.ssh/jmrac1.authorized_keys

将dbserver1.authorized_keys复制到dbserver2上

在dbserver2上,将dbserver1.authorized_keys导入authorized_keys

$ cat ~/.ssh/dbserver1.authorized_keys >> ~/.ssh/authorized_keys

$ chmod 644 ~/.ssh/authorized_keys

将上述步骤在节点2上再执行一次,注意将dbserver 1和dbserver 2互换!

建立SSH信任关系(请注意,用户等效性仅为当前会话建立。如果您切换到其他会话或注销并重新登录,则必须再次运行ssh-agent 和ssh-add 才能重新建立用户等效性)

在每个节点上执行

$ exec /usr/bin/ssh-agent $SHELL

$ /usr/bin/ssh-add

在每个节点上执行如下命令以测试连通性,并建立SSH信任关系

$ ssh dbserver 1 date

$ ssh dbserver 2 date

Sun may 27 19:07:19 CDT 2007

测试每个方向上所有服务器的连通性是非常重要的。这样会确保当OUI 在CRS 和数据库软件安装期间试图复制文件时不会再出现类似以下的消息。该消息只有在远程节点上第一次执行操作时才会出现,因此通过测试连通性,您不仅确保了远程操作的正常运行,还完成了初始的安全密钥交换。

The authenticity of host 'ds2 (192.168.200.52)' can't be established.

RSA key fingerprint is 8f:a3:19:76:ca:4f:71:85:42:c2:7a:da:eb:53:76:85.

Are you sure you want to continue connecting (yes/no)? yes

用下述指令在node1上测试ssh互信任配置是否正确

在再每个节点上执行如下命令,应该直接显示相应的时间,而不会提示输入密码$ ssh dbserver 1 date

$ ssh dbserver 2 date

8、根据规划分区共享存储系统

先查看系统分区

#fdisk –l /dev/sdb

发现阵列柜,被加载在/dev/sdb上,在分区先要确保阵列柜上没有被分区,如有分区,需要删除以前分区,然后在根据前面磁盘分区规划对磁盘阵列柜分区

#fdisk /dev/sdb

最后分区如下

该分区命令只在一个节点上执行,另外一个节点上执行分区同步命令

#partprobe

提示:关于分区命令fdisk的详细说明,参考其他linux命令手册

由于我们把oracle的OCR(oracle集群注册表)、表决磁盘(voting disk)安装在裸设备上,对于裸设备要使用它,需要编辑/etc/sysconfig/rawdevices文件,将裸

设备添加到系统中,然后再为裸设备设定属组信息以及权限信息。

把下面的内容添加到/etc/sysconfig/rawdevices文件中

#OCR

/dev/raw/raw1 /dev/sdb1

/dev/raw/raw2 /dev/sdb2

#voting

/dev/raw/raw5 /dev/sdb5

/dev/raw/raw6 /dev/sdb6

/dev/raw/raw7 /dev/sdb7

注意:在2.6内核的Red Hat Linux上,当系统重启后,裸设备的属组信息

将被还原为系统默认值(root:disk)。为了使得裸设备属组信息可以被保留,你要在/etc/rc.d/rc.local中强制更新裸设备的属组信息,即在文件中加入下述内容:

chown root:dba /dev/raw/raw1

chown root:dba /dev/raw/raw2

chmod 660 /dev/raw/raw1

chmod 660 /dev/raw/raw2

chown oracle:dba /dev/raw/raw5

chown oracle:dba /dev/raw/raw6

chown oracle:dba /dev/raw/raw7

chmod 644 /dev/raw/raw5

chmod 644 /dev/raw/raw6

chmod 644 /dev/raw/raw7

配置完毕后,务必重新启动两台服务器

9、调整配置错误

六、ASMlib安装与检查

1、在每个节点安装ASMlib

# rpm -Uvh \

>oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686

>oracleasmlib-2.0.2-1.i386

>oracleasm-support-2.0.3-1.i386

Preparing... ######################################## [100%]

1:oracleasm-support ######################################## [ 33%]

2:oracleasm-2.4.9-e-smp ##################################### [ 66%]

Linking module oracleasm.o into the module path [ OK ]

3:oracleasmlib ###################################### [100%]

2、在每个节点配置ASMLib

使用ASMLib 之前,必须运行配置脚本来准备驱动程序。以root用户身份在每个集群主机上运行以下命令并回应提示,如下例所示。

# /etc/init.d/oracleasm configure

Configuring the Oracle ASM library driver.

这将配置Oracle ASM 库驱动程序的启动时属性。以下问题将确定在启动时是否

加载驱动程序以及它将拥有的权限。当前值将显示在方括号(“[]”)中。按

而不键入回应将保留该当前值。按Ctrl-C 将终止。

Default user to own the driver interface []:oracle

Default group to own the driver interface []:dba

Start Oracle ASM library driver on boot (y/n) [n]:y

Fix permissions of Oracle ASM disks on boot (y/n) [y]:y

Writing Oracle ASM library driver configuration [ OK ]

Creating /dev/oracleasm mount point [ OK ]

Loading module "oracleasm" [ OK ]

Mounting ASMlib driver filesystem [ OK ]

Scanning system for ASM disks [ OK ]

现在,如下所示启用ASMLib 驱动程序。

# /etc/init.d/oracleasm enable

Writing Oracle ASM library driver configuration [ OK ]

Scanning system for ASM disks [ OK ]

3、为ASM 配置磁盘

接下来告诉ASMLib 驱动程序要使用哪些磁盘。请注意,这些磁盘是不包含任何

内容的空磁盘。

通过以root 用户身份运行以下命令来标记由ASMLib 使用的磁盘。仅从一个集

群主机上执行此操作。

/etc/init.d/oracleasm createdisk DISK_NAME device_name

提示:以大写字母输入DISK_NAME。当前版本中有一个错误,即如果使用小

写字母,ASM 实例将无法识别磁盘。

# /etc/init.d/oracleasm createdisk VOL1 /dev/sd8

Marking disk "/dev/sdb8" as an ASM disk [ OK ]

# /etc/init.d/oracleasm createdisk VOL2 /dev/sd9

Marking disk "/dev/sdb9" as an ASM disk [ OK ]

.

以下示例演示了如何列出标记为由ASMLib 使用的所有磁盘。

# /etc/init.d/oracleasm listdisks

VOL1

VOL2.

.

注意在所有集群其他节点主机上,只需要以root 用户身份运行以下命令,扫描所

配置的ASMLib 磁盘:

#/etc/init.d/oracleasm scandisks

七、安装Clusterware与ORACLE数据库系统

把CRS与数据库软件拷贝到服务器上,再安装,注意,在安装前先建立用户等效性,如下

#xhost +

#su – oracle

$export DISPLAY=:0.0

$ exec /usr/bin/ssh-agent $SHELL

$ /usr/bin/ssh-add

1、安装CRS软件

$./runInstaller

单击“下一步”

修改安装组为“dba”,然后单击“下一步”

修改crs的安装路径与.bash_profile中crs设置的路径一致。然后单击“下一步”

单击“下一步”

提示:在这里如果环境设置的不正确,或者硬件配置达不到要求,检测不会通过,但是对于硬件配置,我们可以选择通过验证

上图中只显示了一台服务器节点,验证该节点信息是否和/etc/hosts中的内容一致同时把节点dbserver2添加到集群配置中,最后如下

然后单击“下一步”

单击“编辑”按钮,将eth0网卡的网段设为“公共”,然后点击“确定”(默认eth0是“公共”)

以上这步要确定好是哪张网卡提供公共对外服务,哪张网卡提供心跳检测私有服务,千万不能弄错,确定好后点击“下一步”

指定OCR的位置(前面已经设置好的)。然后单击“下一步”

提示:这里可以选择正常冗余或外部冗余,效果一样,正常冗余提供了一个OCR 的镜像位置,而外部冗余没有提供OCR镜像,只需要OCR位置就可以,由于前期我们在规划的时候就规划了OCR镜像,因此我们这里选择正常冗余,下面表决磁盘的配置也是一样

指定表决磁盘的位置,单击“下一步”

单击安装

注意当安装到后面出现如下提示时,先不要点击“确定”

此时安装向导让你在所有节点上分别执行上述两个脚本,先在安装CRS的计算机上执行上述两个脚本,注意这两个脚本在X-WINDOS窗口下执行,以便能够启动VIPCA。

此时,安装向导将给出安装总结,点击退出

在其他节点都执行完毕后,此时,你需要回到节点1,在此界面上单击确定

通过上面的检查后,Oracle Clusterware安装结束!

2、安装ORACLE数据库

$./runInataller

单击“下一步”

选择安装企业版数据库,单击“下一步”

相关主题
文本预览
相关文档 最新文档