当前位置:文档之家› Linux下oracle10g rac安装配置说明

Linux下oracle10g rac安装配置说明

Linux 下ORACLE10g rac的安装及配置:

第 1 部分:确认 Linux 软硬件环境
资源需要:
至少1024 MB物理内存

1024-2048 需1.5倍的交互空间
2048-8192 需1倍的交互空间
8192- 需0.75倍的交互空间

至少400 MB /tmp 临时目录空间

oracle软件需要1.5 GB 到 3.5 GB 磁盘空间
默认数据库需要1.2 GB
要求内核2.6.9-42以上(as4update4)

查看系统资源相关语句:
cat /etc/issue
uname -r

grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo

free

df -k /tmp

df -k

disable follow service:
chkconfig --level 2345 pcmcia off
chkconfig --level 2345 kudzu off
chkconfig --level 2345 isdn off
chkconfig --level 2345 sendmail off
chkconfig --level 2345 rhnsd off
chkconfig --level 2345 cups off
chkconfig --level 2345 cups-config-daemon off
chkconfig --level 2345 cpuspeed off
chkconfig --level 2345 gpm off
chkconfig --level 2345 apmd off
chkconfig --level 2345 lm_sensors off
chkconfig --level 2345 mdmonitor off

集群中所有计算机上配置时间服务
时间服务器配置:
vi /etc/ntp.conf,时间服务器用uas两台机器,uas两台机器的ntp.conf中server配置:
server https://www.doczj.com/doc/8e12284712.html,
server https://www.doczj.com/doc/8e12284712.html,
server https://www.doczj.com/doc/8e12284712.html,
server https://www.doczj.com/doc/8e12284712.html,

service ntpd start
chkconfig --level 2345 ntpd on
确认:ntpq -p


安装前的检查和准备工作:
rpm -q make gcc compat-db
make-3.80-5
gcc-3.4.3-9.EL4
compat-db-4.1.25-9

p4198954_21_linux.zip 在运行 runInstaller 之前打.
rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm (p4198954_21_linux.zip)

compat-oracle-rhel4-1.0-5.i386.rpm需要安装的组件:
rpm -ivh /mnt/cdrom3/RedHat/RPMS/glibc-kernheaders-2.4-9.1.87.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/glibc-headers-2.3.4-2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/glibc-devel-2.3.4-2.i386.rpm
rpm -ivh /mnt/cdrom4/RedHat/RPMS/compat-gcc-32-3.2.3-47.3.i386.rpm
rpm -ivh /mnt/cdrom2/RedHat/RPMS/compat-libstdc++-33-3.2.3-47.3.i386.rpm
rpm -ivh /mnt/cdrom4/RedHat/RPMS/compat-gcc-32-c++-3.2.3-47.3.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/compat-libgcc-296-2.96-132.7.2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/compat-libstdc++-296-2.96-132.7.2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/gcc-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/gcc-c++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom2/RedHat/RPMS/libstdc++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/libstdc++-devel-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom2/RedHat/RPMS/libstdc++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/gcc-c++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/libaio-0.3.102-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/libaio-devel-0.3.102-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/openmotif21-2.1.30-11.RHEL4.2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/zlib-devel-1.2.1.2-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/freetype-devel-

2.1.9-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/fontconfig-devel-2.2.3-7.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/pkgconfig-0.15.0-3.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/xorg-x11-devel-6.8.1-23.EL.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm

备用命令:
mkdir /mnt/200
mkdir /mnt/cdrom1
mkdir /mnt/cdrom2
mkdir /mnt/cdrom3
mkdir /mnt/cdrom4
mount -t smbfs -o username=dist,password=dist123456 //172.16.66.200/public /mnt/200
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc1.iso /mnt/cdrom1
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc2.iso /mnt/cdrom2
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc3.iso /mnt/cdrom3
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc4.iso /mnt/cdrom4

--------------------------------------------------------------------------------

第 2 部分: 为 Oracle 配置 Linux
创建 Oracle 组和用户帐户

接下来我们将创建用于安装和维护 Oracle 10g 软件的 Linux 组和用户帐户。
用户帐户名是‘oracle’,组是‘oinstall’和‘dba’。
仅在一个集群主机上以 root 用户身份执行以下命令:
1,创建user/group;
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
passwd oracle
如果nobody用户不存在(id nobody命令查看),则创建:
useradd nobody

id oracle
示例输出:
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

用户 ID 和组 ID 在所有集群主机上必须相同。 使用从 id oracle 命令得到的信息,
在其余集群主机上创建 Oracle 组和用户帐户:
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -m -u 501 -g oinstall -G dba oracle

2,建立oracle安装文件夹:
mkdir -p /u01/app/oracle
chown -R oracle:dba /u01/app/oracle
chmod -R 775 /u01/app/oracle

3, 配置环境变量;
vi /etc/profile
增加下面行:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi


使用Oracle用户登陆:
su oracle
vi ~/.bash_profile
以下是配置文件的内容

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

alias ls="ls -FA"

# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

# Each RAC node must have a unique ORACLE_SID.(i.e. orcl1, orcl2,...)
export ORACLE_SID=orcl1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_A

DMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/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

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LANG=AMERICAN_AMERICA.ZHS16GBK

echo ".bash_profile executed"

4, 设置系统参数;
切换到root用户:
su root
a) 修改/etc/sysctl.conf(vi /etc/sysctl.conf), 添加:

# Shmmax 最大共享内存,官方文档建议是内存的1/2,
# 2G/2=1073741824,1G/2=536870912=512 * 1024 * 1024,268435456,以此类推。
# shmmni系统范围内共享内存段的最大数量
# shmall系统一次可以使用的共享内存总量(以页为单位)。该参数的值始终应至少为:
# ceil(SHMMAX/PAGE_SIZE)
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.shmall = 2097152
# sem 4个参数依次为:
# SEMMSL每个信号集合的最大信号数,Oracle 建议将 SEMMSL 设置为 init.ora 文件
# (适用于 Linux 系统上所有数据库)中的最大 PROCESS 实例参数设置再加上 10。
# 此外,Oracle 建议将 SEMMSL 设置为不小于 100。

# SEMMNS 整个 Linux 系统中的信号(而非信号集)的最大数量。
# Oracle 建议将 SEMMNS 设置为系统上每个数据库的 PROCESSES 实例参数设置之和,
# 加上最大的 PROCESSES 的两倍,最后为系统上的每个 Oracle 数据库加上 10。
# 使用以下计算式确定可以在 Linux 系统上分配的信号的最大数量。它将是以下两者中较小的一个值:
# SEMMNS — 或 — (SEMMSL * SEMMNI) 。

