數據庫程序員面試分類真題17_第1頁
數據庫程序員面試分類真題17_第2頁
數據庫程序員面試分類真題17_第3頁
數據庫程序員面試分類真題17_第4頁
數據庫程序員面試分類真題17_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數據庫程序員面試分類真題17簡答題1.

RAC環(huán)境中的SCANIP的作用是什么?正確答案:從Oracle11gR2RAC開始引入SCAN(SingleClientAccessName,(江南博哥)集群的單客戶端訪問名稱)IP的概念,相當于在客戶端和數據庫之間增加一層虛擬的網絡服務層,即是SCANIP和SCAPIPLISTENER。在客戶端的tnsnames.ora配置文件中,只需要配置SCANIP,然后用戶即可訪問數據庫。客戶端通過SCANIP、SCANIPLISTENER來負載均衡地連接到RAC數據庫。同之前各版本的RAC相比,使用SCANIP的好處就是,當后臺RAC數據庫添加、刪除節(jié)點時,客戶端配置信息無須修改。SCAN提供一個域名來訪問RAC,域名可以解析1~3個(注意,最多3個)SCANIP,可以通過DNS、GNS或/etc/hosts文件來解析實現。需要注意的是,SCANIP、VIP和PublicIP必須屬于同一子網。[考點]RAC

2.

RAC環(huán)境中的HAIP(HighlyAvailableIP)的作用是什么?正確答案:在Oracle之前,私網的冗余一般是通過在OS上做網卡綁定(如Bond等)來實現的,從Oracle版本開始推出HAIP(HighlyAvailableIP)技術替代了操作系統(tǒng)層面的網卡綁定技術,其功能更強大、更兼容。HAIP通過其提供的獨特的169.254.*網段的IP地址,實現集群內部連接的高可用及負載均衡。所以,在或更高版本安裝RAC的時候需要注意169.254.*的IP地址不能被占用。有了HAIP技術則不再需要借助任何第三方的冗余技術來實現私網網卡的冗余。[考點]RAC

3.

什么是DG?正確答案:首先,DG(DataGuard,數據衛(wèi)士)不是一個備份恢復的工具,然而,DG卻擁有備份的功能,在物理DG下它可以和主庫一模一樣,但是它存在的目的并不僅僅是為了備份恢復數據,應該說它的存在是為了確保企業(yè)數據的高可用性、數據保護以及災難恢復。DBA可以通過將一些操作(例如查詢報表)轉移到備庫執(zhí)行的方式來減小主庫的壓力,構建高可用的企業(yè)數據庫應用環(huán)境。

在DG環(huán)境中,至少有兩個數據庫,一個處于OPEN狀態(tài)對外提供服務,這個數據庫叫作主庫(PrimaryDatabase);另一個處于恢復狀態(tài),叫作備庫(StandbyDatabase)。通常情況下,主庫對外提供服務,用戶在主庫上進行操作,操作被記錄在聯機日志和歸檔日志中,這些日志通過網絡傳遞給備庫,然后在備庫上被應用,從而實現主庫和備庫的數據同步。Oracle對這一過程進一步地優(yōu)化設計,使得日志的傳遞、恢復工作更加自動化、智能化,并且提供一系列參數和命令,簡化了DBA工作。如果軟硬件升級,那么可以把備庫切換為主庫繼續(xù)對外服務,這樣既減少了服務停止時間,數據又不會丟失。如果異常原因導致主庫不可用,那么也可以把備庫強制切換為主庫繼續(xù)對外服務,這時數據損失都和配置的數據保護級別有關系。所以,Primary和Standby只是一個角色概念,并不固定在某個數據庫中。[考點]DG

4.

DG有哪些優(yōu)缺點?正確答案:DG的優(yōu)點主要有①災難恢復及高可用性;②全面的數據保護;③有效利用系統(tǒng)資源;④在高可用及高性能之間更加靈活的平衡機制;⑤故障自動檢查及解決方案;⑥集中的、易用的管理模式;⑦自動化的角色轉換。

