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

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)程序員面試分類(lèi)真題17簡(jiǎn)答題1.

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

2.

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

3.

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

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

4.

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

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

5.

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

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

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

快照DG:當(dāng)PlaysicalStandby轉(zhuǎn)換為SnapshotStandby時(shí),它是一個(gè)完全可更新的Standby數(shù)據(jù)庫(kù)。SnapshotStandby依然會(huì)接收來(lái)自主庫(kù)的歸檔文件,但是它不會(huì)應(yīng)用。當(dāng)SnapshotStandby轉(zhuǎn)換為PhysicalStandby時(shí),所有在SnapshotStandby數(shù)據(jù)庫(kù)的操作被丟棄之后,PhysicalStandby數(shù)據(jù)庫(kù)才會(huì)應(yīng)用Primary數(shù)據(jù)庫(kù)的Redo數(shù)據(jù)。[考點(diǎn)]DG

6.

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

7.

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

1)Switchover是指主庫(kù)轉(zhuǎn)換成備庫(kù),然后將原備庫(kù)轉(zhuǎn)換成新主庫(kù);而Failover是指將備庫(kù)轉(zhuǎn)換成主庫(kù)。

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

3)數(shù)據(jù)丟失程度不同。Switchover不會(huì)丟失數(shù)據(jù),F(xiàn)ailover通常意味著有部分?jǐn)?shù)據(jù)丟失。

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

①將PROD1利用閃回?cái)?shù)據(jù)庫(kù)功能閃回到SBDB1變?yōu)橹鲙?kù)的SCN時(shí)間點(diǎn),然后將PROD1轉(zhuǎn)換為備庫(kù),最后利用Switchover轉(zhuǎn)換為最初的環(huán)境。在這種情況下,PROD1需要開(kāi)啟閃回。

②將SBDB1利用閃回?cái)?shù)據(jù)庫(kù)功能閃回到SBDB1變?yōu)橹鲙?kù)的SCN時(shí)間點(diǎn),此時(shí)SBDB1仍然是主庫(kù)的角色,然后將SBDB1轉(zhuǎn)換為備庫(kù)。在這種情況下,SBDB1需要開(kāi)啟閃回,而且會(huì)丟失部分?jǐn)?shù)據(jù)。

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

Switchover切換的主要SQL語(yǔ)句為

Failover切換的主要SQL語(yǔ)句為

執(zhí)行閃回?cái)?shù)據(jù)庫(kù)后,切換主庫(kù)為備庫(kù)的SQL語(yǔ)句為

alterdatabaseconverttophysicalstandby;[考點(diǎn)]DG

8.

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

9.

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

10.

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

FAL進(jìn)程只在物理備庫(kù)存在。FAL進(jìn)程提供了一個(gè)CLIENT/SERVER的機(jī)制,用來(lái)解決檢測(cè)在主庫(kù)產(chǎn)生的連續(xù)的歸檔日志,而在備庫(kù)接收的歸檔日志不連續(xù)的問(wèn)題。該進(jìn)程只有在需要的時(shí)候才會(huì)啟動(dòng),而當(dāng)工作完成后就關(guān)閉了,因此在正常情況下,該進(jìn)程是無(wú)法看見(jiàn)的。

1.物理DG手動(dòng)解決GAP

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

可以看到,當(dāng)前物理備庫(kù)丟失目志文件為線程1的序號(hào)10~12。接下來(lái)確定歸檔日志文件的路徑(假設(shè)在主數(shù)據(jù)庫(kù)上的本地歸檔目的地是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

接下來(lái),復(fù)制這些日志文件到物理備庫(kù),然后在物理備庫(kù)上使用“ALTERDATABASEREGISTERLOGFILE”語(yǔ)句來(lái)注冊(cè)這些歸檔日志,如下:

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

也可以使用如下的SQL語(yǔ)句:

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

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

在物理備庫(kù)上注冊(cè)這些日志文件之后,重新打開(kāi)重做應(yīng)用進(jìn)程。如果斷檔的歸檔日志較多,那么可以使用如下的SQL語(yǔ)句來(lái)生成要執(zhí)行的SQL語(yǔ)句(如下的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只返回當(dāng)前妨礙重做應(yīng)用繼續(xù)的下一個(gè)中斷。在解決中斷并重啟重做應(yīng)用進(jìn)程后,再次在物理備庫(kù)上查詢V$ARCHIVE_GAP視圖來(lái)確定下一個(gè)中斷序號(hào),如果有的話,重復(fù)這個(gè)過(guò)程直到?jīng)]有更多的中斷。

