RAC資料庫建立STANDBY(二)

yangtingkun發表於2009-05-26

這篇文章描述為RAC環境建立STANDBY資料庫。

由於篇幅限制,加上碰到了很多的bug,只能將文章拆分成多篇。

這章介紹STANDBY資料庫建立的後續操作,並檢查STANDBY執行機制:

RAC資料庫建立STANDBY(一):http://yangtingkun.itpub.net/post/468/484988

 

 

首先登陸例項,檢查資料庫狀態:

bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on Wed Sep 10 13:56:13 2008

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select instance_name, status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
rac11g1          MOUNTED

SQL> select name,
  2     open_mode,
  3     database_role,
  4     guard_status,
  5     db_unique_name,
  6     primary_db_unique_name
  7  from v$database;

NAME      OPEN_MODE  DATABASE_ROLE    GUARD_S DB_UNIQUE_NAME  PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------- -----------------------
RAC11G    MOUNTED    PHYSICAL STANDBY NONE    rac11g_s

下面可以將資料庫至於應用歸檔的狀態:

SQL> alter database recover managed standby database
  2  disconnect from session;

Database altered.

下面檢查歸檔的是否可以正常傳送到STANDBY資料庫:

SQL> select sequence#, thread# from v$archived_log order by first_time;

no rows selected

SQL> conn sys/test@rac11g as sysdba
Connected.
SQL> alter system archive log current;

System altered.

SQL> conn / as sysdba
Connected.
SQL> select sequence#, thread# from v$archived_log order by first_time;

 SEQUENCE#    THREAD#
---------- ----------
       533          1
       198          2

SQL> select sequence#, thread#, applied from v$archived_log order by first_time;

 SEQUENCE#    THREAD# APP
---------- ---------- ---
       532          1 YES
       533          1 NO
       198          2 YES

可以看到,兩個資料庫例項的歸檔日誌檔案已經傳送到本地節點,而且LGWR程式已經將正在寫的當前日誌檔案533寫到了本地。

資料庫的STANTDBY機制已經正常執行,下面看看能否將STANDBY資料庫的兩個例項以只讀方式開啟:

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database open;

Database altered.

SQL> select instance_name, status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
rac11g1          OPEN

SQL> select name,
  2     open_mode,
  3     database_role,
  4     guard_status,
  5     db_unique_name,
  6     primary_db_unique_name
  7  from v$database;

NAME      OPEN_MODE  DATABASE_ROLE    GUARD_S DB_UNIQUE_NAME  PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------- -----------------------
RAC11G    READ ONLY  PHYSICAL STANDBY NONE    rac11g_s        rac11g

由於SPFILE目前在本地,需要建立一個ASM上面的引數檔案:

SQL> create pfile='/export/home/oracle/initrac11g.ora' from spfile;

File created.

SQL> create spfile='+DATA/RAC11G/spfilerac11g.ora'
  2  from pfile='/export/home/oracle/initrac11g.ora';

File created.

下面分別編輯兩個節點的$ORACLE_HOME/dbs目錄下的初始化引數,使得spfile指向這個剛剛建立的spfile檔案:

spfile=+DATA/RAC11G/spfilerac11g.ora

下面登陸節點二,嘗試開啟第二個例項:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 9 10 14:53:09 2008

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

已連線到空閒例程。

SQL> startup
ORACLE
例程已經啟動。

Total System Global Area 1.7108E+10 bytes
Fixed Size                  2101632 bytes
Variable Size            3478638208 bytes
Database Buffers         1.3623E+10 bytes
Redo Buffers                4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> set pages 100 lines 120
SQL> select instance_name, status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
rac11g2          OPEN

SQL> select instance_name, status from gv$instance;

INSTANCE_NAME    STATUS
---------------- ------------
rac11g2          OPEN
rac11g1          OPEN

SQL> select name,
  2     open_mode,
  3     database_role,
  4     guard_status,
  5     db_unique_name,
  6     primary_db_unique_name
  7  from v$database;

NAME      OPEN_MODE  DATABASE_ROLE    GUARD_S DB_UNIQUE_NAME  PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------- ----------------------
RAC11G    READ ONLY  PHYSICAL STANDBY NONE    rac11g_s        rac11g

10g以後,不需要指定MOUNT STANDBY資料庫,也不需要指定OPEN READ ONLYOracle自動會裝載STANDBY資料庫,並將例項以READ ONLY方式進行開啟。

下面設定一下TEMP表空間:

SQL> alter database tempfile '+DATA/RAC11G/rac11g_temp_1_4g' drop;

Database altered.

SQL> alter tablespace temp add tempfile '+DATA/RAC11G/rac11g_temp_1_4g' size 4096m;

Tablespace altered.

至此RAC環境的STANDBY已經成功建立。從下一篇開始,介紹在STANDBY資料庫建立過程中碰到的各種問題和解決方法。

 

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

相關文章