DG的缺點主要有①由于傳輸整個日志文件,所以需要較高的網絡傳輸帶寬。②在Oracle11g之前的物理備庫雖然可以以只讀方式打開,然后執(zhí)行查詢、報表等操作,但需要停止應用日志,這將使目標庫與源數據不能保持同步,如果在此期間源數據庫發(fā)生故障,那么將延長切換的時間。從Oracle11g開始,ADG可以在數據庫打開的情況下應用日志,這極大地提高了DG的應用范圍。③邏輯備庫不能支持某些特定的數據對象和數據類型。④不支持雙向復制,所以無法應用于信息集成的場合。⑤只能復制整個數據庫,不能選擇某個SCHEMA或表空間或表進行單獨復制。⑥不支持異構的系統(tǒng)環(huán)境,需要相同的操作系統(tǒng)版本和數據庫版本(Oracle11g支持部分異構平臺)。[考點]DG

5.

DG可以分為哪幾類?正確答案:DG根據備庫重演日志方式的不同,可以分為物理DG(PhysicalDG)、邏輯DG(LogicalDG)和快照DG(SnapshotDG),它們對應的數據庫分別可以稱為PhysicalStandby、LogicalStandby和SnapshotStandby。

物理DG:物理DG使用的是MediaRecovery技術,在數據塊級別進行恢復,這種方式沒有數據類型的限制,可以保證兩個數據庫完全一致。在Oracle11g之前的物理DG只能在MOUNT狀態(tài)下進行恢復,雖然可以以只讀方式打開備庫,但是不能應用日志,而到了Oracle11g時備庫可以在打開的情況下執(zhí)行恢復操作了,這稱為ADG(ActiveDataGuard)。物理DG實時應用進程為MRP進程。

邏輯DG:邏輯DG使用的是LogMiner技術,通過把日志內容還原成SQL語句,然后通過SQL引擎執(zhí)行這些SQL語句。邏輯DG不支持所有的數據類型,這些不支持的數據類型可以在視圖DBA_LOGSTDBY_UNSUPPORTED中查看。如果使用了這些數據類型,那么不能保證主備庫完全一致。LogicalStandby可以在恢復的同時進行讀寫操作。邏輯DG實時應用進程為LSP進程。需要注意的是,在邏輯DG中,SYS用戶下的對象不會同步。創(chuàng)建邏輯備庫需要首先創(chuàng)建一個物理備庫,然后再將其轉換成邏輯備庫。

快照DG:當PlaysicalStandby轉換為SnapshotStandby時,它是一個完全可更新的Standby數據庫。SnapshotStandby依然會接收來自主庫的歸檔文件,但是它不會應用。當SnapshotStandby轉換為PhysicalStandby時,所有在SnapshotStandby數據庫的操作被丟棄之后,PhysicalStandby數據庫才會應用Primary數據庫的Redo數據。[考點]DG

6.

