Oracle 10g R2 RAC for Redhat Linux AS 4

来源:互联网 发布:杨辉三角c语言 编辑:程序博客网 时间:2024/05/08 10:16

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磁盘

七、安装ClusterwareORACLE数据库系统

1、  安装CRS软件

2、  安装ORACLE数据库

八、DBCAASM创建数据库

九、测试RAC

十、数据库部署

十一、       参考文献

具体步骤

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

一、    硬件环境描述

1、  硬件说明

服务器名

 

项目名称

服务器1(工作机)

服务器2(备份机)

 

硬件型号

DELL 6850

DELL 6850

 

CPU

频率

3.0

3.0

 

数量

4

4

 

物理内存

32G

32G

 

磁盘阵列柜

型号

EMC CX 200

 

每硬盘容量

300GB

 

阵列缓存

 

 

硬盘数量

 

 

RAID名称

RAID 5

2000G

2、  RAC体系

二、    前期准备

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

.bash_profile

/etc/sysctl.conf

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

验证内核版本如下命令:

# uname -r

[oracle@dbserver1 ~]$ uname -r

Linux dbserver1 2.6.9-42.ELsmp

[oracle@dbserver1 ~]$

我们这里内核是2.6.9-42.ELsmpi38632位)

因此下载以下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

提示:如果是单处理器系统需要下载ELASMLIB

三、    RAC系统相关规划

1、操作系统安装规划

服务器名

项目名称

RAC节点1

RAC节点2

硬件型号

 

 

操作系统

Redhat as 4.0 u4 32位)

Redhat as 4.0 u432位)

服务器主机名

dbserver1

dbserver2

IP地址(eth0)

135.233.9.101

135.233.9.102

语言环境

中文/英文

中文/英文

域名服务方式

时区

中国

中国

安装方式

安装全部安装包

安装全部安装包

内置硬盘

容量

146G

146G

数量

2(RAID1)

2(RAID1)

系统分区

物理路径

 

 

/

30G

30G

Swap

35G

35G

/home

30G

30G

/tmp

5G

5G

/usr

20G

20G

/opt

30G

30G

系统用户

 

Root

Oracle

Root

Oracle

磁盘阵列柜

型号

 

每硬盘容量

500G

总容量

2T

RAID名称

RAID 5

磁盘分区

OCR

(oracle集群注册表)

/dev/raw/raw1   /dev/sdb1    500M(主分区)

/dev/raw/raw2   /dev/sdb2    500M(主分区)

表决磁盘

voting disk

/dev/raw/raw5   /dev/sdb5       500M

/dev/raw/raw6   /dev/sdb6       500M

/dev/raw/raw7   /dev/sdb7       500M

ASM

/dev/sdb8    950G

/dev/sdb9    950G

数据库备份

/dev/sdb10    (全部)        120G

备份mount

/oradata_backup          /dev/sdb10

 

 

 

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

服务器名

 

项目名称

服务器1(工作机)

服务器2(备份机)

操作系统

Redhat as 4.0 u1432 x86

Redhat as 4.0 u432 x86

服务器主机名

dbserver1

dbserver2

