Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3386367
  • 博文数量: 631
  • 博客积分: 10716
  • 博客等级: 上将
  • 技术积分: 8397
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-01 22:35
文章分类

全部博文(631)

文章存档

2020年(2)

2019年(22)

2018年(4)

2017年(37)

2016年(22)

2015年(1)

2013年(12)

2012年(20)

2011年(19)

2010年(20)

2009年(282)

2008年(190)

分类: Oracle

2009-01-17 20:31:53

时至今日,经过反复的试验终于配置RAC成功,现在把详细的操作步骤贴出来,供大家参考,希望能让同样对RAC的存在困惑的兄弟少走一些不必要的弯路,也希望朋友们发现有不足之处多多指正,共同进步。

      1.环境:VMWARE SERVER 1.7,ORALCE 10G,平台为红帽4企业版,基于RAW设备的的RAC,磁盘阵列用模拟共享存储替代,节点为两个。

节点信息:IP                               PRIVIP                                         VIP                                          HOSTNAME

       123.125.17.2                     192.168.100.2                      123.125.17.6                                RAC-01

       123.125.17.4                     192.168.100.3                       123.125.17.8                               RAC-02

      2.配置系统,包括,和创建共享存储步骤省略,只要相应的包要装齐全句OK,相信大家既然能玩RAC,这些肯定不在话下,接下来是系统相关的操作:

    (1)  增加用户及其组

    :
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba oracle
id oracle

这里需要注意的,用户 ID 和组 ID 在所有集群主机上必须相同。

oracle 帐户的口令:
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.

(2)创建挂载点

以 root 用户身份执行以下命令:
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

(3)配置内核参数

以 root 用户身份登录并在每个主机上配置 内核参数。
cat >> /etc/sysctl.conf >>EOF
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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
EOF
/sbin/sysctl -p

内核参数具体数值请根据系统自行设置,本例为测试环境。

(4)配置LIMIT

Oracle 建议对每个 Linux 帐户可以使用的进程数量和打开的数量设置限制。要进行这些更改,以 root 用户身份剪切和粘贴下列命令。
cat >> /etc/security/limits.conf >>EOF
oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536
EOF

(5)配置 Hangcheck 计时器
所有 RHEL 版本:
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
cat >> /etc/rc.d/rc.local >>EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF

(6)配置 /etc/hosts
 
有些 Linux 发行版本将主机名与回送地址 (127.0.0.1) 相关联。 如果出现这种情况,则从回送地址中删除主机名。
 
用于此指南的 /etc/hosts 文件:
127.0.0.1        localhost.localdomain   localhost
192.168.100.2  rac-priv01
192.168.100.3  rac-priv02   
123.125.17.2    rac-01
123.125.17.4    rac-02
123.125.17.6    rac-vip01    
123.125.17.8    rac-vip02

此处需要注意的问题是回环地址中不要出现主机名称,再一个是本机的公网IP必须和VIP在一个网段(也有可能是),在设置IP时,同网段的IP网关一定要是同一个。      

以上六步操作需要在所有节点上操作。

(7)为用户等效性配置 SSH

在每个主机上,以 oracle 用户身份登录:

$ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh-keygen -t rsa

这些操作会在/home/oracle/.ssh/生成id_dsa.pub文件,我们把id_dsa.pub,复制到一个名称为authorized_keys(这个文件需要自己先创建)

以下l两步操作只在RAC-01上

ssh rac-01 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

ssh rac-02 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle//.ssh/authorized_keys

把生成的authorized_keys拷贝到RAC-02的/home/oracle/.ssh/下

(8)测试连通性
 
如果一切均设置正确,则您现在就可以使用 ssh 在其他集群主机上不必输入口令而登录、执行和复制文件了。 通过在远程集群主机上运行诸如 date 等简单命令来验证用户等效性:
ssh rac-02 date

ssh rac-01 date

ssh rac-priv01 date

ssh rac-priv02 date

以上SSH命令需要在两个节点上依次执行

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

 (9)准备共享磁盘(原始设备)在此我们为两个共享磁盘,SDB,SDC