DG有哪3種保護模式?它們的區(qū)別是什么?正確答案:DG提供了3種數據保護模式(ProtectionMode):最大保護(MaximumProtection)、最高性能(MaximumPerformance)和最高可用(MaximumAvailability),見下表。比較項目最大保護最高可用最商陸能簡介最大保護模式能夠確保絕無數據丟失,該模式要求主庫所有的事務在提交前其Redo不僅被寫入本地的OnlinleRedoLogs,還要同時寫入備庫的StandbyRedoLogs,并確認Redo數據至少在一個備庫中可用(如果有多個的話),然后才會在主庫上提交。如果出現了導致備庫不可用故障(例如網絡中斷),那么主庫會被關閉最高可用模式在不影響主庫可用的前提下,提供最高級別的數據保護。其實現方式與最大保護模式類似,也是要求本地事務在提交前必須至少寫入一臺主庫的StandbyRedoLogs中,不過與最大保護模式不同的是,如果出現故障導致備庫無法訪問,那么主庫并不會被關閉,而是自動轉為最高性能模式,等備庫恢復正常之后,主庫又會自動轉換成最高可用模式。最高可用模式適用于想要確保獲得零數據丟失保護,但不想讓生產數據庫受網絡/備用服務器故障影響的企業(yè)在最高性能模式下,事務可以隨時提交。如果網絡條件理想,那么這種模式能夠提供類似最高可用性的數據保護,而僅對主庫的性能有輕微影響。這也是在創(chuàng)建備庫時,系統(tǒng)的默認保護模式。最高性能模式區(qū)別于最大保護模式的地方是,它并不需要將日志信息實時地傳遞到備庫上,也不需要確保日志在其中的至少一臺備庫上應用切換命令ALTERDATABASESETSTANDBYDATABASETOMAXIMIZEPROTECTION;AITERDATABASESETSTANDBYDATABASETOMAXIMIZEAVAILABILITY;ALTERDATABASESETSTANDBYDATABASETOMAXIMIZEPERFORMANCEN;數據丟失隋況零數據丟失零數據丟失最小數據丟失主庫事務完成情況主庫Redo需要同時寫入主庫、至少一個備庫,主庫事務才能完成主庫Rede需要同時寫入主庫、至少一個備庫,主庫事務才能完成主庫事務可以隨時提交是否默認的保護模式否否是性能影響對數據庫性能影響最大界于最大保護和最高性能之間對數據庫性能影響最小網絡傳輸模式同步(SYNC)同步(SYNC)使用LGWR進程傳遞歸檔時采用同步(SYNC)或異步(ASYNC),使用ARCH進程傳遞歸檔時采用同步(SYNC)是否需要StandbyRedoLogsYESYES可沒有,但推薦有Redo寫進程LGWRLGWRLGWR或ARCH磁盤寫操作AFFIRMAFFIRMAFFIRM或NOAFFIRM優(yōu)點該模式可以保證備庫沒有數據丟失該模式可以在沒有問題出現的隋況下,保證備庫沒有數據丟失,是—種折中的方法避免了備庫對主數據庫的性能和可用性影響缺點要求網絡高度穩(wěn)定可靠,如果出現了導致各庫不可用故障(比如網絡中斷),那么主庫會被關閉。備庫的自動關閉會影響到主庫的可用性,同時需要備庫恢復后才能提交,對阿絡等客觀條件要求非常高,主庫的性能會因此受到非常大的沖擊。最大保護模式損害了系統(tǒng)的可用性在正常運行的過程中缺點是主庫的性能受到諸多因素的影響。要求備庫必須配置StandbyRedoLogs,而主庫必須使用LGWRSYNCAFFIRM方式歸檔到各庫如果與主庫提交的事務相關的恢復數據沒有發(fā)送到備庫,那么這些事務數據將被丟失,不能保證數據無損失。如果主庫發(fā)生災難性故障,日志全部損失,那么備庫和主庫可能會出現一個左右的日志信息差異。當然,在這種方式下,可以通過設置主庫增加歸檔頻率來縮小可能的數據損失。最高性能模式損害了系統(tǒng)的數據安全性[考點]DG

7.

Switchover和Failover的區(qū)別是什么?正確答案:一個DG環(huán)境中只有兩種角色:Primary和Standby。所謂角色轉換就是讓數據庫在這兩種角色中切換,切換也分兩利:Switchover和Failover。關于角色切換需要注意以下幾點:

1)Switchover是指主庫轉換成備庫,然后將原備庫轉換成新主庫;而Failover是指將備庫轉換成主庫。

2)使用場合不同。Switchover用于有準備的、計劃之中的切換,通常是系統(tǒng)升級、數據遷移等常態(tài)任務;Failover用于意料之外的突發(fā)情況,例如,異常斷電、自然災難等。

3)數據丟失程度不同。Switchover不會丟失數據,Failover通常意味著有部分數據丟失。

4)善后處理的不同。Switchover之后DG環(huán)境不會被破壞,仍然有Primary、Standby兩種角色的系統(tǒng)存在,但是Failover之后,DG環(huán)境就會被破壞,一般情況下需要重建。但是,若主庫或備庫開啟了閃回功能,則都可以通過閃回數據庫功能恢復DG環(huán)境。例如,PROD1為主庫,SBDB1為備庫;若PROD1意外宕機,則SBDB1執(zhí)行Failover操作變?yōu)橹鲙?;此時若想恢復DG環(huán)境,則有3種處理辦法:

①將PROD1利用閃回數據庫功能閃回到SBDB1變?yōu)橹鲙斓腟CN時間點,然后將PROD1轉換為備庫,最后利用Switchover轉換為最初的環(huán)境。在這種情況下,PROD1需要開啟閃回。

②將SBDB1利用閃回數據庫功能閃回到SBDB1變?yōu)橹鲙斓腟CN時間點,此時SBDB1仍然是主庫的角色,然后將SBDB1轉換為備庫。在這種情況下,SBDB1需要開啟閃回,而且會丟失部分數據。