# SEMOPM 控制每个 semop 系统调用可以执行的信号操作数。
# semop 系统调用(函数)能够使用一个 semop 系统调用完成多个信号的操作。
# 一个信号集可以拥有每个信号集中最大数量的 SEMMSL,因此建议将 SEMOPM 设置为等于 SEMMSL。
# Oracle 建议将 SEMOPM 设置为不小于 100。

# SEMMNI 整个 Linux 系统中信号集的最大数量。Oracle 建议将 SEMMNI 设置为不小于 100。

kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
# Default setting in bytes of the socket receive buffer
net.core.rmem_default=262144
# Maximum socket receive buffer size which may be set by using
# the SO_RCVBUF socket option
net.core.rmem_max=262144
# Default setting in bytes of the socket send buffer
net.core.wmem_default=262144
# Maximum socket send buffer size which may be set by using
# the SO_SNDBUF socket option
net.core.wmem_max=262144


修改后运行"/sbin/sysctl -p"命令使得内核改变立即生效;


为 oracle 用

户设置 Shell 限制:
编辑文件:vi /etc/security/limits.conf 加入以下语句:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

编辑文件:vi /etc/pam.d/login 加入以下语句:

session required /lib/security/pam_limits.so
(注意:根据最后一条session规则的注释,应该加在最后一条规则之前)

5.配置 Hangcheck 内核模块参数

vi /etc/modprobe.conf 加入以下语句:
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
通过下面语句可以检测配置是否正确;
modprobe hangcheck-timer
grep Hangcheck /var/log/messages | tail -2

6.编辑/etc/hosts文件
vi /etc/hosts 确保与下面类似:
127.0.0.1 localhost.localdomain localhost

# Public Network - (recommend eth0)
172.16.62.101 rac1 rac1
172.16.62.104 rac2 rac2

# Public Virtual IP (VIP) addresses for rac- (recommend eth0)
172.16.62.11 rac1-vip rac1-vip
172.16.62.14 rac2-vip rac2-vip

# Private Interconnect - (recommend eth1,Private Interconnect using isolation network)
192.168.2.101 rac1-priv rac1-priv
192.168.2.104 rac2-priv rac2-priv

#iscsi connect - (recommend eth2,iscsi using isolation network)
192.168.3.101 rac1-iscsi rac1-iscsi
192.168.3.104 rac2-iscsi rac2-iscsi


您需要为每台服务器提供三个 IP 地址: 一个用于专用网络,一个用于公共网络,
一个用于虚拟 IP 地址。 使用操作系统的网络配置工具来分配专用的和公共的网
络地址。 不要使用操作系统的网络配置工具来分配虚拟 IP 地址;这项工作将会
在 Oracle RAC 软件安装期间由 Oracle 虚拟 IP 配置助手 (VIPCA) 来完成。

关闭iptables
service iptables stop
chkconfig --level 2345 iptables off
--------------------------------------------------------------------------------
第 3 部分: 准备共享磁盘
安装iscsi软驱动
rpm -ivh sysfsu~1.rpm
rpm -ivh sysfsu~2.rpm
rpm -ivh iscsi-~1.rpm

vi /etc/iscsi.conf编辑每个节点
节点一:
# iscsi服务器的服务地址和iscsi用户管理中分配的端口
DiscoveryAddress=172.16.62.100:3266
# TargetName=https://www.doczj.com/doc/8e12284712.html,.nanwang:101
Continuous=no
HeaderDigest=never
DataDigest=never
ImmediateData=yes
MaxDiskCommandTimeout=180
ConnFailTimeout=180
节点儿:
# iscsi服务器的服务地址和iscsi用户管理中分配的端口
DiscoveryAddress=172.16.62.100:3266
# TargetName=https://www.doczj.com/doc/8e12284712.html,.nanwang:104
Continuous=no
HeaderDigest=never
DataDigest=never
ImmediateData=yes
MaxDiskCommandTimeout=180
ConnFailTimeout=180

启动iscsi:
service iscsi start
设置iscsi自启动:
chkconfig --level 345 iscsi on
确定安装和配置正确:
ls -l /dev/sd*
dmesg

分区举例:
fdisk -l

Oracle 共享驱动器

配置
文件系统类型 分区 大小 挂载点 ASM 磁盘组名称 文件类型
OCFS2 /dev/sda1 1GB /u02/oradata/orcl Oracle集群注册表文件 — (~100MB)/CRS 表决磁盘 — (~20MB)
ASM /dev/sda2 50GB ORCL:VOL1 +ORCL_DATA1 Oracle 数据库文件
ASM /dev/sda3 50GB ORCL:VOL2 +ORCL_DATA1 Oracle 数据库文件
ASM /dev/sda4 100GB ORCL:VOL3 +FLASH_RECOVERY_AREA Oracle 闪回恢复区
总计 201GB

# fdisk /dev/sda
Command (m for help):p

Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 36483 293049666 c W95 FAT32 (LBA)


Command (m for help):d
Selected partition 1

Command (m for help):p

Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System


Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-36483, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-36483, default 36483):+1G


Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (124-36483, default 124): 124
Last cylinder or +size or +sizeM or +sizeK (124-36483, default 36483):+50G

Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (6204-36483, default 6204): 6204
Last cylinder or +size or +sizeM or +sizeK (6204-36483, default 36483):+50G

Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (12284-36483, default 12284): 12284
Last cylinder or +size or +sizeM or +sizeK (12284-36483, default 36483):+100G

Command (m for help):p

Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 123 987966 83 Linux
/dev/sda2 124 6203 48837600 83 Linux
/dev/sda3 6204 12283 48837600 83 Linux
/dev/sda4 12284 24442 97667167+ 83 Linux

Command (m for help):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

在创建了所有必要分区后,现在应以 root 用户帐户使用以下语法将分区的更改情况通知给内核:

# partprobe

# fdisk -l /dev/sda
Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 123 987966 83 Linux
/dev/

sda2 124 6203 48837600 83 Linux
/dev/sda3 6204 12283 48837600 83 Linux
/dev/sda4 12284 24442 97667167+ 83 Linux



这一部分介绍了三种准备共享磁盘以用于 RAC 的方法:

1. Oracle 集群文件系统 (OCFS2)
2. 自动存储管理器 (ASM)
3. 原始设备

1.Oracle 集群文件系统 (OCFS2) 第 2 版


OCFS 第 2 版是原始设备的一个优秀替代品。 它不仅更易于管理和维护,而且克服了 255 个原始设备的限制。 但是,它并不是一个通用集群文件系统。 它只能用于存储以下类型的文件:
Oracle 数据文件
联机重做日志
归档重做日志
控制文件
Spfile
CRS 共享文件(Oracle Cluster Registry 和 CRS voting disk)。
有关 OCFS2 的更多背景知识,请阅读 OTN 技术文章“Linux 集群文件系统简介”。

获取 OCFS2

