dataGuard推薦:利用冷備創建standby.doc_第1頁
dataGuard推薦:利用冷備創建standby.doc_第2頁
dataGuard推薦:利用冷備創建standby.doc_第3頁
dataGuard推薦:利用冷備創建standby.doc_第4頁
dataGuard推薦:利用冷備創建standby.doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

dataGuard推薦:利用冷備創建standby一:試驗環境:primary server:CentOS Linux4.4 + oracle ORACLE_SID:orcl主庫ip:44ORACLE_HOME: /free/oracle/product/10.2.0/db_1/standby server: SUSE Linux9 + oracle ORACLE_SID:orcl備庫ip:53ORACLE_HOME: /free/oracle/product/10.2.0/db_1/二:配置步驟 首先,裝好primary和standby上的oracle,建SID同為orcl的庫,所有設置完全相同。然后停止shutdown兩臺上的oracle,將primary上的所有數據文件,控制文件,redo文件和password文件都copy到standby機器的相應位置。這樣,我們就擁有了兩臺完全一樣的oracle server。1. 在primary database上設置force loggingSQLalter database force logging;2. 修改primary databse的初始化參數,主要增加參數如下:*.control_files=/free/oracle/oradata/orcl/control01.ctl,/free/oracle/oradata/orcl/control02.ctl,/free/oracle/oradata/orcl/control03.ctl*.service_names=primary #這個參數指定了主庫的service name*.log_archive_config=DG_CONFIG=(PRIMAYR,STANDBY)*.DB_UNIQUE_NAME=PRIMARY*.LOG_ARCHIVE_DEST_1= LOCATION=/free/oracle/orabak*.LOG_ARCHIVE_DEST_2= SERVICE=STANDBY VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY LGWR SYNC AFFIRM 如果不指定REOPEN,默認為300*.LOG_ARCHIVE_DEST_STATE_1=ENABLE*.LOG_ARCHIVE_DEST_STATE_2=ENABLE*.LOG_ARCHIVE_FORMAT=arc%s%t%r.arc*.FAL_SERVER= STANDBY *.FAL_CLIENT= PRIMARY *.STANDBY_FILE_MANAGEMENT=AUTO*.standby_archive_dest=/free/oracle/orabakLOCK_NAME_SPACE -這是參數當主數據庫和備用數據在同一臺機上時要設該參數,設為備用數據庫的SID3. 設置primary database為archivelog模式SQLshutdown immediate;SQLstartup mount;SQLalter database archivelog;SQLalter database open;4. 在primary database上創建standby database的控制文件SQLshutdown immedaite;SQLstartup mount;SQLalter database create standby controlfile as /free/oracle/oradata/orcl/controlstandby.ctlSQLalter database open;然后將該controlfile復制到standby server的對應位置。5. 修改standby databse的初始化參數*.service_names=standby #這個參數指定了備庫的service name*.control_files=/free/oracle/oradata/orcl/controlstandby.ctl*.log_archive_config=DG_CONFIG=(PRIMARY,STANDBY) *.LOG_ARCHIVE_DEST_1= LOCATION=/free/oracle/orabak VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY *.LOG_ARCHIVE_DEST_2= SERVICE=primary VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIMARY LGWR SYNC AFFIRM REOPEN=10 如果不指定REOPEN,默認為300#*.LOG_ARCHIVE_DEST_2= SERVICE=standby VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY LGWR SYNC REOPEN=10*.db_unique_name=STANDBY*.FAL_CLIENT=STANDBY*.FAL_SERVER=PRIMARY*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enable*.STANDBY_ARCHIVE_DEST=/free/oracle/orabak*.STANDBY_FILE_MANAGEMENT=AUTODB_FILE_NAME_CONVERT -當primary和standby的數據文件路徑不一致時使用LOG_FILE_NAME_CONVERT -當primary和standby的數據文件路徑不一致時使用LOCK_NAME_SPACE -當主數據庫和備用數據在同一臺機上時設為備用數據庫的 SID具體參數的說明請參考oracle在線文檔 6. 設置primary database和standby database的tnsnames.ora,主備庫兩者的tnsnames.ora配置文件相同。primary =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 44)(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = primary) 這個primayr為主庫的 service name)standby =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 53)(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = standby) 這個standby為備庫的service name) 7. 啟動standby databaseSQLstartup nomountSQLalter database mount standby database; 執行此命令后備庫會處于手動恢復狀態。8. 啟動primary databaseSQLstartup9. 啟動standby database到recover manage模式SQLalter database recover managed standby database disconnect; 執行此命令后,備庫會切換到自動恢復模式。如果要啟動到實時日志應用模式SQLalter database recover managed standby database using current logfile; 切換備庫到適時應用日志模式,即real-time apply。執行這個命令后光標會停止在那里。或者alter database recover managed standby database using current logfile disconnect from session; 執行這個命令后,會切斷這個session,執行的功能與上面相同。但是之前需要先創建standby logfile,使用如下命令創建standby logfile:alter database add standby logfile group 4 /free/oracle/oradata/orcl st_redo4.log size 50M同時還需要修改主庫的參數LOG_ARCHIVE_DEST_2的配置由于事先已經配置好了備庫的LOG_ARCHIVE_DEST_2參數,這里無需在進行配置。關于standby redo file文件,一些特性簡單說明如下:當dataguard運行在max protection 或max availability時,因為必須使用LGWR日志傳輸方式 即時的將日志傳送到standby,因此需要用到standby redo log。其實主庫產生的日志會同步寫到主庫的redo log 和備庫的standby redo log上。同時主庫日志切換時,standby redo log也會進行日志切換,因此standby redo log中的信息是與主庫的redo file是 適時同步的,在備庫進行恢復的時候,是利用standby redo log進行的,因此也可以說standby redo log是主庫和備庫直接同步的一個橋梁。創建的standby redo log大小必須和主庫的redo大小相等,創建的組數量 建議比主庫的redo file多一組,這樣做的目的是日后備用,這也是oracle官方的建議。但是根據我的測試,我創建四組standby redo log,真正利用的只有兩組。10. 切換standby database到read only模式SQL alter database recover managed standby database cancel;#首先取消備庫的自動恢復模式SQLalter database open read only;如果要切換回recover manage模式SQL alter database recover managed standby database disconnect from session;三:功能切換Switchover狀態切換首先在primary上操作:1. 首先查看切換狀態:SQLselect switchover_status from v$databaseswitchover_status的值如果是To standby,可以直接switchover,如果是sessions active, 則需要在switchover的命令后面加上。2. 執行切換主庫到備庫:SQLalter database commit to switchover to physical standby;3.關閉數據庫: SQLshutdown immediate;4. 啟動到mount狀態:SQLstartup mount;然后在standby上操作1.查看切換狀態: SQL select switchover_status from v$database ; switchover_status的值如果是To primary,可以直接switchover,如果是sessions active, 則需要在switchover的命令后面加上with session shutdown2. 執行切換備庫到主庫:SQLalter database commit to switchover to primary;3.關閉備庫: SQLshutdown immediate;4.重新啟動備庫 SQLstartup;小竅門:要想順利的實現switchover,最好在每臺server上都同時設置好primary和standby的一些初始化參數,雖然其中一些參數只有在primary或者standby其中之一上起作用。Failover狀態切換在備庫上進行切換:1.首先停止備庫的自動恢復狀態: SQLalter database recover managed standby database finish;如果沒有使用過standby redo log的話執行:SQLalter database recover managed standby database finish skip standby logfile;2.切換備庫到主庫: SQLalter database commit to switchover to primary;3. 關閉數據庫:SQLshutdown immediate;4. 啟動數據庫:SQLstartup;Active狀態切換:Active是從8i延續過來的,其實不建議采用:在備庫上執行切換:1:alter database recover managed standby database cancel;2:alter database activate standby database;3:shutdown immediate總結一下Failover 和 Switchover 的區別:在9i 的dataguad環境中:1:執行Switch Over 必須是Primary 正常,并且是必須Primary 主動先Switch成 standby.然后standby 才能switch 成primary。 2:如果需要作成primary出問題,standby 能接管的話,必須作 failover ,而不是SwitchOver。Failover : 將主數據庫offline,備用數據庫online,這種操作由系統和軟件失敗引起。 即使在備用數據庫上應用重做日志,也可能出現數據丟失的現象,除非備用數據庫運行在 guaranteed protection 模式。 原主數據庫重新使用時必須重新啟動實例。 其它的備用數據庫也需重新啟動實例。 Switchover :故意將主數據庫offline,而將另一備用數據庫online,它能夠切換到備用數據庫而不需同步操作。如:可使用 Switchover 完成系統的平滑升級。 即使在備用數據庫上不應用重做日志,也不會造成數據的丟失。 數據庫不需重新啟動實例。這使主數據庫幾乎能立即在備用數據庫上恢復它的功能,因此可經常進行定期維護而不需中斷操作。 Failover和Switchover的區別為:當Failover發生,備用數據庫切換為主數據庫之后,它丟失了備用數據庫的所有能力,也就是說,不能再返回到備用模式;而Switchover可以,備用數據庫可切換為主數據庫,也可從主數據庫再切換回備用數據庫。四:相關視圖v$archive_destv$archive_dest_statusv$log_historyv$archvied_logv$managed_standbyv$archive_gap五:常見問題1. 日志無法傳送SQLselect dest_name,status,error from v$archive_dest;察看相應的歸檔路徑的狀態是否valid,否則根據error信息進行處理2. 無法使用alter database重命名data file 在standby上,當設置standby_file_management為auto時,不允許下列操作alter database renamealter database add/drop logfilealter database add/drop standby logfile memberalter database create datafile as3. switchover失敗SQLalter database commit to switchover to physical standby錯誤:ORA-01093:alter database close only permitted with no session connected可以察看引起該錯誤的活動sessionSQL select sid,process,program from v$session where type=USER andsid(select distinct sid from v$mystat);然后根據查出的sid結合v$session視圖最后用alter system kill session sid,serial 來kill掉進程,斷開該session 或者使用如下命令來做switchoverSQLalter database commit to switchover to physical standby with s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論