③利用RMAN重新搭建DG環(huán)境。

Switchover切換的主要SQL語句為

Failover切換的主要SQL語句為

執(zhí)行閃回數據庫后,切換主庫為備庫的SQL語句為

alterdatabaseconverttophysicalstandby;[考點]DG

8.

主庫丟失歸檔,物理DG如何恢復?正確答案:面試DBA崗位,面試官對于DG環(huán)境常常會問到,若是主庫丟失了歸檔文件,而這些歸檔文件還未來得及傳遞到備庫,那么物理備庫是否只能通過重建的方式來恢復呢?這道面試題是作者親身經歷,當時以為只能重建備庫,但最后經過查找文檔找到了解決辦法,可以通過對主庫進行基于SCN的增量備份來恢復物理DG。[考點]DG

9.

備庫數據文件異常,物理DG如何恢復?正確答案:有的時候由于備庫空間不足,在主庫添加了數據文件后,導致備庫數據文件的缺失,可能很久之后才發(fā)現,但是由于歸檔的缺失等其他原因而導致備庫不能正常應用Redo日志。還有其他情況可能導致備庫的數據文件不能正常ONLINE,在這種情況下,可以在主庫上利用CONVERT命令備份一個數據文件然后復制到備庫即可。若是備庫歸檔文件比較全,則可以直接在備庫創(chuàng)建數據文件后應用Redo日志即可,而不需要從主庫復制數據文件。[考點]DG

10.

DG中GAP有幾種解決方案?正確答案:當主庫的某些日志沒有成功傳送到備庫,那么這時候就發(fā)生了歸檔裂縫(ArchiveGap)。目前Oracle提供了兩種日志GAP的檢測和處理機制,分別是自動GAP處理(AutomaticGapResolution)和FAL進程GAP處理(FALGapResolution)。自動GAP處理即主庫上的ARCn進程會每分鐘檢查備庫上的日志GAP情況并做相應處理。FAL(FetchArchiveLog)是通過配置FAL_SERVER和FAL_CLIENT實現GAP檢測的一種機制,它是備庫主動發(fā)起的“取”日志的過程。備庫就是FAL_CLIENT,它從FAL_SERVER中取這些GAP。Oracle會首先嘗試使用FAL進程處理GAP,當發(fā)現FAL機制并沒有配置生效的時候,進而嘗試使用自動GAP處理。

FAL進程只在物理備庫存在。FAL進程提供了一個CLIENT/SERVER的機制,用來解決檢測在主庫產生的連續(xù)的歸檔日志,而在備庫接收的歸檔日志不連續(xù)的問題。該進程只有在需要的時候才會啟動,而當工作完成后就關閉了,因此在正常情況下,該進程是無法看見的。

1.物理DG手動解決GAP

在一些特殊情況下,如果GAP不能自動解決,那么就需要手動執(zhí)行中斷恢復。通過查詢視圖V$ARCHIVE_GAP可以確定斷檔的是哪些日志。

可以看到,當前物理備庫丟失目志文件為線程1的序號10~12。接下來確定歸檔日志文件的路徑(假設在主數據庫上的本地歸檔目的地是LOG_ARCHIVE_DEST_1):

SQL>SELECTNAMEFROMV$ARCHIVED_LOGWHERETHREAD#=1ANDDEST_ID=1ANDSEQUENCE#BETWEEN10AND12;

NAME

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

/arch/thread1_dest/arch_1_10.arc

/arch/thread1_dest/arch_1_11.arc

/arch/thread1_dest/arch_1_12.arc

接下來,復制這些日志文件到物理備庫,然后在物理備庫上使用“ALTERDATABASEREGISTERLOGFILE”語句來注冊這些歸檔日志,如下:

SQL>ALTERDATABASEREGISTERLOGFILE'/arch/thread1_dest/arch_1_10.arc';

也可以使用如下的SQL語句:

ALTERDATABASEREGISTERORREPLACELOGFILE'/arch/thread1_dest/arch_1_10.arc';

ALTERDATABASEREGISTERORREPLACEPHYSICALLOGFILE'/arch/thread1_dest/arch_1_11.arc';

