Oracle 10.2 RAC for RHEL 4

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、   硬件说明

 

服务器名

 

项目名称

服务器 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.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 系统相关规划

1 、操作系统安装规 划

 

服务器名

项 目名称

RAC 节点 1

RAC 节点 2

硬件型号

 

 

操作系统

Redhat as 4.0 u4 32 位)

Redhat as 4.0 u4 32 位)

服务器主机名

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 、节点 2 ORACLE 安装规划、注册表规划 (OCR) 、表决磁盘规划 (VOTING DISK)

 

服务器名

 

项目名称

服务器 1 (工作机)

服务器 2 (备份机)

操作系统

Redhat as 4.0 u14 32 x86

Redhat as 4.0 u4 32 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.0 32 位)

数据库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 不能容

忍节点间时钟不同步,否则 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 PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/l ocal/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 文件的回送地址中不包含节点名 dbserver 1 dbserver 2 。如 果机器名出现在回送地址条目中,如下所示:

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

最后分区如下

[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 命令手册

 

              由于我们把 oracle OCR(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 上,当系统重启后,裸设备的属组信息

将被还原为系统默认值( 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 库驱动程序的启动时 属性。以下问题将确定在启动时是否加载驱动程序以及它将拥有的权限。当前值将显示在方括号( “[]” )中。按 <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

 

七、    安装 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

 

 

 

单击“下一步”

 

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

 

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

 

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

 

单击“下一步”

 

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

 

单击安装

 

 

 

 

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

 

 

 

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

3 、配置 Oracle Net

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

 

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

 

选择否,单击“下一步”

 

单击“下一步”

 

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

 

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

 

单击“下一步”

 

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

 

八、     DBCA ASM 创建数据库

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

 

 

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

 

 

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

 

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

 

 

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

 

 

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

 

 

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

 

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

 

 

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

 

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

 

 

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

 

 

 

正在创建 ASM 实例

 

 

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

 

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

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

 

 

系统开始创建 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 实例。              最后,关闭节点应用程序(虚拟 IP GSD TNS 监听器和 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 环境

               第一步是启动节点应用程序(虚拟 IP GSD TNS 监听器和 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 

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

$ 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 

你可能感兴趣的:(oracle,数据库,服务器,database,library,磁盘)