RAC 環境下修改歸檔模式

dawn009發表於2014-03-24

轉載於--&gt>http://blog.csdn.net/leshami/article/details/8446304
RAC環境下的歸檔模式切換與單例項稍有不同,主要是共享儲存所產生的差異。在這種情況下,我們可以將RAC資料庫切換到非叢集狀態下,僅僅在一個例項上來實施歸檔模式切換即可完成RAC資料庫的歸檔模式轉換問題。本文主要描述了由非歸檔模式切換到歸檔模式,而由非歸檔切換的歸檔步驟相同,不再贅述。

  1. 1、主要步驟:  
  2.  備份spfile,以防止引數修改失敗導致資料庫無法啟動  
  3.  修改叢集引數cluster_database為false  
  4.  啟動單例項到mount狀態  
  5.  將資料庫置於歸檔模式(alter database archivelog/noarchivelog)  
  6.  修改叢集引數cluster_database為true  
  7.  關閉單例項  
  8.  啟動叢集資料庫  
  9.   
  10. 2、環境   
  11.  oracle@bo2dbp:~> cat /etc/issue  
  12.   
  13.  Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l).  
  14.   
  15.  oracle@bo2dbp:~> sqlplus -v  
  16.   
  17.  SQL*Plus: Release 10.2.0.3.0 - Production  
  18.    
  19.  使用asm儲存方式存放歸檔日誌  
  20.   
  21. 3、修改叢集資料庫到歸檔模式  
  22.  oracle@bo2dbp:~> export ORACLE_SID=ora10g1  
  23.  oracle@bo2dbp:~> sqlplus / as sysdba  
  24.   
  25.  SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 24 16:53:18 2012  
  26.   
  27.  Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  28.   
  29.  Connected to:  
  30.  Oracle Database 10g Release 10.2.0.3.0 - 64bit Production  
  31.  With the Real Application Clusters option  
  32.   
  33.  SQL> archive log list;    --&gt檢視當前資料庫的歸檔模式  
  34.  Database log mode              No Archive Mode          --&gt非歸檔模式  
  35.  Automatic archival             Disabled  
  36.  Archive destination            USE_DB_RECOVERY_FILE_DEST  
  37.  Oldest online log sequence     59  
  38.  Current log sequence           60  
  39.   
  40.  SQL> select instance_name,host_name,status from gv$instance;  
  41.   
  42.  INSTANCE_NAME    HOST_NAME            STATUS  
  43.  ---------------- -------------------- ------------  
  44.  ora10g1          bo2dbp               OPEN  
  45.  ora10g2          bo2dbs               OPEN  
  46.   
  47.  SQL> show parameter cluster      --&gt檢視叢集的引數,cluster_database為true表示為叢集資料庫,否則,非叢集資料庫  
  48.   
  49.  NAME                                 TYPE        VALUE  
  50.  ------------------------------------ ----------- ------------------------------  
  51.  cluster_database                     boolean     TRUE  
  52.  cluster_database_instances           integer     2  
  53.  cluster_interconnects                string  
  54.   
  55.  SQL> create pfile='/u01/oracle/db/dbs/ora10g_robin.ora' from spfile;  --&gt先備份spfile  
  56.   
  57.  File created.  
  58.   
  59.  SQL> alter system set cluster_database=false scope=spfile sid='*';  --&gt修改為非叢集資料庫,該引數為靜態引數,需要使用scope=spfile  
  60.   
  61.  System altered.  
  62.   
  63.  oracle@bo2dbp:~> srvctl stop database -d ora10g                        --&gt關閉資料庫  
  64.  oracle@bo2dbp:~> srvctl start instance -d ora10g -i ora10g1 -o mount   --&gt啟動單個例項到mount狀態  
  65.  oracle@bo2dbp:~> sqlplus / as sysdba  
  66.  SQL> select instance_name,status from v$instance;  
  67.   
  68.  INSTANCE_NAME    STATUS  
  69.  ---------------- ------------  
  70.  ora10g1          MOUNTED  
  71.   
  72.  SQL> alter database archivelog;                                       --&gt改變資料庫到歸檔模式  
  73.   
  74.  Database altered.  
  75.   
  76.  SQL> alter system set cluster_database=true scope=spfile sid='*';    --&gt在將資料庫改為叢集模式  
  77.   
  78.  System altered.  
  79.   
  80.  SQL> ho srvctl stop instance -d ora10g -i ora10g1                     --&gt關閉當前例項  
  81.   
  82.  SQL> ho srvctl start database -d ora10g                               --&gt啟動叢集資料庫  
  83.     
  84.  SQL> archive log list;  
  85.  ORA-03135: connection lost contact  
  86.  SQL> conn / as sysdba  
  87.  Connected.  
  88.  SQL> archive log list;                                                --&gt檢視歸檔模式  
  89.  Database log mode              Archive Mode                           --&gt已經處於歸檔模式  
  90.  Automatic archival             Enabled                                --&gt自動歸檔  
  91.  Archive destination            USE_DB_RECOVERY_FILE_DEST              --&gt歸檔位置為引數DB_RECOVERY_FILE_DEST的值  
  92.  Oldest online log sequence     60                                     --&gt下面是sequence相關資訊     
  93.  Next log sequence to archive   61  
  94.  Current log sequence           61  
  95.   
  96.  SQL> show parameter db_recovery_file  
  97.   
  98.  NAME                                 TYPE        VALUE  
  99.  ------------------------------------ ----------- ------------------------------  
  100.  db_recovery_file_dest                string      +REV  
  101.  db_recovery_file_dest_size           big integer 2G  
  102.   
  103. 4、歸檔驗證   
  104.  SQL> select inst_id,name,thread#,sequence#,status from gv$archived_log;  --&gt當前無任何歸檔日誌  
  105.   
  106.  no rows selected  
  107.   
  108.  SQL> alter system switch logfile;        --&gt在例項1上進行歸檔  
  109.   
  110.  System altered.  
  111.   
  112.  SQL> col name format a65  
  113.  SQL> select inst_id,name,thread#,sequence#,status from gv$archived_log;   --&gt檢視到sequence為61的日誌已經歸檔  
  114.   
  115.     INST_ID NAME                                                                 THREAD#  SEQUENCE# S  
  116.  ---------- ----------------------------------------------------------------- ---------- ---------- -  
  117.     1 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_61.459.802892953            1         61   
  118.   
  119.  SQL> select name,thread#,sequence#,status from v$archived_log;  --&gt下面是從例項級別的檢視來檢視  
  120.   
  121.  NAME                                                                 THREAD#  SEQUENCE# S  
  122.  ----------------------------------------------------------------- ---------- ---------- -  
  123.  +REV/ora10g/archivelog/2012_12_24/thread_1_seq_61.459.802892953            1         61 A  
  124.   
  125.  SQL> conn system/oracle@ora10g2    --&gt連線到例項2  
  126.  Connected.     
  127.  SQL> show parameter instance_name;  
  128.   
  129.  NAME                                 TYPE        VALUE  
  130.  ------------------------------------ ----------- ------------------------------  
  131.  instance_name                        string      ora10g2  
  132.  SQL> alter system switch logfile;   --&gt在例項2上進行歸檔  
  133.   
  134.  System altered.  
  135.  SQL> select inst_id,name,thread#,sequence#,status from gv$archived_log;    
  136.  --&gt可以看到sequence為43的日誌已經歸檔  
  137.  --&gt注意這個檢視查詢時同一個歸檔日誌除了出現在自身例項中外,對另外的例項也是可見的  
  138.     INST_ID NAME                                                                 THREAD#  SEQUENCE# S  
  139.  ---------- ----------------------------------------------------------------- ---------- ---------- -  
  140.     1 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_61.459.802892953            1         61 A  
  141.     1 +REV/ora10g/archivelog/2012_12_24/thread_2_seq_43.458.802893283            2         43 A  
  142.     2 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_61.459.802892953            1         61 A  
  143.     2 +REV/ora10g/archivelog/2012_12_24/thread_2_seq_43.458.802893283            2         43 A  
  144.   
  145.  --&gt檢視日誌的狀態  
  146.  --&gt注意這個v$log檢視將兩個例項上的組及狀態都顯示出來了  
  147.  --&gt在這裡用thread#來區分,thread#為1表示例項1上的日誌組有1,2,且1處於current狀態.thread#2類似.     
  148.  SQL> select * from v$log;  
  149.   
  150.   GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM  
  151.  ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------  
  152.     1          1         62   52428800          2 NO  CURRENT                4314741 24-DEC-12  
  153.     2          1         61   52428800          2 YES ACTIVE                 4312116 24-DEC-12  
  154.     3          2         43   52428800          2 YES ACTIVE                 4312300 24-DEC-12  
  155.     4          2         44   52428800          2 NO  CURRENT                4315097 24-DEC-12  
  156.   
  157.  --&gtAuthor: Robinson  
  158.  --&gtBlog  : http://blog.csdn.net/robinson_0612  
  159.  --&gt歸檔當前日誌,注意該命令在單例項下等同於alter system switch logfile  
  160.  --&gt在rac環境下則不同,那就是所有例項上的current日誌都將會被歸檔     
  161.  SQL> alter system archive log current;  
  162.   
  163.  System altered.  
  164.   
  165.  --&gt下面的查詢正好驗證了上面的描述  
  166.  --&gt日誌62與44正是剛剛上面的命令同時產生的歸檔日誌     
  167.  SQL> select inst_id,name,thread#,sequence#,status from gv$archived_log;  
  168.   
  169.     INST_ID NAME                                                                 THREAD#  SEQUENCE# S  
  170.  ---------- ----------------------------------------------------------------- ---------- ---------- -  
  171.     2 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_61.459.802892953            1         61 A  
  172.     2 +REV/ora10g/archivelog/2012_12_24/thread_2_seq_43.458.802893283            2         43 A  
  173.     2 +REV/ora10g/archivelog/2012_12_24/thread_2_seq_44.456.802894343            2         44 A  
  174.     2 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_62.457.802894341            1         62 A  
  175.     1 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_61.459.802892953            1         61 A  
  176.     1 +REV/ora10g/archivelog/2012_12_24/thread_2_seq_43.458.802893283            2         43 A  
  177.     1 +REV/ora10g/archivelog/2012_12_24/thread_2_seq_44.456.802894343            2         44 A  
  178.     1 +REV/ora10g/archivelog/2012_12_24/thread_1_seq_62.457.802894341            1         62 A  
  179.   
  180.  8 rows selected.  

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

相關文章