Oracle數(shù)據(jù)庫容災(zāi)技術(shù)專題(兩臺主機(jī))_第1頁
Oracle數(shù)據(jù)庫容災(zāi)技術(shù)專題(兩臺主機(jī))_第2頁
Oracle數(shù)據(jù)庫容災(zāi)技術(shù)專題(兩臺主機(jī))_第3頁
Oracle數(shù)據(jù)庫容災(zāi)技術(shù)專題(兩臺主機(jī))_第4頁
Oracle數(shù)據(jù)庫容災(zāi)技術(shù)專題(兩臺主機(jī))_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Oracle數(shù)據(jù)庫容災(zāi)技術(shù)專題

網(wǎng)絡(luò)管理部數(shù)據(jù)管理中心第三講內(nèi)容提示DataGuard技術(shù)介紹。物理備用(容災(zāi))數(shù)據(jù)庫詳細(xì)配置。管理物理備用數(shù)據(jù)庫。問題剖析。一、DataGuard技術(shù)介紹。DataGuard是oracle提供的用于確保企業(yè)數(shù)據(jù)高可用性、數(shù)據(jù)保護(hù)和災(zāi)難恢復(fù)的一種方案。通過提供日志傳送服務(wù)、日志應(yīng)用服務(wù)和角色轉(zhuǎn)換服務(wù),DataGuard簡化了備用數(shù)據(jù)庫的建立、維護(hù)和管理操作,并且DataGuard使用產(chǎn)品數(shù)據(jù)庫的事物變化來維護(hù)備用數(shù)據(jù)庫。如果因不可預(yù)計的故障導(dǎo)致產(chǎn)品數(shù)據(jù)庫不可用,則DataGuard可以切換到備用數(shù)據(jù)庫,并將其轉(zhuǎn)變?yōu)楫a(chǎn)品數(shù)據(jù)庫,以最小化故障所引起的停機(jī)時間。DataGuard由一個產(chǎn)品數(shù)據(jù)庫和一個或多個備用數(shù)據(jù)庫組成,并且這些數(shù)據(jù)庫可以分布到不同的位置和不同地區(qū),它們之間的互聯(lián)通過oraclenet來完成的。主數(shù)據(jù)庫。主數(shù)據(jù)庫是指用于存放應(yīng)用系統(tǒng)數(shù)據(jù)的oracle數(shù)據(jù)庫,它也被稱為產(chǎn)品數(shù)據(jù)庫或目標(biāo)數(shù)據(jù)庫。備用數(shù)據(jù)庫。備用數(shù)據(jù)庫是主數(shù)據(jù)庫的事務(wù)一致性副本,它包括物理備用數(shù)據(jù)庫和邏輯備用數(shù)據(jù)庫兩種類型,每個主數(shù)據(jù)庫最多可以建立9個備用數(shù)據(jù)庫。三種數(shù)據(jù)保護(hù)模式。最大數(shù)據(jù)保護(hù)模式(MAXIMIZEPROTECTION)提供最高等級的數(shù)據(jù)保護(hù),重作信息從主庫同步送到備用庫。直到備用庫成功接收重作信息,主庫上的事務(wù)才會提交。如果由于網(wǎng)絡(luò)等問題,導(dǎo)致備用庫不可用,那么主庫也同時會被關(guān)閉。這種模式保證了完全沒有數(shù)據(jù)丟失。最大可用性模式(MAXIMIZEAVAILABILITY)在備用庫正常的情況下,該模式提供了跟“最大數(shù)據(jù)保護(hù)模式”一樣的機(jī)制,保證沒有任何數(shù)據(jù)丟失。如果備用庫不可用,那么將轉(zhuǎn)換到“最大性能模式”,操作可以在主庫上繼續(xù)執(zhí)行。當(dāng)備用庫重新可用之后,將會繼續(xù)同步。但是如果在同步完成之前,主庫由于故障損壞,將會丟失數(shù)據(jù)最大性能模式(MAXIMIZEPERFORMANCE)這種模式下,主庫上的重作信息是異步傳遞到備用庫上,不論備用庫上是否已經(jīng)成功接收了重作信息,主庫上的操作都會成功執(zhí)行。所以這種模式提供了最好的性能,但是最低的數(shù)據(jù)保護(hù)。這是Oracle10g配置DataGuard的默認(rèn)模式。二、在不同主機(jī)上建立物理備用數(shù)據(jù)庫。(1)在兩臺主機(jī)上分別安裝ORACLE數(shù)據(jù)庫并建立數(shù)據(jù)庫。提示:兩臺主機(jī)ORACLE的安裝目錄和數(shù)據(jù)文件存放目錄盡可能保持一致(2)兩臺數(shù)據(jù)庫的SID均配置為ORACLE10主數(shù)據(jù)唯一數(shù)據(jù)庫名為primary,備用唯一數(shù)據(jù)庫名為standby二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(3)配置監(jiān)聽程序和網(wǎng)路服務(wù)名。因為主數(shù)據(jù)庫和備用數(shù)據(jù)庫的交互時通過oraclenet來完成的,所以必須進(jìn)行網(wǎng)絡(luò)配置。二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(4)準(zhǔn)備主數(shù)據(jù)庫參數(shù)文件。編輯文本參數(shù)文件initoracle10.oraDB_UNIQUE_NAME=PrimaryLOG_ARCHIVE_CONFIG='DG_CONFIG=(Primary,Standby)'LOG_ARCHIVE_DEST_1='LOCATION=d:\oracle\ArchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=Primary'LOG_ARCHIVE_DEST_2='SERVICE=StandbyVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=Standby'STANDBY_FILE_MANAGEMENT=AUTOLOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEFAL_SERVER=StandbyFAL_CLIENT=Primary如上所示,db_unique_name

