登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

狂野朵儿的豆苗博客

爱过.恨过.苦过.经历过.改变过.思考过.看淡过.永不回头坚强向前走!!!

 
 
 

日志

 
 
关于我

给我一片蓝天一轮初升的太阳.. 给我一片绿.草.绵延向远方.. 给我一只雄.鹰一个威武的汉子. 给我一个套马杆.攥在他手上... 给我一片白云一朵洁白的想象.. 给我一阵清.风.吹开百花香.. 给我一次邂.逅在青青的牧场.. 给我一个眼.神..热辣.滚烫.... 套马的.汉子你威武雄.壮. 飞驰的.骏.马.像疾风一样.. 一望无际的原.野.随你去流.浪.

ORACLE 10G RAC参考手册  

2009-06-04 09:54:16|  分类: RAC_资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
ORACLE 10G RAC 参考手册
ORACLE 10G RAC参考手册
(1.1)
部署与基本管理部分
ORACLE 10G RAC 参考手册
目 录
前言..................................................................................................................................................0
安装部署部分..................................................................................................................................1
一、Oracle RAC规划.......................................................................................................................1
1.1 RAC的基本组成.........................................................................................................1
1.2主机系统配置及软件规划.........................................................................................2
1.3 IP规划.........................................................................................................................3
1.4 NTP服务.....................................................................................................................3
二、安装Oracle RAC前的准备.......................................................................................................3
2.1 配置AIX.....................................................................................................................3
2.2 Oracle相关的配置......................................................................................................7
三、安装Oracle RAC.....................................................................................................................18
3.1安装oracle RAC的准备工作及安装Oracle ClusterWare.........................................18
3.2安装oracle RAC的数据库软件10.2.0.1..................................................................31
3.3创建数据库...............................................................................................................40
3.4 客户端的配置配置客户端......................................................................................53
四、Oracle RAC测试.....................................................................................................................54
4.1测试failover..............................................................................................................55
4.2测试load balance.......................................................................................................56
五、安装后的情况处理.................................................................................................................56
5.1安装失败后,如何彻底删除除oracle软件及CRS..................................................56
5.2在AIX环境下,RAC启动的方法............................................................................59
5.3刚安装完以后,自动启动CRS服务速度慢。以及gsd无法启动? 如何处理?59
基础管理部分................................................................................................................................62
六Oracle RAC日常管理.................................................................................................................62
6.1 CRS 的管理.............................................................................................................62
6.2 OCR的资源管理.......................................................................................................62
6.3 SRVCTL命令介绍....................................................................................................65
6.4 SRVCTL相关的选项................................................................................................66
6.5 CRS及相关服务的常用命令的演示.......................................................................67
6.6 为ORACLE RAC增加一个节点.............................................................................68
6.7 升级ORACLE RAC.................................................................................................72
ORACLE 10G RAC 参考手册
前言
? 本文档中安装部署部分所提到的步骤都在我本地环境中测试通过,同时安装步骤是基于AIX环境的(包含截图)。所以可以作为安装部署的参考手册。但是因为环境的不同,不保证在其他环境中准确无误。另外一些配置按照自己的环境进行修改。并在参考Oracle官方文档。
? 本文档中并无过多的创造性的技术细节,意在抛砖引玉。希望能对一些对RAC相关技术感兴趣的朋友有所帮助。
? 在本文中很多操作,尤其是安装部署部分,都是基于AIX。尽管日常的管理命令的介绍大多数都可以跨平台。但是基本都是以基于AIX为主。所以阅读本文的朋友最好有些AIX的基础。
? 另外,由于本人的水平有限加上时间仓促,文中难免有错,如有错误请指正!
? 此文档包括安装部分及基础管理部分。其他的部分如果有时间会继续补充进来。
? 作者简介:平雷 网络ID:wsny 工作已经第7个年头,但是依然没什么长进。目前在电子商务网站任DBA。热衷于Oracle相关技术及企业级应用技术。平时喜欢运动,比如足球、羽毛球(正在学习中)
? 最近一直在封闭。没什么时间更新这个文档。这个版本更新了安装过程中的网络参数。(感谢netbbs) 原来的参数在建库会报错ora-12705 (比较郁闷。我并没有遇到这个问题),
? 另外增加了打补丁的部分。
ORACLE 10G RAC 参考手册
安装部署部分
一、Oracle RAC规划
1.1 RAC的基本组成
这是一个典型的RAC对外服务的示意图。如图所示一个Oracle RAC cluster 包含了如下的部分:
1. 集群的节点(cluster nodes) – 2个到n节点或者主机运行Oracle database server。
2. 私有网络(Network Interconnect) – RAC之间需要一个私有网络来处理通讯和cache fusion。
3. 共享存储(Shared Storage) – RAC需要共享存储设备让所有的节点都可以访问数据文件。
4. 对外服务的网络(Production network) – RAC对外服务的网络。客户端和应用都通过这个网络来访问。
一个RAC必须再硬件的组成部分完全具备以上的4个部分。
下图是我们此文档中RAC的硬件环境。
? 硬件环境说明: 硬件环境为IBM P570 DS4800系列盘阵+exp700的扩展柜,
另外包括两个SAN switches。
? AIX版本: 此文档AIX版本为AIX5.3 ML5。
? Oracle版本: oracle版本为10g企业版 10.2.0.1 1
ORACLE 10G RAC 参考手册
PS:此图只是示意图,不代表真正的物理连接等情况,具体的RAC结构的概念请查考《Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide》等OTN的文档。
1.2主机系统配置及软件规划
分类
项目
说明
备注
主机名
db01/ db02
OS 版本
AIX 5300-05
AIX 5300-05-05
HA软件
HACMP 5.2
HACMP 5.3也可
共享VG
datavg
DS****磁盘阵列
主机
网卡
En8:
10.201.2.102 /10.201.2.104
10.201.2.103/10.201.2.105
双网卡绑定。
En8作为公网接口
En9作为私网接口
Oracle 版本
10.2.0.1.0
运行模式
RAC
归档模式
归档
/opt/app/oracle/archive/arch1 2
数据库
数据库名
racdb
2
ORACLE 10G RAC 参考手册
3
实例名
racdb1/racdb2
存储方式
裸设备
客户端配置
IP地址
10.201.2.110
1.3 IP规划
IP地址
主机名
说明
10.201.2.102
db01
第一个节点管理IP
172.16.100.1
db01_priv
第一个节点私有IP
10.201.2.104
db01_vip
第一个节点VIP
10.201.2.103
db02
第二个节点管理IP
172.16.100.2
db02_priv
第二个节点私有IP
10.201.2.105
db02_vip
第二个节点VIP
1.4 NTP服务
由于数据库服务器大多数都不会和公网相连,所以建议先建立NTP服务器,或者让两台服务器互相做NTP服务器和客户端。关于NTP服务此文就不过多赘述。请参考相关的技术文档。
PS:强烈建议先将NTP服务配置好再进行下面的步骤。
二、安装Oracle RAC前的准备
2.1 配置AIX
(对于AIX的配置,通常可以请SA或者系统集成商来协助。但是事情只有亲历亲为才会比较放心,所以下面我们来为RAC进行准备,对AIX进行的相关配置。)
2.1.1、调整aix文件系统
使用smitty fs
扩充 / 4GB
扩充 /home 8GB
ORACLE 10G RAC 参考手册
4
扩充 /usr 8GB
扩充 /var 8GB
扩充 /tmp 2GB
扩充 /opt 40GB
扩充 /var/adm/ras/platform 1GB
因为默认安装完毕后,每个文件系统都比较小。所以建议扩大这些文件系统的大小。大小的标准根据自己的实际情况来做。
配置结果如下:
NODE 1:
# df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/hd4 4.00 1.91 5% 2553 1% /
/dev/hd2 8.00 2.47 39% 36143 6% /usr
/dev/hd9var 8.00 3.95 2% 585 1% /var
/dev/hd3 2.00 1.99 1% 110 1% /tmp
/dev/fwdump 1.00 1.00 1% 4 1% /var/adm/ras/platform
/dev/hd1 8.00 3.78 6% 124 1% /home
/proc - - - - - /proc
/dev/hd10opt 40.00 19.92 1% 2548 1% /opt
NODE 2 :
# df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/hd4 4.00 1.91 5% 2553 1% /
/dev/hd2 8.00 2.47 39% 36143 6% /usr
/dev/hd9var 8.00 3.95 2% 585 1% /var
/dev/hd3 2.00 1.99 1% 110 1% /tmp
/dev/fwdump 1.00 1.00 1% 4 1% /var/adm/ras/platform
/dev/hd1 8.00 3.78 6% 124 1% /home
/proc - - - - - /proc
/dev/hd10opt 40.00 19.92 1% 2548 1% /opt
2.1.2编辑hosts文件 (两个节点)
# more /etc/hosts
ORACLE 10G RAC 参考手册
5
127.0.0.1 loopback localhost # loopback (lo0) name/address
10.201.2.102 db01
172.16.100.1 db01_priv
10.201.2.104 db01_vip
10.201.2.103 db02
172.16.100.2 db02_priv
10.201.2.105 db02_vip
PS:需要注意的是
z 私有IP地址(必需与公网分离,两个节点可互相访问可以ping通,必须在/etc/hosts里有)
z 虚拟IP地址(同公网IP地址是一个网段的,如果有DNS就注册在DNS中,如果没有DNS就写在/etc/hosts文件里)
z 公网IP地址(主机真正的IP地址,主机管理员预先分配,如果有DNS就注册在DNS中,如果没有DNS就写在/etc/hosts文件里),并且保证写入每个客户系统中的hosts文件。
z 在各个节点的网卡配置必须相同,比如第一个节点公共IP是用en0,那么其他节点也得用en0
z 主机名称不允许出现大写字母,要求是小写字母和数字
2.1.3 创建rootvg的镜像
为了保证以后系统的安全,建议配置rootvg的镜像。
1.添加新硬盘到rootvg
#extendvg rootvg hdisk1
2.镜像rootvg
#mirrorvg -c 2 rootvg hdisk1
3.重新生成 boot image
#bosboot -ad /dev/hdisk0
4.更新bootlist
#bootlist -m normal hdisk0 hdisk1 cd0
5.重起系统
#shutdown –Fr
2.1.4 调整page size(swap)
默认的swap 为512M 修改pagesize
Smitty->system storage management->logical volume manager->paging size->change/show characteristics of a paging size
增加14 个LP(默认为ps为1024M,lp为256M)
lsps –a 可查看大小为4G
ORACLE 10G RAC 参考手册
6
2.1.5配置系统配置参数,配置每用户的最大进程数、调整water mark
# smitty chgsys
Maximum number of PROCESSES allowed per user [4096]
HIGH water mark for pending write I/Os per file [33]
LOW water mark for pending write I/Os per file [24]
Stack Execution Disable (SED) Mode off
2.1.6配置网络可调参数
修改文件/etc/rc.net,将如下几行加到文件的尾部:
#chmod 755 /etc/rc.net
#vi /etc/rc.net
if [ -f /usr/sbin/no ] ; then
/usr/sbin/no -o extendednetstats=0 >>/dev/null 2>&1
/usr/sbin/no -p -o udp_sendspace=65536
/usr/sbin/no -p -o udp_recvspace=262144
/usr/sbin/no -p -o tcp_sendspace=262144
/usr/sbin/no -p -o tcp_recvspace=262144
/usr/sbin/no -p -o rfc1323=1
/usr/sbin/no -p -o sb_max=1310720
/usr/sbin/no -r -o ipqmaxlen=512
fi
#chmod 554 /etc/rc.net
2.1.7修改异步I/O
# smitty chgaio
[Entry Fields]
MINIMUM number of servers [30] #
MAXIMUM number of servers [60] #
maximum number of REQUESTS [4096] #
server PRIORITY [39] #
STATE to be configured at system restart available +
ORACLE 10G RAC 参考手册
7
State of fast path enable +
# mkdev –l aio0 使异步I/O可用
2.1.8调整syncd频率
修改文件/sbin/rc.boot
nohup /usr/sbin/syncd 10 > /dev/null 2>&1 &
2.1.9创建串口设备
# smitty mktty
类型选择:tty rs232 Asynchronous Terminal,port number为0
测试两个节点的tty0的通信。
node2 : cat < /dev/tty0 node1 : cat /etc/hosts > /dev/tty0
2.1.10 转换AIX 64bit内核
Oracle 10.2 RAC on AIX 5L V5.3 需要64-bit内核。如果你的AIX是64bit那就OK。但是如果是32bit,需要转换32bit内核为64bit的内核。
使用 bootinfo –K 查看内核是否是64bit
# bootinfo –K
64
如果是32bit。那么需要使用如下方法来转换32bit到64bit
# ln -sf /usr/lib/boot/unix_64 /unix
# ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
# bosboot -ad /dev/ipldevice
# shutdown –Fr
具体可参考 metalink Note:169426.1
2.2 Oracle相关的配置
2.2.1创建用户在db01和db02上,创建oinstall、dba、hagsuser组
建议使用smitty添加组(设置三个组的id,如2.2.2的步骤所示)
或者如下命令
# mkgroup -'A' id='203' oinstall
# mkgroup -'A' id='204'dba
# mkgroup -'A' id='205'hagsuser
ORACLE 10G RAC 参考手册
8
2.2.2在db01和db02上,创建oracle用户:
1、使用smit来创建用户
Smit -> Security & Users -> Users -> Add a User
或者快速路径
# smitty mkuser
Add a User
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
* User NAME [oracle]
User ID [440]
Primary GROUP [oinstall]
Group SET [dba,hagsuser]
Soft FILE size [-1]
Soft CPU time [-1]
Soft DATA segment [-1]
Soft STACK size [-1]
PS:保证两台主机的组号要一致!
# more /etc/group
oinstall203:
dba204:
hagsuser205:
# id oracle
uid=440(oracle) gid=203(oinstall) groups=204(dba),205(hagsuser)
2.2.3安装oracle、hacmp支持包
# smitty installp
需要安装以下操作系统包:
Bos.adt
bos.cifs_fs
Bos.clvm
bos.compat
bos.data
Bos.perf
rsct.basic
rsct.compat.basic
ORACLE 10G RAC 参考手册
9
rsct.compat.clients
rsct.core
rsct.exp.cimrm 2.4.2.0
(以下包在AIX Toolbox for Linux Applications盘上,安装SSH的前提包)
openssl-0.9.7g
openssl-devel-0.9.7g
openssl-doc-0.9.7g
(以下包在扩展盘上)
openssh.base
openssh.license
openssh.man.en_US
xlC.aix50.rte:8.*.*.*
xlC.rte:8.*.*.*
2.2.4安装磁盘阵列,创建共享卷
准备磁盘阵列
# hostname
db01
# lspv
hdisk0 0002e54aa58657e9 rootvg active
hdisk1 0002657c5acf302b rootvg active
hdisk2 0002657c4d26e7ba None
hdisk3 0002657c5acf4bc3 None
hdisk4 0002657c4cc04d52 None
hdisk5 0002ee503cc8dcaa None
#
# hostname
db02
# lspv
hdisk0 0002e54aa58657e9 rootvg active
hdisk1 0002657c5acf302b rootvg active
hdisk2 0002657c4d26e7ba None
hdisk3 0002657c5acf4bc3 None
hdisk4 0002657c4cc04d52 None
hdisk5 0002ee503cc8dcaa None
z 在其中一个节点,创建一个并行vg名字为datavg
# hostname
db01
ORACLE 10G RAC 参考手册
10
#
# smitty mkvg
?Add a Big Volume Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
VOLUME GROUP name [datavg] +
Physical partition SIZE in megabytes 512
* PHYSICAL VOLUME names [hdisk2,hdisk3] +
Force the creation of a volume group yes +
Activate volume group AUTOMATICALLY no +
at system restart?
Volume Group MAJOR NUMBER [60]
Create VG Concurrent Capable? enhanced concurrent +
PS:确认所有卷组必须以concurrent模式被激活,两个节点可以同时对磁盘进行操作.
# varyonvg datavg
创建oracle使用的并行卷
使用下面命令。或者将如下命令便写成一个脚本然后执行。后面的partition size的个数请参考自己系统的情况。
mklv -y'rac_crs1024m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_vote1024m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_system_1024m' -w'n' -s'n' -r'n' datavg 4 hdisk2
mklv -y'rac_pwdfile_100m' -w'n' -s'n' -r'n' datavg 1 hdisk2
mklv -y'rac_sysaux_800m' -w'n' -s'n' -r'n' datavg 4 hdisk2
mklv -y'rac_undo1_4096m' -w'n' -s'n' -r'n' datavg 16 hdisk2
mklv -y'rac_undo2_4096m' -w'n' -s'n' -r'n' datavg 16 hdisk2
mklv -y'rac_temp_4096m' -w'n' -s'n' -r'n' datavg 16 hdisk2
mklv -y'rac_users_800m' -w'n' -s'n' -r'n' datavg 4 hdisk2
mklv -y'rac_redo1_1_120m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_redo1_2_120m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_redo1_3_120m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_redo2_1_120m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_redo2_2_120m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_redo2_3_120m' -w'n' -s'n' -r'n' datavg 2 hdisk2
mklv -y'rac_ctl1_100m' -w'n' -s'n' -r'n' datavg 1 hdisk2
mklv -y'rac_ctl2_100m' -w'n' -s'n' -r'n' datavg 1 hdisk2
mklv -y'rac_ctl3_100m' -w'n' -s'n' -r'n' datavg 1 hdisk2
mklv -y'rac_spfile_100m' -w'n' -s'n' -r'n' datavg 1 hdisk2
ORACLE 10G RAC 参考手册
11
通过mklv命令创建完lv后,会在/dev/下生成两个文件,比如:
# mklv -y'rac_spfile_100m' -w'n' -s'n' -r'n' datavg 1 hdisk2
那么在/dev/下会生成两个文件
/dev/rac_spfile_100m
/dev/rrac_spfile_100m
前面多了一个r的文件就是我们要使用的character devices。
也就是我们通常所说的裸设备。
z 在另外一个节点上import共享卷
# hostname
db02
# smitty vg
Volume Groups
Move cursor to desired item and press Enter.
? Import a Volume Group
Import a Volume Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
VOLUME GROUP name [datavg]
* PHYSICAL VOLUME name [hdisk2,hdisk3] +
Volume Group MAJOR NUMBER [60] +#
修改共享卷的属性(建议两台主机都要做)
# varyonvg datavg
# chown oracle:dba /dev/rrac_*
# varyoffvg datavg
2.2.5配置SSH的对等性
在所有节点配置SSH的对等性
在安装Oracle Real Application clusters之前,必须先配置所有节点的SSH对等性。因为在安装过程种Oracle Universal Installer 使用ssh和scp命令执行远程命令执行及copy的工作。
下面是具体的步骤:
z 以下步骤在所有节点上执行:
1.以oracle用户登陆
# su – oracle
2.在两个节点的oracle主目录分别创建.ssh目录,并赋予权限。
ORACLE 10G RAC 参考手册
12
# mkdir ~/.ssh
# chmod 755 ~/.ssh
3. 在两个节点分别生成RSA key
# /usr/bin/ssh-keygen -t rsa
会出现如下提示:
■ Accept the default location for the key file.
■ Enter and confirm a pass phrase that is different from the oracle user’s password. phrase
密码处直接回车即可
4. 生成DSA key
# /usr/bin/ssh-keygen -t dsa
出现如下提示:
■ Accept the default location for the key file.
■ Enter and confirm a pass phrase that is different from the oracle user’s password. phrase
密码处直接回车即可
5. 以oracle用户身份,在所有节点创建authorized_keys文件,并赋予权限
# touch ~/.ssh/authorized_keys
# cd ~/.ssh
# ls
你应该可以看到你所创建的id_dsa.pub 和id_rsa.pub和authorized_keys
6.在两个节点分别将id_dsa.pub 和id_rsa.pub加入到authorized_keys
节点1:
$ ssh db01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh db01 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh db02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh db02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
节点2:
$ ssh db02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh db02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh db01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh db01 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
PS:如果提示是否连接选择yes,密码输入oracle用户的密码
7.在每个节点上分别设置authorized_keys文件的权限
# chmod 644 ~/.ssh/authorized_keys
8.防止X11转发造成的安装失败,创建~ /.ssh/config,并加入如下内容。
ORACLE 10G RAC 参考手册
13
Host *
ForwardX11 no
9.以oracle用户身份,运行Oracle Universal Installer的节点上执行如下命令,然后测试ssh的对等性。
# exec /usr/bin/ssh-agent $SHELL
节点1
# ssh db01 date
# ssh db02 date
节点2
# ssh db02 date
# ssh db01 date
如果都不需要密码,得到时间后。就说明ssh对等性配置成功。
2.2.6安装fix包所需补丁(到IBM网站上下载补丁)
本文档所使用的版本 AIX 5305,HACMP 5.2只需要打一个hamcp的补丁 IY60759即可。
补丁可根据自己的实际情况来决定。
2.2.7打完补丁,包括调整完异步IO等,建议重启一次机器
# shutdown –Fr
2.2.8配置HACMP
1.创建集群
# smitty hacmp
Initialization and Standard Configuration
Add Nodes to an HACMP Cluster
?
Configure Nodes to an HACMP Cluster (standard)
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
?
[Entry Fields]
* Cluster Name [dbclt]
New Nodes (via selected communication paths) [db01 db02] +
Currently Configured Node(s)
ORACLE 10G RAC 参考手册
14
2.创建资源组racdbrg
# smitty hacmp
?Initialization and Standard Configuration
?Configure HACMP Resource Groups
?Add a Resource Group
Add a Resource Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Resource Group Name [racdbrg]
* Participating Nodes (Default Node Priority) [db01 db02] +
Startup Policy Online On All Available Nodes +
Fallover Policy Bring Offline (On Error Node Only) +
Fallback Policy Never Fallback +
3.为资源组racdbrg增加共享磁盘
# smitty hacmp
?Initialization and Standard Configuration
?Configure HACMP Resource Groups
?Change/Show Resources for a Resource Group (standard)
Select a Resource Group
Move cursor to desired item and press Enter.
datavg
?Change/Show All Resources and Attributes for a Resource Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Resource Group Name racdbrg
Participating Nodes (Default Node Priority) db01 db02
Startup Policy Online On All Available Nodes
Fallover Policy Bring Offline (On Error Node O>
Fallback Policy Never Fallback
Concurrent Volume Groups [datavg] +
Use forced varyon of volume groups, if necessary false +
Application Servers [] +
ORACLE 10G RAC 参考手册
15
4.配置串口网络作为HB
# smitty hacmp
?Extended Configuration
?Extended Topology Configuration
?Configure HACMP Communication Interfaces/Devices
?Add Communication Interfaces/Devices
Select a category
Move cursor to desired item and press Enter.
> Add Discovered Communication Interface and Devices
Add Pre-defined Communication Interfaces and Devices
Select a category
Move cursor to desired item and press Enter.
Discovery last performed: (Dec 08 20:10)
Communication Interfaces
> Communication Devices
Select Point-to-Point Pair of Discovered Communication Devices to Add
Move cursor to desired item and press F7. Use arrow keys to scroll.
ONE OR MORE items can be selected.
Press Enter AFTER making all selections.
Node Device Device Path Pvid
db01 hdisk2 /dev/hdisk2 0002ee503cc
db02 hdisk2 /dev/hdisk2 0002ee503cc
> db01 tty0 /dev/tty0
> db02 tty0 /dev/tty0
4.配置HB IP网络
# smitty hacmp
?Extended Configuration
?Extended Topology Configuration
?Configure HACMP Networks
?Change/Show a Network in the HACMP Cluster
Select a Network to Change/Show
Move cursor to desired item and press Enter.
net_ether_01 (192.168.0.0/24)
net_ether_02 (10.10.2.0/24)
Change/Show an IP-Based Network in the HACMP ClusterType or select values in entry fields.
ORACLE 10G RAC 参考手册
16
Press Enter AFTER making all desired changes.
[Entry Fields]
* Network Name net_ether_02
New Network Name []
* Network Type [ether]
* Netmask [255.255.255.0]
* Enable IP Address Takeover via IP Aliases [Yes]
IP Address Offset for Heartbeating over IP Aliases []
* Network attribute private
5.同步集群配置文件
# smitty hacmp
?Extended Configuration
?Extended Verification and Synchronization
HACMP Verification and Synchronization
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Verify, Synchronize or Both [Both]
* Automatically correct errors found during [Yes]
verification?
* Force synchronization if verification fails? [No]
* Verify changes only? [No]
* Logging [Standard]
6.测试HACMP集群
第一个节点
# hostname
db01
# smitty clstart --启动hacmp
# lssrc -g cluster --查看hacmp的状态
第二个节点
# hostname
db02
# smitty clstart
# lssrc -g cluster
# lsvg -o
datavg
ORACLE 10G RAC 参考手册
17
rootvg
# lsvg -l datavg
datavg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
rac_crs1024m jfs 2 2 1 closed/syncd N/A
rac_vote1024m jfs 2 2 1 closed/syncd N/A
rac_system_1024m jfs 4 4 1 closed/syncd N/A
rac_pwdfile_100m jfs 1 1 1 closed/syncd N/A
rac_sysaux_800m jfs 4 4 1 closed/syncd N/A
rac_undo1_4096m jfs 16 16 1 closed/syncd N/A
rac_undo2_4096m jfs 16 16 1 closed/syncd N/A
rac_temp_4096m jfs 16 16 1 closed/syncd N/A
rac_users_800m jfs 4 4 1 closed/syncd N/A
rac_redo1_1_120m jfs 2 2 1 closed/syncd N/A
rac_redo1_2_120m jfs 2 2 1 closed/syncd N/A
rac_redo1_3_120m jfs 2 2 1 closed/syncd N/A
rac_redo2_1_120m jfs 2 2 1 closed/syncd N/A
rac_redo2_2_120m jfs 2 2 1 closed/syncd N/A
rac_redo2_3_120m jfs 2 2 1 closed/syncd N/A
rac_ctl1_110m jfs 1 1 1 closed/syncd N/A
rac_ctl2_110m jfs 1 1 1 closed/syncd N/A
rac_ctl3_110m jfs 1 1 1 closed/syncd N/A
rac_spfile_110m jfs 1 1 1 closed/syncd N/A
第一个节点:
# hostname
db01
# smitty clstop
第二个节点:
# hostname
db02
# smitty clstop
# lsvg
rootvg
datavg
# lsvg -o
rootvg
ORACLE 10G RAC 参考手册
18
三、安装Oracle RAC
3.1安装oracle RAC的准备工作及安装Oracle ClusterWare
1.执行rootpre.sh
将光盘放入cdrom,加载cdrom
# mount –v cdrfs –o ro /dev/cd0 /mnt
# cd /mnt/clusterware/rootpre
# ./rootpre.sh
./rootpre.sh output will be logged in /tmp/rootpre.out_07-03-15.11:01:09
Saving the original files in /etc/ora_save_07-03-15.11:01:09....
Copying new kernel extension to /etc....
Loading the kernel extension from /etc
Oracle Kernel Extension Loader for AIX
Copyright (c) 1998,1999 Oracle Corporation
Successfully loaded /etc/pw-syscall.64bit_kernel with kmid: 0x3f14e00
Successfully configured /etc/pw-syscall.64bit_kernel with kmid: 0x3f14e00
The kernel extension was successfuly loaded.
Configuring Asynchronous I/O....
Asynchronous I/O is already defined
Configuring POSIX Asynchronous I/O....
Checking if group services should be configured....
Please confirm your Oracle userid is a member of the group: hagsuser
Configuring HACMP group services socket for possible use by Oracle.
PS:注意rootpre.sh需要在两个节点都运行。
2.确保HACMP集群已经在db01和db02上已经启动。
在两个节点执行
# smitty clstart
# lssrc -g cluster
3.创建目录:
mkdir -p /opt/app/oracle
ORACLE 10G RAC 参考手册
19
chown oracle:oinstall /opt/app/oracle
4.在两个节点分别设置oracle用户的环境变量
# su - oracle
$ vi ~oracle/.profile
ORACLE_BASE=/opt/app/oracle
export ORACLE_BASE
5.执行ssh对等命令
$ exec /usr/bin/ssh-agent $SHELL
6.设置display
$ export DISPLAY=10.201.2.110:0
7.运行runInstaller
$ /mnt/clusterware/runInstaller
**************************************************************************
Your platform requires the root user to perform certain pre-installation OS preparation. The root user should run the shell script 'rootpre.sh' before you proceed with Oracle installation. rootpre.sh can be found at the top level of the CD or the stage area.
Answer 'y' if root has run 'rootpre.sh' so you can proceed with Oracle
installation.
Answer 'n' to abort installation and then ask root to run 'rootpre.sh'.
**************************************************************************
Has 'rootpre.sh' been run by root? [y/n] (n)
y
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-03-15_03-21-44PM. Please wait ...
Oracle Universal Installer, Version 10.2.0.1.0 Production
Copyright (C) 1999, 2005, Oracle. All rights reserved.
进入安装界面,点击下一步
ORACLE 10G RAC 参考手册
设置inventory目录及信任组,点击下一步
设置crs的主目录,点击下一步
20
ORACLE 10G RAC 参考手册
检查安装要求
指定cluster的配置。点击Edit修改VIP的配置。保证和/etc/hosts中一致
21
ORACLE 10G RAC 参考手册
修改网络接口的设置。点击Edit编辑
指定OCR的位置。如下图
22
ORACLE 10G RAC 参考手册
指定Voting Disk,如下图:
显示统计信息,点击install开始安装。
23
ORACLE 10G RAC 参考手册
只要ssh对等性配置成功。在remote的安装就没有问题。如下图
最后执行下面两个脚本。
24
ORACLE 10G RAC 参考手册
先执行/opt/app/oracle/oraInventory/orainstRoot.sh然后执行root.sh
Node 1:
# /opt/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /opt/app/oracle/oraInventory to 775.
Changing groupname of /opt/app/oracle/oraInventory to oinstall.
The execution of the script is complete
Node 2:
# /opt/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /opt/app/oracle/oraInventory to 775.
Changing groupname of /opt/app/oracle/oraInventory to oinstall.
The execution of the script is complete
Node 1:
# /opt/app/oracle/crs/root.sh
WARNING: directory '/opt/app/oracle/crs' is not owned by root
WARNING: directory '/opt/app/oracle/crs' is not owned by root
WARNING: directory '/opt/app/oracle' is not owned by root
WARNING: directory '/opt/app' is not owned by root
Checking to see if Oracle CRS stack is already configured
Checking to see if any 9i GSD is up
/etc/oracle does not exist. Creating it now.
Setting the permissions on OCR backup directory
Setting up NS directories
25
ORACLE 10G RAC 参考手册
26
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/opt/app/oracle/crs' is not owned by root
WARNING: directory '/opt/app/oracle/product' is not owned by root
WARNING: directory '/opt/app/oracle' is not owned by root
WARNING: directory '/opt/app' is not owned by root
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 3: db01 db01_priv db01
node 4: db02 db02_priv db02
Creating OCR keys for user 'root', privgrp 'system'..
Operation successful.
Now formatting voting device: /dev/rrac_vote1024m
Format of 1 voting devices complete.
Startup will be queued to init within 30 seconds.
Adding daemons to inittab
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
db01
CSS is inactive on these nodes.
db02
Local node checking complete.
Run root.sh on remaining nodes to start CRS daemons.
Node 2:
# /opt/app/oracle/crs/root.sh
WARNING: directory '/opt/app/oracle/crs' is not owned by root
WARNING: directory '/opt/app/oracle/product' is not owned by root
WARNING: directory '/opt/app/oracle' is not owned by root
Checking to see if Oracle CRS stack is already configured
Checking to see if any 9i GSD is up
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/opt/app/oracle/crs' is not owned by root
WARNING: directory '/opt/app/oracle/product' is not owned by root
WARNING: directory '/opt/app/oracle' is not owned by root
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
ORACLE 10G RAC 参考手册
27
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 3: db01 db01_priv db01
node 4: db02 db02_priv db02
clscfg: Arguments check out successfully.
NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry for cluster has already been initialized
Startup will be queued to init within 30 seconds.
Adding daemons to inittab
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
db01
db02
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), "en8" is not public. Public interfaces should be used to configure virtual IPs.
此时,在运行OUI的节点上以root身份在/opt/app/oracle/crs/bin下运行vipca
# ./vipca
选择你运行VIP的网络接口
ORACLE 10G RAC 参考手册
然后设置VIP
启动VIP
28
ORACLE 10G RAC 参考手册
启动成功以后出现统计信息。点击完成
然后回到这个界面点击OK
29
ORACLE 10G RAC 参考手册
此时进行检查,此时三个服务全部通过。
然后点击next安装完成
30
ORACLE 10G RAC 参考手册
支持CRS安装完毕。使用
# su - oracle
$ /opt/app/oracle/crs/bin/crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.db01.gsd application ONLINE ONLINE db01
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora.db02.gsd application ONLINE ONLINE db02
ora.db02.ons application ONLINE ONLINE db02
ora.db02.vip application ONLINE ONLINE db02
3.2安装oracle RAC的数据库软件10.2.0.1
1.在两个节点设置环境变量
# su - oracle
# vi .profile
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
31
ORACLE 10G RAC 参考手册
32
2.将光盘介质放入cdrom
$ mount –v cdrfs –o ro /dev/cd0 /mnt
$ exec /usr/bin/ssh-agent $SHELL
$ export DISPLAY=10.201.2.110:0 (为客户端的IP地址)
$ /mnt/database/runInstaller
**************************************************************************
Your platform requires the root user to perform certain pre-installation OS preparation. The root user should run the shell script 'rootpre.sh' before you proceed with Oracle installation. rootpre.sh can be found at the top level of the CD or the stage area.
Answer 'y' if root has run 'rootpre.sh' so you can proceed with Oracle
installation.
Answer 'n' to abort installation and then ask root to run 'rootpre.sh'.
**************************************************************************
Has 'rootpre.sh' been run by root? [y/n] (n)
y
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-03-15_04-54-25PM. Please wait ...
启动安装界面,点击下一步
ORACLE 10G RAC 参考手册
选择安装类型,选择企业版,另外在product languages,可以将中文加入 33
ORACLE 10G RAC 参考手册
设置oracle主目录,按默认即可
选择cluster installation,选择所有的节点。 34
ORACLE 10G RAC 参考手册
进行先决条件检查
选择只安装数据库软件,然后我们单独建库。 35
ORACLE 10G RAC 参考手册
现实统计信息
正常的安装过程。 36
ORACLE 10G RAC 参考手册
在安装结束前,在两个节点执行root.sh
37
ORACLE 10G RAC 参考手册
38
Node 1:
# /opt/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/oracle/product/10.2.0/db
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Creating /usr/local/bin directory...
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Node 2:
# /opt/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/oracle/product/10.2.0/db
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Creating /usr/local/bin directory...
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
ORACLE 10G RAC 参考手册
Now product-specific root actions will be performed..
执行完root.sh后回到上一个界面点击OK
到这安装结束。点击退出。 39
ORACLE 10G RAC 参考手册
至此,数据软件安装结束了。
3.3创建数据库
1.首先创建archive的空间。
使用smitty vg将hdisk4和hdisk5分别在两个节点上创建archive卷组。然后smitty fs 分别在两个节点将archive加载到每个节点的文件系统。
Mount点为 /opt/app/oracle/archive/
创建完成之后,以oracle用户身份,在mount点再创建两个目录作为归档位置。
# cd /opt/app/oracle/archive/
# mkdir arch1
# mkdir arch2
# chown oracle:dba arch*
PS:对于归档日志目录请参考自己的环境进行创建。也可以使用GPFS等并行文件系统。
2.分别在每个节点设置环境变量
# su – oracle
# vi .profile
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.
40
ORACLE 10G RAC 参考手册
41
export PATH
if [ -s "$MAIL" ] # This is at Shell startup. In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically.
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs
# 每个节点要有自己的实例名(比如在第一个节点上racdb1,第二个节点上racdb2)
export ORACLE_SID=racdb1
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG="American_America.ZHS16GBK"
3.规划数据库建在raw卷上
使用find命令得到裸设备的名称。
# find /dev -user oracle -name 'r*' -print > db_raw.conf
然后编辑文件db_raw.conf
system=/dev/rrac_system_1024m
sysaux=/dev/rrac_sysaux_800m
users=/dev/rrac_users_800m
temp=/dev/rrac_temp_4096m
undotbs1=/dev/rrac_undo1_4096m
undotbs2=/dev/rrac_undo2_4096m
redo1_1=/dev/rrac_redo1_1_120m
redo1_2=/dev/rrac_redo1_2_120m
redo2_1=/dev/rrac_redo2_1_120m
redo2_2=/dev/rrac_redo2_2_120m
control1=/dev/rrac_ctl1_100m
control2=/dev/rrac_ctl2_100m
spfile=/dev/rrac_spfile_100m
pwdfile=/dev/rrac_pwdfile_100m
$ export DISPLAY=10.201.2.110:0
$ exec /usr/bin/ssh-agent $SHELL
$ export DBCA_RAW_CONFIG=db_raw.conf
$ dbca
进入到建库的界面
ORACLE 10G RAC 参考手册
选择创建一个数据库
选择在两个结点上创建 42
ORACLE 10G RAC 参考手册
选择一个模板。我们这次选择通用的模板
键入全局数据库名和SID Prefix。 43
ORACLE 10G RAC 参考手册
按默认的即可
设置密码 44
ORACLE 10G RAC 参考手册
选择存储部分,我们选择裸设备,会自动选择到db_raw.conf文件
启动归档,同时设置归档路径。 45
ORACLE 10G RAC 参考手册
创建sample schema。默认即可。 46
ORACLE 10G RAC 参考手册
配置数据库的services,选择add添加一个services,我们选择racdb 其他选项如图
配置初始化参数。如下: 47
ORACLE 10G RAC 参考手册
字符集要注意选择。 我们选择ZHS16GBK 48
ORACLE 10G RAC 参考手册
49
ORACLE 10G RAC 参考手册
选择数据库存储,点击next (RAC默认的redolog组为4组,每个thread两组,通常我们会在创建RAC后再添加redolog。)
选择finish
50
ORACLE 10G RAC 参考手册
安装完毕,点击exit,启动cluster服务 51
ORACLE 10G RAC 参考手册
PS:有时在启动cluster服务过程中可能会报两个错误。
这个原因可能是因为
SRVCTL fails to startup instance, due to connection to racgimon killed by NS after 10s
具体可查看metalink Note:402437.1
我们需要做的是在sqlnet.ora中加入如下参数: 52
ORACLE 10G RAC 参考手册
53
sqlnet.inbound_connect_timeout = 600
然后,我们在使用如下命令来查看现有的服务。
$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.oradb.db application ONLINE ONLINE db01
ora....radb.cs application ONLINE ONLINE db01
ora....db1.srv application ONLINE ONLINE db01
ora....db2.srv application ONLINE ONLINE db02
ora....b1.inst application ONLINE ONLINE db01
ora....b2.inst application ONLINE ONLINE db02
ora....C1.lsnr application ONLINE ONLINE db01
ora.db01.gsd application ONLINE ONLINE db01
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora....C2.lsnr application ONLINE ONLINE db02
ora.db02.gsd application ONLINE ONLINE db02
ora.db02.ons application ONLINE ONLINE db02
ora.db02.vip application ONLINE ONLINE db02
至此,我们的oracle 10G RAC安装成功。
如果需要安装oracle10g的补丁,那么请参考补丁包携带的升级安装说明文档。补丁安装步骤不在此文档中赘述。
3.4 客户端的配置配置客户端
首先,为了保证应用服务器或者客户端可以稳定的连接到RAC服务器。要在客户端的hosts文件中写入相应的RAC(内容与前面etc/hosts一致)地址。
然后编辑tnsnames.ora内容如下:
RACDB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db02_vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb)
(INSTANCE_NAME = racdb2)
)
)
RACDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db01_vip)(PORT = 1521))
(CONNECT_DATA =
ORACLE 10G RAC 参考手册
54
(SERVER = DEDICATED)
(SERVICE_NAME = racdb)
(INSTANCE_NAME = racdb1)
)
)
LISTENERS_RACDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db01_vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = db02_vip)(PORT = 1521))
)
RACDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db01_vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = db02_vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
四、Oracle RAC测试
通常Oracle RAC的测试最好是配合着应用来进行测试才有意义。但是有很多情况下,刚刚部署好的RAC的时候,可能环境中还没有应用。那么这个时候我们也可以用sqlplus等工具,进行一些简单RAC测试。大体上RAC的instance级测试分成两种测试。测试failover和LB的测试。
ORACLE 10G RAC 参考手册
55
4.1测试failover
我们简单的举个例子.下面的SQL脚本(checkracstat.sql)可以查看
# more checkracstat.sql
COL instance_name FORMAT a13;
COL host_name FORMAT a9;
COL failover_method FORMAT a15;
COL failed_over FORMAT a11;
SELECT instance_name,host_name,
NULL AS failover_type,NULL AS failover_method,
NULL AS failed_over
FROM v$instance
UNION
SELECT NULL,NULL,failover_type,failover_method,failed_over
FROM v$session
WHERE username = 'SYSTEM';
从 客户端计算机中,以SYSTEM用户登录RAC数据库:
$ sqlplus system/password@racdb
SQL > select instance_name from gv$instance;
racdb1
racdb2
SQL > @checkracstat.sql
INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------- ------------- --------------- -----------
RACDB1 DB01
SELECT BASIC NO
此时我们看到当前我们的session连到的是racdb1的这个instance。同时没有发生failover。我们不退出这个session。然后我们到节点db01上使用abort 选项来模拟instance1 crash。要执行这一操作,我们可以使用 srvctl 命令,如下所示:
$ srvctl status database -d racdb
Instance racdb1 is running on node db01
Instance racdb2 is running on node db02
$ srvctl stop instance -d racdb -i racdb1 -o abort
$ srvctl status database -d racdb
Instance racdb1 is not running on node db01
Instance racdb2 is running on node db02
我们再回到我们原来的session,然后重新执行checkracstat.sql 脚本:
SQL > select instance_name from gv$instance;
racdb2
SQL > @checkracstat.sql
INSTANCE_NAME HOST_NAME FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
ORACLE 10G RAC 参考手册
56
------------- --------- ------------- --------------- -----------
racdb2 db02
SELECT BASIC YES
从上面的演示中,可以看到上述会话现在已经被通明切换到了db02的实例 racdb2上。你也可以使用gv$instance判断,或者通过instance1 crash前后对同一个表进行访问。来测试在同一个session中,发生一个instance crash后,是否会影响到对表的访问。当然,这只是简单测试。正式的测试,必须要配合着应用一起进行并且要制定比较详细的计划。
4.2测试load balance
LB的测试,使用sqlplus没有办法测试,可以在internet上找一些现成的测试工具。当然,你也可以自己写程序来测试。总之,基本上在100个并发connect这个级别可以达到一个节点接受到一半的连接请求,另一个节点接受另一半的连接请求。
五、安装后的情况处理
5.1安装失败后,如何彻底删除除oracle软件及CRS
如果不干净的删除一个安装失败的CRS会引起类似于节点重启这样的问题。
那么我们该如何干净的删除CRS的安装?
? 第一种方法,通过CRS提供的脚本来删除。
首先,运行$ORA_CRS_HOME/install目录下的 rootdelete.sh 运行完毕后,再运行 rootdeinstall.sh 这执行完这两个脚本之后,就可以干净的删除安装失败的CRS。
? 第二种方法,我们手工去删除CRS。因为有些情况这两个脚本可能会没有,或者有问题。
那么我们手工删除的步骤如下:
1、停止所有节点上的Nodeapps:
$ srvctl stop nodeapps -n <node name>
2、防止CRS自动跟随着节点的启动。我们需要以root身份来执行如下的操作来去掉CRS相关的自动启动的文件(AIX)
# rm /etc/init.cssd
# rm /etc/init.crs
# rm /etc/init.crsd
# rm /etc/init.evmd
# rm /etc/rc.d/rc2.d/K96init.crs
# rm /etc/rc.d/rc2.d/S96init.crs
# rm -Rf /etc/oracle/scls_scr
ORACLE 10G RAC 参考手册
57
# rm -Rf /etc/oracle/oprocd
# rm /etc/inittab.crs
# cp /etc/inittab.orig /etc/inittab
如果你是其他平台可以借鉴一下的步骤
Sun:
# rm /etc/init.d/init.cssd
# rm /etc/init.d/init.crs
# rm /etc/init.d/init.crsd
# rm /etc/init.d/init.evmd
# rm /etc/rc3.d/K96init.crs
# rm /etc/rc3.d/S96init.crs
# rm -Rf /var/opt/oracle/scls_scr
# rm -Rf /var/opt/oracle/oprocd
# rm /etc/inittab.crs
# cp /etc/inittab.orig /etc/inittab
Linux:
# rm /etc/oracle/*
# rm -f /etc/init.d/init.cssd
# rm -f /etc/init.d/init.crs
# rm -f /etc/init.d/init.crsd
# rm -f /etc/init.d/init.evmd
# rm -f /etc/rc2.d/K96init.crs
# rm -f /etc/rc2.d/S96init.crs
# rm -f /etc/rc3.d/K96init.crs
# rm -f /etc/rc3.d/S96init.crs
# rm -f /etc/rc5.d/K96init.crs
# rm -f /etc/rc5.d/S96init.crs
# rm -Rf /etc/oracle/scls_scr
# rm -f /etc/inittab.crs
# cp /etc/inittab.orig /etc/inittab
HP-UX:
# rm /sbin/init.d/init.cssd
# rm /sbin/init.d/init.crs
# rm /sbin/init.d/init.crsd
# rm /sbin/init.d/init.evmd
# rm /sbin/rc2.d/K960init.crs
# rm /sbin/rc2.d/K001init.crs
# rm /sbin/rc3.d/K960init.crs
# rm /sbin/rc3.d/S960init.crs
# rm -Rf /var/opt/oracle/scls_scr
# rm -Rf /var/opt/oracle/oprocd
# rm /etc/inittab.crs
ORACLE 10G RAC 参考手册
58
# cp /etc/inittab.orig /etc/inittab
HP Tru64:
# rm /sbin/init.d/init.cssd
# rm /sbin/init.d/init.crs
# rm /sbin/init.d/init.crsd
# rm /sbin/init.d/init.evmd
# rm /sbin/rc3.d/K96init.crs
# rm /sbin/rc3.d/S96init.crs
# rm -Rf /var/opt/oracle/scls_scr
# rm -Rf /var/opt/oracle/oprocd
# rm /etc/inittab.crs
# cp /etc/inittab.orig /etc/inittab
3、再一次确认crs相关的三个进程是否还存在,如果存在就将他们kill掉或者reboot节点。
# ps -ef | grep crs
# kill <crs pid>
# ps -ef | grep evm
# kill <evm pid>
# ps -ef | grep css
# kill <css pid>
PS:不要kill任何OS的进程比如icssvr_daemon。
4、如果在节点上没有其他的oracle软件运行,如果listener、DB等。你可以删除/var/tmp/.oracle 和 /tmp/.oracle.
# rm -f /var/tmp/.oracle
# rm -f /tmp/.oracle
5、然后删除/etc/oracle目录下的ocr.loc
# rm -f /etc/oracle/ocr.loc
6、使用OUI删除CRS Home。
7、删除CRS安装目录。
# rm -Rf <CRS Install Location>/*
8、如果你使用的是裸设备,那么使用dd命令清空OCR 和Voting:
# dd if=/dev/zero of=/dev/rrac_vote1024m bs=8192 count=2560
# dd if=/dev/zero of=/dev/rrac_crs1024m bs=8192 count=12800
如果你的将OCR和voting disk放置在shared filesystem上,那么将他们删除。
如果你使用ASM,那么在你删除数据库的安装的时候,你也必须清空ASM的disks
9、这个时候就可以安装RAC的安装手册来重新安装了
PS:该方法参考Metalink Note:239998.1
ORACLE 10G RAC 参考手册
59
5.2在AIX环境下,RAC启动的方法
1、如果将HACMP设置为了自动启动,那么两个节点的将会随着系统的启动,hacmp和crs都会自动启动。(建议两个节点开机的时间有一段时间的延迟)。
2、我们也可以手动启动HACMP及CRS。(前提我们的init.crs的状态是enable的)
首先在节点A执行
# smitty clstart --启动hacmp
# lssrc -g cluster --查看hacmp的状态
都为active即可
大约过一分钟以后
在节点B
# smitty clstart --启动hacmp
# lssrc -g cluster --查看hacmp的状态
都为active即可
5.3刚安装完以后,自动启动CRS服务速度慢。以及gsd无法启动? 如何处理?
在刚刚部署完成后,保证了HACMP启动的前提下,CRS会自动跟随着HACMP启动。但是过程比较缓慢。一般处理的方法?
通常,在先启动的节点(通常为db01节点)的crs服务及相关services都会先启动。也就是我们通过crs_stat –t看到的情况如下:
开始查看会出现如下情况
# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....01.lsnr application ONLINE ONLINE db01
ora.db01.gsd application ONLINE ONLINE
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora....02.lsnr application ONLINE OFFLINE
ora.db02.gsd application ONLINE OFFLINE
ora.db02.ons application ONLINE OFFLINE
ora.db02.vip application ONLINE ONLINE db02
ora.db.db application ONLINE ONLINE db01
ora....orcl.cs application ONLINE OFFLINE
ora....cl1.srv application ONLINE ONLINE db01
ora....cl2.srv application ONLINE OFFLINE
ORACLE 10G RAC 参考手册
60
ora....l1.inst application ONLINE ONLINE db01
ora....l2.inst application ONLINE OFFLINE
PS:此时应用已经可以连接数据库。
如果我们什么操作都不作,大约过几分钟后会出现如下情况:
# crs_stat –t
Name Type Target State Host
------------------------------------------------------------
ora....01.lsnr application ONLINE ONLINE db01
ora.db01.gsd application ONLINE OFFLINE
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora....02.lsnr application ONLINE ONLINE db02
ora.db02.gsd application ONLINE OFFLINE
ora.db02.ons application ONLINE ONLINE db02
ora.db02.vip application ONLINE ONLINE db02
ora.db.db application ONLINE ONLINE db01
ora....orcl.cs application ONLINE ONLINE db02
ora....cl1.srv application ONLINE ONLINE db01
ora....cl2.srv application ONLINE ONLINE db02
ora....l1.inst application ONLINE ONLINE db01
ora....l2.inst application ONLINE OFFLINE
正如我们所见,因为第二个instance的启动的过程非常长。通常我们会使用srvctl命令将第二个节点的instance。
# su – oracle
$ srvctl start instance –d db –i db02 --手动启动instance2 即 db02
启动成功后,我们再使用crs_stat –t来查看crs的状态。
# crs_stat –t
Name Type Target State Host
------------------------------------------------------------
ora....01.lsnr application ONLINE ONLINE db01
ora.db01.gsd application ONLINE OFFLINE
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora....02.lsnr application ONLINE ONLINE db02
ora.db02.gsd application ONLINE OFFLINE
ora.db02.ons application ONLINE ONLINE db02
ora.db02.vip application ONLINE ONLINE db02
ora.db.db application ONLINE ONLINE db01
ORACLE 10G RAC 参考手册
61
ora....orcl.cs application ONLINE ONLINE db02
ora....cl1.srv application ONLINE ONLINE db01
ora....cl2.srv application ONLINE ONLINE db02
ora....l1.inst application ONLINE ONLINE db01
ora....l2.inst application ONLINE ONLINE db02
我们看到此时除了gsd服务其他的services已经全部启动。gsd没有启动的原因也是因为gsd的启动过程及其漫长。但是在后台已经可以查到他的进程了。也就是说这个时候,Oracle RAC已经正常工作了。
如果我们为让gsd现实正常,我们通常可以以root用户,再运行一遍vipca
# /opt/app/oracle/crs/bin/vipca
然后再重新走一遍,启动gsd ons vip等服务。马上gsd就会启动。我们再返回oracle用户查询crs的状态。得到的结果为:
# crs_stat –t
Name Type Target State Host
------------------------------------------------------------
ora....01.lsnr application ONLINE ONLINE db01
ora.db01.gsd application ONLINE ONLINE db01
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora....02.lsnr application ONLINE ONLINE db02
ora.db02.gsd application ONLINE ONLINE db02
ora.db02.ons application ONLINE ONLINE db02
ora.db02.vip application ONLINE ONLINE db02
ora.db.db application ONLINE ONLINE db01
ora....orcl.cs application ONLINE ONLINE db02
ora....cl1.srv application ONLINE ONLINE db01
ora....cl2.srv application ONLINE ONLINE db02
ora....l1.inst application ONLINE ONLINE db01
ora....l2.inst application ONLINE ONLINE db02
PS:在正常运行一段时间后,crs服务可以正常的自动启动,不需要再做这些操作。
ORACLE 10G RAC 参考手册
62
基础管理部分
六Oracle RAC日常管理
6.1 CRS 的管理
CRSCTL命令控制着本地节点的CRS 服务(Oracle clusterware processes)
停止CRS:
$ crsctl stop crs
或者
$ /etc/init.crs stop
或者
$ crs_stop –all
启动CRS:
$ crsctl start crs
或者
$ /etc/init.crs start
禁止Clusterware 在系统重启后自动启动的方法:
$ /etc/init.crs disable
启动Clusterware 在系统重启后自动启动的方法:
$ /etc/init.crs enable
查看CRS服务状态
$ crsctl check crs
6.2 OCR的资源管理
OCR的资源,当RAC cluster启动并成功运行以后,你可以使用crs_stat工具看到如下内容:
$ORA_CRS_HOME/bin/crs_stat
NAME=ora.db01.LISTENER_db01.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db01
ORACLE 10G RAC 参考手册
63
NAME=ora.db01.gsd
TYPE=application
TARGET=ONLINE
STATE=OFFLINE
NAME=ora.db01.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db01
NAME=ora.db01.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db01
NAME=ora.db02.LISTENER_db02.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
NAME=ora.db02.gsd
TYPE=application
TARGET=ONLINE
STATE=OFFLINE
NAME=ora.db02.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
NAME=ora.db02.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
NAME=ora.racdb.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
NAME=ora.racdb.racdb.cs
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
ORACLE 10G RAC 参考手册
64
NAME=ora.racdb.racdb.racdb1.srv
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db01
NAME=ora.racdb.racdb.racdb2.srv
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
NAME=ora.racdb.racdb1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db01
NAME=ora.racdb.racdb2.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on db02
通常情况下,所有的资源的状态都应该是online。另外,OCR每4个小时会备份一次。有一些情况你可以通过恢复的OCR的配置文件来恢复出现问题的OCR。
比如使用出现如下情况:
$ crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
$ crsctl check boot
Failure 4 at procr_open_key with status 4.
PROC-4: The cluster registry key to be operated on does not exist.
$ crsctl check crs
Failure 1 contacting CSS daemon
Cannot communicate with CRS
Cannot communicate with EVM
引起这个错误的一种可能原因是OCR配置丢了。这个我们可以利用这些备份来还原以前的配置。
# /etc/init.crs disable
# /etc/init.crs stop
先保证所有的crs进程全部停止。
# su – oracle
$ cd $ORA_CRS_HOME/bin
$./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr
然后切换到root用户下,重新enable CRS
# /etc/init.crs enable
最后reboot两个节点。
ORACLE 10G RAC 参考手册
65
6.3 SRVCTL命令介绍
SRVCTL命令可以控制RAC数据库中的instance,listener以及services。
通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。
1、通过SRVCTL命令来start/stop/check所有的实例:
$ srvctl start|stop|status database -d <db_name>
2、start/stop指定的实例:
$ srvctl start|stop|status instance -d <db_name> -i <instance_name>
3、列出当前RAC下所有的
$ srvctl config database -d <db_name>
4、start/stop/check 所有的nodeapps,比如:VIP, GSD, listener, ONS:
$ srvctl start|stop|status nodeapps -n <node_name>
5、如果你使用ASM,srvctl也可以start/stop ASM实例:
$ srvctl start|stop asm -n <node_name> [-i <asm_inst_name>] [-o<oracle_home>]
6、可以获取所有的环境信息:
$ srvctl getenv database -d <db_name> [-i <instance_name>]
7、设置全局环境和变量:
$ srvctl setenv database -d <db_name> -t LANG=en
8、从OCR中删除已有的数据库:
$ srvctl remove database -d <db_name>
9、向OCR中添加一个数据库:
$ srvctl add database -d <db_name> -o <oracle_home>
[-m <domain_name>] [-p<spfile>] [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>]
10、向OCR中添加一个数据库的实例:
$ srvctl add instance -d <db_name> -i <instance_name> -n <node1>
$ srvctl add instance -d <db_name> -i <instance_name> -n <node2>
11、向OCR中添加一个ASM实例:
$ srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>
12、添加一个service
$ srvctl add service -d <db_name> -s <service_name> -r <preferred_list>
ORACLE 10G RAC 参考手册
66
[-a <available_list>] [-P <TAF_policy>] [-u]
13、修改在其他节点上的service
$ srvctl modify service -d <db_name> -s <service_name> -I <orig_instance_name> -t <target_instance_name>
14、relocate 某个节点的service到其他节点
srvctl relocate service -d <db_name> -s <service_name> -I
<orig_instance_name> -t <target_instance_name>
6.4 SRVCTL相关的选项
SRVCTL START/STOP/STATUS options:
-d database name
-i instance name
-n node name (for nodeapps)
SRVCTL ADD options:
-A vip range, node, and database, address specification. The format of address string is:
[<logical host name>]/<VIP address>/<net mask> [/<host interface1 [ | host interface2 |..]>] [,]
[<logical host name>]/<VIP address>/<net mask> [/<host interface1[ | host interface2 |..]>]
-a for services, list of available instances, this list cannot include preferred instances
-m domain name with the format “us.domain.com”
-n node name that will support one or more instances
-o $ORACLE_HOME to locate Oracle binaries
-P for services, TAF preconnect policy - NONE, PRECONNECT
-r for services, list of preferred instances, this list cannot include available instances.
-s spfile name
-u updates the preferred or available list for the service to support the specified
instance. Only one instance may be specified with the -u switch. Instances that already
support the service should not be included.
SRVCTL MODIFY options:
-i <instance-name> -t <instance-name> : the instance name (-i) is replaced by the
instance name (-t) -i <instance-name>
-r : the named instance is modified to be a preferred instance -A address-list for VIP application,
at node level -s <asm_inst_name> : add or remove ASM dependency
SRVCTL RELOCATE options:
-i <instance-name> -t <instance-name> : the instance name (-i) is replaced by the instance name (-t)
ORACLE 10G RAC 参考手册
67
6.5 CRS及相关服务的常用命令的演示
1、查看状态的命令
# su – oracle -- 先切换到oracle用户
$ crs_stat -t -- 查看crs及所有的service的状态
Name Type Target State Host
------------------------------------------------------------
ora.oradb.db application ONLINE ONLINE db01
ora....radb.cs application ONLINE ONLINE db01
ora....db1.srv application ONLINE ONLINE db01
ora....db2.srv application ONLINE ONLINE db02
ora....b1.inst application ONLINE ONLINE db01
ora....b2.inst application ONLINE ONLINE db02
ora....C1.lsnr application ONLINE ONLINE db01
ora.db01.gsd application ONLINE ONLINE db01
ora.db01.ons application ONLINE ONLINE db01
ora.db01.vip application ONLINE ONLINE db01
ora....C2.lsnr application ONLINE ONLINE db02
ora.db02.gsd application ONLINE ONLINE db02
ora.db02.ons application ONLINE ONLINE db02
ora.db02.vip application ONLINE ONLINE db02
$ crsctl check crs -- 用crsctl命令,检查crs相关服务的状态
CSS appears healthy
CRS appears healthy
EVM appears healthy
$ srvctl status nodeapps -n db01 (db02) -- 使用srvctl查看所有节点上的服务是否正常
VIP is running on node:db01
GSD is running on node:db01
Listener is running on node:db01
ONS daemon is running on node:db01
$ srvctl status database -d db -- 使用srvctl查看数据库状态
Instance db01 is running on node db01
Instance db02 is running on node db02
2、启动和关闭相关服务的命令
# su – oracle
$ crs_start –all --启动所有的crs服务
$ crs_stop –all --停止所有的crs服务
$ crsctl start crs --启动crs服务
$ crsctl stop crs --停止crs服务
ORACLE 10G RAC 参考手册
68
$ srvctl start nodeapps -n db01(db02) --启动某节点上所有的应用
$ srvctl stop nodeapps -n db01(db02) --停止某节点上所有的应用
$ srvctl start listener -n db01(db02) --启动某个节点的listener
$ srvctl stop listener -n db01(db02) --停止某个节点的listener
$ srvctl start instance –d db –i db01(db02) --启动某个instance
$ srvctl stop instance –d db –i db01(db02) --停止某个instance
$ srvctl start database –d db --启动数据库
$ srvctl stop database –d db --停止数据库
6.6 为ORACLE RAC增加一个节点
这部分详细步骤请参考Metalink Note 270512.1
为RAC添加节点,主要分为一下几个大的步骤:
A. 按照第二章《安装oracle RAC前的准备》配置新节点的OS和硬件环境。
B. 增加一个节点到cluster中。
C. 增加RAC软件到新的节点。
D. 为新的节点重新配置listeners。
E. 使用DBCA增加实例。
下面是详细的步骤
A. 按照第二章《安装oracle RAC前的准备》配置新节点的OS和硬件环境。
B. 增加一个节点到cluster中。
1、在oracle用户下,设置DISPLAY环境变量,运行在$ORA_CRS_HOME/oui/bin 目录下的addNode.sh
$ DISPLAY=ipaddress:0.0; export DISPLAY
$ cd $ORA_CRS_HOME/oui/bin
$ ./addNode.sh
3. 当OUI出现 欢迎界面点击next.
4. 在 "Specify Cluster Nodes to Add to Installation" 节面, 增加一个公用IP对应的主机名和私有IP对应的主机名(与/etc/hosts中的记录一样)点击next.
5. 出现"Cluster Node Addition Summary"界面, 点击 next.
6. 出现"Cluster Node Addition Progress" 出现. 将会提示以root用户运行
ORACLE 10G RAC 参考手册
69
rootaddnode.sh。但是首先需要确认在rootaddnode.sh中的CLSCFG信息是正确的。应该是包含新的公有和私有IP对应的主机名。
比如:
$CLSCFG -add -nn <node2>,2 -pn <node2-private>,2 -hn <node2>,2
确认好以后,运行rootaddnode.sh script
$ su root
$ cd $ORA_CRS_HOME
$ sh -x rootaddnode.sh
执行完以后,点击OK 继续。
7. 之后,另一个对话框会出现。需要所有的节点上执行$ORA_CRS_HOME/root.sh。
$ su root
$ cd $ORA_CRS_HOME
$ sh -x root.sh
完成以后, 点击OK继续。
8. 在所有的新节点上运行完root.sh后, 在任意一个节点上运行
$ORA_CRS_HOME/bin/racgons add_config <newnode1>:4948 <newnode2>:4948
9. 安装结束。
C. 增加Oracle Database software (with RAC option) 到新的节点
1. 在原来的db节点上,进入到$ORACLE_HOME/oui/bin目录,运行addNode。
$ DISPLAY=ipaddress:0.0; export DISPLAY
$ cd $ORACLE_HOME/oui/bin
$ ./addNode.sh
2. OUI欢迎界面又出现了,点击next。
3. 在 "Specify Cluster Nodes to Add to Installation" 界面,指定你想加入的节点,点击next。
4. "Cluster Node Addition Summary" 界面出现, 点击next。
5. 然后进入到 "Cluster Node Addition Progress"界面.提示你以root的身份运行 root.sh。
ORACLE 10G RAC 参考手册
70
$ su root
$ cd $ORACLE_HOME
$ ./root.sh
执行完成以后, 点击OK继续。
6. 安装完成,exit安装界面
7. 然后以root身份进入到$ORACLE_HOME/bin目录,运行vipca
$ su root
$ DISPLAY=ipaddress:0.0; export DISPLAY
$ cd $ORACLE_HOME/bin
$ ./vipca -nodelist <node1>,<node2>
8. VIPCA欢迎界面出现,点击 next。
9. 增加新的节点的vip信息点击next。
10. 看到 "Summary" 界面以后, 点击finish.
11. 然后我们将看到创建和启动新的CRS资源,然后点击退出。
12. 确认interconnect是否正确,使用:
$ oifcfg getif
如果不正确,使用oifcfg命令修改:
$ oifcfg setif <interface-name>/<subnet>:<cluster_interconnect|public>
例子:
$ oifcfg setif -global eth1/10.10.10.0:cluster_interconnect
或者
$ oifcfg setif -node <nodename> eth1/10.10.10.0:cluster_interconnect
D. 为新节点重新配置listeners
1、使用netca来配置。过程与一般的创建RAC的listener一致。
2、 使用 crs_stat命令确认listener CRS资源是否被创建了。
3、 新增加的listener应该是offline的。使用srvctl命令启动这个节点上的nodeapps。
$ srvctl start nodeapps -n <newnode>
ORACLE 10G RAC 参考手册
71
4、 再次使用crs_stat 确定VIP's, GSD's, ONS's, and listeners等CRS资源是online的。
E. 通过DBCA增加一个新的实例. (对于standby 请看F)
1. 使用DBCA在原来的节点上创建一个新的实例。
$ DISPLAY=ipaddress:0.0; export DISPLAY
$ dbca
2. 在欢迎界面选择"Oracle Real Application Clusters",点击next。
3. 选择 "Instance Management",点击next.
4. 选择"Add an Instance", 点击next.
5. 选择你想加入新的实例的数据库,并且指定sysdba权限的用户。点击next。
6. 选择正确的实例名和节点,点击next。
7. 在存储界面直接点击next。
8. 到了 summary界面, 点击OK。开始创建新的实例
9. 完成以后,选择"No" 退出 DBCA.
10. 通过查询gv$instance,确认实例是否创建成功。
F. 添加一个实例到Standby数据库
1、在你的DataGuard中,如果你的主节点是RAC,那么要保证在E中的步骤都已经执行过了。如果你的主节点是单实例。那么增加redolog组和threads (使用alter database)。
SQL>alter database add logfile thread 2
group 3 ('/dev/rzj_redo2_5_120m ') size 120M,
group 4 ('/dev/rzj_redo2_6_120m ') size 120M;
SQL>alter database enable public thread 2;
2、在主节点上创建一个新的standby控制文件,并copy这个控制文件到standby。
SQL>alter database create standby controlfile as "/opt/app/oracle/stby.ctl"
3、关闭standby数据库, 备份现在standby数据库上控制文件,然后用新的standby控制
ORACLE 10G RAC 参考手册
72
文件来替换。
4、 调整新实例的init.ora或者spfile的参数,比如:thread, instance_name,instance_number, local_listener, undo_tablespace等等。
5. 最后恢复standby数据。
6.7 升级ORACLE RAC
如果升级oralce的RAC或者oracle最好在建库之前来做。这样比较简单。
以10.2.0.3为例
在建库之前的方法:
Upgrading Oracle Clusterware Installation
1 以root身份登录,执行xhost +
2 停止 Oracle Clusterware:
crsctl stop crs
3 在其余的节点上重复 1 和 2.
4 回到第一个节点,以oracle用户登录。.
5 在一个终端输入:
export ORACLE_HOME=/crs/oracle/product/10.2.0/crs --假设你的crs的home是这个。
6 进入到patch的目录:
cd /opt/oracle/patches/Disk1/
./runInstaller
然后
7 出现 Welcome界面.
Click Next.
8 在 Specify Home Details 界面, click Next.
9 在Hardware Cluster Installation Mode 界面, click Next.
10 在the Summary 界面, click Install.
11 NOTE: 安装完成以后不要点击exit推出。
12 再打开一个终端.
13 以 root 登录.
14 进入CRS_HOME,执行如下操作。
$ORA_CRS_HOME/install/root102.sh
15 在其他节点上按顺序重复12-14
16 在第一个节点上,点击exit推出安装。.
Upgrading the RAC Installation
ORACLE 10G RAC 参考手册
73
1 在第一个节点打开一个终端.
2 以oracle登录.
3 停止所有节点Oracle Clusterware node applications.
$ORACLE_HOME/bin/srvctl stop nodeapps -n <nodename>
NOTE: 如果有报错。忽略掉
4 可以在其他节点上重复3也可以在一个节点上改变nodename停止nodeapps.
5 在第一个节点上以oracle登录。打开一个终端
6 设置ORACLE_HOME:
export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1 --你的ORACLE_HOME
7 然后启动补丁程序:
cd /opt/oracle/patches/Disk1/
./runInstaller
8 Welcome 界面出现.
9 点击Next.
10 在Specify Home Details 界面, 点击Next.
11 在Specify Hardware Cluster Installation Mode 界面, 点击 Next.
12 在 the Summary 界面, 点击Install.
安装快完成时提示 run root.sh as user root.
13 打开一个终端.
14 执行:
/opt/oracle/product/10.2.0/db_1/root.sh
15 在其余的节点上按顺序重复13-14
16 执行完以后,点击 Exit推出.
17 然后在第一个节点上打开一个终端。
18 以oracle用户登录.
19 执行:
srvctl start nodeapps -n <nodename>
20 如果一切正常,nodeapps都会online。
(如果对于已经建完库或者生产系统的补丁。方法大致一样。但是需要先停止nodeapps和instance。执行完上面的步骤以后,还要使用dbua来升级数据库。具体可以参考patch的README。)
To be continue…..
  评论这张
 
阅读(843)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018