2.邏輯DG手動(dòng)解決GAP

在邏輯備庫(kù)上查詢DBA_LOGSTDBY_LOG視圖可以確定是否有歸檔中斷。例如,下面的查詢指出斷檔號(hào)為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

接下來(lái)復(fù)制丟失的日志文件到邏輯備庫(kù),并在邏輯備庫(kù)上使用“ALTERDATABASEREGISTERLOGICALLOGFILE”來(lái)注冊(cè)這些日志文件。例如:

SQL>ALTERDATABASEREGISTERLOGICALLOGFILE

'/arch/orade/arch_1_16.arc';

在邏輯備庫(kù)上注冊(cè)這些日志文件之后,重啟SQL應(yīng)用。和物理DG一樣,在邏輯備庫(kù)上的DBA_LOGSTDBY_LOG視圖只返回當(dāng)前妨礙SQL應(yīng)用繼續(xù)的下一個(gè)中斷。在解決指定的中斷并重啟SQL應(yīng)用之后,再次在邏輯備庫(kù)上查詢DBA_LOGSTDBY_LOG視圖,以確定下一個(gè)中斷序號(hào),如果有的話,重復(fù)這個(gè)過(guò)程直到?jīng)]有更多的中斷。

需要注意的是,如果需要的歸檔日志已經(jīng)不在主庫(kù)上,但是有歸檔日志的RMAN備份,那么可以通過(guò)RMAN恢復(fù)把缺少的歸檔日志進(jìn)行還原,如下:

SETARCHIVELOGDESTINATIONTO'/arch';

RESTOREARCHIVELOGFROMLOGSEQ7;

如果斷檔的歸檔日志已經(jīng)丟失,且RMAN又沒(méi)有備份,那么在Oracle10g之前沒(méi)有辦法修復(fù)了,只能重建DG,但是從Oracle10g開(kāi)始可以采用主庫(kù)基于SCN的增量備份來(lái)恢復(fù)DG。[考點(diǎn)]DG

11.

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

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION;

(2)啟用實(shí)時(shí)的日志應(yīng)用:

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;

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

(3)停止日志應(yīng)用服務(wù):

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;

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

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

oracle

19592

1

010:15?

00:00:01ora_mrp0_phydb[考點(diǎn)]DG

12.

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

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

物理DG日志應(yīng)用情況:

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#;[考點(diǎn)]DG

13.

如何查看物理備庫(kù)的進(jìn)程信息?正確答案: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:進(jìn)程名稱,如ARCH、RFS、MRP0等。

2)CLIENT_PID:在備庫(kù)查詢時(shí)對(duì)應(yīng)的Primary數(shù)據(jù)庫(kù)中的進(jìn)程,如ARCH、LGWR等,在主庫(kù)查詢時(shí)就是后臺(tái)進(jìn)程。

3)SEQUENCE#:歸檔序號(hào)。

4)STATUS:進(jìn)程的當(dāng)前狀態(tài),值較多,常見(jiàn)的有:

①ALLOCATED:正準(zhǔn)備連接Primary數(shù)據(jù)庫(kù)。

②ATTACHED:正在連接Primary數(shù)據(jù)庫(kù)。

③CONNECTED:已連接至Primary數(shù)據(jù)庫(kù)。

④IDLE:空閑中。

⑤RECEIVING:歸檔文件接收中。

⑥OPENING:歸檔文件處理中。

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

⑧WRITING:Redo數(shù)據(jù)庫(kù)寫(xiě)向歸檔文件中。

⑨WAIT_FOR_LOG:等待新的Redo數(shù)據(jù)中。

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

APPLYING_LOG:應(yīng)用Redo數(shù)據(jù)中。[考點(diǎn)]DG

14.

如何手動(dòng)注冊(cè)日志?正確答案:如果有日志文件未被傳輸或未被注冊(cè)到備庫(kù),那么可以使用如下命令手動(dòng)注冊(cè)到備庫(kù)。下面的SQL語(yǔ)句可以生成物理和邏輯DG注冊(cè)的日志,日志號(hào)為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;[考點(diǎn)]DG

15.