在集群文件系统和 ASM 可用之前,原始分区是为 Oracle RAC 配置共享磁盘存储的唯一。 由于这种经历长时间的考验,因此它们构成了一个构建 RAC 集群的非常坚实的平台。
 
但是,原始分区有很多缺点。 主要是它们必须接受每个磁盘可使用 15 个分区的限制、Linux 强制的 255 个原始设备的限制以及额外的任务和所需计划。 对于单实例环境而言,逻辑卷管理器 (LVM) 可以减少管理工作并在存储布局方面提供更多灵活性。 不幸的是,LVM 不能识别集群,因此在 RAC 环境中不支持它的使用。
 
在使用原始分区时,通常最好选择一组标准的分区大小,即某个基本大小的倍数。 这就在存储布局方面提供了更大的灵活性,并且在需要重新调整 I/O 时便于将分区重新配给其他磁盘。我为本示例选择了标准的分区大小 50MB、200MB、600MB 和 1200MB。
 
为进一步简化管理,每个共享磁盘将拥有相同的分区布局,其中包含某种标准化的分区大小。 在单个磁盘上能够创建的可用分区的最大数量是 15,因此要谨慎地计划分区布局。 下表显示了本指南中用于原始分区示例的分区布局。
分区 类型 大小
SDB的分区的规划

1 主分区 50
2 主分区 50
3 主分区 200
4 扩展分区 -
5 逻辑型 200
6 逻辑型 200
7 逻辑型 200
8 逻辑型 200
9 逻辑型 200
10 逻辑型 600
11 逻辑型 600
12 逻辑型 600
13 逻辑型 1200
14 逻辑型 1200
15 逻辑型 任意
16 逻辑型 任意

SDC分区的划分

 1 主分区 600

2 主分区   600

3 主分区  600

Syncing disks.