用于指定主數(shù)據(jù)庫的唯一名稱;log_archive_dest_n用于指定歸檔位置,location用于指定本地歸檔位置,service用于備用數(shù)據(jù)庫網(wǎng)絡(luò)服務(wù)名;log_archive_config的dg_config屬性用于列出主數(shù)據(jù)庫和所有備用數(shù)據(jù)庫的唯一數(shù)據(jù)庫名;fal_server用于指定fal(fetcharchivelog)服務(wù)器的網(wǎng)絡(luò)服務(wù)名;fal_client用于指定fal客戶端的網(wǎng)絡(luò)服務(wù)名;standby_file_management用于指定備用數(shù)據(jù)庫數(shù)據(jù)文件的管理方式,當(dāng)設(shè)置為auto時,如果主數(shù)據(jù)庫增加或刪除了數(shù)據(jù)文件,則備用數(shù)據(jù)庫會自動應(yīng)用相應(yīng)改變。二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(4)準(zhǔn)備主數(shù)據(jù)庫參數(shù)文件。Valid_for屬性

VALID_FOR允許同時為主備庫數(shù)據(jù)庫角色配置目的地屬性,使DG切換后能正常工作。簡化切換和故障轉(zhuǎn)移。默認(rèn)valid_for=(all_logfiles,all_roles)

格式:VALID_FOR=(redo_log_type,database_role)

redo_log_type包括:online_logfile、standby_logfile、all_logfiles

database_role包括:primary_role、standby_role、all_roles

redo_log_type的意思是指定要歸檔的日志文件類型;

database_role的意思是,當(dāng)數(shù)據(jù)庫處于這個角色時,才會往log_archive_dest_n這個地址歸檔日志文件(redo_log_type的日志)。例如:

1.配置log_archive_dest_2=‘SERVICE=primaryLGWRASYNCVALID_FOR=(online_logfile,primary_role)’

當(dāng)這個備用庫切換成主庫時,也就是說這個庫角色為primary時,會將online_logfile里(在線日志文件)的日志記錄歸檔到tnsnames=primary的庫。

2.配置log_archive_dest_3='LOCATION=/data/archVALID_FOR=(standby_logfile,standby_role)'

當(dāng)這個庫角色為standby時,當(dāng)standbylog寫滿時,會將standbylog歸檔到/data/arch目錄。而不會將onlinelogfile的內(nèi)容歸檔到這里。

VALID_FOR的作用可以用一句話來總結(jié):