在物理備庫上注冊這些日志文件之后,重新打開重做應用進程。如果斷檔的歸檔日志較多,那么可以使用如下的SQL語句來生成要執(zhí)行的SQL語句(如下的SQL也適用于邏輯DG):

SELECT'ALTERDATABASEREGISTERORREPLACELOGICALLQGFILE"/arch/thread1—dest/arch_1_'||a||'.arc";'LOGICAL_DG,

'ALTERDATABASEREGISTERORREPLACELOGFILE"/arch/thread1_dest/arCh_1_'||a||'.arc";'PHYSICAL_DG

FROM(SELECTLEVELAFROMDUALCONNECTBYLEVEL<=12)

WHEREA>=10;

需要注意的是,視圖V$ARCHIVE_GAP只返回當前妨礙重做應用繼續(xù)的下一個中斷。在解決中斷并重啟重做應用進程后,再次在物理備庫上查詢V$ARCHIVE_GAP視圖來確定下一個中斷序號,如果有的話,重復這個過程直到沒有更多的中斷。

2.邏輯DG手動解決GAP

在邏輯備庫上查詢DBA_LOGSTDBY_LOG視圖可以確定是否有歸檔中斷。例如,下面的查詢指出斷檔號為16~18:

SYS@orclasm>COLUMNFILE_NAMEFORMATa60

SYS@orclasm>SELECTTHREAD#,SEQUENCE#,FILE_NAME

2

FROMDBA_LOGSTDBY_LOGL

3

WHERENEXT_CHANGE#NOTIN(SELECTFIRST_CHANGE#FROMDBA_LOGSTDBY_LOGWHEREL.THREAD#=THREAD#)

4

ORDERBYTHREAD#,SEQUENCE#;

THREAD#

SEQUENCE#FILE_NAME

---------

---------

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

1

16/arch/oracle/arch_1_16.arc

1

18/arch/oracle/arch_1_18.arc

接下來復制丟失的日志文件到邏輯備庫,并在邏輯備庫上使用“ALTERDATABASEREGISTERLOGICALLOGFILE”來注冊這些日志文件。例如:

SQL>ALTERDATABASEREGISTERLOGICALLOGFILE

'/arch/orade/arch_1_16.arc';

在邏輯備庫上注冊這些日志文件之后,重啟SQL應用。和物理DG一樣,在邏輯備庫上的DBA_LOGSTDBY_LOG視圖只返回當前妨礙SQL應用繼續(xù)的下一個中斷。在解決指定的中斷并重啟SQL應用之后,再次在邏輯備庫上查詢DBA_LOGSTDBY_LOG視圖,以確定下一個中斷序號,如果有的話,重復這個過程直到沒有更多的中斷。

需要注意的是,如果需要的歸檔日志已經不在主庫上,但是有歸檔日志的RMAN備份,那么可以通過RMAN恢復把缺少的歸檔日志進行還原,如下:

SETARCHIVELOGDESTINATIONTO'/arch';

RESTOREARCHIVELOGFROMLOGSEQ7;

如果斷檔的歸檔日志已經丟失,且RMAN又沒有備份,那么在Oracle10g之前沒有辦法修復了,只能重建DG,但是從Oracle10g開始可以采用主庫基于SCN的增量備份來恢復DG。[考點]DG

11.

物理DG如何啟用和停止日志應用服務?正確答案:(1)啟用日志應用:

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION;

(2)啟用實時的日志應用:

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;

DISCONNECTFROMSESSION子句并非必需,該子句的作用是指定啟動完應用后自動退出到命令操作符前。如果不指定該子句,那么當前SESSION就會一直停留處理Redo應用,如果想做其他操作,那么就只能新建一個連接。

(3)停止日志應用服務:

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;

(4)查看DG備機是否啟用了日志應用,有兩種辦法可以判斷:①可以查看是否有mrp進程,如果看不到mrp進程,那么說明沒有啟用日志應用;②查看V$ARCHIVE_DEST_STATUS的RECOVERY_MODE列,若啟用了實時應用,則在Oracle11g顯示MANAGEDREALTIMEAPPLY,在Oracle10g顯示MANAGED。

[oracle@dg~]$ps-ef|grepora_mrp

oracle

19592

1

010:15?

00:00:01ora_mrp0_phydb[考點]DG