以上分区操作只需在一个节点上进行即可。
在其他主机上运行 partprobe 使内核与所做的更改同步:
# partprobe
下表列出了最小的 RAC 数据库所需的每个分区。 最小分区大小已经映射到为本示例所选择的标准分区大小。 在本示例中,使用了两个共享磁盘 (/dev/sdb and /dev/sdc)。 (请注意,SLES8 为原始设备使用了一种不同的命名标准。
 
目的 最小大小 (MB) 标准化大小 (MB) 磁盘设备 原始设备
Oracle CRS Voting 20 50 /dev/sdb1 /dev/raw/raw1
SPFILE           50      /dev/sdb2 /dev/raw/raw2
Oracle Cluster Registry 100 200 /dev/sdb3 /dev/raw/raw3
EXAMPLE 表空间 160 200 /dev/sdb5 /dev/raw/raw5
USERS 表空间 120 200 /dev/sdb6 /dev/raw/raw6
控制文件 1 110 200 /dev/sdb7 /dev/raw/raw7
重做日志 1_1 120 200 /dev/sdb8 /dev/raw/raw8
重做日志 1_2 120 200 /dev/sdb9 /dev/raw/raw9
UNDOTBS1 表空间 500 600 /dev/sdb10 /dev/raw/raw10
SYSTEM 表空间 500 600 /dev/sdb11 /dev/raw/raw11
TEMP 表空间 250 600 /dev/sdb12 /dev/raw/raw12
SYSAUX 表空间 800 1200 /dev/sdb13 /dev/raw/raw13
UNDOTBS2 表空间 500 600 /dev/sdb14 /dev/raw/raw14
重做日志 2_1 120 200 /dev/sdb15      /dev/raw/raw15
口令文件 5 50 /dev/sdc1 /dev/raw/raw16
控制文件 2 110 200 /dev/sdc2 /dev/raw/raw17
重做日志 2_2 120 200 /dev/sdc3 /dev/raw/raw1

以下命令需要在两个节点上操作

将以下各行添加到每个集群节点上的 /etc/sysconfig/rawdevices:
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2
/dev/raw/raw3 /dev/sdb3
/dev/raw/raw5 /dev/sdb5
/dev/raw/raw6 /dev/sdb6
/dev/raw/raw7 /dev/sdb7
/dev/raw/raw8 /dev/sdb8
/dev/raw/raw9 /dev/sdb9
/dev/raw/raw10 /dev/sdb10
/dev/raw/raw11 /dev/sdb11
/dev/raw/raw12 /dev/sdb12
/dev/raw/raw13 /dev/sdb13
/dev/raw/raw14 /dev/sdb14
/dev/raw/raw15 /dev/sdb15
/dev/raw/raw16 /dev/sdc1
/dev/raw/raw17 /dev/sdc2
/dev/raw/raw18  /dev/sdc3

为每个节点上的 CRS 原始设备设置所有权和权限。 这些文件的所有权和权限必须按照所示内容进行准确地设置(安装指南和版本说明都是不正确的)。 如果不这样做,则导致 CRS 安装失败。 如果需要在 CRS 安装失败后进行清理,请参见 MetaLink 说明:239998.1。
chown root:oinstall /dev/raw/raw[12]
chmod 660 /dev/raw/raw[12]
为每个节点上的数据库原始设备设置所有权和权限:
chown oracle:oinstall /dev/raw/raw[3-9]
chown oracle:oinstall /dev/raw/raw1[0-7]
chmod 660 /dev/raw/raw[3-9]
chmod 660 /dev/raw/raw1[0-7]
(注意: RHEL4 对原始设备的实施方法与以前的版本不同。 每次启动原始设备服务时,都会重新创建 /dev/raw/raw* 设备文件,删除任何现有的非默认所有权或权限。 当原始设备与 Oracle 搭配使用时,有几种方法可以这个问题。 最简单的方法是将 oracle 帐户添加到 disk 组(例如: usermod –G dba,disk oracle)。 或者,您可以创建一个启动,在系统启动时更改原始设备的所有权和权限。)
重新启动原始设备服务。
RHEL2/3
/sbin/service rawdevices restart

下表显示了每个原始设备以及我们要为其关联的文件名。 (实际上,我希望将 spfile 和口令文件与 $ORACLE_HOME/dbs 中的位置相关联,但是由于在安装的这个阶段该目录尚不存在,因此我暂时选择了 /u01/oradata/dbname 中的位置。 在安装完成后,如果您愿意,可以将这些原始设备的符号链接重新定位到 $ORACLE_HOME/dbs 目录。)
 
目的   原始设备                                         文件名
oracle CRS voting /dev/raw/raw1 /u02/oracrs/vote.crs
SPFILE /dev/raw/raw2 u01/oradata/gemni/spfilegemni.ora
Oracle Cluster Registry /dev/raw/raw3 /u02/oracrs/ocr.crs
EXAMPLE 表空间 /dev/raw/raw5 /u02/oradata/gemni/example_01.dbf
USERS 表空间 /dev/raw/raw6 /u02/oradata/gemni/users_01.dbf
控制文件 1 /dev/raw/raw7 /u01/oradata/gemni/control.ctl
重做日志 1_1 /dev/raw/raw8 /u01/oradata/gemni/redo1_1.log
重做日志 1_2 /dev/raw/raw9 /u01/oradata/gemni/redo1_2.log
UNDOTBS1 表空间 /dev/raw/raw10 /u02/oradata/gemni/undo1_01.dbf
SYSTEM 表空间 /dev/raw/raw11 /u02/oradata/gemni/system_01.dbf
TEMP 表空间 /dev/raw/raw12 /u02/oradata/gemni/temp_01.dbf
SYSAUX 表空间 /dev/raw/raw13 /u02/oradata/gemni/sysaux_01.dbf
UNDOTBS2 表空间 /dev/raw/raw14 /u02/oradata/gemni/undo2_01.dbf
重做日志 2_1 /dev/raw/raw15 /u01/oradata/gemni/redo2_1.log
口令文件 /dev/raw/raw16 /u01/oradata/gemni/orapwgemni
控制文件 2 /dev/raw/raw17 /u02/oradata/gemni/control02.ctl
重做日志 2_2 /dev/raw/raw18 /u01/oradata/gemni/redo2_2.log
 
以 root 用户身份创建用于符号链接的目录。 在本示例中,数据库名是 gemni。

CRS 文件
mkdir -p /u02/oracrs
chown -R oracle:oinstall /u02/oracrs
chmod -R 775 /u02/oracrs
数据库文件

mkdir -p /u01/oradata/gemni /u02/oradata/gemni
chown -R oracle:oinstall /u0[12]/oradata
chmod -R 775 /u0[12]/oradata
 
现在以oracle用户登陆只需创建目录和链接即可:

ln -s /dev/raw/raw1 /u02/oracrs/vote.crs
ln -s /dev/raw/raw2 /u01/oradata/gemni/spfilegemni.ora
ln -s /dev/raw/raw3 /u02/oracrs/ocr.crs
ln -s /dev/raw/raw5 /u02/oradata/gemni/example_01.dbf
ln -s /dev/raw/raw6 /u02/oradata/gemni/users_01.dbf
ln -s /dev/raw/raw7 /u01/oradata/gemni/control.ctl
ln -s /dev/raw/raw8 /u01/oradata/gemni/redo1_1.log
ln -s /dev/raw/raw9 /u01/oradata/gemni/redo1_2.log
ln -s /dev/raw/raw10 /u02/oradata/gemni/undo1_01.dbf
ln -s /dev/raw/raw11 /u02/oradata/gemni/system_01.dbf
ln -s /dev/raw/raw12 /u02/oradata/gemni/temp_01.dbf
ln -s /dev/raw/raw13 /u02/oradata/gemni/sysaux_01.dbf
ln -s /dev/raw/raw14 /u02/oradata/gemni/undo2_01.dbf
ln -s /dev/raw/raw15 /u01/oradata/gemni/redo2_1.log
ln -s /dev/raw/raw16 /u01/oradata/gemni/orapwgemni
ln -s /dev/raw/raw17 /u02/oradata/gemni/control02.ctl
ln -s /dev/raw/raw18 /u01/oradata/gemni/redo2_2.log

 

最后,我们需要为数据库配置助手 (DBCA) 创建原始设备映射文件。 此文件将您已创建的原始设备与 DBCA 将要用于创建数据库的名称相关联。 剪切和粘贴以下各行,为本示例创建映射文件:

cat > $HOME/gemni_raw.conf << EOF
system=/u02/oradata/gemni/system_01.dbf
sysaux=/u02/oradata/gemni/sysaux_01.dbf
example=/u02/oradata/gemni/example_01.dbf
users=/u02/oradata/gemni/users_01.dbf
temp=/u02/oradata/gemni/temp_01.dbf
undotbs1=/u02/oradata/gemni/undo1_01.dbf
undotbs2=/u02/oradata/gemni/undo2_01.dbf
redo1_1=/u01/oradata/gemni/redo1_1.log
redo1_2=/u01/oradata/gemni/redo1_2.log
redo2_1=/u01/oradata/gemni/redo2_1.log
redo2_2=/u01/oradata/gemni/redo2_2.log
control1=/u01/oradata/gemni/control.ctl
control2=/u02/oradata/gemni/control02.ctl
spfile=/u01/oradata/gemni/spfilegemni.ora
pwdfile=/u01/oradata/gemni/orapwgemni
EOF

然后将 DBCA_RAW_CONFIG 环境变量导出并指向此文件:
export DBCA_RAW_CONFIG=$HOME/gemni_raw.conf

现在您已准备就绪,可以安装 Oracle CRS、安装 Oracle 数据库软件并创建 Oracle RAC 数据库了。

3。安装ORACLE CRS(即CLUSTER软件)

在此需要注意的有两点,一两个节点系统时间一定要相同,不然会报错,二一定要建立用户等效性并在次会话执行安装,不然也会报错,三再以ROOT用户执行脚本时一定要安顺序一个节点执行完再一个节点,切勿同时执行。

以 oracle 用户身份登录并建立节点间的用户等效性:
exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add
Enter passphrase for /home/oracle/.ssh/id_rsa:
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
设置 ORACLE_BASE 和 ORACLE_HOME 环境变量:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/crs_1

RHEL4 and SLES9 Only
export LD_ASSUME_KERNEL=2.4.21

1. Welcome;单击 Next
2. Specify Inventory Directory and Credentials — 默认值应该就是正确的;确保 inventory 目录位于 ORACLE_BASE 目录中(例如: /u01/app/oracle/oraInventory)并且组是“oinstall”,在安装节点 (ds1) 上运行 orainstRoot.sh(确保在 /etc/hosts 中而不仅仅是在 DNS 中配置了您的主机)
3. Specify File Locations — 确认默认值后继续
4. Language Selection — 确认默认值后继续
5. Cluster Configuration — 输入集群名(或接受默认的“crs”);
 
 
6. Private Interconnect Enforcement — 为每个接口指定接口类型(公共、专用或“不使用”)
 
 
7. Oracle Cluster Registry — 在 clusterSpecify OCR Location 中(例如: /u02/oracrs/ocr.crs)为每个节点输入公共节点名和专用节点名
8. Voting Disk — 输入 voting disk 名(例如: /u02/oracrs/vote.crs)
9. 在集群的其余节点上运行 orainstRoot.sh
10. Summary — 在出现提示时单击 Install,从安装节点开始,每次在一个节点上运行 Oracle CRS 主目录中的 root.sh(例如: /u01/app/oracle/product/10.1.0/crs_1/root.sh)。 不要同时运行这些脚本。 等一个脚本结束后再启动另一个。
CRS 安装结束
从 $ORACLE_BASE/product/10.1.0/crs_1/bin 目录中运行 olsnodes 验证安装已成功;例如:
$ cd $ORACLE_BASE/product/10.1.0/crs_1/bin
$ olsnodes
ds1
ds2
Once CRS 已安装并运行;现在可以安装 Oracle RAC 软件的其余部分了。

4.安装ORALCE软件,创建数据库

设置 ORACLE_BASE 和 ORACLE_HOME 环境变量:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
仅针对 RHES4 和 SLES9
export LD_ASSUME_KERNEL=2.4.21
仅针对 RHEL4: Oracle 10g OUI 将检查操作系统版本以确认是否支持该版本。 到 Oracle 数据库 10.1.0.3 为止,安装程序尚不支持 RHEL4。 作为一种变通方法,在运行 runInstaller 之前,按照以下步骤操作。
cp /etc/redhat-release /etc/redhat-release.orig
cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
1. 从 db CD 运行 runInstaller
2. Welcome — 单击 Next
3. Specify File Locations — 确认默认值后继续
4. Specify Hardware Cluster Installation Mode — 选择 Cluster Installation 并选择集群中的其他节点
5. Select Installation Type — Enterprise Edition
6. Product-specific Prerequisite Checks — 全部选 OK;SLES9 选 OK 以忽略 openmotif-2.1.30-11 警告
7. 选择数据库配置 — 选择“Do not create a starter database”。 (我们将在一个单独的步骤中使用数据库配置助手 (DBCA) 来创建数据库。)
总结
在以 root 用户身份登录时,从安装节点开始,每次在一个主机上运行 Oracle 数据库主目录中的 root.sh(例如: /u01/app/oracle/product/10.1.0/db_1/root.sh)。 不要同时运行这些脚本。 等一个脚本结束后再启动另一个。

5 DBCA创建数据库

$ dbca
1. Welcome — 选择“Oracle Real Application Clusters database”
2. Operations — 创建数据库
3. Node Selection — 单击 Select All(ds1 和 ds2)
4. Database Templates — 通用
5. Database Identification — 全局数据库名: gemni.orademo.org
6. Management Options — 利用 Enterprise Manager 配置数据库;使用数据库控制进行数据库管理
7. Database Credentials — 为所有帐户使用相同的口令;输入口令并再次确认
8. Storage Options — 原始设备;指定原始设备映射文件 (/home/oracle/gemni_raw.conf)
9. Recovery Configuration — 单击 Next
10. Database Content — 示例
11. 初始化参数 — 内存、典型
12. Database Storage — 单击 Next
13. Create Options — 选择“Create Database”
14. Summary — 检查总结信息并单击 OK

至此,安装完毕,可以从客户端连接节点测试。以下为客户端的连接RAC节点TNSNAME.ORA文件的内容

 

GEMNI =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 123.125.17.6)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 123.125.17.8)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (FAILOVER = ON)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = gemni.ora.org)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
      )
    )
  )

阅读(1776) | 评论(0) | 转发(0) |
0

上一篇:Oracle9i学习笔记

下一篇:BGP的选路原则

给主人留下些什么吧!~~