Oracle學習筆記:建立physical standby

來源:互聯網
上載者:User

基本概念:

1.保護模式:最大保護、最大效能、最高可用。預設為 最大效能。

2.物理備機、邏輯備機:各有千秋

3.online、archived、standby redo日誌

4.日誌傳輸、日誌應用、角色切換服務

5.dg是企業版的特性。可以通過sqlplus、dbmgrl、oem操作、部署dg

 

軟硬體要求:

1.同硬體平台

2.同os

3.同oracle企業版

 

primary必要設定:

1.database必須處於archivelog模式

2.database必須處於force logging模式

3.dg內的每個成員必須具有pwdsid.ora檔案,且密碼相同

4.對於最大保護 和 最大可用 模式,必須設定standby database建立和primary database 相同size的standby redo log檔案。推薦:在primary上也進行類似設定

5.初始化參數primary:

db_name=dbname  --dg內的所有成員必須相同

db_unique_name=pridbuniquename  --dg內每個成員的唯一名稱

log_archive_format=arc_sid_%s_%t_%r  --redo歸檔日誌的格式,dg內最好格式一致

log_archive_config='dg_config=(priservicename ,stdservicename )'  --必須設定dg所有成員

standby_file_management=auto  --standby對應於primary資料檔案的處理:自動處理

log_archive_dest_n='location=pathname'  --必須要有一個本地歸檔路徑

log_archive_dest_m='service=stdservicename db_unique_name=stddbuniquename [lgwr] [async]'  --必須要有一個活動的standby目標

--以下是primary轉化為standby時起作用的

fal_server=stdservicename  --角色轉化時,standby變為primary

fal_client=priservicename  --角色轉化時,primary變為standby

db_file_name_convert='stdfmt','prifmt'  --standby從primary接受的資料檔案命名規則

log_file_name_convert='stdfmt','prifmt'  --standby從primary接受的記錄檔命名規則

 

 

6.初始化參數standby:

db_name=dbname  --dg內的所有成員必須相同

db_unique_name=stddbuniquename  --dg內每個成員的唯一名稱

log_archive_format=arc_sid_%s_%t_%r  --redo歸檔日誌的格式,dg內最好格式一致

log_archive_config='dg_config=(priservicename ,stdservicename )'  --必須設定dg所有成員

standby_file_management=auto  --standby對應於primary資料檔案的處理:自動處理。在standby上設定有效

log_archive_dest_n='location=pathname'  --必須要有一個本地歸檔路徑

log_archive_dest_m='service=priservicename db_unique_name=pridbuniquename [lgwr] [async]'  --必須要有一個活動的standby目標

--以下是standby轉化為primary時起作用的

fal_server=priservicename  --角色轉化時,standby變為primary

fal_client=stdservicename  --角色轉化時,primary變為standby

db_file_name_convert='prifmt','stdfmt'  --standby從primary接受的資料檔案命名規則。在standby上設定有效

log_file_name_convert='prifmt','stdfmt'  --standby從primary接受的記錄檔命名規則。在standby上設定有效

 

 

  • LOG_ARCHIVE_DEST_[1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10] =
     { null_string | LOCATION=path_name | SERVICE=service_name }  --path_name可以設定成USE_DB_RECOVERY_FILE_DEST
     [ { MANDATORY | OPTIONAL } ]  --通過使用MANDATORY可以強制rts服務進程必須等待目標standby歸檔日誌傳輸成功才可切換日誌
     [
    REOPEN[=seconds] ]  --Specifies the minimum number of seconds before
    the archiver processes (ARCn) or the log writer process (LGWR) should
    try again to access a previously failed destination. The default is 300
    seconds.
     [ DELAY[=minutes] ]  --cannot set the DELAY attribute for a logical standby database destination,default is 30 minutes
     [ NOREGISTER ]  --表明該dest不是dg的一部分
     [ TEMPLATE=template] ]
     [ ALTERNATE=destination ]  --格式LOG_ARCHIVE_DEST_n,主要是解決mandatory帶來的負面影響
     [ DEPENDENCY=destination ]  --格式LOG_ARCHIVE_DEST_n,強制實施各目標standby的優先順序
     [ MAX_FAILURE=count ]  --和reopen配合,設定primary嘗試次數
     [ ARCH | LGWR ]  --通常在最大效能模式下用 arch進程 執行日誌傳輸,其他情況下均為lgwr
     [ SYNC | ASYNC
    ]  --network I/O is to be done synchronously or asynchronously when
    archival is performed using the log writer process (LGWR) and the
    network server (LNSn) processes.
     [ AFFIRM | NOAFFIRM ]  --synchronous or asynchronous disk I/O
     [ NET_TIMEOUT=seconds ]  --The default is 180 seconds.
     [ VALID_FOR=(redo_log_type,database_role) ]  --定義日誌傳輸的制約因素
     [{ DB_UNIQUE_NAME }]  --Specifies a unique name for the database at this destination.
     [
    VERIFY ]  --Indicates if an archiver (ARCn) process should scan and
    verify the correctness of the contents of a completed archived redo log
    file, either local or remote, after successfully completing the
    archival operation. By default, archived redo log files are not
    verified.
     }
  • 如果設定mandatory,就必須設定alternate,也需要設定reopen 和 max_failure
  • 如果欲定義各目標的dest順序,就需要設定dependency
  • 通過affirm來保證redo日誌在各dest上寫入完成,來達到無損保護,同時配置gwr sync

 