转到 https://www.doczj.com/doc/8e12284712.html,/projects/ocfs2 并下载适于您的 Linux 版本的 OCFS2 RPM。
您需要三个 RPM: ocfs2console、ocfs2-tools 和 ocfs2-kernel-specific 模块。
要确定您所需要的内核专用模块,可使用 uname -r。
$ uname -r
2.6.9-42.ELsmp

对于本示例,我下载了:
ocfs2console-1.2.1-1.i386.rpm
ocfs2-tools-1.2.1-1.i386.rpm
ocfs2-2.6.9-42.ELsmp-1.2.3-1.i686.rpm

安装 OCFS2

# rpm -Uvh ocfs2-tools-1.2.1-1.i386.rpm
# rpm -Uvh ocfs2-2.6.9-42.ELsmp-1.2.3-1.i686.rpm
# rpm -Uvh ocfs2console-1.2.1-1.i386.rpm
Preparing... ########################################### [100%]
1:ocfs-support ########################################### [ 33%]
2:ocfs-tools ########################################### [67%]
3:ocfs-2.4.21-EL-smp ########################################### [100%]
Linking OCFS module into the module path [ OK ]

配置 OCFS2

以 root 用户身份运行 /usr/sbin/ocfs2console图形程序,
选择 [Cluster] -> [Configure Nodes...]。这将启动 OCFS 集群堆栈并显示
“Node Configuration”对话框。做如下配置:
name node ip ip port
rac1 0 172.16.62.101 7777
rac1 1 172.16.62.104 7777

选择“Propogate Configuration”把配置复制至其他客户端或对集群中的每个节点重复上面操作。
检查所有客户端配置是否一致:
less /etc/ocfs2/cluster.conf


# /etc/init.d/o2cb offline ocfs2
# /etc/init.d/o2cb unload
# /etc/init.d/o2cb configure
Configuring the O2CB driver.

这将配置 O2CB 驱动程序的引导属性。以下问题将决定在引导时是否加载驱动程序。
当前值将在方括号(“[]”)中显示。按 而不键入答案将保留该当前值。Ctrl-C 将终止。
Load O2CB driver on boot (y/n) [n]:y
Cluster to start on boot (Enter "none" to clear) [ocfs2]:ocfs2
Writing O2CB configuration:OK
Loading module "configfs":OK
Mounting configfs filesystem at /config:OK
Loading module "ocfs2_nodemanager":OK
Loading module "ocfs2_dlm":OK
Loading

module "ocfs2_dlmfs":OK
Mounting ocfs2_dlmfs filesystem at /dlm:OK
Starting cluster ocfs2:OK


在每个节点上创建挂载点:

mkdir -p /u02/oradata/orcl
chown -R oracle:oinstall /u02

在每个节点执行service o2cb status确认集群处于联机状态,
这是因为它需要确保在集群的某个节点上未挂载该卷。

只在其中一个节点上执行创建 OCFS2 文件系统的命令:
mkfs.ocfs2 -b 4K -C 32K -N 4 -L oraocfs2 /dev/sda1
(如果执行失败,请重启系统再试试)

在每个节点挂载:
mount -t ocfs2 -o datavolume /dev/sda1 /u02/oradata/orcl

设置自动挂载:
vi /etc/fstab
/dev/sda1 /u02/oradata/orcl ocfs2 _netdev,datavolume 0 0

只在其中一个节点上执行
chown -R oracle:oinstall /u02

要验证已挂载 OCFS 文件系统,可执行 mount 命令或运行 df:
mount -t ocfs2
df /u02
ls -ld /u02/oradata/orcl

调整 O2CB 心跳阈值
确定 O2CB 心跳阈值的当前设置(默认为7s)
cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold

如果您的 FireWire 磁盘较慢,则需要一个更大的阈值
在集群的所有节点上
vi /etc/sysconfig/o2cb
将 O2CB_HEARTBEAT_THRESHOLD 设置为 301。
修改文件 /etc/sysconfig/o2cb 后,您需要更改 o2cb 配置。
同样,应在集群的所有节点上执行以下操作。
umount /u02
/etc/init.d/o2cb unload
/etc/init.d/o2cb configure

要确定正在运行的 OCFS2 版本,使用:
cat /proc/fs/ocfs2/version

在其中一个节点上执行以下命令为共享文件创建目录:
mkdir /u02/oradata
chown oracle:oinstall /u02/oradata

开始下一节之前,最好在此时重新引导 RAC 集群的所有节点。
当计算机启动时,确保加载了集群堆栈服务并安装了新的 OCFS2 文件系统:

# mount
还应确认 O2CB 心跳阈值的设置是否正确(设置为我们的新值 301):
# cat /proc/fs/ocfs2_nodemanager/hb_dead_threshold
301

校验目录权限
ll /u02/oradata

2.Oracle 自动存储管理器 (ASM)

安装 ASMLib
在 Linux 平台上,ASM 可以使用原始设备或通过 ASMLib 接口管理的设备。出于易于使用和性能方面的原因,Oracle 建议使用通过 ASMLib 接口管理的设备
而非原始设备。 可以从 OTN 免费获得 ASMLib。这一部分将逐步讲解使用 ASMLib 配置一个简单
ASM 实例并构建一个使用 ASM 进行磁盘存储的数据库的全过程。

确定您需要哪个版本的 ASMLib;ASMLib 以一套共三个 Linux 程序包的形式提供:
oracleasmlib — ASM 库
oracleasm-support — 管理 ASMLib 所需的实用程序
oracleasm — 用于 ASM 库的内核模块

每个 Linux 发行版本都有其自己的一套 ASMLib 程序包,并且在每个发行版本中,每个内核版本都有
一个相应的 oracleasm 程序包。以下部分介绍如何确定您需要哪套程序包。 使用下表来帮助确定适
用于您环境的正

确 oracleasmlib 模块。
以 root 用户身份登录并运行以下命令来确定您正在使用的内核:
# uname -rm

使用此信息在 OTN 上查找相应的 ASMLib 程序包:
将您的 Web 浏览器指向 https://www.doczj.com/doc/8e12284712.html,/tech/linux/asmlib/index.html。
选择适用于您 Linux 版本的链接。
下载适用于您 Linux 版本的 oracleasmlib 和 oracleasm-support 程序包。
下载与您的内核相对应的 oracleasm 程序包。


接下来,通过以 root 用户身份执行以下命令,在每个集群主机上安装这些程序包:
rpm -Uvh oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm \
oracleasmlib-2.0.2-1.i386.rpm \
oracleasm-support-2.0.3-1.i386.rpm

配置 ASMLib
/etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.The following questions will determine whether the driver is
loaded on boot and what permissions it will have.The current values
will be shown in brackets ('[]').Hitting without typing an
answer will keep that current value.Ctrl-C will abort.

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 ]

为 ASM 配置磁盘
前面创建了三个用于存储 Oracle 数据库文件(如联机重做日志、数据库文件、控制文件、归档重做日志文件)
和闪回恢复区的 Linux 分区。