控制,當(dāng)配置有VALID_FOR的數(shù)據(jù)庫處于database_role時,允許歸檔redo_log_type到log_archive_dest_n所配置的路徑。

二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(5)準(zhǔn)備備用數(shù)據(jù)庫參數(shù)文件。建立文本參數(shù)文件initoracle10.ora

sqlplussys/oracle@demoassysdba createpfile=‘%oracle_home%\database\initstandby1.ora’frompfile;編輯文本參數(shù)文件initstandby1.ora DB_UNIQUE_NAME=StandbyLOG_ARCHIVE_CONFIG='DG_CONFIG=(Primary,Standby)'LOG_ARCHIVE_DEST_1='LOCATION=d:\oracle\ArchiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=Standby'LOG_ARCHIVE_DEST_2='SERVICE=StandbyVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=Primary'STANDBY_FILE_MANAGEMENT=AUTOLOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEFAL_SERVER=PrimaryFAL_CLIENT=Standby’二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(5)準(zhǔn)備備用數(shù)據(jù)庫參數(shù)文件。如上所示,db_unique_name用于指定備用數(shù)據(jù)庫的唯一名稱,注意,備用數(shù)據(jù)庫和主數(shù)據(jù)庫的db_unique_name不能相同;control_files用于指定備用數(shù)據(jù)庫的控制文件名;db_file_name_convert用于指定主數(shù)據(jù)庫和備用數(shù)據(jù)庫數(shù)據(jù)文件的目錄或文件名的映射關(guān)系;log_file_name_convert用于指定主數(shù)據(jù)庫和備用數(shù)據(jù)庫重做日志的目錄或文件名的映射關(guān)系;standby_archive_dest用于指定主數(shù)據(jù)庫歸檔日志被傳送到備用數(shù)據(jù)庫的歸檔位置;background_dump_dest用于指定備用數(shù)據(jù)庫后臺進(jìn)程跟蹤文件所在的目錄;user_dump_dest用于指定備用數(shù)據(jù)庫用戶進(jìn)程跟蹤文件所在目錄。二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(6)創(chuàng)建備用數(shù)據(jù)庫控制文件復(fù)制相關(guān)文件到備用數(shù)據(jù)庫所在目錄。命令:

sql>alterdatabasebeginbackup; hostcopyd:\demo\*.dbfd:\standby1 alterdatabaseendbackup; altersystemarchivelogcurrent; alterdatabasecreatestandbycontrolfileas‘d:\standby1\contorl01.ctl’;

二、在一臺主機(jī)上建立物理備用數(shù)據(jù)庫。(7)啟用備用數(shù)據(jù)庫。命令:

c:\sqlplussys/oracle@standbyassysdba

sql>startupmount

sql>connsys/oracle@demoassysdba

sql>altersystemswitchlogfile;

sql>connsys/oracle@standbyassysdba

sql>selectnamefromv$archived_log;

注意,在主數(shù)據(jù)庫上執(zhí)行了日志切換命令之后,如果在備用數(shù)據(jù)庫上查詢v$archived_log沒有返回歸檔日志,則說明備用數(shù)據(jù)庫未接收到主數(shù)據(jù)庫的歸檔日志,請詳細(xì)檢查初始化參數(shù)的配置是否存在問題。

三、管理物理備用數(shù)據(jù)庫。開始應(yīng)用重做。命令:

sql>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;取消重做應(yīng)用。Sql>alterdatabaserecovermanagedstandbydatabasecancel;以只讀方式打開物理備用數(shù)據(jù)庫。Sql>alterdatabaseopen[readonly]打開前必須取消重做應(yīng)用。激活物理備用數(shù)據(jù)庫。Sql>alterdatabaseactivatestandbydatabase;注意,該操作一定要慎重,因為備用數(shù)據(jù)庫一旦被激活,便不能被還原為原來的備用狀態(tài)。四、問題剖析。問題一、通過上述演示發(fā)現(xiàn),如果主數(shù)據(jù)庫突然崩潰,沒有歸檔的重做日志無法傳送到備用數(shù)據(jù)庫上,所以仍然會丟失數(shù)據(jù),如何才能保證不丟數(shù)據(jù)呢?。剖析:上面我們提到,dataguard有三種數(shù)據(jù)保護(hù)模式,默認(rèn)的是最佳性能保護(hù)模式,在該模式下,不能完全保證不丟失數(shù)據(jù),要想解決這個問題,必須調(diào)整dataguard的數(shù)據(jù)保護(hù)模式為最大或最高可用性保護(hù)模式。查詢數(shù)據(jù)庫的保護(hù)模式。Sql>selectprotection_mode