公共IP地址(eth0

135.233.9.101

135.233.9.102

虚拟IP地址(eth0

135.233.9.201

135.233.9.202

私有IP地址(eth1

10.10.10.1

10.10.10.2

ORACLE RAC SID

oradb1

oradb2

集群实例名称

oradb

OCR

(oracle集群注册表)

/dev/raw/raw1   /dev/sdb1        500M

/dev/raw/raw2   /dev/sdb2        500M

表决磁盘

voting disk

/dev/raw/raw5   /dev/sdb5       500M

/dev/raw/raw6   /dev/sdb6       500M

/dev/raw/raw7   /dev/sdb7       500M

ASM

/dev/sdb8    950G                   VOL1

/dev/sdb9    950G                   VOL2

数据库备份

/dev/sdb10    (全部mkfs.ext3 /dev/sdb10        120G

数据库版本

Oracle Database 10g Enterprise Edition Release 10.2.0.1.032位)

数据库BASE目录

/home/oracle

数据库HOME目录

/home/oracle/product/10.2.0/db

数据库监听端口

1521

数据库字符集

simplifed Chinese.ZHS16GBK

数据库系统帐号与初始密码

Sys/oracle

System/oracle

数据库恢复区大小

4G

数据库实例建库方式

ASM

数据库块大小

8192byte

数据库数据空间大小

 

 

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

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

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

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

3、  配置时钟同步

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

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

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

忍节点间时钟不同步,否则RACDown

在这里我们如下操作:

A、在125.233.9.101节点上开启时钟服务,“applications(应用程序)----->system settings(系统设置) ----->server settings(服务设置) ----->services(服务)”,如图

B、在出来的”service configuration(服务配置)”中,选中“timetime-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用户IDDBAID必须一致,其他使用默认值,同时创建完毕后在每个节点执行如下命令

#chown –R oracle:dba /home/oracle

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

#vi /etc/sysctl.conf

         然后加入如下内容

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 PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${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_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$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

l         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 1dbserver 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

最后分区如下

[root@ dbserver 1 ~]# fdisk -l /dev/sdb

 

Disk /dev/sdb: 2035.7 GB, 146727239680 bytes

255 heads, 63 sectors/track, 17838 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          25      200781   83  Linux

/dev/sdb2              26          50      200812+  83  Linux

/dev/sdb3              51       17838   142882110    5  Extended

/dev/sdb5              51          63      104391   83  Linux

/dev/sdb6              64          76      104391   83  Linux

/dev/sdb7              77          89      104391   83  Linux

/dev/sdb8              90        5561    43953808+  83  Linux

/dev/sdb9            5562       11033    43953808+  83  Linux

/dev/sdb10          11034       17838    54661131   83  Linux

[root@ dbserver 1 ~]#

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

#partprobe

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

 

              由于我们把oracleOCR(oracle集群注册表) 表决磁盘(voting disk)安装在裸         设备上,对于裸设备要使用它,需要编辑/etc/sysconfig/rawdevices文件,将裸                  设备添加到系统中,然后再为裸设备设定属组信息以及权限信息。

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

#OCR

/dev/raw/raw1    /dev/sdb1

/dev/raw/raw2    /dev/sdb2

 

#OCR

/dev/raw/raw5    /dev/sdb5

/dev/raw/raw6    /dev/sdb6

/dev/raw/raw7    /dev/sdb7

 

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

将被还原为系统默认值(rootdisk)。为了使得裸设备属组信息可以被保留,你

要在/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 库驱动程序的启动时属性。以下问题将确定在启动时是否加载驱动程序以及它将拥有的权限。当前值将显示在方括号(“[]”)中。按 <ENTER> 而不键入回应将保留该当前值。按 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

 

七、   安装ClusterwareORACLE数据库系统

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

       #xhost +

       #su – oracle

       $export DISPLAY=:0.0

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

       $ /usr/bin/ssh-add

1、  安装CRS软件

$./runInstaller

单击“下一步”

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

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

单击“下一步”

提示:在这里如果环境设置的不正确,或者硬件配置达不到要求,检测不会通过,

但是对于硬件配置,我们可以选择通过验证

上图中只显示了一台服务器节点,验证该节点信息是否和/etc/hosts中的内容一致

同时把节点dbserver2添加到集群配置中,最后如下

然后单击“下一步”

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

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

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

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

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

单击安装

 

 

 

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

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

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

 

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

 

 

 

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

 

2、 安装ORACLE数据库

$./runInataller

 

单击“下一步”

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

确定安装路径,这里安装路径要和.bash_profile中的ORACLE_HOME值一致,单击“下一步”

选中集群内所有节点,单击“下一步”

单击“下一步”

选择仅安装数据库软件,单击“下一步”

单击安装

 

 

此时安装途中向导将提示先以root用户的身份在每个节点上执行上述脚本,执行完毕后在点击“确定”。执行效果如下:

 

以上安装完毕后,下面进行ORACLE NET配置

3、配置Oracle Net

oracle用户的身份执行netca,配置Oracle Net

选择集群配置,单击“下一步”

选择全部节点,单击“下一步”

选择监听程序配置,单击“下一步”

选择添加,单击“下一步”

使用默认的监听程序名——LISTENER,单击“下一步”

 

选择TCP协议,单击“下一步”

 

使用默认的监听端口——1521,单击“下一步”

选择否,单击“下一步”

单击“下一步”

选择命名方法配置,单击“下一步”

选择本地命名,单击“下一步”

单击“下一步”

单击完成,结束Oracle Net的配置

 

八、    DBCAASM创建数据库

oracle用户的身份运行dbca,建立集群数据库

 

选择Oracle Real Application Cluster数据库,单击下一步

 

选择创建数据库,单击下一步

选中集群中的所有节点,单击下一步

 

选择一般用途的数据库模版,单击下一步

 

输入全局数据库名以及SID,在这里都输入“oradb,单击下一步

 

使用默认选项,然后单击下一步

输入数据库用户口令,先输入统一口令“sys”,然后单击下一步

 

选择自动存储管理(ASM),单击“下一步”

输入ASM实例的SYS用户口令,指定初始化参数文件的类型,单击“下一步”

 

安装向导将提示开始建立并启动ASM实例,单击确定

 

 

正在创建ASM实例

 

出来磁盘组选择,由于是新安装,没有可用磁盘组,因此这里选择新建,创建ASM磁盘组

这里系统自动将我们前面准备的ASM磁盘显示出来,将冗余模式设为常规,选择前面创建的VOL1VOL2磁盘,磁盘组命名为dskgrp1,然后单击确定

注意:如果冗余模式选择“高”,则要求三个裸设备构成一个磁盘组,由于我们这里是外接磁盘阵列柜,冗余模式可以选择为外部,那么可以只需要1ASM磁盘组成一磁盘组

 

系统开始创建ASM磁盘组

已经创建好的磁盘组,就会显示在可用磁盘组里,选中,然后单击下一步

使用默认值,然后单击下一步

如果不需要配置Flashback,单击下一步,否则需要指定快速恢复区,

这里设定4G的快速恢复区后单击下一步

选择安装示例方案,单击下一步

单击添加按钮,增加服务

输入服务名oradb,单击确定

将两个实例均设为首选,TAF策略设为基本,单击下一步

调整内存大小到合适比例,字符集选择simplifed Chinese.ZHS16GBK,单击下一步

调整重做日志大小均为100M,然后单击下一步

把“生成数据库创建脚本”选中,然后单击完成

此时,安装向导将向你确认数据库的配置信息,单击确定开始建立数据库

正在创建数据库

出现该界面表示数据库创建完毕,单击退出,结束数据库创建

九、    配置客户端

要在客户端的hosts文件中写入相应的RAC(内容与前面etc/hosts一致)地址,对于Windows系统,路径为 %system32%/drivers/etc/hosts。编辑hosts文件,内容与前面etc/hosts一致

客户端配置tnsnames.ora文件,内容如下:

oradb =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (LOAD_BALANCE=ON)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.2)(PORT = 1521))

    )

(CONNECT_DATA =

# 下面的部分应该根据你安装RAC是配置进行相应的改动

      (SERVICE_NAME = oradb)    

      (FAILOVER_MODE =

             (TYPE=SELECT)

              (MODE=BASIC)

              (RETRY=3)     // 重试3

              (DEALY=5)     // 重试间隔5

      )

    )

  )

