zoukankan      html  css  js  c++  java
  • 11gR2 RAC手动添加节点数据库实例 转

     两台服务器构成的Oracle 11gR2 RAC环境中,其中rac1服务器的私有网卡需要更换,所以在rac2服务器上使用dbca创建数据库的时候只创建了本节点的数据库实例(oracledb1)。当rac1服务器私有网卡更换成功,在rac1服务器执行dbca图形化"add Instance"和执行dbca -silent命令添加实例,都收到下面的报错:

    [oracle@rac1 ~]$ dbca -silent -addInstance -gdbName oracledb -nodelist rac1 -instanceName oracledb2 -sysDBAUserName sys -sysDBAPassword oracle_Schic1 
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/oracledb.log" for further details.

    [oracle@rac1 ~]$ cat /u01/app/oracle/cfgtoollogs/dbca/oracledb.log
    "Adding instance" operation on the admin managed database oracledb requires instance configured on local node. There is no instance configured on the local node "rac1".

            该操作放在现有的RAC节点rac2上执行应该就可以了。不过下面我们继续讨论手动在rac1上添加oracledb2实例的步骤:

            由于rac2运行着oracledb1实例,所以这里先添加rac1的oracledb2实例,之后再做调整。
     
    1.尝试直接在rac1上启动oracledb2实例。

    [root@rac1 bin]# su - oracle
    [oracle@rac1 ~]$ export ORACLE_SID=oracledb2
    [oracle@rac1 ~]$ sqlplus / as sysdba
     
    SQL*Plus: Release 11.2.0.3.0 Production on Fri Nov 9 02:29:36 2012
     
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
     
    Connected to an idle instance.
     
    SQL> startup
    ORA-29760: instance_number parameter not specified
     
             instance_number的内容参考文章:http://space.itpub.net/23135684/viewspace-748572
     
    2.确保rac1的ASM实例加载了相关磁盘组。

    [root@rac2 bin]# ./crsctl stat res -t
    --------------------------------------------------------------------------------
    NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.ARCH.dg
                   OFFLINE OFFLINE      rac1                                         
                   ONLINE  ONLINE       rac2                                         
    ora.DATA.dg
                   OFFLINE OFFLINE      rac1                                         
                   ONLINE  ONLINE       rac2                                         
    ......
    ora.asm
                   ONLINE  ONLINE       rac1                     Started             
                   ONLINE  ONLINE       rac2                     Started             
    ......
    ora.oracledb.db
          1        ONLINE  ONLINE       rac2                     Open                
    ......
    [root@rac2 bin]# ./srvctl start diskgroup -g data -n rac1
    [root@rac2 bin]# ./srvctl start diskgroup -g arch -n rac1
    [root@rac2 bin]# ./crsctl stat res -t
    --------------------------------------------------------------------------------
    NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.ARCH.dg
                   ONLINE  ONLINE       rac1                                         
                   ONLINE  ONLINE       rac2                                         
    ora.DATA.dg
                   ONLINE  ONLINE       rac1                                         
                   ONLINE  ONLINE       rac2                                         
    ......                                    
     
    3.调整RAC参数文件。

    [root@rac2 bin]# su - oracle
    [oracle@rac2 ~]$ export ORACLE_SID=oracledb1
    [oracle@rac2 ~]$ sqlplus / as sysdba
     
    SQL*Plus: Release 11.2.0.3.0 Production on Fri Nov 9 02:34:18 2012
     
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
     
     
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
    Data Mining and Real Application Testing options
     
    SQL> create pfile='/tmp/opfile.txt' from spfile='+DATA/oracledb/spfileoracledb.ora';
     
    File created.
     
    SQL> !vi /tmp/opfile.txt
     
    oracledb1.__db_cache_size=60263759872
    oracledb1.__java_pool_size=134217728
    oracledb1.__large_pool_size=134217728
    oracledb1.__pga_aggregate_target=39728447488
    oracledb1.__sga_target=68719476736
    oracledb1.__shared_io_pool_size=0
    oracledb1.__shared_pool_size=7784628224
    oracledb1.__streams_pool_size=0
    *.audit_file_dest='/u01/app/oracle/admin/oracledb/adump'
    *.audit_trail='db'
    *.cluster_database=true
    *.compatible='11.2.0.0.0'
    *.control_files='+DATA/oracledb/controlfile/current.260.798857565'
    *.db_block_size=8192
    *.db_create_file_dest='+DATA'
    *.db_domain=''
    *.db_name='oracledb'
    *.diagnostic_dest='/u01/app/oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=oracledbXDB)'
    oracledb1.instance_number=1
    oracledb2.instance_number=2
    *.log_archive_dest_1='LOCATION=+arch'
    *.log_archive_format='%t_%s_%r.dbf'
    *.open_cursors=300
    *.pga_aggregate_target=39625687040
    *.processes=5000
    *.remote_listener='wstrac.scan.com:1521'
    *.remote_login_passwordfile='exclusive'
    *.sessions=5505
    *.sga_target=68719476736
    oracledb1.thread=1
    oracledb2.thread=2
    oracledb1.undo_tablespace='UNDOTBS1'
    oracledb2.undo_tablespace='UNDOTBS2'
    ~
    "/tmp/opfile.txt" 34L, 1103C written

            上面加红的部分是新增加的内容。

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> create spfile='+DATA/oracledb/spfileoracledb.ora' from pfile='/tmp/opfile.txt';
     
    File created.
    SQL> startup
    ORACLE instance started.
     
    Total System Global Area 6.8413E+10 bytes
    Fixed Size                  2245480 bytes
    Variable Size            8053066904 bytes
    Database Buffers         6.0264E+10 bytes
    Redo Buffers               93609984 bytes
    Database mounted.
    Database opened.
     
            增加的参数的含义也参考文章:http://space.itpub.net/23135684/viewspace-748572
     
    4.确保创建了UNDOTBS2表空间。

    SQL> select file_id,file_name from dba_data_files;
     
       FILE_ID
    ----------
    FILE_NAME
    --------------------------------------------------------------------------------
             4
    +DATA/oracledb/datafile/users.259.798857305
     
             3
    +DATA/oracledb/datafile/undotbs1.258.798857305
     
             2
    +DATA/oracledb/datafile/sysaux.257.798857305
     
     
       FILE_ID
    ----------
    FILE_NAME
    --------------------------------------------------------------------------------
             1
    +DATA/oracledb/datafile/system.256.798857305
     
             5
    +DATA/oracledb/datafile/undotbs2.266.798863859
     
     
    5.再次尝试启动rac1上的oracledb2实例。
     
    SQL> startup
    ORACLE instance started.
     
    Total System Global Area 6.8413E+10 bytes
    Fixed Size                  2245480 bytes
    Variable Size            6979325080 bytes
    Database Buffers         6.1338E+10 bytes
    Redo Buffers               93609984 bytes
    ORA-01618: redo thread 2 is not enabled - cannot mount
            需要启用 redo thread 2。

    6.启用redo thread 2。

            以下的操作一定在现存的RAC节点实例上执行(在添加的节点上无法执行),也就是说在rac2节点的oracledb1实例上执行以下命令:

    SQL> ALTER DATABASE  
      2      ADD LOGFILE THREAD 2 GROUP 4  
      3          ('+DATA') SIZE 256M;
     
    Database altered.
     
    SQL> ALTER DATABASE  
      2      ADD LOGFILE THREAD 2 GROUP 5  
      3          ('+DATA') SIZE 256M;
     
    Database altered.
     
    SQL> ALTER DATABASE  
      2      ADD LOGFILE THREAD 2 GROUP 6  
      3          ('+DATA') SIZE 256M;
     
    Database altered.
     
    SQL>  alter database enable thread 2;
     
    Database altered.

            要启动thread 2,必须先为thread 2创建好日志组。
     
            参考文章:http://space.itpub.net/7199859/viewspace-663572
     
    7.加载rac1 oracledb2实例并打开数据库。
     
    SQL> alter database mount; 
     
    Database altered.
     
    SQL> alter database open;
     
    Database altered.

            经过以上的步骤,成功为rac1节点添加了oracledb2实例。

    8.将实例信息添加到OCR中。

    [root@rac1 bin]# su - oracle
    [oracle@rac1 ~]$ srvctl add instance -d oracledb -i oracledb2 -n rac1
    [oracle@rac1 ~]$ srvctl status database -d oracledb
    Instance oracledb2 is not running on node rac1
    Instance oracledb1 is running on node rac2
    [oracle@rac1 ~]$ srvctl start instance -d oracledb -i oracledb2
    [oracle@rac1 ~]$ srvctl status database -d oracledb
    Instance oracledb2 is running on node rac1
    Instance oracledb1 is running on node rac2
     
    9.调整OCR中实例运行节点。

            经过上面的添加后,rac1运行着oracledb2实例,rac2运行着oracledb1实例,执行下面的步骤,使得rac1运行oracledb1实例,rac2运行oracledb2实例。

    [oracle@rac1 ~]$ srvctl stop database -d oracledb
    [oracle@rac1 ~]$ srvctl remove instance -d oracledb -i oracledb1
    Remove instance from the database oracledb? (y/[n]) y
    [oracle@rac1 ~]$ srvctl remove instance -d oracledb -i oracledb2
    Remove instance from the database oracledb? (y/[n]) y
    [oracle@rac1 ~]$ srvctl add instance -d oracledb -i oracledb1 -n rac1
    [oracle@rac1 ~]$ srvctl add instance -d oracledb -i oracledb2 -n rac2
    [oracle@rac1 ~]$ srvctl start database -d oracledb
    [oracle@rac1 ~]$ srvctl status database -d oracledb
    Instance oracledb1 is running on node rac1
    Instance oracledb2 is running on node rac2
    [oracle@rac1 ~]$ srvctl enable database -d oracledb
    PRCC-1010 : oracledb was already enabled
    PRCR-1002 : Resource ora.oracledb.db is already enabled
    [oracle@rac1 ~]$ srvctl enable instance -d oracledb -i oracledb1
    [oracle@rac1 ~]$ srvctl enable instance -d oracledb -i oracledb2
     
     
    --end--
  • 相关阅读:
    PHP htmlspecialchars和htmlspecialchars_decode(函数)
    使用CURL抓取淘宝页面
    PHP 自定义字符串中的变量名解析
    Notepad++前端开发常用插件介绍
    使用phpExcel实现Excel数据的导入导出(完全步骤)
    moment.js 日期包装类 (说明示例)
    php函数前面加&符号 和 变量前面加&符号的意义
    window 查看端口/杀进程
    eureka 去除注册中心保护机制
    mysql 表关联更新另一张表的数据
  • 原文地址:https://www.cnblogs.com/yss669/p/9968408.html
Copyright © 2011-2022 走看看