fromv$database;切換數(shù)據(jù)庫的保護(hù)模式。Sql>alterdatabasesetstandby databasetoMaximizeprotection /Maximizeavailability/ Maximizeperformance注意,切換數(shù)據(jù)庫的保護(hù)模式必須 在主數(shù)據(jù)庫上執(zhí)行,并且主數(shù)據(jù)庫 處于mount狀態(tài)。四、問題剖析。問題二、我非常正確的修改了數(shù)據(jù)庫的保護(hù)模式,可經(jīng)過測試發(fā)現(xiàn),日志仍然沒有及時的傳送到備用數(shù)據(jù)庫,數(shù)據(jù)丟失問題仍然沒有得到解決?。剖析:這里我們必須再引入一個新的概念:日志傳輸方式。兩種日志傳輸方式。Arch:傳統(tǒng)的日志傳送方式。現(xiàn)在只有在最大性能保護(hù)模式下采用,歸檔日志通過主數(shù)據(jù)庫的arch進(jìn)程傳送給備用數(shù)據(jù)庫的rfs進(jìn)程,所以只有在歸檔時才會傳送日志數(shù)據(jù)。Lgwr:oracle9i開始使用lgwr即時將日志傳送到備用數(shù)據(jù)庫,而不再需要等到歸檔操作時才傳送日志。三種保護(hù)模式下均可以使用該傳輸模式。其中l(wèi)gwr又有兩種傳輸方式:Sync:同步傳輸,sync寫redo信息的步驟

1、主數(shù)據(jù)庫上lwgr進(jìn)程提交一個事務(wù)時,由lnsn進(jìn)程發(fā)起網(wǎng)絡(luò)I/O到備用數(shù)據(jù)庫。

2、備用數(shù)據(jù)庫上,遠(yuǎn)程文件服務(wù)(RFS)通過網(wǎng)絡(luò)從主庫的lnsn進(jìn)程接收redo信息,寫入到standbylog中。

3、知道redo數(shù)據(jù)寫完主庫redolog和備庫standbylog后,主庫的事務(wù)才會提交。

4、當(dāng)主庫發(fā)生日志切換的同時,也會觸發(fā)備用庫的日志切換,備用庫的arch進(jìn)程歸檔standbylogfile到備用庫上的指定目錄中。

5、備用庫歸檔完成后,啟用mrpn進(jìn)程應(yīng)用到備用庫。

6、如果是適時應(yīng)用日志,那么dg在當(dāng)前redo信息由rfs進(jìn)程寫滿的同時直接從standbylog中應(yīng)用,而后才有arch進(jìn)程歸檔。四、問題剖析。async:同步傳輸,async寫redo信息的步驟1、主數(shù)據(jù)庫發(fā)生事務(wù)時,lgwr進(jìn)程將redo信息寫入到本地的redologfile中,lgwr進(jìn)程將繼續(xù)處理下一個請求,不等待lnsn網(wǎng)絡(luò)I/O完成。2、lnsn網(wǎng)絡(luò)服務(wù)進(jìn)程異步異步傳送redo信息到備用數(shù)據(jù)庫。3、知道redo數(shù)據(jù)寫完主庫redolog和備庫standbylog后,主庫的事務(wù)才會提交。4、當(dāng)主庫發(fā)生日志切換的同時,也會觸發(fā)備用庫的日志切換,備用庫的arch進(jìn)程歸檔standbylogfile到備用庫上的指定目錄中。5、備用庫歸檔完成后,啟用mrpn進(jìn)程應(yīng)用到備用庫。6、如果是適時應(yīng)用日志,那么dg在當(dāng)前redo信息由rfs進(jìn)程寫滿的同時直接從standbylog中應(yīng)用,而后才有arch進(jìn)程歸檔。查看日志傳送方式。Selectdest_name,archiverfromv$archive_dest;要想解決該問題,必須修改初始化參數(shù)。log_archive_dest_2=‘service=standbyvalid_for=(online_logfiles,primary_role)lgwrsync