说明:http:// node1:1158/em即可登陆到Database Control,启动Database Control用如下命令 $emctl start dbconsole

十、    测试RAC

以下 SQL 查询可以用来查看一个会话的故障切换类型、故障切换方法和是否发生了故障切换。在这个例子中自始至终使用这个查询。

Sql>COLUMN instance_name    FORMAT a13
Sql>COLUMN host_name        FORMAT a9
Sql>COLUMN failover_method  FORMAT a15
Sql>COLUMN failed_over      FORMAT a11
Sql>SELECT instance_name,host_name,
         NULL AS failover_type,NULL AS failover_method,
         NULL AS failed_over
         FROM v$instance
UNION
         SELECT NULL,NULL,failover_type,failover_method,failed_over
         FROM v$session
        WHERE username = 'SYSTEM';
 客户端计算机中,以SYSTEM用户登录集群化数据库: 
C:/> sqlplus system/sys@oradb
Sql>COLUMN instance_name    FORMAT a13
Sql>COLUMN host_name        FORMAT a9
Sql>COLUMN failover_method  FORMAT a15
Sql>COLUMN failed_over      FORMAT a11
Sql>SELECT instance_name,host_name,
         NULL AS failover_type,NULL AS failover_method,
         NULL AS failed_over
         FROM v$instance