操作步驟:

  1. Section 3.2.1 Create a Backup Copy of the Primary Database Datafiles Primary
  2. Section 3.2.2 Create a Control File for the Standby Database Primary  --非常重要的一步:他用來產生用於standby資料庫的控制檔案。通過alter database create standby controlfile as 'fullpathfilename',他實質上會產生一條記錄到rman中繼資料庫中,並且被rman所用!
  3. Section 3.2.3 Prepare an Initialization Parameter File for the Standby Database Primary
  4. Section 3.2.4 Copy Files from the Primary System to the Standby System Primary
  5. Section 3.2.5 Set Up the Environment to Support the Standby Database Standby
  6. Section 3.2.6 Start the Physical Standby Database Standby
  7. Section 3.2.7 Verify the Physical Standby Database Is Performing Properly Standby

     

    基本的管理:

    1. 設定保護模式:在primary上,mount狀態:alter database set standby database to maximize {performance|avialability|protection}
    2. 添加standby logfile 組、成員:alter database add standby logfile  [member] filespec,...
    3. 刪除standby logfile 組、成員:alter database drop standby logfile [member] filespec,...
    4. 啟用standby 的recover管理會話、根據初始化參數應用redo日誌:alter database recover managed standby database [disconnect from session]
    5. 啟用standby 的recover管理會話、立即應用redo日誌:alter database recover managed standby database nodelay [disconnect from session]
    6. 啟用standby 的real-time recover管理會話:alter database recover managed standby database using current logfile [disconnect from session]
    7. 啟用standby 的recover管理會話,還原到某個scn:alter database recover managed standby database until change n [disconnect from session]
    8. 取消standby 的recover管理會話:alter database recover managed standby database cancel [immediate | [wait|nowait] ]
    9. 終止standy角色功能、結束recover管理會話,準備轉化為primary:alter database recover managed standby database finish [force] [wait|nowait]
    10. 轉化physical為logical standby:alter database recover to logical standby {dbname}--注意:需要在primary上執行dbms_lgstdby.build過程
    11. 啟用standby 為primary:alter database active  [physical|logical] standby database [finish apply--只能用於logical standby database]
    12. 開始logical 的redo日誌應用:alter database start logical standby apply
    13. 結束logical 的redo日誌應用:alter database {stop|abort} logical standby apply
    14. 將游離於dg之外的primary變為phyisical standby:alter database convert to physical standby

     

    常見錯誤及處理:

    1. rman 在duplicate target database for standby時提示找不到所需檔案:請檢查primary資料庫是否:alter database create standby controlfile as filespec
    2. rman 在duplicate target database for standby時提示建立錯誤:請檢查standby資料庫相關的路徑是否有效
    3. redo檔案傳輸失敗:檢查primary、standby的log_archive_config='dg_config=(pridbuniquename,pridbuniquename)'、db_unique_name、log_archive_dest_n、log_archive_dest_state_n參數是否設定正確。尤其是log_archive_dest_n中的 arch|lgwr 等設定! 
    4. standby不能運行於real-time模式,該模式要求standby資料庫必須具有standby redo log檔案
    5. standby對應的服務不可用:設定靜態監聽並重啟監聽

     

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.