db_unique_name=standby1’四、問題剖析。測試實圖四、問題剖析。問題三、我又非常認(rèn)真的進(jìn)行了測試,可結(jié)果更令我失望,原因到底在哪里?。剖析:我很負(fù)責(zé)任的告訴你,其實數(shù)據(jù)已經(jīng)傳到了備用服務(wù)器上,只是還沒有應(yīng)用而已,我們回過頭來在看一下lgwrsync的redo信息傳送步驟就明白了,如果你想及時看到你想要的結(jié)果,必須啟用備用數(shù)據(jù)庫的適時應(yīng)用功能。備用數(shù)據(jù)庫適時應(yīng)用。Sql>alterdatabaserecovermanagedstandbydatabaseusingcurrentlogfile。啟用該功能必須確保備用數(shù)據(jù)庫有standbylogfile:Sql>alterdatabaseaddstandbylogfilegroup4(‘d:\standby1\std_redo04.log’)size50mSql>alterdatabaseaddstandbylogfilegroup5(‘d:\standby1\std_redo05.log’)size50mSql>alterdatabaseaddstandbylogfile

group6(‘d:\standby1\std_redo06.log’)size50m注意,standbylogfile的group不能和主庫的redologfile的group重復(fù),并且大小上也要保持一致四、問題剖析。測試實圖四、問題剖析。上面三個問題終于解決了,讓我們趁機(jī)來總結(jié)一下吧。

保證dataguard不丟失數(shù)據(jù)的幾個必要條件。(1)dataguard必須處于最大保護(hù)模式或最高可用性模式。(2)日志傳送方式必須是lgwrsync(3)備用數(shù)據(jù)庫必須有standbylogfile在補(bǔ)一張表格,對大家總結(jié)很有幫助。

最大保護(hù)

最大可用

最大性能

進(jìn)程

LGWR

LGWR

LGWR或ARCH

網(wǎng)絡(luò)傳輸模式

SYNC

SYNC

LGWR時設(shè)置ASYNC

磁盤寫操作

AFFIRM

AFFIRM

NOAFFIRM

備用日志

Yes

物理備用需要

LGWR和物理備用時需要

備用庫類型

物理

物理或邏輯

物理或邏輯

四、問題剖析。問題四、備用數(shù)據(jù)庫能否shutdown?備用服務(wù)器能否關(guān)機(jī)?剖析: 最大保護(hù)模式下不可以,而最高可用性模式和最佳性能模式可以,我們可以回過頭來再看一下三種保護(hù)模式的技術(shù)介紹就可以了。測試實圖。首先關(guān)閉備庫首先關(guān)閉備庫操作主庫四、問題剖析。問題五、如果備用數(shù)據(jù)庫壞掉了,能不能在主數(shù)據(jù)庫正常工作的情況下重新做容災(zāi)服務(wù)器?剖析: 完全可以,做個簡單的測試就明白了。測試實圖。四、問題剖析。問題六、如果在主數(shù)據(jù)庫上進(jìn)行了數(shù)據(jù)恢復(fù),備用數(shù)據(jù)庫能否繼續(xù)使用?剖析:分兩種情況

1、完全恢復(fù)(恢復(fù)到故障點)。如果對主數(shù)據(jù)庫進(jìn)行的時完全恢復(fù),那么備用數(shù)據(jù)庫可以繼續(xù)使用,不會有任何問題。

2、不完全恢復(fù)(恢復(fù)到故障點以前)。如果對主數(shù)據(jù)庫進(jìn)行了不完全恢復(fù),備用數(shù)據(jù)庫也不會報錯,但不再接收主庫傳過來的REDO信息,所以在這種

溫馨提示

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

最新文檔

評論

0/150

提交評論