UNION
         SELECT NULL,NULL,failover_type,failover_method,failed_over
         FROM v$session
         WHERE username = 'SYSTEM';
 
 
INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------- ------------- --------------- -----------
oradb1         oradb1
SELECT         BASIC           NO

不注销上面的 SQL*Plus 会话!

我们已经运行了上面的查询,现在到节点jmrac1上使用 abort 选项来关闭该节点上的oradb1 实例。要执行这一操作,我们可以使用 srvctl 命令行实用程序,如下所示:

# su - oracle
$ srvctl status database -d jmdb
Instance oradb1 is running on node oradb1
Instance oradb2 is running on node oradb2
$ srvctl stop instance -d oradb -i oradb1 -o abort
$ srvctl status database -d oradb
Instance oradb1 is not running on node oradb1
Instance oradb2 is running on node oradb2

现在让我们返回到我们的 SQL 会话,然后重新运行缓冲中的 SQL 语句:

Sql>SELECT instance_name,host_name,
         NULL AS failover_type,NULL AS failover_method,
         NULL AS failed_over
         FROM v$instance
UNION
         SELECT NULL,NULL,failover_type,failover_method,failed_over
         FROM v$session
         WHERE username = 'SYSTEM';
 
INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------- ------------- --------------- -----------
oradb2         oradb2
SELECT        BASIC           YES
 
SQL> exit

从上面的演示中,可以看到上述会话现在已经被通明切换到了oradb2的实例 oradb2

 

十一、       集群基本命令

               停止 Oracle RAC 10g 环境

               第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。             最后,关闭节点应用程序(虚拟 IPGSDTNS 监听器和 ONS)。

        $ export ORACLE_SID=oradb1
        $ emctl stop dbconsole
        $ srvctl stop instance -d oradb -i oradb1
        $ srvctl stop asm -n oradb1
        $ srvctl stop nodeapps -n oradb1

               启动 Oracle RAC 10g 环境

               第一步是启动节点应用程序(虚拟 IPGSDTNS 监听器和 ONS)。当成功启                动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)     以及企业管理器数据库控制台。

        $ export ORACLE_SID=oradb2
        $ srvctl start nodeapps -n oradb1
        $ srvctl start asm -n oradb1
        $ srvctl start instance -d oradb -i oradb1
        $ emctl start dbconsole

               使用 SRVCTL 启动/停止所有实例

               $ srvctl start database -d oradb1

        $ srvctl stop database -d oradb1

               所有实例和服务的状态

        $ srvctl status database -d oradb

单个实例的状态

$ srvctl status instance -d oradb -i oradb2

在数据库全局命名服务的状态

$ srvctl status service -d oradb -s oradb

特定节点上节点应用程序的状态

$ srvctl status nodeapps -n oradb1

ASM 实例的状态

$ srvctl status asm -n oradb1

列出配置的所有数据库

$ srvctl config database

显示 RAC 数据库的配置

$ srvctl config database -d oradb

显示指定集群数据库的所有服务

$ srvctl config service -d oradb

显示节点应用程序的配置 -VIPGSDONS、监听器)

$ srvctl config nodeapps -n oradb 1 -a -g -s -l
VIP exists.:/vip- oradb 1/192.168.1.200/255.255.255.0/eth0:eth1
GSD exists.
ONS daemon exists.
Listener exists.

显示 ASM 实例的配置

$ srvctl config asm -n oradb1
+ASM1 /home/oracle/product/10.2.0/db_1