12.

DG中如何查看日志的應用情況?正確答案:檢查是否存在GAP的SQL語句:

SELECTTHREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE#FROMV$ARCHWE_GAP;

物理DG日志應用情況:

SELECTTHREAD#,NAME,SEQUENCE#,ARCHIVED,APPLIED,A.NEXT_CHANGE#FROM

V$ARCHIVED_LOGA

WHERE

A.SEQUENCE#>=(SELECTMAX(B.SEQUENCE#)-3FROMV$LOGBWHEREB.THREAD#=A.THREAD#)

AND

RESETLOGS_CHANGE#=(SELECTD.RESETLOGS_CHANGE#FROMV$DATABASED)

ORDER.BYA.THREAD#,A.SEQUENCE#;[考點]DG

13.

如何查看物理備庫的進程信息?正確答案:SELECTA.INST_ID,A.PROCESS,A.CLIENT_PROCESS,A.CLIENT_PID,

A.STATUS,A.GROUP#

GROUP_#,A.THREAD#,A.SEQUENCE#,A.DELAYMINS,

A.RESETLOG_ID,C.SID,C.SERIAL#,A.PID

SPID,B.PNAME

FROMGV$MANAGED_STANDBYA,GV$PROCESSB.GV$SESSIONC

WHEREA.PID=B.SPIDANDB.ADDR=C.PADDRANDA.INST_ID=B.INST_IDANDB.INST_ID=C.INST_ID

ORDERBYA.INST_ID,B.PNAME;

1)PROCESS:進程名稱,如ARCH、RFS、MRP0等。

2)CLIENT_PID:在備庫查詢時對應的Primary數據庫中的進程,如ARCH、LGWR等,在主庫查詢時就是后臺進程。

3)SEQUENCE#:歸檔序號。

4)STATUS:進程的當前狀態(tài),值較多,常見的有:

①ALLOCATED:正準備連接Primary數據庫。

②ATTACHED:正在連接Primary數據庫。

③CONNECTED:已連接至Primary數據庫。

④IDLE:空閑中。

⑤RECEIVING:歸檔文件接收中。

⑥OPENING:歸檔文件處理中。

⑦CLOSING:歸檔文件處理完,收尾中。

⑧WRITING:Redo數據庫寫向歸檔文件中。

⑨WAIT_FOR_LOG:等待新的Redo數據中。

⑩WAIT_FOR_GAP:歸檔有中斷,正等待中斷的那部分Redo數據。

APPLYING_LOG:應用Redo數據中。[考點]DG

14.

如何手動注冊日志?正確答案:如果有日志文件未被傳輸或未被注冊到備庫,那么可以使用如下命令手動注冊到備庫。下面的SQL語句可以生成物理和邏輯DG注冊的日志,日志號為1980~2000:

SELECT'alterdatabaseregisterorreplacelogicallogfile"/arch/log_1_'||A||'_666200636.arc";'LOGICAL_DG,

'alterdatabaseregisterorreplace

logfile"/arch/log_1_'||A||'_666200636.arc";'PHYSICAL_DG

FROM(SELECTLEVELAFROMDUALCONNECTBYLEVEL<=2000)WHEREA>=1980;[考點]DG

15.

在邏輯DG中,如何啟動和關閉日志應用?正確答案:ALTERDATABASESTOPLOGICALSTANDBYAPPLY;--停止應用,等待事務完成

ALTERDATABASEABORTLOGICALSTANDBYAPPLY;--不等待事務完成就停止

ALTERDATABASESTARTLOGICALSTANDBYAPPLYIMMEDIATE;--實時

ALTERDATABASESTARTLOGICALSTANDBYAPPLY;--非實時

如何知道是否開啟了實時應用呢?可以查詢V$LOGSTDBY_STATE視圖或查詢是否有l(wèi)sp進程。

[考點]DG

16.

如何查看邏輯DG日志文件的應用情況?正確答案:SELECT

FILE_NAME,SEQUENCE#ASSEQ#,FIRST_CHANGE#ASFCHANGE#,NEXT_CHANGE#ASNCHANGE#,TIMESTAMP,DICT_BEGINASBEG,

DICT_ENDASEND,THREAD#ASTHR#,APPLIED

