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) 增加ORACLE用户及其组
命令:
/usr/sbin/groupadd oinstall |
这里需要注意的,用户 ID 和组 ID 在所有集群主机上必须相同。
设置 oracle 帐户的口令:
# passwd oracle |
(2)创建挂载点
以 root 用户身份执行以下命令:
mkdir -p /u01/app/oracle |
(3)配置内核参数
以 root 用户身份登录并在每个主机上配置 Linux 内核参数。
cat >> /etc/sysctl.conf >>EOF |
内核参数具体数值请根据系统环境自行设置,本例为测试环境。
(4)配置LIMIT
Oracle 建议对每个 Linux 帐户可以使用的进程数量和打开文件的数量设置限制。要进行这些更改,以 root 用户身份剪切和粘贴下列命令。
cat >> /etc/security/limits.conf >>EOF |
(5)配置 Hangcheck 计时器所有 RHEL 版本:
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 |
(6)配置 /etc/hosts
有些 Linux 发行版本将主机名与回送地址 (127.0.0.1) 相关联。 如果出现这种情况,则从回送地址中删除主机名。
用于此指南的 /etc/hosts 文件:
127.0.0.1 localhost.localdomain localhost |
此处需要注意的问题是回环地址中不要出现主机名称,再一个是本机的公网IP必须和VIP在一个网段(也有可能是局域网),在设置IP时,同网段的IP网关一定要是同一个。
以上六步操作需要在所有节点上操作。
(7)为用户等效性配置 SSH
在每个主机上,以 oracle 用户身份登录:
$ mkdir ~/.ssh |
这些操作会在/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,因此要谨慎地计划分区布局。 下表显示了本指南中用于原始分区示例的分区布局。
分区 类型 大小 1 主分区 50 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] |
(注意: RHEL4 对原始设备的实施方法与以前的版本不同。 每次启动原始设备服务时,都会重新创建 /dev/raw/raw* 设备文件,删除任何现有的非默认所有权或权限。 当原始设备与 oracle 搭配使用时,有几种方法可以解决这个问题。 最简单的方法是将 oracle 帐户添加到 disk 组(例如: usermod –G dba,disk oracle)。 或者,您可以创建一个启动脚本,在系统启动时更改原始设备的所有权和权限。)
重新启动原始设备服务。
RHEL2/3 |
下表显示了每个原始设备以及我们要为其关联的文件名。 (实际上,我希望将 spfile 和口令文件与 $ORACLE_HOME/dbs 中的位置相关联,但是由于在安装的这个阶段该目录尚不存在,因此我暂时选择了 /u01/oradata/dbname 中的位置。 在安装完成后,如果您愿意,可以将这些原始设备的符号链接重新定位到 $ORACLE_HOME/dbs 目录。)
目的 原始设备 文件名 |
以 root 用户身份创建用于符号链接的目录。 在本示例中,数据库名是 gemni.
CRS 文件
mkdir -p /u02/oracrs |
数据库文件
mkdir -p /u01/oradata/gemni /u02/oradata/gemni |
现在以oracle用户登陆只需创建目录和链接即可:
ln -s /dev/raw/raw1 /u02/oracrs/vote.crs |
最后,我们需要为数据库配置助手 (DBCA) 创建原始设备映射文件。 此文件将您已创建的原始设备与 DBCA 将要用于创建数据库的名称相关联。 剪切和粘贴以下各行,为本示例创建映射文件:
cat > $HOME/gemni_raw.conf << 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 |
设置 ORACLE_BASE 和 ORACLE_HOME 环境变量:
RHEL4 and SLES9 Only export ORACLE_BASE=/u01/app/oracle |
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 |
Once CRS 已安装并运行;现在可以安装 oracle RAC 软件的其余部分了。
4.安装ORALCE软件,创建数据库
设置 ORACLE_BASE 和 ORACLE_HOME 环境变量:
export ORACLE_BASE=/u01/app/oracle |
仅针对 RHEL4: oracle 10g OUI 将检查操作系统版本以确认是否支持该版本。 到 oracle 数据库 10.1.0.3 为止,安装程序尚不支持 RHEL4. 作为一种变通方法,在运行 runInstaller 之前,按照以下步骤操作。
cp /etc/redhat-release /etc/redhat-release.orig |
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) ) ) ) |