以下是为 ASM 创建的分区列表:

创建的 Oracle ASM 分区
文件系统类型 分区 大小 挂载点 文件类型
ASM /dev/sda2 50GB ORCL:VOL1 Oracle 数据库文件
ASM /dev/sda3 50GB ORCL:VOL2 Oracle 数据库文件
ASM /dev/sda4 100GB ORCL:VOL3 快速恢复区
总计 200GB

创建 ASM 磁盘只需要在一个节点上以 root 用户帐户执行。我将在 rac1 上运行这些命令。
在其他节点上,您将需要执行 scandisk 以识别新卷。该操作完成时,应在所有节点上运行
oracleasm listdisks 命令以验证是否创建了所有 ASM 磁盘以及它们是否可用。

$ su -
# /etc/init.d/oracleasm createdisk VOL1 /dev/sda2
Marking disk "/dev/sda2" as an ASM disk [ OK ]

# /etc/init.d/oracleasm createdisk VOL2 /dev/sda3
Marking disk "/dev/sda3" as an ASM disk [ OK ]

# /etc/init.d/oracleasm createdisk VOL3 /dev/sda4
Marking disk "/dev/sda4" as an ASM disk [ OK ]

注意:如果使用相同硬件(实际上是相同的共享驱动器)重复本指南,则在尝试创建 ASM 磁盘时
可能会出现故障。如果确实遇到故障,则尝试使用以下命令列出所有 ASM 磁盘:
# /etc/init.

d/oracleasm listdisks
VOL1
VOL2
VOL3

您可以看到,结果表明我定义了三个卷。如果上次运行定义了三个卷,则继续执行操作并使用
以下命令删除它们,然后使用以上的 (oracleasm createdisk) 命令再次创建它们:
# /etc/init.d/oracleasm deletedisk VOL1
Removing ASM disk "VOL1" [ OK ]
# /etc/init.d/oracleasm deletedisk VOL2
Removing ASM disk "VOL2" [ OK ]
# /etc/init.d/oracleasm deletedisk VOL3
Removing ASM disk "VOL3" [ OK ]

在集群中的所有其他节点上,必须执行磁盘扫描程序以识别新卷:
# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks [ OK ]

我们现在可以使用以下命令在所有节点上以 root 用户帐户测试是否成功创建了 ASM 磁盘:

# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3



3.原始分区

在集群文件系统和 ASM 可用之前,原始分区是为 Oracle RAC 配置共享磁盘存储的唯一选择。 由于这种技术经历长时间的考验,因此它们构成了一个构建 RAC 集群的非常坚实的平台。

但是,原始分区有很多缺点。 主要是它们必须接受每个磁盘可使用 15 个分区的限制、Linux 强制的 255 个原始设备的限制以及额外的管理任务和所需计划。 对于单实例环境而言,逻辑卷管理器 (LVM) 可以减少管理工作并在存储布局方面提供更多灵活性。 不幸的是,LVM 不能识别集群,因此在 RAC 环境中不支持它的使用。

在使用原始分区时,通常最好选择一组标准的分区大小,即某个基本大小的倍数。 这就在存储布局方面提供了更大的灵活性,并且在需要重新调整 I/O 时便于将分区重新配给其他磁盘。我为本示例选择了标准的分区大小 50MB、200MB、600MB 和 1200MB。

为进一步简化管理,每个共享磁盘将拥有相同的分区布局,其中包含某种标准化的分区大小。 在单个磁盘上能够创建的可用分区的最大数量是 15,因此要谨慎地计划分区布局。 下表显示了本指南中用于原始分区示例的分区布局。
分区 类型 大小
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 逻辑型 任意



使用 fdisk(或者您喜爱的磁盘分区工具)为每个共享磁盘创建分区。 以下示例显示了用于本指南所使用磁盘之一的部分过程:
# fdisk /dev/sdb

The number of cylinders for this disk is set to 4427.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g

., DOS FDISK, OS/2 FDISK)

Command (m for help):p

Disk /dev/sdb:36.4 GB, 36420075008 bytes
255 heads, 63 sectors/track, 4427 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4427, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-4427, default 4427):+50m

Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (8-4427, default 8):
Using default value 8
Last cylinder or +size or +sizeM or +sizeK (8-4427, default 4427):+50m

Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (15-4427, default 15):
Using default value 15
Last cylinder or +size or +sizeM or +sizeK (15-4427, default 4427):+200m

Command (m for help):n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First cylinder (40-4427, default 40):
Using default value 40
Last cylinder or +size or +sizeM or +sizeK (40-4427, default 4427):
Using default value 4427

Command (m for help):n
First cylinder (40-4427, default 40):
Using default value 40
Last cylinder or +size or +sizeM or +sizeK (40-4427, default 4427):+200m

.
.
.

Command (m for help):p

Disk /dev/sdb:36.4 GB, 36420075008 bytes
255 heads, 63 sectors/track, 4427 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 7 56196 83 Linux
/dev/sdb2 8 14 56227+ 83 Linux
/dev/sdb3 15 39 200812+ 83 Linux
/dev/sdb4 40 4427 35246610 5 Extended
/dev/sdb5 40 64 200781 83 Linux
/dev/sdb6 65 89 200781 83 Linux
/dev/sdb7 90 114 200781 83 Linux
/dev/sdb8 115 139 200781 83 Linux
/dev/sdb9 140 164 200781 83 Linux
/dev/sdb10 165 238 594373+ 83 Linux
/dev/sdb11 239 312 594373+ 83 Linux
/dev/sdb12 313 386 594373+ 83 Linux
/dev/sdb13 387 533 1180746 83 Linux
/dev/sdb14 534 680 1180746 83 Linux

Command (m for help):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

在其他主机上运行 partprobe 使内核与所做的更改同步:
# partprobe

下表列出了最小的 RAC 数据库所需的每个分区。 最小分区大小已经映射到为本示例所选择的标准分区大小。 在本示例中,使用了两个共享磁盘 (/dev/sdb and /dev/sdc)。 (请注意,SLES8 为原始设备使用了一种不同的命名标准。 Red Hat 中的 dev/raw/raw1 在 SLES

8 中为 /dev/raw1。 )