在邏輯DG中,如何啟動(dòng)和關(guān)閉日志應(yīng)用?正確答案:ALTERDATABASESTOPLOGICALSTANDBYAPPLY;--停止應(yīng)用,等待事務(wù)完成

ALTERDATABASEABORTLOGICALSTANDBYAPPLY;--不等待事務(wù)完成就停止

ALTERDATABASESTARTLOGICALSTANDBYAPPLYIMMEDIATE;--實(shí)時(shí)

ALTERDATABASESTARTLOGICALSTANDBYAPPLY;--非實(shí)時(shí)

如何知道是否開(kāi)啟了實(shí)時(shí)應(yīng)用呢?可以查詢V$LOGSTDBY_STATE視圖或查詢是否有l(wèi)sp進(jìn)程。

[考點(diǎn)]DG

16.

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

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

DICT_ENDASEND,THREAD#ASTHR#,APPLIED

FROMDBA_LOGSTDBY_LOGORDERBYTHREAD#,SEQUENCE#;[考點(diǎn)]DG

17.

如何查看邏輯DG備庫(kù)SQLApply的進(jìn)度?正確答案:[考點(diǎn)]DG

18.

如何查看邏輯DG備庫(kù)是否有任何DDL/DML語(yǔ)句未成功應(yīng)用?正確答案: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;[考點(diǎn)]DG

19.

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

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

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

2)LOADINGDICTIONARY:SQL應(yīng)用調(diào)用LogMiner字典。

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

4)APPLYING:SQL應(yīng)用正在工作。

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

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

7)SQLAPPLYNOTON:沒(méi)有開(kāi)啟應(yīng)用。[考點(diǎn)]DG

20.

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

邏輯各庫(kù)還有很多其他非常實(shí)用的SQL語(yǔ)句,這里就不列舉了,讀者可以關(guān)注作者的微信公眾號(hào),里面每天會(huì)推送一個(gè)非常實(shí)用的SQL語(yǔ)句。[考點(diǎn)]DG

21.

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

OGG能夠?qū)崿F(xiàn)大量交易數(shù)據(jù)的實(shí)時(shí)捕捉、變換和投遞,實(shí)現(xiàn)源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,保持亞秒級(jí)的數(shù)據(jù)延遲。和傳統(tǒng)的邏輯復(fù)制一樣,OGG的實(shí)現(xiàn)原理是首先通過(guò)抽取源端的Redo日志或者ArchiveLog,然后通過(guò)TCP/IP投遞到目標(biāo)端,最后解析還原應(yīng)用到目標(biāo)端,使目標(biāo)端實(shí)現(xiàn)同源端的數(shù)據(jù)同步。[考點(diǎn)]OGG

22.

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

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

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

OGG軟件是一種基于日志的結(jié)構(gòu)化數(shù)據(jù)復(fù)制備份軟件,它通過(guò)解析源數(shù)據(jù)庫(kù)在線日志或歸檔日志獲得數(shù)據(jù)的增量變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫(kù),從而實(shí)現(xiàn)源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)的同步。OGG可以實(shí)現(xiàn)一對(duì)一、廣播(一對(duì)多)、聚合(多對(duì)一)、雙向復(fù)制、層疊、點(diǎn)對(duì)點(diǎn)、級(jí)聯(lián)等多種靈活的拓?fù)浣Y(jié)構(gòu),可以實(shí)現(xiàn)只復(fù)制某幾個(gè)表的功能。

Oracle高可用性產(chǎn)品比較見(jiàn)下表。

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

23.

OGG的進(jìn)程有哪些?正確答案:下圖為OGG進(jìn)程結(jié)構(gòu)圖。

如上圖所示,OGG主要包含Manager進(jìn)程、Extract進(jìn)程、Pump進(jìn)程和Replicat進(jìn)程,下面對(duì)其進(jìn)行說(shuō)明。

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

按照OGG的工作原理和體系結(jié)構(gòu),在每個(gè)復(fù)制數(shù)據(jù)源和目標(biāo)端都需要安裝一套OGG軟件,同時(shí)需要分別啟動(dòng)一個(gè)OGG實(shí)例,一個(gè)OGG實(shí)例就是一個(gè)管理進(jìn)程(ManagerProcess),這個(gè)管理進(jìn)程也是整個(gè)OGG實(shí)例運(yùn)行時(shí)最主要的控制進(jìn)程。

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

trail文件:為了更有

溫馨提示

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

評(píng)論

0/150

提交評(píng)論