1. 程式人生 > >親歷dataguard的一些經驗問答題

親歷dataguard的一些經驗問答題

from 實例 tag 自動切換 files 根據 service 在線日誌 color

問題1:是否log_archive_dest_n=service中進程使用lgwr時(如log_archive_dest_2=‘service=DBSTD LGWR SYNC‘),備庫就一定要建立standby_redo_log 回答:不是,只有在最大可用或最大保護模式下,備庫才要standby_redo_log
問題2:最大可用模式,備機是否可以應用archivelog 回答:可以,不過應用了archivelog後,主庫的數據在備庫無法實時查詢到,數據只有歸檔後才可以在備庫查詢到
問題3:最大可用模式下(不設置自動切換的情況下),備機宕機後,重啟備機,dataguard是否可以繼續,並且還是最大可用模式
回答:dataguard繼續,並且還是最大可用模式 如果備機啟動後長時間沒有實時應用standbyredo log,可能有異常,備機需要先執行alter database recover managed standby databasedisconnect from session以便應用歸檔日誌,等歸檔日誌應用完成後再執行alterdatabase recover managed standby database cancel,再執行alterdatabase recover managed standby database using current logfile disconnect fromsession以便應用standby redo log

問題4:最大可用模式下(不設置自動切換的情況下),主機宕機後,重啟主機,dataguard是否可以繼續,並且還是最大可用模式 回答:dataguard繼續,並且還是最大可用模式 如果主機啟動後,備機長時間沒有實時應用standbyredo log,可能有異常,備機需要先執行alter database recover managed standby database cancel,再執行alterdatabase recover managed standby database disconnect from session應用歸檔日誌,等歸檔日誌應用完成後再執行alterdatabase recover managed standby database cancel,再執行alterdatabase recover managed standby database using current logfile disconnect fromsession以便應用standby redo log

問題5:最大可用模式下(不設置自動切換的情況下),主機宕機,無法啟動,備機是否可以升級為主機 回答:可以 備機執行如下 1. alter database recovermanaged standby database finish force; 2. alter database commit toswitchover to primary with session shutdown; 3. alter database open;
問題6:備庫不創建standbyredo log是否可以實時應用日誌 回答:不可以,實時應用日誌的時候會報錯ORA-38500:USING CURRENT LOGFILE option not available without standby redo logs
問題7:最大性能模式下,備庫是否可以實時應用日誌standbyredo log 回答:可以,不過沒有意義,還是需要等待主庫歸檔才能真正把數據寫入備庫 雖然備庫可以執行alterdatabase recover managed standby database using current logfile disconnect fromsession;但是並不會應用日誌,主庫的數據不會實時同步到備庫,主庫執行日誌切換後,數據才同步到備庫,說明在最大性能模式下,備庫就算執行了實時應用日誌的有,也沒太大意義