目的 最小大小 (MB) 标准化大小 (MB) 磁盘设备 原始设备
Oracle Cluster Registry 100 200 /dev/sdb3 /dev/raw/raw1
Oracle CRS Voting 20 50 /dev/sdb1 /dev/raw/raw2
SYSTEM 表空间 500 600 /dev/sdb11 /dev/raw/raw3
SYSAUX 表空间 800 1200 /dev/sdc13 /dev/raw/raw4
UNDOTBS1 表空间 500 600 /dev/sdb10 /dev/raw/raw5
UNDOTBS2 表空间 500 600 /dev/sdc10 /dev/raw/raw6
EXAMPLE 表空间 160 200 /dev/sdb5 /dev/raw/raw7
USERS 表空间 120 200 /dev/sdb6 /dev/raw/raw8
TEMP 表空间 250 600 /dev/sdc11 /dev/raw/raw9
SPFILE 5 50 /dev/sdb2 /dev/raw/raw10
口令文件 5 50 /dev/sdc1 /dev/raw/raw11
控制文件 1 110 200 /dev/sdb7 /dev/raw/raw12
控制文件 2 110 200 /dev/sdb7 /dev/raw/raw13
重做日志 1_1 120 200 /dev/sdb8 /dev/raw/raw14
重做日志 1_2 120 200 /dev/sdb9 /dev/raw/raw15
重做日志 2_1 120 200 /dev/sdb8 /dev/raw/raw16
重做日志 2_2 120 200 /dev/sdb9 /dev/raw/raw17
磁盘空间总计: 3,660 5,550


将原始设备映射到表中的每个分区:

RHEL 版本

将以下各行添加到每个集群节点上的 /etc/sysconfig/rawdevices:
/dev/raw/raw1 /dev/sdb3
/dev/raw/raw2 /dev/sdb1
/dev/raw/raw3 /dev/sdb11
/dev/raw/raw4 /dev/sdc13
/dev/raw/raw5 /dev/sdb10
/dev/raw/raw6 /dev/sdc10
/dev/raw/raw7 /dev/sdb5
/dev/raw/raw8 /dev/sdb6
/dev/raw/raw9 /dev/sdc11
/dev/raw/raw10 /dev/sdb2
/dev/raw/raw11 /dev/sdc1
/dev/raw/raw12 /dev/sdb7
/dev/raw/raw13 /dev/sdc7
/dev/raw/raw14 /dev/sdb8
/dev/raw/raw15 /dev/sdb9
/dev/raw/raw16 /dev/sdc8
/dev/raw/raw17 /dev/sdc9


SLES 8 和 SLES9

将以下各行添加到每个集群节点上的 /etc/raw:
raw1:sdb3
raw2:sdb1
raw3:sdb11
raw4:sdc13
raw5:sdb10
raw6:sdc10
raw7:sdb5
raw8:sdb6
raw9:sdc11
raw10:sdb2
raw11:sdc1
raw12:sdb7
raw13:sdc7
raw14:sdb8
raw15:sdb9
raw16:sdc8
raw17:sdc9

为每个节点上的 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

SLES8/9
/etc/init.d/raw start
chkconfig raw on

现在,可以不再考虑这件事而继续完成剩下的安装,但是如果您象我一样必须记住每个原始设备所完成的工作就有许多问题要问了。 如果我们能够根据每个原始设备的用途来命名就好了。 这就是为什么要使用符号链接了。

下表显示了每个原始设备以及我们要为其关联的文件名。 (实际上,我希望将 spfile 和口令文件与 $ORACLE_HOME/dbs 中的位置相关联,但是由于在安装的这个阶段该目录尚不存在,因此我暂时选择了 /u01/oradata/dbname 中的位置。 在安装完成后,如果您愿意,可以将这些原始设备的符号链接重新定位到 $ORACLE_HOME/dbs 目录。)

目的 原始设备 文件名
Oracle Cluster Registry /dev/raw/raw1 /u02/oracrs/ocr.crs
Oracle CRS Voting /dev/raw/raw2 /u02/oracrs/vote.crs
SYSTEM 表空间 /dev/raw/raw3 /u02/oradata/gemni/system_01.dbf
SYSAUX 表空间 /dev/raw/raw4 /u02/oradata/gemni/sysaux_01.dbf
UNDOTBS1 表空间 /dev/raw/raw5 /u02/oradata/gemni/undo1_01.dbf
UNDOTBS2 表空间 /dev/raw/raw6 /u02/oradata/gemni/undo2_01.dbf
EXAMPLE 表空间 /dev/raw/raw7 /u02/oradata/gemni/example_01.dbf
USERS 表空间 /dev/raw/raw8 /u02/oradata/gemni/users_01.dbf
TEMP 表空间 /dev/raw/raw9 /u02/oradata/gemni/temp_01.dbf
SPFILE /dev/raw/raw10 u01/oradata/gemni/spfilegemni.ora
口令文件 /dev/raw/raw11 /u01/oradata/gemni/orapwgemni
控制文件 1 /dev/raw/raw12 /u01/oradata/gemni/control.ctl
控制文件 2 /dev/raw/raw13 /u02/oradata/gemni/control.ctl
重做日志 1_1 /dev/raw/raw14 /u01/oradata/gemni/redo1_1.log
重做日志 1_2 /dev/raw/raw15 /u01/oradata/gemni/redo1_2.log
重做日志 2_1 /dev/raw/raw16 /u01/oradata/gemni/redo2_1.log
重做日志 2_2 /dev/raw/raw17 /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/ocr.crs
ln -s /dev/raw/raw2 /u02/oracrs/vote.crs
ln -s /dev/raw/raw3 /u02/oradata/gemni/system_01.dbf
ln -s /dev/raw/raw4 /u02/oradata/gemni/sysaux_01.dbf
ln -s /dev/raw/raw5 /u02/oradata/gemni/undo1_01.dbf
ln -s /dev/raw/raw6 /u02/oradata/gemni/undo2_01.dbf
ln -s /dev/raw/raw7 /u02/oradata/gemni/example_01.dbf
ln -s /dev/raw/raw8 /u02/oradata/gemni/users_01.dbf
ln -s /dev/raw/raw9 /u02/oradata/gemni/temp_01.dbf
ln -s /dev/raw/raw10 /u01/oradata/gemni/spfilegemni.ora
ln -s /dev/raw/raw11 /u01/oradata/gemni/orapwgemni


ln -s /dev/raw/raw12 /u01/oradata/gemni/control.ctl
ln -s /dev/raw/raw13 /u02/oradata/gemni/control.ctl
ln -s /dev/raw/raw14 /u01/oradata/gemni/redo1_1.log
ln -s /dev/raw/raw15 /u01/oradata/gemni/redo1_2.log
ln -s /dev/raw/raw16 /u02/oradata/gemni/redo2_1.log
ln -s /dev/raw/raw17 /u02/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=/u02/oradata/gemni/redo2_1.log
redo2_2=/u02/oradata/gemni/redo2_2.log
control1=/u01/oradata/gemni/control.ctl
control2=/u02/oradata/gemni/control.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 数据库了。

--------------------------------------------------------------------------------

第四部分 安装数据库集群软件和数据库

1.为用户等效性配置 SSH

在安装 Oracle RAC 10g 期间,OUI 需要把文件复制到集群中的其他主机上并在
其上执行程序。 为了允许 OUI 完成此任务,必须配置 SSH 以启用用户等效性。
用 SSH 建立用户等效性就提供了一种在集群中其他主机上复制文件和执行
程序时不需要口令提示的安全方式。

