- 论坛徽章:
- 0
|
Install RH AS2.1 Oracle 10g1 RAC on X86
1 检测硬件需求(所有节点,root)
至少512 MB 内存 # grep MemTotal /proc/meminfo
至少1 GB 交换空间 (或两倍于内存的交换空间) # grep SwapTotal /proc/meminfo
至少400 MB 临时目录( /tmp )空间 # df -h /tmp
至少 4 GB 硬盘空间来安装 Oracle 数据库软件 # df -h
2 检查网络配置(所有节点,root)
每个机器要有两块网卡,public 和 private 对应网卡要相同。
注意: eth0 用作 public(不要选用开放网址),eth1 用作 private(选择用192.168.0.*或
10.*.*.*)
IP地址提供如下:
ns1 Public 10.240.144.201 DNS(没DNS,就放在/etc/hosts里面)
ns2 Public 10.240.144.202 DNS
ns1-vip Virtual 10.240.144.251 DNS
ns2-vip Virtual 10.240.144.252 DNS
ns1-priv Private 192.168.0.11 /etc/hosts
ns2-priv Private 192.168.0.12 /etc/hosts
可以用 # /sbin/ifconfig 查看具体设置
3 检测软件需求(所有节点,root)
OS: Red Hat Enterprise Linux AS/ES 2.1 (Update 3 or higher) # more /etc/issue
Kernel: 2.4.9, errata 34 (for example 2.4.9-e.34) # uname -r
Packages:看是否安装 # rpm -q XXX 安装 # rpm -ivh xxx 卸载:# rpm -e xxx 更新
:# rpm -Uvh xxx
make-3.79.1
glibc-2.2.4-32.15
gcc-2.96-128
gcc-c++-2.96-128
libstdc++-2.96-124.7.2
openmotif-2.1.30-11
shadow-utils-20000902-16
4 生成需要的用户和组(所有节点,root)
先在一个节点上增加用户和组:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
用户 ID 和组 ID 在所有集群主机上必须相同。 使用从 id oracle 命令得到的信息,再在其余
集群主机上创建 Oracle 组和用户帐户:
# /usr/sbin/groupadd -g 501 oinstall
# /usr/sbin/groupadd -g 502 dba
# /usr/sbin/useradd -m -u 501 -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
设置所有节点上 oracle 帐户的口令:
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.
5 确认 nobody 用户的存在(所有节点,root)
# id nobody
如果不存在就创建它
# /usr/sbin/useradd nobody
6 设置内核参数 (所有节点,root)
在 /etc/sysctl.conf 后面添加如下10行(如果下面的行不存在的话)
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
添加好后,使用命令 # /sbin/sysctl -p 来使设置生效。
7 设置oracle用户Shell限制(建议设置,不设置也可以) (所有节点,root)
在 /etc/security/limits.conf 后面添加如下4行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
在 /etc/pam.d/login 后面添加如下一行
session required /lib/security/pam_limits.so
在 /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
8 创建安装过程中用到的目录 (所有节点,root)
需要创建以下目录
Oracle Base Directory #/u01/app/oracle
Oracle Inventory Directory #/u01/app/oracle/oraInventory
Oracle Clusterware Home Directory #/u01/app/oracle/product/10.1.0/crs_1
Oracle Home Directory #/u01/app/oracle/product/10.1.0/db_1
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/oraInventory
mkdir -p /u01/app/oracle/product/10.1.0/crs_1
mkdir -p /u01/app/oracle/product/10.1.0/db_1
chown -R oracle install /u01
chmod -R 775 /u01
9 配置 Hangcheck 计时器 (所有节点,root)
察看已经加载的模块 # /sbin/lsmod
手工加载 # /sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
在 /etc/init.d/boot.local 文件末尾添加如下一行
/sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
10 配置 /etc/hosts (所有节点,root)
#private eth1
192.168.0.11 ns1-priv
192.168.0.12 ns2-priv
#public 注意是在 eth0上
10.240.144.201 ns1
10.240.144.202 ns2
#virtual ip
10.240.144.231 ns1-vip
10.240.144.232 ns2-vip
请注意,只需在两个节点的 /etc/hosts 文件中定义虚拟 IP 地址。当您运行 Oracle Universal
Installer 时,该程序启动 Oracle 的虚拟互联网协议配置助手 (VIPCA),也就说 Oracle 将自动配置公
共虚拟 IP 地址。当运行 srvctl start nodeapps -n <node_name> 命令时,所有的虚拟 IP 地址将被激
活。这就是将要在客户端 tnsnames.ora 文件中进行配置的主机名/IP 地址(后文详述)。
11 为Oracle用户等效性配置 SSH (所有节点,oracle)
为用户等效性配置 SSH 之前,/etc/hosts 应该起作用,所以要reboot机器后,再配置等效性
在每个主机上,以 oracle 用户身份登录,执行如下命令,生成秘匙: (所在目录:直接回车使
用默认;密码:输入一个自己容易记忆的密码)
$ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh-keygen -t rsa
$ /usr/bin/ssh-keygen -t dsa
然后,首先在第一个主机上,以 oracle 用户身份登录(复制本地帐户的密钥,以便连接本地主
机的 ssh 能够起作用):
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@ns2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (提示输入密码为
oracle用户密码)
$ ssh oracle@ns2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys (提示输入密码为
oracle用户密码)
$ chmod 644 ~/.ssh/authorized_keys
然后再对第二个主机做同样的处理。 请注意,这次 SSH 会提示您输入在创建密钥时所使用的口
令短语而非 oracle 的口令。 这是因为第一个主机 (ds1) 现在知道了第二个主机的公共密钥,而 SSH
现在使用的是一种不同的认证协议。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@ns1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh oracle@ns1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 644 ~/.ssh/authorized_keys
建立用户等效性
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
测试连通性
$ ssh ns2 date
为了确保 X11 在安装过程中不出现错误, 为oracle用户生成一个文件 ~oracle/.ssh/config:
Host *
ForwardX11 no
12 准备共享磁盘(在一个节点,root)
存储通过光纤连接到各个节点,我们这里不讨论如何设置存储。
使用如下命令查看可用磁盘:
# fdisk -l
使用如下命令对目标磁盘进行分区:
#fdisk /dev/sdX
下面是我对 /dev/sdf的分区:
[root@ns2 /]# /sbin/fdisk /dev/sdf
The number of cylinders for this disk is set to 8180.
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): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8180, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-8180, default 8180): +150m
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (21-8180, default 21):
Using default value 21
Last cylinder or +size or +sizeM or +sizeK (21-8180, default 8180): +200m
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (47-8180, default 47):
Using default value 47
Last cylinder or +size or +sizeM or +sizeK (47-8180, default 8180): +200m
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 4
First cylinder (73-8180, default 73):
Using default value 73
Last cylinder or +size or +sizeM or +sizeK (73-8180, default 8180):
Using default value 8180
Command (m for help): n
First cylinder (73-8180, default 73):
Using default value 73
Last cylinder or +size or +sizeM or +sizeK (73-8180, default 8180): +500m
Command (m for help): n
First cylinder (137-8180, default 137):
Using default value 137
Last cylinder or +size or +sizeM or +sizeK (137-8180, default 8180): +1000m
Command (m for help): n
First cylinder (265-8180, default 265):
Using default value 265
Last cylinder or +size or +sizeM or +sizeK (265-8180, default 8180): +3000m
Command (m for help): n
First cylinder (648-8180, default 64 :
Using default value 648
Last cylinder or +size or +sizeM or +sizeK (648-8180, default 8180): +10000m
Command (m for help): n
First cylinder (1923-8180, default 1923):
Using default value 1923
Last cylinder or +size or +sizeM or +sizeK (1923-8180, default 8180): +20000m
Command (m for help): n
First cylinder (4473-8180, default 4473):
Using default value 4473
Last cylinder or +size or +sizeM or +sizeK (4473-8180, default 8180):
Using default value 8180
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
看看我的分区如下:(测试用,随便分了一下)
[root@ns2 /]# /sbin/fdisk -l
Disk /dev/sda: 255 heads, 63 sectors, 2233 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 650 5116702+ 82 Linux swap
/dev/sda3 651 2233 12715447+ 83 Linux
Disk /dev/sdb: 64 heads, 32 sectors, 17522 cylinders
Units = cylinders of 2048 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 50 51184 83 Linux
/dev/sdb2 51 2050 2048000 82 Linux swap
/dev/sdb3 2051 17522 15843328 83 Linux
Disk /dev/sdc: 255 heads, 63 sectors, 2233 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 1275 10241406 7 HPFS/NTFS
/dev/sdc2 1276 2233 7695135 f Win95 Ext'd (LBA)
/dev/sdc5 1276 2233 7695103+ 7 HPFS/NTFS
Disk /dev/sdd: 255 heads, 63 sectors, 2610 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdd3 53 116 514080 83 Linux
/dev/sdd4 117 2610 20033055 5 Extended
/dev/sdd5 117 371 2048256 83 Linux
/dev/sdd6 372 626 2048256 83 Linux
/dev/sdd7 627 754 1028128+ 83 Linux
/dev/sdd8 755 805 409626 83 Linux
/dev/sdd9 806 856 409626 83 Linux
/dev/sdd10 857 984 1028128+ 83 Linux
/dev/sdd11 985 1112 1028128+ 83 Linux
/dev/sdd12 1113 1367 2048256 83 Linux
/dev/sdd13 1368 1622 2048256 83 Linux
/dev/sdd14 1623 1750 1028128+ 83 Linux
/dev/sdd15 1751 1878 1028128+ 83 Linux
/dev/sdd16 1879 2261 3076416 83 Linux
Disk /dev/sde: 255 heads, 63 sectors, 2610 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 26 208813+ 83 Linux
/dev/sde2 27 90 514080 83 Linux
/dev/sde3 91 345 2048287+ 83 Linux
/dev/sde4 346 2610 18193612+ 5 Extended
/dev/sde5 346 983 5124703+ 83 Linux
/dev/sde6 984 2610 13068846 83 Linux
Disk /dev/sdf: 255 heads, 63 sectors, 8180 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdf1 1 20 160618+ 83 Linux
/dev/sdf2 21 46 208845 83 Linux
/dev/sdf3 47 72 208845 83 Linux
/dev/sdf4 73 8180 65127510 5 Extended
/dev/sdf5 73 136 514048+ 83 Linux
/dev/sdf6 137 264 1028128+ 83 Linux
/dev/sdf7 265 647 3076416 83 Linux
/dev/sdf8 648 1922 10241406 83 Linux
/dev/sdf9 1923 4472 20482843+ 83 Linux
/dev/sdf10 4473 8180 29784478+ 83 Linux
在其它集群节点上sfdisk -R /dev/sdb 这样可以强迫kernel re-read partition table. 在高版本OS
上运行:partprobe
在创建分区后,建议您重新引导所有 RAC 节点上的内核,以确保所有 RAC 节点上的内核识别所有新分区
。
13 把分区绑定到raw设备(所有节点,root)
文件 /etc/sysconfig/rawdevices 内容如下:
/dev/raw/raw1 /dev/sde1
#200M OCR
/dev/raw/raw18 /dev/sdf1
#150M ocr bk1
/dev/raw/raw19 /dev/sdf2
#150M ocr bk2
/dev/raw/raw2 /dev/sde2
#200M crs voting
/dev/raw/raw20 /dev/sdf3
#200M vote bk1
/dev/raw/raw21 /dev/sdf5
#200M vote bk2
/dev/raw/raw3 /dev/sdd3
#500M Example
/dev/raw/raw4 /dev/sde3
#5G redolog2_1
/dev/raw/raw17 /dev/sde5
#15G redolog2_2
/dev/raw/raw5 /dev/sdd5
#2G System table space
/dev/raw/raw6 /dev/sdd6
#2G Sysaux
/dev/raw/raw7 /dev/sdd7
#1G Temp
/dev/raw/raw8 /dev/sdd8
#400M PASSWORD
/dev/raw/raw9 /dev/sdd9
#400M SPFILE
/dev/raw/raw10 /dev/sdd10
#1G UNDOTBS1
/dev/raw/raw11 /dev/sdd11
#1G UNDOTBS2
/dev/raw/raw12 /dev/sdd12
#2G control1
/dev/raw/raw13 /dev/sdd13
#2G control2
/dev/raw/raw14 /dev/sdd14
#1G redolog1-1
/dev/raw/raw15 /dev/sdd15
#1G redolog1-2
/dev/raw/raw16 /dev/sde6
#MAX Users
设置好文件后,重新启动RAW设备服务,使绑定生效:
# /sbin/service rawdevices restart
查看生效的raw设备:
[root@ns2 /]# raw -qa
/dev/raw/raw1: bound to major 8, minor 65
/dev/raw/raw2: bound to major 8, minor 66
/dev/raw/raw3: bound to major 8, minor 51
/dev/raw/raw4: bound to major 8, minor 67
/dev/raw/raw5: bound to major 8, minor 53
/dev/raw/raw6: bound to major 8, minor 54
/dev/raw/raw7: bound to major 8, minor 55
/dev/raw/raw8: bound to major 8, minor 56
/dev/raw/raw9: bound to major 8, minor 57
/dev/raw/raw10: bound to major 8, minor 58
/dev/raw/raw11: bound to major 8, minor 59
/dev/raw/raw12: bound to major 8, minor 60
/dev/raw/raw13: bound to major 8, minor 61
/dev/raw/raw14: bound to major 8, minor 62
/dev/raw/raw15: bound to major 8, minor 63
/dev/raw/raw16: bound to major 8, minor 70
/dev/raw/raw17: bound to major 8, minor 69
/dev/raw/raw18: bound to major 8, minor 81
/dev/raw/raw19: bound to major 8, minor 82
/dev/raw/raw20: bound to major 8, minor 83
/dev/raw/raw21: bound to major 8, minor 85
14 设置OCR需要的raw设备---注意访问权限(所有节点,root)
# chown root install /dev/raw/raw1
# chown root install /dev/raw/raw18
# chown root install /dev/raw/raw19
# chmod 640 /dev/raw/raw1
# chmod 640 /dev/raw/raw18
# chmod 640 /dev/raw/raw19
# chown oracle install /dev/raw/raw2
# chown oracle install /dev/raw/raw20
# chown oracle install /dev/raw/raw21
# chmod 644 /dev/raw/raw2
# chmod 644 /dev/raw/raw20
# chmod 644 /dev/raw/raw21
其实 raw18,raw19,raw20,raw21,我没有用,是为了将来装10g2的RAC用。因为10g2需要两个ocr文件和3
个voting.
15 为其它的raw设备(数据库使用)设置权限 所有节点,root)
# chown oracle:dba /dev/raw/rawn
# chmod 660 /dev/raw/rawn
16 为数据库配置助手 (DBCA) 创建原始设备映射文件( 所有节点,oracle)
最后,我们需要为数据库配置助手 (DBCA) 创建原始设备映射文件。 此文件将您已创建的原始
设备与 DBCA 将要用于创建数据库的名称相关联。
在 oracle 用户目录下 /home/oracle 生成 public_raw.config
[oracle@ns2 oracle]$ more publish_raw.conf
example=/dev/raw/raw3
redo2_1=/dev/raw/raw4
redo2_2=/dev/raw/raw17
system=/dev/raw/raw5
sysaux=/dev/raw/raw6
temp=/dev/raw/raw7
pwdfile=/dev/raw/raw8
spfile=/dev/raw/raw9
undotbs1=/dev/raw/raw10
undotbs2=/dev/raw/raw11
control1=/dev/raw/raw12
control2=/dev/raw/raw13
redo1_1=/dev/raw/raw14
redo1_2=/dev/raw/raw15
users=/dev/raw/raw16
17 为安装 CRS软件,在 /home/oracle/.bash_profile里面设置环境变量 ( 所有节点,oracle)
设置 ORACLE_BASE,ORACLE_HOME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.1.0/crs_1
export ORACLE_SID=PUBLISH2
DBCA_RAW_CONFIG=$HOME/publish_raw.conf
Export DBCA_RAW_CONFIG
umask=022
18 安装CRS( 一个节点,oracle)
以oracle用户登陆.
建立用户等效性.
运行 runInstaller,当OUI显示欢迎界面时,点击Next.
分别在各个节点另开终端,以超级用户运行 /u01/app/oracle/oraInventory/orainstRoot.sh.
选择一个安装语言.
输入节公共点名称和私有节点名称。如 ns1 ns1-priv及ns2 ns2-priv
选择网络接口类型 eth0 10.244.144.0 public及eth1 192.168.0.0 private
提示输入OCR目录的时候,输入 /dev/raw/raw1.
提示输入Voting目录的时候,输入 /dev/raw/raw2.
开始安装CRS软件,安装快结束的时候,提示要以root用户运
行/u01/app/oracle/product/10.1.0/crs_1/root.sh.
运行root.sh之前,分别以root用户登陆新终端,更改CRS home directory的权限,命令如下:
# chmod go-w /u01/app/oracle/product/10.1.0
# chmod go-w /u01/app/oracle/product
# chmod go-w /u01/app/oracle/
# chmod go-w /u01/app/
# chmod go-w /u01
当提示安装完成的时候,点击Exit退出此界面.
19 测试CRS( 所有节点,oracle)
节点1测试
[oracle@ns1 bin]$ unset ORACLE_HOME
[oracle@ns1 bin]$ pwd
/u01/app/oracle/product/10.1.0/crs_1/bin
[oracle@ns1 bin]$ ./olsnodes
ns1
ns2
[oracle@ns1 bin]$
节点2测试
[oracle@ns2 /]$ unset ORACLE_HOME
[oracle@ns2 /]$ pwd
/
[oracle@ns2 /]$ ./u01/app/oracle/product/10.1.0/crs_1/bin/olsnodes
ns1
ns2
[oracle@ns2 /]$
20 CRS的相关进程( 所有节点,oracle)
oprocd -- 集群监视,Note that this process will only appear on platforms that do not
use vendor clusterware with CRS.
evmd -- 事件管理后台程序.
ocssd -- 管理集群节点间的关系.
crsd -- 执行高性能恢复和管理操作.
查看个节点的自动启动脚本:
[oracle@ns2 /]$ ls -l /etc/init.d/init.*
-r-xr-xr-x 1 root root 1207 Apr 28 15:40 /etc/init.d/init.crs
-r-xr-xr-x 1 root root 5492 Apr 28 15:40 /etc/init.d/init.crsd
-r-xr-xr-x 1 root root 18593 Apr 28 15:40 /etc/init.d/init.cssd
-r-xr-xr-x 1 root root 4553 Apr 28 15:40 /etc/init.d/init.evmd
21 为安装ORACLE 10G1数据库设置变量( 所有节点,oracle)
仅在集群的一个节点上执行下列安装过程!Oracle 数据库软件将由 Oracle Universal Installer 安装
到集群的所有其他节点。
注销crs变量,设定数据库环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1
export ORACLE_SID=PUBLISH2
DBCA_RAW_CONFIG=$HOME/publish_raw.conf
Export DBCA_RAW_CONFIG
umask=022
观察一下就知道,只有ORACLE_HOME的值变了,也可以这样解决:
$ unset ORACLE_HOME
$ ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1;export ORACLE_HOME
22 安装数据库( 一个节点,oracle)
运行安装程序
23 检测安装( 所有节点,oracle)
[oracle@ns2 oracle]$ ps -ef | grep lsnr
oracle 7903 3768 0 17:20 pts/0 00:00:00 grep lsnr
24 创建集群数据库( 一个节点,oracle)
创建 net服务:以oracle用户运行 netca ,需要配置一个监听服务,默认端口1521。
在两个节点上分别启动监听服务:
$lsnrctl start
配制数据库:
$DBCA
进入SQLPlus,并建立私有线程:
$sqlplus "/ as sysdba"
启动数据库:
sqlplus>startup |
|