• RAC中SID,instance_number,thread#,undotbs之间的关系


    一.参数节选

    下面是从一个2节点11gR2 RAC节选的参数文件内容:
    ......

    GZYT1.instance_number=1
    GZYT2.instance_number=2

    ......

    GZYT1.thread=1
    GZYT2.thread=2
    GZYT1.undo_tablespace='UNDOTBS1'
    GZYT2.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
    --------------- ----------------
    1 GZYT1
    2 GZYT2

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

    SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 24 21:07:21 2018

    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_GZYT1

  • 相关阅读:
    蛙蛙请教:问几个面向对象设计的问题
    推荐一些flash和asp.net结合开发的文章
    写一个跟踪的类库
    蛙蛙推荐:有关随机数的一些讨论
    蛙蛙推荐:用ASP.NET WEB Services和Flash MX 2004打造MP3播放器
    HiveQL学习
    Linux rpm 命令参数使用详解[介绍和应用]
    java.util.concurrent.locks.Condition 例子程序探讨
    [转]sudoers设置
    配置linux电脑
  • 原文地址:https://www.cnblogs.com/shaozi/p/8343825.html
Copyright © 2020-2023  润新知