第一步是生成 SSH 的公共密钥和专用密钥。 SSH 协议有两个版本;
版本 1 使用 RSA,版本 2 使用 DSA,因此我们将创建这两种类型的密钥,
以确保 SSH 能够使用任一版本。 ssh-keygen 程序将根据传递给它的参数
生成任一类型的公共密钥和专用密钥。

当您运行 ssh-keygen 时,将提示您输入一个用于保存密钥的位置。
当提示时只需按 Enter 接受默认值。 随后将提示您输入一个口令短语。
输入您能记住的口令,然后再次输入该口令进行确认。 当您完成以下步骤后,
在 ~/.ssh 目录中将会有四个文件: id_rsa、id_rsa.pub、id_dsa 和 id_dsa.pub。
id_rsa 和 id_dsa 文件是您的专用密钥,千万不要告诉任何人。
id_rsa.pub 和 id_dsa.pub 文件是您的公共密钥,必须将其复制到集群中
其他每个主机上。

在每个主机上,以 oracle 用户身份登录:
mkdir ~/.ssh
chmod 755 ~/.ssh
/usr/bin/ssh-keyge

n -t rsa
/usr/bin/ssh-keygen -t dsa

例如:
$ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
4b:df:76:77:72:ba:31:cd:c4:e2:0c:e6:ef:30:fc:37 oracle@https://www.doczj.com/doc/8e12284712.html,

$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
af:37:ca:69:3c:a0:08:97:cb:9c:0b:b0:20:70:e3:4a oracle@rac1

现在,必须将每个主机上的公共密钥文件 id_rsa.pub 和 id_dsa.pub 的内容复制
到其他每个主机的 ~/.ssh/authorized_keys 文件中。 使用 ssh 将每个文件的内
容复制到 ~/.ssh/authorized_keys 文件。 请注意,当您使用 ssh 第一次访问远
程主机时,其 RSA 密钥将是未知的,从而将提示您确认是否希望连接该主机。
SSH 将记录该远程主机的 RSA 密钥,并在以后连接该主机时不再做出相关提示。

只需在第一个主机上,以 oracle 用户身份登录(复制本地帐户的密钥,以便连
接本地主机的 ssh 能够起作用):
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

ssh oracle@rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(如果您要剪切和粘贴这些命令,则分别运行它们。 SSH 每次会提示输入
oracle 的口令,如果同时粘贴这些命令,则第一个命令在提示输入口令之
前刷新输入缓冲区,从而导致其他命令将会丢失。)
ssh oracle@rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


例如:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'rac2 (172.16.62.104)' can't be established.
RSA key fingerprint is d1:23:a7:df:c5:fc:4e:10:d2:83:60:49:25:e8:eb:11.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,172.16.62.104' (RSA) to the list of known hosts.
oracle@rac2's password:
$ ssh oracle@rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
oracle@rac2's password:

现在对第二个主机做同样的处理。 请注意,这次 SSH 会提示您输入在创建密钥时
所使用的口令短语而非 oracle 的口令。 这是因为第一个主机 (rac1) 现在知道了
第二个主机的公共密钥,而 SSH 现在使用的是一种不同的认证协议。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

ssh oracle@rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh oracle@rac1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


例如:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'rac1 (172.16.62.101)' can't be established.
RSA key fingerprint is bd:0e:39:2a:23:2d:ca:f9:ea:71:f5:3d:d3:dd:3b:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac1,172.16.62.101' (RSA) to the list of known hosts.
Enter passphrase for key '/home/oracle/.ssh/id_rsa':
$ ssh oracle@rac1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Enter passphrase for key '/home/oracle/.ssh/id_rsa':

分别对每个节点执行:
chmod 644 ~/.ssh/authorized_keys

建立用户等效性

最后,在生成密钥、复制文件并重复地输入口令和口令短语(安全性有意思吧?)所有这些工作完成之后,
您就可以建立用户等效性了。 在建立用户等效性时,不会再提示您输入口令。

以 oracle 用户身份在将要安装 Oracle 10g 软件的节点 (rac1) 上:
ssh-agent $SHELL
ssh-add

例如:
$ 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)

(请注意,用户等效性仅为当前会话建立。 如果您切换到其他会话或注销并重新登录,
则必须再次运行 ssh-agent 和 ssh-add 才能重新建立用户等效性。)

测试连通性

如果一切均设置正确,则您现在就可以使用 ssh 在其他集群主机上不必输入口令而登录、
执行程序和复制文件了。 通过在远程集群主机上运行诸如 date 等简单命令来验证用户等效性:
$ ssh rac2 date
Sun Jun 27 19:07:19 CDT 2004

测试每个方向上所有服务器的连通性是非常重要的。 这样会确保当 OUI 在 CRS 和数据库
软件安装期间试图复制文件时不会出现类似以下的消息。 该消息只有在远程节点上第一次
执行操作时才会出现,因此通过测试连通性,您不仅确保了远程操作的正常运行,还完成
了初始的安全密钥交换。
The authenticity of host 'rac2 (172.16.62.104)' 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

2.安装 Oracle 10g 集群件软件
解压缩Oracle10G的安装文件 :
在/tmp下解压缩:
unzip 10201_clusterware_linux32.zip
unzip 10201_database_linux32


开始安装oracle ,仅在集群的一个节点上执行下列安装过程!
Oracle Universal Installer 将把 Oracle

集群件软件安装到集群中的所有其他节点。

/tmp/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2

以oracle用户登录系统,进行Oracle cluster的安装:
/tmp/clusterware/runInstaller

Welcome Screen
单击 Next

Specify Inventory directory and credentials 接受默认值:
Inventory directory: /u01/app/oracle/oraInventory
Operating System group name:oinstall

Specify Home Details

Name: OraCrs10g_home
Location:/u01/app/oracle/product/crs

Specify Cluster Configuration Cluster Name: crs
Public Node Name Private Node Name Virtual Node Name
rac1 rac1-priv rac1-vip
rac2 rac2-priv rac2-vip

Specify Network Interface Usage Interface Name Subnet Interface Type
eth0 172.16.62.101 公共
eth1 192.168.2.101 专用

Specify OCR Location
保留默认选项“Normal Redundancy”镜像 OCR 文件:
Specify OCR Location: /u02/oradata/orcl/OCRFile
Specify OCR Mirror Location:/u02/oradata/orcl/OCRFile_mirror

Specify Voting Disk Location
保留默认选项“Normal Redundancy”镜像表决磁盘:
Voting Disk Location: /u02/oradata/orcl/CSSFile
Additional Voting Disk 1 Location:/u02/oradata/orcl/CSSFile_mirror1
Additional Voting Disk 2 Location:/u02/oradata/orcl/CSSFile_mirror2

