RAC环境中SID(instance_name),instance_number,thread#,undotbs之间的关联关系


一.参数节选。
下面是从一个4节点11gR2 RAC节选的参数文件内容:
......
oracledb2.instance_number=2
oracledb1.instance_number=1
oracledb4.instance_number=4
oracledb3.instance_number=3
......
oracledb2.thread=2
oracledb3.thread=3
oracledb4.thread=4
oracledb1.thread=1
......
oracledb4.undo_tablespace='UNDOTBS3'
oracledb1.undo_tablespace='UNDOTBS1'
oracledb3.undo_tablespace='UNDOTBS4'
oracledb2.undo_tablespace='UNDOTBS2'
    参数文件中参数的格式是:x1.x2=x3,其中x1表示的是SID(System Identifier ),x2表示的具体参数,x3表示的是参数值。

二.参数含义讨论。
1).oracledb[x].instance_number=x表明了SID(instance_name)和instance_number之间的关系,这种关系可以从下面的SQL得到验证:
SQL> select instance_number,instance_name from gv$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
              4 oracledb4
              1 oracledb1
              3 oracledb3
              2 oracledb2

        每个实例的instance_number是不可修改的,这里的instance_name实际就是SID,但是不同instance_number的实例可以运行在不同的RAC节点,也就是说,oracledb3可以运行在任何一个节点,这是由节点ORACLE_SID环境变量决定的,如果不是上面INSTANCE_NAME范围内的名称,将收到如下报错信息:
[oracle@rac4 dbs]$ cp initoracledb4.ora inita.ora
[oracle@rac4 dbs]$ cp orapworacledb4 orapwa
[oracle@rac4 dbs]$ export ORACLE_SID=a
[oracle@rac4 dbs]$ echo $ORACLE_SID
a
[oracle@rac4 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 7 15:40:18 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup 
ORA-29760: instance_number parameter not specified

2).oracledb[x].thread=x表明了SID和日志线程之间的关系。

3).oracledb[x].undo_tablespace='x'表明了SID和UNDO表空间之间的关系。

三.确定SID的方法。
        SID是关系的核心,确定SID还有如下几种方法:
a).切换到Oracle Database的$ORACLE_HOME/dbs目录,查看参数文件或密码文件可以获得SID信息,格式为:SPFILE.ora,INIT.ora,orapw。
b).如果是文件系统,存储数据文件的目录结构也包含SID信息,例如:$ORACLE_BASE\..\oradata\。
c).执行SQL语句SELECT INSTANCE_NAME FROM V$INSTANCE;
d).在Linux和UNIX环境下,执行ps -ef | grep ora_命令,进程的命名中也包含SID信息,例如:ora_smon_oracledb4。

四.修改OCR中保存的节点运行INSTANCE_NAME的信息。
        如果在RAC环境下,调整了节点运行的INSTANCE_NAME,那么还需要更新OCR信息。oracledb3本来运行在rac4节点上,oracledb4运行在rac3节点上,执行以下步骤更新INSTANCE_NAME节点运行的OCR信息:
[root@rac1 bin]# ./srvctl start instance -d oracledb -i oracledb4
PRCC-1015 : oracledb was already running on rac3
PRCR-1004 : Resource ora.oracledb.db is already running
[root@rac1 bin]# ./srvctl remove instance -d oracledb -i oracledb3
Remove instance from the database oracledb? (y/[n]) y
[root@rac1 bin]# ./srvctl remove instance -d oracledb -i oracledb4
Remove instance from the database oracledb? (y/[n]) y
PRCD-1052 : Failed to remove instance from database oracledb
PRCD-1101 : Failed to remove running instance oracledb4 for database oracledb
[root@rac1 bin]# ./srvctl stop instance -d oracledb -i oracledb4
[root@rac1 bin]# ./srvctl remove instance -d oracledb -i oracledb4
Remove instance from the database oracledb? (y/[n]) y
[root@rac1 bin]# ./srvctl add instance -d oracledb -i oracledb3 -n rac3
[root@rac1 bin]# ./srvctl add instance -d oracledb -i oracledb4 -n rac4
[root@rac1 bin]# ./srvctl enable instance -d oracledb -i oracledb3 -n rac3
[root@rac1 bin]# ./srvctl enable instance -d oracledb -i oracledb4 -n rac4

--end--

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23135684/viewspace-748572/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23135684/viewspace-748572/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值