FROMDBA_LOGSTDBY_LOGORDERBYTHREAD#,SEQUENCE#;[考點]DG

17.

如何查看邏輯DG備庫SQLApply的進度?正確答案:[考點]DG

18.

如何查看邏輯DG備庫是否有任何DDL/DML語句未成功應用?正確答案:SELECTA.EVENT_TIME,A.CURRENT_SCN,AiCOMMIT_SCN,XIDUSN,XIDSLT,

XIDSQN,TO_CHAR(EVENT)EVENT,A.STATUS_CODE,STATUSEVENT_STATUS

FROMDBA_LOGSTDBY_EVENTSAWHEREA.EVENT_TIME>=SYSDATE-10/1660ORDERBYA.EVENT_TIME;[考點]DG

19.

如何查看邏輯DG備庫SQLApply的狀態(tài)?正確答案:

注意STATE列,該列可能有下述的幾種狀態(tài)。

1)INITIALIZING:LogMinerSESSION已創(chuàng)建并初始化。

2)LOADINGDICTIONARY:SQL應用調用LogMiner字典。

3)WAITINGONGAP:SQL應用正在等待日志文件,可能有中斷。

4)APPLYING:SQL應用正在工作。

5)WAITlNGFORDICTIONARYLOGS:SQL應用正在等待LogMiner字典信息。

6)IDLE:SQL應用工作非常出色,處于空閑狀態(tài)。

7)SQLAPPLYNOTON:沒有開啟應用。[考點]DG

20.

如何取消邏輯DG中部分對象或事務的同步?正確答案:可以利用DBMS_LOGSTDBY.SKIP存儲過程跳過特定表或特定用戶的DML事務或部分DDL語句。這些跳過的對象或事務可以通過視圖DBA_LOGSTDBY_SKIP和DBA_LOGSTDBY_SKIP_TRANSACTION查看。

邏輯各庫還有很多其他非常實用的SQL語句,這里就不列舉了,讀者可以關注作者的微信公眾號,里面每天會推送一個非常實用的SQL語句。[考點]DG

21.

什么是OGG?它有哪些優(yōu)缺點?正確答案:OGG(OracleGoldenGate)屬于OracleFusionMiddleware產品線,2009年被Oracle收購,它是OracleStream的替代者。OGG軟件是一種基于日志的結構化數據復制備份軟件,它通過解析源數據庫在線日志或歸檔日志獲得數據的增量變化,再將這些變化應用到目標數據庫,從而實現源數據庫與目標數據庫的同步。OGG可以在異構的IT(InformarionTechnology,信息技術)基礎結構(包括幾乎所有常用操作系統(tǒng)平臺和數據庫平臺)之間實現大量數據亞秒級的實時復制,從而可以在應急系統(tǒng)、在線報表、實時數據倉庫供應、交易跟蹤、數據同步、集中/分發(fā)、容災、數據庫升級和移植、雙業(yè)務中心等多個場景下應用。同時,OGG可以實現一對一、廣播(一對多)、聚合(多對一)、雙向復制、層疊、點對點、級聯等多種靈活的拓撲結構。

OGG能夠實現大量交易數據的實時捕捉、變換和投遞,實現源數據庫與目標數據庫的數據同步,保持亞秒級的數據延遲。和傳統(tǒng)的邏輯復制一樣,OGG的實現原理是首先通過抽取源端的Redo日志或者ArchiveLog,然后通過TCP/IP投遞到目標端,最后解析還原應用到目標端,使目標端實現同源端的數據同步。[考點]OGG

22.

RAC、DG和OGG的區(qū)別有哪些?正確答案:RAC和DG是高可用體系中的常用的兩種工具,每個工具既可以獨立應用,也可以相互配合使用。但是它們各自的側重點不同,適用場景也不同。

RAC是本地的高可用集群,每個節(jié)點用來分擔不同或相同的應用,以解決運算效率低下、單點故障這樣的問題,它是幾臺硬件相同或不相同的服務器加一個共享存儲構成的。RAC的強項在于解決單點故障和負載均衡,所以,RAC方案常用于7*24的核心系統(tǒng),但RAC方案中的數據只有一份,盡管可以通過RAID等機制避免存儲故障,但是數據本身是沒有冗余的,因此需要加強備份。