单击 Install 开始安装!

Execute Configuration Scripts 安装完成后,将提示您运行 orainstRoot.sh 和 root.sh 脚本。 以“root”用户帐户在 RAC 集群的每个节点(从执行安装的节点开始)上打开一个新控制台窗口。
在 RAC 集群的所有节点上运行/u01/app/oracle/oraInventory/orainstRoot.sh。

在 RAC 集群中每个节点(从执行安装的节点开始)上的同一个新控制台窗口中,以“root”用户帐户登录。

正如在前面的“10g RAC 10.1.0.3 中的 CSS 超时计算”一节指出的,您可能需要应在文件 $ORA_CRS_HOME/install/rootconfig 中将 CSS misscount 条目从 60 修改为 360(在集群中的每个节点上执行该操作),如下所示。将位于第 356 行上的以下条目:

CLSCFG_MISCNT="-misscount 60"

更改为

CLSCFG_MISCNT="-misscount 360"

一次一个在 RAC 集群的所有节点上运行 /u01/app/oracle/product/crs/root.sh 文件,不得同时运行。

您在所有节点上运行 root.sh 时将收到多个警告。可以忽略这些警告,没什么问题。

可能需要等一会儿才会运行 root.sh。在最后一个节点上运行 root.sh 时,您将收到一个严重错误,其输出如下所示:

...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
rac1
rac2
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
The given interface(s), "eth0" is not public.Public interfaces should be used to configure virtual IPs.
此问题为 Oracle 10.2.0.1(错误 44377

27 中有说明)所特有,需要在继续操作前将其解决。最简单的变通方法是从出现错误的上一个节点中以 root 用户的身份手动重新运行 vipca (GUI)。请注意,vipca 是一个 GUI:

# $ORA_CRS_HOME/bin/vipca

出现“VIP Configuration Assistant”时,我按如下所示回应屏幕提示:

Welcome: 单击 Next
Network interfaces:同时选择两个接口 - eth0 和 eth1
Virtual IPs for cluster notes:
Node Name:rac1
IP Alias Name:rac1-vip
IP Address:172.16.62.11
Subnet Mask: 255.255.255.0


Node Name: rac2
IP Alias Name:rac2-vip
IP Address:172.16.62.14
Subnet Mask: 255.255.255.0


Summary: 单击 Finish
Configuration Assistant Progress Dialog:配置完成后单击 OK。
Configuration Results: 单击 Exit


返回到 OUI 并确认“Execute Configuration scripts”对话框。

End of installation 安装结束时,退出 OUI。

验证 Oracle 集群件/CSS misscount 值

在“10g RAC 10.1.0.3 中的 CSS 超时计算”一节中,我曾指出可能需要将 CSS Misscount
值从其默认值 60 修改为 360(或更高)。在该节中,我介绍了完成此修改的方法,
即先修改 root.sh 脚本,然后在集群中的每个节点上运行它。如果无法在 root.sh
脚本中修改 CSS misscount 值,您仍然可以通过使用 $ORA_CRS_HOME/bin/crsctl
程序执行此操作。例如,要获取 CSS misscount 的当前值,使用以下命令:

$ORA_CRS_HOME/bin/crsctl get css misscount
360

如果收到值 60,则将需要将它修改为 360,如下所示:
只启动集群中的一个节点。就我的示例而言,我将关闭 rac2 并只启动 rac1。
从一个节点 (rac1) 中,以 root 用户帐户的身份登录并键入:
$ORA_CRS_HOME/bin/crsctl set css misscount 360
重新引导此单个节点 (rac1)。
启动集群中的所有其他节点。
验证 Oracle 集群件安装

安装 Oracle 集群件后,可以运行几个测试来验证安装是否成功。在 RAC 集群的所有节点上运行下列命令。

检查集群节点

$ /u01/app/oracle/product/crs/bin/olsnodes -n
rac1 1
rac2 2

检查 Oracle 集群件自动启动脚本
ls /etc/init.d |grep init.crs
ls /etc/init.d |grep init.cssd
ls /etc/init.d |grep init.evmd

$ /u01/app/oracle/product/crs/bin/crs_stat

3.以oracle用户登录系统,进行Oracle的安装:
验证 rac1 上的环境变量

$ env | grep ORA
ORACLE_SID=orcl1
ORACLE_BASE=/u01/app/oracle

验证 rac2 上的环境变量

$ env | grep ORA
ORACLE_SID=orcl2
ORACLE_BASE=/u01/app/oracle


LANG=AMERICAN_AMERICA.zhs16gbk /tmp/database/runInstaller
过一会儿就会出现Oracle的安装界面

Welcome Screen
单击 Next
Select Installation Type
我选择了 Enterprise Edition 选项。
Specify Home Details
按如下所示设置 ORACLE_HOME 名称和位置的目标:
Name:

OraDb10g_home1
Location:/u01/app/oracle/product/10.2.0/db_1
Specify Hardware Cluster Installation Mode
选择 Cluster Installation 选项,然后选择所有可用节点。单击 Select All
选择所有服务器:rac1 和 rac2。
如果安装此时停止,且有 RAC 节点的状态显示为“Node not reachable”
(无法访问节点),则执行以下检查:

确保 Oracle 集群件正在所讨论的节点上运行。
确保您能够从执行安装的节点访问所讨论的节点。

Product-Specific Prerequisite Checks 安装程序将执行一系列的检查以确定节点
是否满足安装和配置 Oracle 数据库软件的最低要求。如果任何检查失败,
您将需要通过单击该复选框手动验证失败的检查。

Select Database Configuration
选择选项“Install database software only”。
记住,我们将在单独的步骤中使用 DBCA 创建集群化数据库。

Root Script Window - Run root.sh
安装完成后,将提示您运行 root.sh 脚本。需要记住的是,需要在 RAC 集群的所有
节点上一次一个地(从运行数据库安装的节点开始)运行 root.sh 脚本。
首先,以 root 用户帐户在安装 Oracle 10g 数据库软件的节点上打开一个新控制台
窗口。我打开的是“rac1”。

运行 /u01/app/oracle/product/10.2.0/db_1/root.sh。

在集群的所有节点上运行 root.sh 脚本后,返回 OUI 并确认“Execute Configuration scripts”对话框。

End of installation 安装结束时,退出 OUI。

4. 创建 TNS 监听器进程
仅在集群的一个节点上执行下列配置过程!网络配置助手 (NETCA) 将在集群所有节点上
的集群化配置中设置 TNS 监听器。

DBCA 需要在 RAC 集群的所有节点上配置并运行 Oracle TNS 监听器进程,然后它
才能创建集群化数据库。

只需在集群的一个节点上执行 TNS 监听器创建过程。执行所有更改并将这些更改复制
到集群的所有节点上。在一个节点(我将使用 rac1)上,启动 NETCA 并执行创建新
TNS 监听器进程的过程,同时配置节点的本地访问权限。