問題8:最大可用性模式下,備庫是否可以應用archivelog 回答:可以 最大可用性模式下,本來備庫可以實時接收主庫的數據的,不過備庫也可以選擇主庫數據歸檔後再進行應用
問題9:主庫不設置db_unique_name是否可以正常搭建datagard 回答:可以 因為主庫不設置db_unique_name,則主庫的db_unique_name和service_name都是默認是db_name
問題10:備庫是否可以不設置db_unique_name 回答:可以,如果主庫設置了db_unique_name,則備庫可以不設置,不過不推薦這樣設置 一般主庫不設置db_unique_name,備庫設置db_unique_name,則在主備的參數文件*.LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(主db_name,備db_unique_name)‘
問題11:搭建一個物理datagard,主庫設置LOG_AUTO_DELETE為true後,備庫會不會自動刪除歸檔日誌 回答:不會 如果想刪除備庫的一些歸檔日誌可以在rman下執行deletenoprompt archivelog until time "sysdate-N"; (N為天數)
問題12:搭建dataguard時不拷貝主庫的在線日誌,那備庫到什麽時候開始創建onlineredo log 回答:在備庫執行alterdatabase recover managed standby database disconnect from session或alterdatabase recover managed standby database using current logfile disconnect fromsession後,如果備庫的*.log_file_name_convert參數設置正確,則備庫開始創建onlineredo log 也就是說只要備庫執行了recover,備庫就開始創建自己的online redo log
問題13:搭建dataguard時使用rman備份進行恢復,備庫alter database recover managed standby database disconnect fromsession時會用到增量備份包嗎 回答:不會,如果使用了0級備份和1級備份2級備份,備庫還原使用了0級備份,recover時不會使用1級和2級備份包,而是使用了自0級備份以來的所有歸檔日誌
問題14:搭建datagard和操作系統用戶名密碼有關系嗎 回答:沒有,只和oracle的用戶名和密碼有關,一般只和sys用戶有關
問題15datagard可以通過rman命令自動刪除歸檔日誌嗎 回答:可以 執行這樣的腳本就行delete noprompt archivelog until time "sysdate-30";
問題16:配置好最大性能的主備庫後,備庫還沒有開始應用歸檔日誌之前,備庫通過0級備份還原,會不會主庫所有0級備份後的歸檔日誌都會自動拷貝過來,是不是alter database recover managed standby database disconnect fromsession需要所有歸檔日誌都拷貝過來了才能進行 回答:不會拷貝所有,會拷貝一部分 不是,只有主庫0級備份後的歸檔日誌都還在,並且0級備份後的第一個歸檔日誌傳輸到了備庫,備庫就開始recover,在recover的過程中,需要哪個歸檔日誌就從主庫去獲取哪個歸檔日誌,如果主庫歸檔日誌丟失了,那就會報錯了
問題17:此類報錯是不是只是因為主備庫的密碼文件不一致導致 FAL[client, USER]: Error 1031 connecting tomierpdb2 for fetching gap sequence ORA-01031: insufficient privileges ORA-01031: insufficient privileges 回答:不一定,有時是因為備庫recover歸檔日誌時,獲取不到主庫的歸檔日誌也會報這樣的錯。
問題18:下列問題如何處理 FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 123-124 DBID 3642506776 branch 64548658 FAL[client]: All defined FAL servers havebeen attempted. 回答:說明備庫缺少thread1sequence123124的歸檔日誌 解答1:如果主庫也缺少了這個日誌並且再也找不回來,則datagard無法繼續了,需要重做,如果主庫有這個日誌的備份,則還原這個歸檔日誌的備份,並把還原出來的歸檔日誌拷貝到備庫,並執行以下語句註冊歸檔日誌 ALTER DATABASE REGISTER PHYSICAL LOGFILE‘/mierp/arch/1_123_83589255.dbf‘; ALTER DATABASE REGISTER PHYSICAL LOGFILE‘/mierp/arch/1_124_83589255.dbf‘;
問題19datagard備庫的歸檔日誌是怎麽個生成流程 回答: 1.主庫配置lgwr,備庫還未開始應用歸檔日誌(即備庫還沒有生成自己的online redo log文件),備庫不建立standby,主庫執行alter system archive log current看歸檔會到備庫嗎 1. 得出結論:只要備庫打開至mount狀態(甚至沒有restore database),主庫就會把歸檔日誌傳輸到備庫,主庫日誌切換後,最新的歸檔也會傳輸到備庫 備庫沒有restore database即沒有任何數據文件和online redo logstandby redo log也可以查詢v$log,查詢的結果和主庫基本一致 但是查詢v$standby_log則沒有結果,因為沒有建立standby redo log 2.主庫配置lgwr,備庫還未開始應用歸檔日誌,備庫建立standby,主庫執行alter system archive log currentstandby redosequence是否變化 2.會變化 3. 主庫配置arch,備庫還未開始應用歸檔日誌,備庫不建立standby,主庫執行alter system archive log current看歸檔會到備庫嗎 3. 答案:所有備庫的歸檔日誌是通過備庫的RFS->ARCN生成,如果備庫有standby redo log,則流程是備庫RFS->standby redo log->ARCN,和備庫自己的online redo log沒有關系,因為至始至終都是主庫的LOG_ARCHIVE_DEST_N決定了把主庫的redo日誌存放到哪臺備庫的RFS,因為就算備庫沒有onlineredo log也可以查到v$log的信息,而這樣v$log的信息其實是主庫的,就算在ARCN傳輸模式下,也不是通過ARCN把歸檔日誌從主庫拷貝到備庫相應的位置,因為主庫拷貝文件到備庫是通過OS的,是需要OS的用戶名密碼驗證的。而實際上我們並沒有看到備庫產生歸檔日誌的時候,是需要OS的用戶名密碼的。
問題20:最大可用性模式下,備庫mount後並restore database並創建了standby redo log,主庫歸檔日誌傳輸到了備庫,但是還沒有應用過,是否可以跳過先應用歸檔日誌直接應用standby redo log 回答:可以
問題21dataguard備庫select name from v$datafileselect member fromv$logfile都正常, select tablespace_name from dba_tablespaces會出現ORA-03113:end-of-file on communication channel錯誤,根據告警日誌,信息是ERROR:slave communication error with ASM; terminating process 7610,怎麽產生的,怎麽解決 回答:是因為*.db_file_name_convert只配置了數據文件,沒有配置temp文件導致,可以重新配置備庫的pfile並重啟解決,也可以執行selectname from v$tempfile找到臨時文件,再執行alter database tempfile ‘+DATA/ /temp.263.868896343‘ drop includingdatafiles刪除tempfile。再創建一個tempfile即可alter tablespace temp add tempfile ‘/data01/ibm186/data01/temp.dbf‘size 4096M;
問題22dataguard主庫的文件是通過OMF創建,備庫也通過OMF創建,備庫是否可以在*.db_file_name_convert只配置主庫和備庫的db_create_file_dest即可 回答:不可,因為主庫備庫的db_create_file_dest目錄的子目錄名稱可能不一樣,會導致無法創建文件,因為OMF創建文件規則是db_create_file_dest\實例名\datafiletempfile\文件名稱
問題23:最大可用性模式,主庫故障後,備庫進行Failover的切換,是否必須按以下四步進行 1. 備庫執行ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE; 2. 備庫執行alter databaserecover managed standby database finish force; 3. 備庫執行alter database commit to switchover to primary with sessionshutdown; 4. 備庫執行alter database open;

回答:是的,雖然可以跳過第一步,但是不建議這樣做

http://www.itpub.net/thread-1913853-1-1.html

親歷dataguard的一些經驗問答題