單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(2)

cow977發表於2011-09-02

單機Linux平臺Oracle10g DataGuard Logical Standby搭建例項(1)http://space.itpub.net/81227/viewspace-706435

 
 

要在Primary和邏輯Standby之間切換角色,一般是從Primary資料庫開始操作。

如果Primary或邏輯StandbyRAC結構,切記在執行角色切換時,只保留一個例項啟動,其他例項應當全部SHUTDOWN。等角色轉換操作完成之後再啟動其他例項,角色轉換的操作會自動傳播到這些例項上,並不需要DBA再對這些例項單獨做處理。

注意下列操作的執行步驟,強烈建議按照以下步驟執行,否則可能導致切換不成功。

1.準備工作

檢查Primary和邏輯Standby的初始化引數設定,常規的檢查包括:

檢查兩機中初始化引數FAL_SERVERFAL_CLIENTLOG_ARCHIVE_CONFIG的引數值設定是否正確。

檢查兩機中初始化引數LOG_ARCHIVE_DEST_n的引數值設定是否正確。

首先來看當前的Primary資料庫:

SQL>  SHOW PARAMETER FAL;

NAME                  TYPE        VALUE

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

fal_client            string      orcl_pd

fal_server            string      orcl_st

SQL> SHOW PARAMETER LOG_ARCHIVE_DEST;

NAME                  TYPE        VALUE

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

log_archive_dest      string

log_archive_dest_1    string      location=/u01/archive

log_archive_dest_2    string      service=LGDG

從上述顯示的結果來看,Primary資料庫的初始化引數並不太適合,為了避免其轉換之後可能發生的錯誤,我們提前做些修改:

SQL> ALTER SYSTEM SET FAL_SERVER='LGDG';

SQL> alter system set log_archive_dest_1='location=/u01/archive valid_for=(online_logfiles,all_roles)  db_unique_name=orcl_pd';

SQL> alter system set log_archive_dest_3='location=/u01/std valid_for=(standby_logfiles,standby_role) db_unique_name=orcl_pd';

然後再看看待轉換的邏輯Standby

SQL> SHOW PARAMETER FAL;

NAME                  TYPE        VALUE

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

fal_client            string      orcl_st

fal_server            string      orcl_pd

SQL> SHOW PARAMETER LOG_ARCHIVE_DEST;

NAME                  TYPE        VALUE

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

log_archive_dest      string

log_archive_dest_1    string      LOCATION=/u01/archive VALID_FO

                                  R=(ONLINE_LOGFILES, ALL_ROLES)

                                  DB_UNIQUE_NAME=LGDG

log_archive_dest_10   string

log_archive_dest_2    string      service=orcl_pd lgwr sync AFFI

                                  RM

log_archive_dest_3    string      LOCATION=/u01/std

                                  VALID_FOR=(STANDBY_LOGFILES, S

                                  TANDBY_ROLE) DB_UNIQUE_NAME=LG

                                  DG

修改一下:

SQL> ALTER SYSTEM SET FAL_CLIENT='LGDG';

最後檢查Primary資料庫是否配置了Standby Redologs

SQL> select * from v$logfile;

  GROUP# STATUS  TYPE    MEMBER

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

       3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log

       2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log

       1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log

       4         STANDBY /u01/app/oracle/oradata/orcl/redo04.log

       5         STANDBY /u01/app/oracle/oradata/orcl/redo05.log

       6         STANDBY /u01/app/oracle/oradata/orcl/redo06.log

       7         STANDBY /u01/app/oracle/oradata/orcl/redo07.log

已經存在, 如果不存在,我們就手工的新增一下:

SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/u01/app/oracle/oradata/orcl/redo04.log' SIZE 50m; 

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

相關文章