运行 NETCA 前,确保以 oracle 用户重新登录并确认将 $ORACLE_HOME 环境变量设置
为正确的位置。如果要使用前一节中使用的控制台窗口,则请注意,我们取消了
$ORACLE_HOME 环境变量的设置。这将导致在尝试运行 netca 时出现错误。

要启动 NETCA,以 oracle 用户帐户运行以下 GUI 实用程序:

# su - oracle
$ netca &

以下屏幕截图将引导您为我们 RAC 环境创建一个新的 Oracle 监听器。 屏幕名称 回应
Select the Type of Oracle
Net Services Configuration 选择 Cluster Configuration
Select the nodes to configure 选择所有节点:rac1 和 rac2。
Type of Configuration 选择 Listener configuration。
Listener Configuration - Next 6 Screens 后续屏幕现

在与其他常规监听器配置的相似。
您只需接受后续 6 个屏幕的默认参数即可:
What do you want to do: Add
Listener name:LISTENER
Selected protocols:TCP
Port number:1521
Configure another listener:No
Listener configuration complete![ Next ]
您将返回到此 Welcome (Type of Configuration) 屏幕。
Type of Configuration 选择 Naming Methods configuration。
Naming Methods Configuration 后续屏幕是:
Selected Naming Methods: Local Naming
Naming Methods configuration complete![ Next ]
您将返回到此 Welcome (Type of Configuration) 屏幕。
Type of Configuration 单击 Finish 退出 NETCA。

Oracle TNS 监听器进程现在应在 RAC 集群的所有节点上运行:

$ hostname
rac1

$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
LISTENER_rac1

=====================

$ hostname
rac2

$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
LISTENER_rac2

5. 创建 Oracle 集群数据库
数据库创建过程应只在集群的一个节点上执行! 同样需要用户对待环境,来复制文件。

我们将使用 DBCA 创建集群化数据库。

在执行 DBCA 前,确保为 $ORACLE_BASE/product/10.2.0/db_1 环境正确设置了
$ORACLE_HOME 和 $PATH。

在试图开始创建集群化数据库之前,还应确保已安装的所有服务(Oracle TNS 监听器、
Oracle 集群件进程等)正在运行。

创建集群化数据库

要开始数据库创建过程,oracle用户身份运行以下命令:
$ dbca

Welcome Screen
选择“Oracle Real Application Clusters database”。
Operations
选择 Create a Database。
Node Selection
单击 Select All 按钮选择所有服务器:rac1 和 rac2。
Database Templates
选择 Custom Database。
Database Identification
选择:
Global Database Name: orcl
SID Prefix:orcl
我没有设置数据库域。您可以使用任何域。请记住,此域不必为有效的 DNS 域。

Management Option
保留此处的默认选项,即“Configure the Database with Enterprise Manager
Use Database Control for Database Management”。
Database Credentials
我选择 Use the Same Password for All Accounts。输入口令(两次)并确保此
口令不 是以数字开头。
Storage Options
对于本指南,我们将选择 use ASM。
Create ASM Instance
提供要用于新 ASM 实例的 SYS 口令。
此外,从第 2 版开始,ASM 实例服务器参数文件 (SPFILE) 需要位于共享磁盘上。
您将需要修改“Create server parameter file (SPFILE)”的默认条目以驻留在
OCFS2 分区上,如下所示:/u02/oradata/orcl/dbs/spfile+ASM.ora。所有其他选项可以保留其默认值。

然后将有一个对话框询问您是否要创建并启动 ASM 实例。选择 OK 按钮确认此对话框。

OUI 将立即在 RAC 集群的所有节点上创建并启动 A

SM 实例。

ASM Disk Groups 首先,单击 Create New 按钮。这将弹出“Create Disk Group”窗口,
其中显示了我们在前面使用 ASMLib 创建的三个卷。
如果在本文前面部分创建的卷没有显示在“Select Member Disks”窗口中:(ORCL:VOL1、
ORCL:VOL2 和 ORCL:VOL3),则单击“Change Disk Discovery Path”按钮并输入“ORCL:VOL*”。

对于第一个“Disk Group Name”,我使用了字符串“ORCL_DATA1”。在“Select Member Disks”
窗口中选择前两个 ASM 卷(ORCL:VOL1 和 ORCL:VOL2)。将“Redundancy”设置为“Normal”。
这两列现在的状态应为“PROVISIONED”。

确认此窗口中的所有值均正确后,单击 [OK] 按钮。这将显示“ASM Disk Group Creation”
对话框。完成 ASM 磁盘组创建过程时,您将返回到“ASM Disk Groups”窗口。

再次单击 Create New 按钮。对于第二个“Disk Group Name”,我使用了字符串
FLASH_RECOVERY_AREA。在“Select Member Disks”窗口中选择最后一个 ASM 卷
(ORCL:VOL3)。将“Redundancy”选项设置为“External”。最后一个卷的状态也将更改为“PROVISIONED”。

确认此窗口中的所有值均正确后,单击 [OK] 按钮。这将显示“ASM Disk Group Creation”对话框。

完成 ASM 磁盘组创建过程后,您将返回到“ASM Disk Groups”窗口,其中创建
并选择了两个磁盘组。使用新创建的 Disk Group Name ORCL_DATA1 旁边的复选框
选择一个磁盘组(确保未选择 FLASH_RECOVERY_AREA 的磁盘组),然后单击 [Next] 继续。

Database File Locations 我选择使用默认值,即使用 Oracle Managed Files:

Database Area: +ORCL_DATA1

Recovery Configuration 选中“Specify Flash Recovery Area”选项。
对于 Flash Recovery Area,使用磁盘组名称 +FLASH_RECOVERY_AREA。

我使用的磁盘组的大小约为 100GB。我使用了 90GB 的 Flash Recovery Area Size (91136 MB)。

Database Content 我将所有数据库组件(和目标表空间)设置为它们的默认值,
但选择 Example Schemas 也完全可以。由于我们安装了 Oracle 随附 CD 软件,因此该选项可用。

Database Services 对于此测试配置,单击 Add,然后输入 ORCLTEST 作为“Service Name”。
将这两个实例设置为 Preferred,并为“TAF Policy”选择 Basic。

Initialization Parameters 根据您的环境更改任意参数。我保留了所有这些参数的默认设置。

Database Storage 根据您的环境更改任意参数。我保留了所有这些参数的默认设置。

Creation Options 选择默认选项 Create Database,并单击 Finish 启动数据库创建过程。
在“Summary”屏幕上单击 OK。

End of Database Creation 在数据库创建结束时,退出 DBCA。

退出 DBCA 时,将弹出另一对话框,指示它正在启动所有 Oracle 实例以及 HA 服务“ORCLTEST”。
这可能

相关主题
文本预览
相关文档 最新文档