ORACLE RAC資料庫的備份與恢復(6)

junsansi發表於2010-04-20

5.3、啟用叢集特性:

  檢視叢集相關初始化引數:

    SQL> select * from v$option where parameter = ¨Real Application Clusters¨;

    PARAMETER                                VALUE

    ---------------------------------------- --------------------

    Real Application Clusters                TRUE

    SQL> show parameter cluster

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    cluster_database                     boolean     FALSE

    cluster_database_instances           integer     1

    cluster_interconnects                string

  由上述返回結果可知,RAC特性是支援的,不過尚未啟用叢集資料庫,因此接下來首先要改的,就是enable CLUSTER DATABASE,操作如下:

    SQL> alter system set cluster_database=true scope=spfile;

    System altered.

    SQL> alter system set cluster_database_instances=2 scope=spfile;

    System altered.

    SQL> alter system set instance_number=1 scope=spfile sid=¨repdb1¨;

    System altered.

    SQL> alter system set instance_number=2 scope=spfile sid=¨repdb2¨;

    System altered.

    SQL> alter system set thread=1 scope=spfile sid=¨repdb1¨;

    System altered.

    SQL> alter system set thread=2 scope=spfile sid=¨repdb2¨;

    System altered.

  新建一組UNDO表空間和執行緒2使用的兩組REDO檔案:

    SQL> create undo tablespace undotbs2 datafile ¨+ASMDISK2/repdb/datafile/undob01.dbf¨ size 256m;

    Tablespace created.

    SQL> alter system set undo_tablespace=¨undotbs1¨ scope=spfile sid=¨repdb1¨;

    System altered.

    SQL> alter system set undo_tablespace=¨undotbs2¨ scope=spfile sid=¨repdb2¨;

    System altered.

    SQL> create undo tablespace undotbs2 datafile ¨+ASMDISK2/repdb/datafile/undob01.dbf¨ size 256m;

    Tablespace created.

    SQL> alter database add logfile thread 2 group 3 ¨+ASMDISK2/repdb/redofile/redoc01.dbf¨ size 50m;

    Database altered.

    SQL> alter database add logfile thread 2 group 4 ¨+ASMDISK2/repdb/redofile/redod01.dbf¨ size 50m;

    Database altered.

    SQL> alter database enable thread 2;

    Database altered.

  酌情對log_archive_dest_n,* _file_dest 等引數進行設定,由於RAC資料庫的各個例項分別在不同節點上執行,一定要確保上述引數的路徑對所有節點均有效,同時各個節點的目錄也應滿足上述引數的需要,避免由目錄不存在導致的資料庫錯誤。

  關閉資料庫,並退出sqlplus命令列環境,修改ORACLE_SID以適應多例項環境,先在節一個節點中進行操作:

    [oracle@jssdbn2 oradata]$ export ORACLE_SID=repdb2

    [oracle@jssdbn2 oradata]$ echo "SPFILE=¨+ASMDISK2/repdb/spfile/spfilerepdb.ora¨" > /data/ora10g/product/10.2.0/db_1/dbs/initrepdb2.ora

    [oracle@jssdbn2 oradata]$ sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.4.0 - Production on Thu Mar 25 14:22:54 2010

    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area  285212672 bytes

    Fixed Size                  2083368 bytes

    Variable Size              88081880 bytes

    Database Buffers          188743680 bytes

    Redo Buffers                6303744 bytes

    Database mounted.

    Database opened.

    SQL> show parameter cluster;

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    cluster_database                     boolean     TRUE

    cluster_database_instances           integer     2

    cluster_interconnects                string

    SQL> set line 150 pages 1000

    SQL> select instance_number,instance_name,host_name from v$instance;

    INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME

    --------------- ---------------- ----------------------------------------------------------------

                  2 repdb2           jssdbn2

  然後再到另一個節點中執行,注意更改ORACLE_SID:

    [oracle@jssdbn1 ~]$ export ORACLE_SID=repdb1

    [oracle@jssdbn1 ~]$ echo "SPFILE=¨+ASMDISK2/repdb/spfile/spfilerepdb.ora¨" > /data/ora10g/product/10.2.0/db_1/dbs/initrepdb1.ora

    [oracle@jssdbn1 ~]$ sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.4.0 - Production on Thu Mar 25 14:23:45 2010

    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area  285212672 bytes

    Fixed Size                  2083368 bytes

    Variable Size              88081880 bytes

    Database Buffers          188743680 bytes

    Redo Buffers                6303744 bytes

    Database mounted.

    Database opened.

    SQL> set line 150 pages 1000

    SQL> show parameter cluster;

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    cluster_database                     boolean     TRUE

    cluster_database_instances           integer     2

    cluster_interconnects                string

    SQL> select instance_number,instance_name,host_name from v$instance;

    INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME

    --------------- ---------------- ----------------------------------------------------------------

                  1 repdb1           jssdbn1

  查詢gv$檢視看看:

    SQL> select instance_number,instance_name,host_name from gv$instance;

    INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME

    --------------- ---------------- ----------------------------------------------------------------

                  1 repdb1           jssdbn1

                  2 repdb2           jssdbn2

  OK ,現在已經是叢集的資料庫了,整個恢復工作基本完成。剩下的比如修改監聽、配置網路服務名,建立金鑰檔案等操作相信大家已經熟悉的不能再熟悉,這裡不再演示相關操作了(注意金鑰檔案也是建議建立到共享儲存端,否則的話就得在各個節點分別建立一份)。

  不過這時候通過crs_stat -t檢視的時候,還看不到新建立的repdb資料庫資訊:

    [oracle@jssdbn2 ~]$ /data/ora10g/product/10.2.0/crs_1/bin/crs_stat -t

    Name           Type           Target    State     Host        

    ------------------------------------------------------------

    ora.jssdb.db   application    OFFLINE   OFFLINE               

    ora....n1.inst application    OFFLINE   OFFLINE               

    ora....n2.inst application    OFFLINE   OFFLINE               

    ora....SM1.asm application    ONLINE    ONLINE    jssdbn1     

    ora....N1.lsnr application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.gsd application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.ons application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.vip application    ONLINE    ONLINE    jssdbn1     

    ora....SM2.asm application    ONLINE    ONLINE    jssdbn2     

    ora....N2.lsnr application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.gsd application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.ons application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.vip application    ONLINE    ONLINE    jssdbn2     

  這是正常的,因為手動恢復資料庫,其配置資訊並沒有維護到crs中,需要手動處理,操作如下:

    [oracle@jssdbn2 ~]$ srvctl add database -d repdb -o $ORACLE_HOME -n repdb -p +ASMDISK2/repdb/spfile/spfilerepdb.ora

    [oracle@jssdbn2 ~]$ srvctl add instance -d repdb -i repdb1 -n jssdbn1

    [oracle@jssdbn2 ~]$ srvctl add instance -d repdb -i repdb2 -n jssdbn2

  上述3條命令分別配置了資料庫和兩個例項,此時3項服務剛剛配置完成,crs中尚未同步其狀態,因此需要執行一下srvctl start database,然後再通過crs_stat即可檢視正確的狀態了:

    [oracle@jssdbn2 ~]$ srvctl start database -d repdb

    [oracle@jssdbn2 ~]$ /data/ora10g/product/10.2.0/crs_1/bin/crs_stat -t

    Name           Type           Target    State     Host        

    ------------------------------------------------------------

    ora.jssdb.db   application    OFFLINE   OFFLINE               

    ora....n1.inst application    OFFLINE   OFFLINE               

    ora....n2.inst application    OFFLINE   OFFLINE               

    ora....SM1.asm application    ONLINE    ONLINE    jssdbn1     

    ora....N1.lsnr application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.gsd application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.ons application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.vip application    ONLINE    ONLINE    jssdbn1     

    ora....SM2.asm application    ONLINE    ONLINE    jssdbn2     

    ora....N2.lsnr application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.gsd application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.ons application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.vip application    ONLINE    ONLINE    jssdbn2     

    ora.repdb.db   application    ONLINE    ONLINE    jssdbn1     

    ora....b1.inst application    ONLINE    ONLINE    jssdbn1     

    ora....b2.inst application    ONLINE    ONLINE    jssdbn2     

  恢復操作至此基本完成。

  關於RAC與其它ORACLE特性的應用,請繼續關注下一個系列文章:ORACLE RAC資料庫與DATA GUARD。

全文完,下載pdf版本請至:http://www.5ienet.com/mydesign/article.asp?/html/rid/115.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-660197/,如需轉載,請註明出處,否則將追究法律責任。

相關文章