分类: Oracle
2009-01-17 20:31:53
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)
)
)
)