DG是Oracle的遠程復制技術,它有物理和邏輯之分,但是總的來說,它需要在異地有一套獨立的系統(tǒng),是一種異地容災的解決方案。DG通過冗余數據的方式來提供數據保護,通過日志同步機制保證冗余數據和主庫之間的同步,這種同步可以是實時、延時、同步或異步等多種形式。DG常用于異地容災和小企業(yè)的高可用性方案,可以在備庫上執(zhí)行只讀的查詢操作,從而分散主庫的性能壓力。

OGG軟件是一種基于日志的結構化數據復制備份軟件,它通過解析源數據庫在線日志或歸檔日志獲得數據的增量變化,再將這些變化應用到目標數據庫,從而實現源數據庫與目標數據庫的同步。OGG可以實現一對一、廣播(一對多)、聚合(多對一)、雙向復制、層疊、點對點、級聯等多種靈活的拓撲結構,可以實現只復制某幾個表的功能。

Oracle高可用性產品比較見下表。

雙機熱備/FailsafeOPS(OracleParallelServer)RACDG(DataGuard)OGG共享存儲不是有有獨立存儲不是保護類型熱備只有1個實例,1個數據庫,做不了并發(fā)和負載均衡實例冗余,負載均衡實例級冗余數據庫層次冗余schema或表級別冗余需要的軟硬件資源只有兩臺機器和磁盤陣列,有一個漂移的IP,不能共享存儲有兩臺機器和磁盤陣列,有兩個虛擬IP可以有多臺機器和磁盤陣列,1個節(jié)點有1個虛擬IP有獨立的機器和獨立的存儲有獨立的機器和獨立的存儲優(yōu)缺點Failsafe是免費的,一臺服務器閑置,硬件浪費較大在并發(fā)讀寫性能上較差讀寫并發(fā)性能較好,但是對于DBA的技能和專業(yè)性要求較高,軟件上也需要單獨購買是一個輕量級的容災系統(tǒng),從Oracle11g開始還能在備庫節(jié)點上進行讀寫和自動故障轉移可以在表或schema級別實現實時復制[考點]OGG

23.

OGG的進程有哪些?正確答案:下圖為OGG進程結構圖。

如上圖所示,OGG主要包含Manager進程、Extract進程、Pump進程和Replicat進程,下面對其進行說明。

1)Manager進程是OGG的控制進程,運行在源端和目標端上。它的主要作用包含啟動、監(jiān)控、重啟OGG的其他進程;報告錯誤及事件;分配數據存儲空間;發(fā)布閾值報告等。在目標端和源端有且只有一個Manager進程,在Windows系統(tǒng)上,Manager進程作為一個服務來啟動,而在Linux/Unix系統(tǒng)上則是一個系統(tǒng)進程。

按照OGG的工作原理和體系結構,在每個復制數據源和目標端都需要安裝一套OGG軟件,同時需要分別啟動一個OGG實例,一個OGG實例就是一個管理進程(ManagerProcess),這個管理進程也是整個OGG實例運行時最主要的控制進程。

2)Extract進程運行在數據庫源端,負責從源端數據表或者日志中捕獲數據。在初始數據裝載階段,Extract進程直接從源端的數據表中抽取數據;在初始數據同步完成以后,Extract進程負責捕獲源端數據的變化(包括DML和DDL)。Extract進程會捕獲所有已配置的需要同步的對象變化,但只會將已提交的事務抽取到本地的trail文件中用于同步。當事務提交時,所有和該事務相關的日志記錄被以事務為單元順序地記錄到trail文件中。Extract進程利用其內在的Checkpoint機制,周期性地檢查并記錄其讀寫的位置,通常是寫入本地的trail文件中。這種機制是為了保證如果Extract進程終止或者操作系統(tǒng)宕機,Manager進程在重啟Extract進程后,OGG能夠恢復到以前的狀態(tài),從上一個斷點處繼續(xù)往下運行,而不會有任何數據丟失,這樣就可以保證數據的完整性。Extract進程的狀態(tài)包括Stopped(正常停止)、Starting(正在啟動)、Running(正在運行)和Abended(AbnormalEnd,異常結束)。GGSCI命令接口工具對于每個OGG實例可以支持并發(fā)300個Extract和Replicat進程。

trail文件:為了更有

溫馨提示

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

評論

0/150

提交評論