日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle rac理解和用途扩展

發布時間:2023/12/10 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle rac理解和用途扩展 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

  Oracle RAC的優勢在于利用多個節點(數據庫實例)組成一個數據庫,這樣在保證了數據庫高可用性的情況下更充分的利用了多個主機的性能,而且可以通過增加節點進行性能的擴展。實現Oracle RAC需要解決的關鍵問題就是多節點進行數據訪問時如何保證數據的一致性,Oracle是通過各節點間的私有連接進行內存融合(cache fusion)來保證各節點數據訪問的一致性。用一個例子來解釋一下內存融合的過程,在存在A、B兩個節點的RAC環境中,當A節點使用DML語句(如Update)對一個數據塊中的數據進行修改時,A節點實例會到GRD(Global Resource Directory)中查找該數據塊的信息,這些信息包括該數據塊的Master(第一次讀這個數據塊的節點),Owner(當前擁有這個數據塊的節點),以及數據塊在各個節點間的傳遞記錄。A節點如果發現GRD中沒有需要讀取的數據塊的信息,說明該數據塊是一個干凈的數據塊,A節點從磁盤或Buffer Cache中獲得該數據塊,然后對需要修改的行加鎖,進行相應的修改,當然SCN會隨之增加。在A完成修改而沒有提交或回滾的情況下,如果B節點也需要訪問這個數據塊修改某些行(假設不同于A修改的行),B同樣去到GRD中查找該數據塊的信息,當然B發現該數據塊的Master為A,Owner也為A,為了保證A的修改不丟失,B需要發信息給A,讓A將需要修改的數據塊通過私有連接直接從內存中傳給B,當然該數據塊中包含A的鎖信息,這樣A節點與B節點間的一次內存的數據傳遞就是內存融合。Oracle RAC的內存融合也面臨一些問題,繼續剛剛的例子,如果A又再次請求對該數據塊修改或者結束事務(提交或回滾)的時候,又需要從B節點內存中取得數據塊,又要發生內存融合,這樣在兩個節點業務沒有合理分割的情況下,數據庫繁忙時,大量的內存融合會對數據庫性能造成嚴重的影響。通過對Oracle RAC技術的理解,在實現Oracle RAC架構時的業務分割就成為了保證系統性能的重要手段,業務分割的根本在于使不同的實例不能訪問相同的數據塊,這樣業務分割規則可以小到表的級別(不同的表不會共享一個數據塊),大到表空間、Schema的級別。心跳應該用獨立的網卡。

?

  當然,rac本身之保證了數據庫服務器的高可用和高性能,所以最好有其他的存儲技術來保證存儲的高可用,例如raid\vplex等。

  在距離不太遠(幾十公里),且速度較快(例如裸光纖)下,延時較小,,米足夠多,可以考慮使用oracle rac實現雙活或者災備,RTO RPO=0。

?

?

附:

1.rac基本理論知識

?

1.1 Public NIC接入公共網絡,private NIC接入私有網絡,這是個完全隔離的網絡傳遞的數據只是RAC節點的心跳數據和cache fusion數據。oracle不建議私有網絡直接用交叉線連接。

1.2 RAC最重要的是共享存儲。數據文件、聯機日志、控制文件、參數文件都必須放在共享存儲上。現在的存儲環境基本上都是基于SAN的,跑FC協議(FC協議封裝了SCSI協議)。

1.3 RAC環境需要OS必須版本相同包括小版本、補丁包都必須一致。

1.4 集群件安裝在OS之上,負責管理整個集群環境中的硬件資源并為上層的RAC集群提供基礎服務。如果把集群看成是一臺虛擬的計算機,那么集群件就是這臺計算機上的OS,而RAC是運行在其上的一個應用。

10g之前,oracle只針對linux、windows兩個OS提供了一個不完善的集群件產品OCM(oracle cluster manager),其它平臺需要第三方集群產品比如HACMP、sun cluster。10g開始,10.1版本提供CRS,10.2版????????????本提供oracle clusterware(10.1的改名)。10.2開始的集群件提供API接口,因此還能夠為其它軟件提供HA功能。CRS可以和其它集群件產品集成。10g之前oralce只提供對裸設備的支持,所以9i RAC裸設備是常見選擇。10后oracle提供OCFS和ASM兩種存儲方案。

1.5 OEL(oracle enterprise linux)是oracle在RHEL基礎上重新開發出的linux。

1.6 需要強調的是,10g的clusterware的vote disk、ocr在目前的版本上還只能創建在裸設備、ocfs上。VIP在clusterware安裝過程中創建(調用VIPCA),不需要手工設置。

1.7 集群的分類:高性能計算集群(用在科學計算)、LB、HA、

1.8 健忘癥:集群環境配置文件不是集中存放,每個節點都有一個本地副本,用戶修改任何節點的集群配置會將更改同步到其它節點。但這樣有一個問題:節點1正常維護需要關閉,然后在節點2修改了配置,然后節點2關閉,啟動節點1,由于沒有同步,所以節點1啟動后,它用的仍然是舊的配置文件,這時就造成配置丟失,這就叫健忘癥。RAC的解決方案是OCR。

1.9 腦裂:節點間了解彼此的健康狀況是通過心跳機制來實現的。如果僅僅是心跳出了問題,各節點還正常運行,這時每個節點都認為其它節點宕機,自己是集群環境的唯一健在者自己應該獲得集群的控制權,因為存儲是共享的,這意味著數據災難。這就叫腦裂。RAC解決腦裂的方法是引入Quorum disk,誰先得到quorum disk這一票誰獲勝,另一個節點被踢出集群。

1.10 IO隔離:解決被踢出集群的節點不能操作共享存儲上的數據。

1.11?CRS resource:CRS對運行于其上的應用進行監視,并在發生異常時進行重啟、切換等干預手段。這些被CRS監控的對象就叫CRS resource。這些resource是在RAC安裝過程中自動或手動創建的,并且注冊登記到CRS中,以metadata的形式被記錄在OCR磁盤上,這些metadata包括resource的名稱、如何啟動、停止、如何檢查健康狀況等配置信息。RAC的CRS resource包括GSD、ONS、VIP、database、instance、listener等。

1.12?oracle clusterware的運行環境由兩個磁盤文件、若干后臺進程及網絡元素組成。OCR解決健忘問題,OCR位于共享存儲上保存整個群集的配置,無論在哪個節點修改配置都是修改相同的配置文件。配置信息以key-value的形式保存其中,10g以前這個文件叫server manageability repository(SRVM)。OCR的位置記錄在ocr.loc文件中,9i對應的是srvConfig.loc文件。

1.13?能讀寫OCR disk中內容的節點稱OCR master。這個節點的OCR process負責更新本地和其它節點的OCR cache。其它節點想修改OCR需要向本節點的OCR process提出請求,然后本節點的process再向OCR master的OCR process提出請求。

1.14 voting disk主要記錄節點成員狀態,在出現腦裂時,仲裁哪個partion獲得集群的控制權。它的位置可以用這個命令來查看:$crsctl query css votedisk

1.15?clusterware最重要的三個后臺進程:CRSD、CSSD、EVMD。在安裝clusterware的最后階段會要求在每個節點執行root.sh,目的是在/etc/inittab文件中添加三行使每次系統重啟時,cluseter也會自動啟動。EVMD和CRSD兩個進程如果出現異常,系統會自動重啟這兩個進程。如果CSSD出現異常,系統會立即重啟。

OCSSD進程:該進程提供CSS(cluster synchronization service)服務,CSS服務通過多種心跳機制實時監控集群健康狀態,提供腦裂保護等基礎集群服務功能。心跳機制包含兩種:私有網絡、voting disk。

兩個心跳都有最大時延,對于disk heartbeat,這個時延叫IOT,對于network heartbeat,這個時延叫MC,兩個參數都是以秒為單位,缺省IOT大于MC。可以通過以下命令來查看這兩個參數:

$crsctl get css disktimeout??????$crsctl get css misscount

另外這個進程還用來支持ASM instance和RDBMS instance之間的通信。如果在已經安裝了ASM的節點上安裝RAC,會遇到一個問題,RAC要求節點只有一個OCSSD進程,并且是運行在$CRS_HOME目錄下的。這就需要先停止ASM,并通過$ORACLE_HOME/bin/localconfig.sh delete刪除之前的inittab條目。

CRSD進程:實現HA的主要進程,它所提供的服務叫CRS(cluster ready service)它監控資源,并在資源運行異常時進行干預,包括關閉、重啟進程或轉移服務。默認情況下,CRS會自動嘗試重啟資源5次,如果還是失敗則放棄嘗試。

EVMD進程:負責發布CRS產生的各種事件,這些event可以通過兩種方式發布給客戶--ONS和callout script。另外它還負責CRSD和CSSD兩個進程間的通信。

RACGIMON進程:負責檢查數據庫健康狀態,負責service的啟動、停止、故障轉移,這個進程會建立到數據庫的持久連接,定期檢查SGA中的特定信息,該信息由PMON進程定時更新。

OPROCD進程:也叫process monitor daemon。在非linux平臺且沒有使用第三方集群軟件時,會看到這個進程,用來檢測節點的CPU掛起,如果調度時間超過1.5S,會認為CPU工作異常,會重啟節點。在linux平臺上時候時利用hangcheck-timer模塊來實現IO隔離功能的。

1.16 IP利用的是TCP層超時,VIP利用的是應用層的立即響應。詳見P94。

1.17 clusterware的日志體系比較復雜,日志的根目錄在$CRS_HOME/log/[node]

1.18 單實例下的并發控制

lock框架包括3個組件:資源、鎖、排隊機制。前兩者是數據結構,后者是使用算法。

資源:由owner、waiter、converter三個成員組成,這是3個指針分別指向lock組成的鏈表。

鎖:當要訪問共享資源時,需要鎖定資源。如果不能獲得資源的訪問權,就把lock掛到資源的waiter鏈表中,如果能獲得就掛到lock的owner鏈表中。

排隊機制:lock使用的是enqueue的算法即先入先出隊列。如進程的鎖定不能滿足,該進程的lock structure就被加到waiter鏈表的末端。

waiter和converter排隊機制的區別:如果某個操作需要先后兩種不同模式的鎖,比如先share mode然后exclusive mode,則進程先請求share mode,獲得后的lock structure會掛在owner上,當需要exclusive mode鎖時,進程必須先釋放share mode的鎖,然后再次申請exclusive mode的鎖,但是可能無法立即獲得,這時這個請求就會被掛在converter隊列下,converter隊列會優先于waiter隊列被處理。可以從v$lock看到這些lock信息。

LMODE>0,REQUEST=0???Owner

LMODE=0,REQUEST>0???Waiter(Acquirer)

LMODE>0,REQUEST>0???Converter

對于粗粒度或數量有限的資源使用這種機制還可以,但對于幾百G的數據量,如果每條記錄都分配一個resourece、lock數據結構,無論從內存需求還是維護開銷都是一個噩夢。對于數據記錄這種細粒度資源,oracle使用的是行級鎖。行級鎖其實只是數據塊頭、數據記錄頭的一些字段,不會消耗資源。所以它雖然有鎖的功能,但無鎖的開銷。詳見書的P102。

latch于lock的對比:latch請求、獲得、釋放等操作是原子操作,一般幾個硬件指令就可以完成。lock相反。進程申請lock沒有獲得,這個進程會釋放CPU資源,也就是進行上下文切換,整個過程較耗資源。如果進程申請latch沒有獲得,進程不釋放CPU資源,而是不斷的嘗試請求,只有嘗試了一定次數之后還不能獲得,才釋放CPU,這就是latch的spin機制。這時的表現是:CPU利用率非常高,但吞吐量卻很低。另外latch使用的是搶占機制,而不是lock使用的排隊機制。

1.19 DLM(分布式鎖管理):可以把它想象成一個仲裁,它記錄著哪個節點正在用哪種方式操作哪個數據,并負責協調解決節點間的競爭。DLM在不同的階段有不同的名稱,OPS的叫PCM,RAC的叫cache fusion。

Non-Cache Fusion資源:典型的資源包括sharepool的row cache和library cache內容。通過每個節點的LCK0進程來同步。

Cache Fusion資源:buffer cache的數據塊。數據塊的狀態可以從v$BH視圖查看。

以上兩種資源可以通過v$resource_limit來查看。

1.20 GRD:記錄每個數據塊在集群間的分布圖。每個實例SGA中都是部分GRD,所有實例的GRD構成一個完整的GRD。

1.21 PCM lock:GRD中記錄的是PCM lock信息,這種鎖有3個屬性:Mode、Role、PI。Role這個屬性是用來描述臟數據塊在集群間分布狀況的,有local和global兩個取值。有local role的實例可以把數據塊寫到磁盤不需要聯系GRD,由本實例完成即可。擁有local role和X mode的實例要給其它instance發送這個數據塊,如果發送的是和磁盤一致的版本,那么本實例任然保持local role。如果發送的是和磁盤不一致的版本,那么本實例的角色就轉換成global,同時接收方也是global,代表多個實例擁有臟數據塊版本。擁有global role的實例想把數據塊寫到磁盤,必須要聯系GRD,由擁有數據塊current版本的實例完成寫動作。

PI: past image,代表著這個實例的SGA中是否擁有和磁盤內容不一致的版本,以及版本順序,并不是代表這個節點是否曾經修改過這個數據塊。PI主要能夠加速crash recovery的恢復過程。

AST: DLM使用兩個隊列跟蹤所有的lock請求,并用兩個ASTs(異步中斷或陷阱)來完成請求的發送和響應。具體的過程見書的P120。

1.22 RAC進程名稱和進程提供的服務名稱差異很大,不便記憶。造成這種現象是因為進程名稱是從OPS時代延續下來的,但是服務名稱卻已經在RAC中重新設計并命名。

LMSn:負責數據塊在實例間的傳遞,對應的服務叫GCS(global cache service)。進程的數據量通過參數GCS_SERVER_PROCESSES控制,默認是2,取值范圍為:0-9。

LMD: 負責在多個實例之間協調對數據塊的訪問順序,保證數據的一致性訪問。它負責提供GES(global enqueue service)服務。GCS、GES、GRD構成RAC最核心的功能:cache fusion。

LCK:負責non-cache fusion資源的同步訪問,每個實例有一個LCK進程。

LMON: 各實例的LMON進程會定期通信,以檢查集群中各節點的健康狀態,當某個節點出現故障時,負責集群重構、GRD恢復等操作,它提供的服務叫CGS(cluster group services)。LMON可以和下層的clusterware合作也可以單獨工作。當LMON檢測到實例級別的腦裂時,LMON會通知下層的clusterware,期待clusterware解決腦裂問題,但是RAC并不假設clusterware肯定能夠解決問題,因此,LMON不會無盡等待clusterware層的處理結果。如果發生等待超時,LMON會自動觸發IMR(instance membership recovery)IMR功能可以看做是oracle在數據庫層提供的腦裂、IO隔離機制。LMON主要是借助兩種心跳機制來完成健康檢測:1、節點間的網絡心跳。2、控制文件的磁盤心跳。每個節點的CKPT進程每隔3S更新一次控制文件一個數據塊。可以通過x$kcccp看到這個動作。SQL>select inst_id,cphbt from x$kcccp

DIAG: 監控實例的健康狀態,并在實例出現運行錯誤時收集診斷數據記錄到alert.log

GSD: 負責從客戶端工具,比如srvctl接收用戶命令,為用戶提供管理接口。

1.23 RAC中的文件。

spfile文件:放在共享存儲

redo thread: 每個實例有套redo log,這套redo log叫做一個redo thread。RAC中每個實例要設置thread參數,該參數缺省值時0。如果設置了這個參數,則實例啟動時,會用等于該thread的private redo thread。如果用缺省值,實例啟動會選擇使用public redo thread,并且該實例會以獨占的方式使用該redo thread。RAC環境下,redo log group是在整個數據庫級別進行編號的,比如實例1有1,2,3三個日志組,那么實例2的日志組就應該從4開始編號。

歸檔日志:歸檔日志不必放在共享存儲上,每個實例可以在本地存放歸檔日志,但是如果在單個實例進行備份歸檔日志或進行介質恢復操作,又要求這個節點能夠訪問到所有實例的歸檔日志。因此RAC環境下配置歸檔日志有多種選擇:1、NFS。2、實例間歸檔。3、ASM。常用第二種方法進行配置。

undo表空間:每個實例都需要一個單獨的回滾表空間。

1.24 RAC中的SCN。在單實例環境中只有一個SCN產生器,改變發生的順序就是SCN的順序。在RAC下,每個節點都有自己的SCN發生器,必須有某種機制保證這些SCN在時間排序上的精確。RAC中GCS負責維護全局的SCN產生,缺省用的時Lamport SCN生成算法。原理如下:節點間通信內容中都攜帶SCN,每個節點把接收到的SCN和本機的SCN比,如果本機的SCN小,則調整本機的SCN和接收到的一致。如果節點間通信不多,還會主動定期互相通報,因此節點即使處于idle狀態,還是會有一些redo log的產生。另外一種算法是廣播算法。原理:每個commit操作后,節點向其它節點廣播SCN,雖然會對系統造成負載,但是確保每個節點在commit后都能看到SCN號。10g RAC就是用的廣播算法,可以在alert.log中看到。

1.25 當不同的實例請求相同的數據塊,這個數據塊就需要在實例間進行傳遞。oracle7的OPS中,這種傳遞是通過磁盤完成的。實例1必須先把這個塊寫回磁盤,然后實例2再從磁盤讀取這個數據塊。oracle8i只能傳遞沒有修改過的數據塊,對于修改的數據塊還是要通過磁盤傳遞。9i才使用cache fusion通過私有網絡傳遞數據塊。

1.26 RAC和clusterware的交互。RAC集群和節點集群是兩個層次的集群,兩個集群都有腦裂,IO隔離等問題。這兩個集群有各自的故障檢測機制,二者之間的機制可以有重疊也可以不同。RAC的集群狀態維護是由RAC的LMON進程提供的,這個進程提供了CGS和NM(node management)兩個服務。NM是RAC集群和clusterware集群的通信通道,通過它把本節點的資源狀態登記到本地的clusterware,進而由后者提供給其它節點的clusterware,NM還要從clusterware獲得其它節點的資源狀態。

NM組:RAC的每個實例的所有進程是作為一個組注冊到clusterware中的,其中LMON進程作為組里的primary member注冊并獲得Member ID,而其它進程作為這個組的slave Member并以相同的member id注冊到clusterware。整個集群的節點成員信息是通過一個位圖來維護的,每個節點對應一個bit,0代表節點down,1代表up,整個位圖有個有效/無效標志位。這個位圖在整個集群中作為一個全局資源被永久記錄。當有新的節點加入集群時,該節點需要讀取該位圖,找到對應的bit,把值從0改變成1,并且把位圖的無效標志位置為1,這時雖然位圖內容是正確的,但狀態是無效的,其它節點發現這個狀態位圖無效,就會觸發集群的重構,達到新的穩態后,再把位圖狀態置為有效,當集群完成重構后,NM會把這個事件傳遞給CGS層,CGS負責同步所有節點間的重構。對于實例的正常啟動和關閉,該實例的NM會向clusterware進行注冊或取消注冊,注冊過程中,NM同時從clusterware獲得集群的其它節點列表,然后NM通知其它節點的NM,最后NM事件發送給CGS層,由CGS層負責協調整個集群的組重構,當CGS完成了重構之后,再通知GCS,GES進行實例重構(GRD層的重構)。對于實例的異常關閉,clusterware、NM就不會知道,這時就需要CGS提供的IMR功能進行感知,然后進行重構。

IMR的重構原理:IMR是由CGS提供的重構機制,用于確認實例之間的連通性、快速的排除故障節點以減少對數據的損害。在這個過程中,每個實例都需要做出投票,投票的內容是它所認為的整個集群現在的狀態,然后由一個實例根據這些投票,重新規劃出一個新的集群,并把這個投票結果記錄到控制文件,其它實例讀取這個結果,確認自己是否還屬于集群,如果不屬于集群,就要自動重啟,如果屬于集群則參與重構。IMR發現出現腦裂,即集群中出現兩個group,這時IMR會先通知CM,然后等待CM去解決這個問題,等待時間是_IMR_SPLITBRAIN_RES_WAIT,缺省600毫秒,超時后IMR自己執行節點排除。在CGS完成節點的重構后,GCS,GES才進行數據層面的重構,也就是crash recovery。

重構觸發類型:1,節點的加入或離開,由NM觸發。2,網絡心跳異常,超時時間默認300S,由_cgs_send_timeout參數控制,由IMR觸發。3,控制文件心跳異常,超時時間默認900S,由_controlfile_enqueue_timeout參數控制,由IMR觸發。

?

?

2.ASM存儲方案

?

2.1red hat as4以后,裸設備已經被linux社區拋棄了,而是通過支持O_DIRECT標識來繞過OS緩沖。10gR2缺省就是用O_DIRECT的方式操作設備的。但是oracle clusterware 10R2的開發沒能及時跟上,仍然需要使用裸設備來創建voting disk和OCR。

2.2 ASM中的shared pool有extent map,每100GB需要1MB的extent map,根據這個空間再加上額外的2MB就可以了,ASM SGA的默認值一般能滿足要求。

2.3 ASM實例比RDBMS多出兩個進程:RBAL和ABRn

RBAL:rebalancer進程,負責規劃ASM磁盤組的reblance活動。

ABRn:RBAL的子進程,數量上可以有多個1-9,這組進程負責真正完成reblance活動。

2.4 使用ASM作為存儲的RDBMS實例,會多出兩個進程:RBAL和ASMB

RBAL:打開每個磁盤組的所有磁盤和數據的rebalance。

ASMB:負責與ASM實例的通信,它先利用diskgroup name從CSS獲得管理改diskgroup的ASM實例的連接串,然后建立到ASM的持久連接,兩個實例通過這條連接定期交換信息,同時也是一種心跳機制。

RDBMS要想使用ASM作為存儲,必須在啟動時從ASM實例獲得extent map,以后發生磁盤組的維護操作,ASM實例還要把extent map的更新信息通知給RDBMS,這兩個實例間的信息交互就是通過ASMB進程完成的。因此ASM實例必須先于數據庫實例的啟動。

O0nn 01-10:這組實例建立到ASM實例的連接,某些長時間操作比如創建數據文件,RDBMS會通過這些進程向ASM發送信息。

2.5 ASM實例運行不需要任何文件只是表面現象,其實ASM也需要很多文件來保證它的運行,只不過這些文件是oracle內部維護的,對DBA不可見,也不需要DBA的干預。

2.6 ASM實例和RDBMS是1:1的關系,兩個實例可以共用一個$ORACLE_HOME。ASM和RDBMS是1:n的關系,則最好為ASM安裝單獨的ASM_HOME,并和RDBMS的ORACLE_HOME區分開來,這種環境需要使用ASM_HOME下的監聽器。

2.7 創建ASM磁盤:首先要讓ASM實例發現磁盤,另外要讓磁盤分區的屬主設成oracle。接下來就是創建ASM磁盤,ASM可以通過兩種方式使用磁盤,一是裸設備方式,二是ASMlib方式(允許在塊設備上創建ASM,目前oracle只提供了linux下的ASMlib)。

2.8 使用裸設備。solaris平臺下,系統同時提供對磁盤設備的字符(c)、塊(b)方式訪問。每個磁盤有兩個設備文件名(/dev/dsk/c1t1d1s1;/dev/rdsk/c1t1d1s1),創建ASM直接用這些設備名就可以了,無需額外配置裸設備。AIX也是一樣的道理。linux平臺比較麻煩,缺省沒有提供對磁盤設備的字符訪問方式,必須配置rawdevices服務,把塊設備綁定到裸設備才行。這里有三種方式來配置。只要區別在于對oracle用戶權限處理方法不同。

方式1:#vi /etc/sysconfig/rawdevices 添加裸設備、塊設備的綁定條目:/dev/raw/raw30 /dev/sdc1?????/dev/raw/raw31 /dev/sdc2???...??--> #service rawdevices start??--》#chkconfig rawdevices on(系統啟動時,自動啟動rawdevices服務)??--》#service rawdevices status??--》cd /dev/raw;ll(查看裸設備)??--》#cd /dev/raw;chown oracle:dba raw*??-->在/etc/rc.local或其它腳本中添加改raw設備屬性的命令。(因為rawdevices是以root運行的,因此裸設備缺省的owner是root:root)

方式2:#mknod /oradata/system.dbf c 162 1(這里的162,1分別是major device number,minor device number) --》#chown oracle:dba /oradata/system.dbf??-->#vi /etc/sysconfig/rawdevices

/oradata/system.dbf /dev/sdd7???-->#service rawdevices restart 服務重啟后會在/dev/raw目錄下創建出一個新的裸設備。

方式3:適合在red hat as4使用,這個版本是用UDEV來管理設備,設備啟動后的屬主可以在文件中配置。前面的步驟跟方式一樣,權限的修改步驟如下:#vi /etc/udev/permissions.d/50-udev.permissions??找到raw一節,修改成下面內容:raw/*:oracle:dba:0660??-->#service rawdevices restart???RHEL5 UDEV的工作方式又發生了變化,50-udev.permissions 文件被拋棄,而使用rule文件來配置。

2.9 ASMlib方式。ASMlib是一個由ORACLE定義接口、由存儲廠商實現的函數庫,目前oralce只提供了linux平臺下的實現庫。下載ASMlib時要選擇和OS內核匹配的版本。安裝完成后,配置驅動(#/etc/init.d/oracleasm configure) ,確認配置成功(#lsmod |grep asm;cat /proc/filesystem;df -ha)。創建ASM磁盤(#/etc/init.d/oracleasm createdisk VOL1 /dev/sdb1 ...),這時能在/dev/oracleasm/disks目錄下看到createdisks創建的磁盤VOL1。列出創建好的磁盤(#/etc/init.d/oracleasm listdisks),進一步查看每個ASM磁盤對應的物理設備(#/etc/init.d/oracleasm querydisk VOL1)。如果是RAC環境,只需要在一個節點上執行,其它節點執行這個命令就可以掃描的磁盤了,#/etc/init.d/oracleasm scandisks。

2.10 如果完全使用裸設備實現RAC,配置存儲的時候有兩點需要注意:1、保證LUN在各節點上的順序一樣。2、設備名對應的物理設備不會因為系統的重啟發生變化。比如sda、sdb這類名字,到底是a還是b取決于總線對硬件的掃描順序。RAC環境中一個節點連著兩套存儲,一套是本地,另一套是通過HBA卡連接的SAN,HBA卡和本地盤的掃描順序決定著這類名字對應的設備的變化。為了避免這種不一致,要在/etc/mobprobe.conf中添加兩行,強迫掃描本地盤,再掃描HBA。(alias scsi_hostadapter1 aic7xxx???alias scsi_hostadapter2 lpfc)不過到了RED HAT AS4默認就是這種順序了。如果使用ASM就不需要這些配置,ASM磁盤頭會有metadata信息可以準確的識別磁盤。但是磁盤名稱在所有節點一致仍然是一個好習慣。

2.11 major number,minor number。前者找到設備驅動程序,后者找到設備具體位置。major number,minor number是預先分配好的,比如裸設備的major number是162,SCSI設備的major number是8。SCSI設備的minor number=driver*16 + partition number。SCSI設備的用戶空間名是sd driver partition。linux下SCSI磁盤/dev/sda的partition number是0,代表整個磁盤,linux每個磁盤最多有16個分區,其中分區4代表整個擴展分區,可用分區只有15個。

2.12 配置ASM實例:先介紹幾個初始化參數。ASM_POWER_LIMIT:當在磁盤組中添加或刪除磁盤時,磁盤組會自動對數據在新舊磁盤間重新分配,從而實現分散IO,這個過程叫再平衡(rebalance)。取值范圍0-11。0代表不做rebalance,11代表最快的速度做rebalance,也意味著最嚴重的性能影響。alter diskgroup dg1 add disk 'a' rebalance power 1 (往磁盤組增加一個磁盤a,并定義rebalance為1。)

ASM_DISKSTRING:定義哪些磁盤可以被ASM使用。使用ASMlib時,需要使用ORCL:磁盤名格式。ASM實例也可以使用SPFILE。

無論是否在RAC環境,ASM實例都需要CSS進程,否則會報29701的錯誤。啟動CSS進程的命令如下:/oracle/product/10.2.0/db1/bin/localconfig add

創建磁盤組的操作需要連接到ASM實例中進行,記得創建一個spfile文件。SQL>create diskgroup dg1 external redundancy disk 'ORCL:VOL1','ORCL:VOL2';(創建磁盤組dg1)。

現在RDBMS可以使用ASM的磁盤組了。使用前必須保證ASM實例已經注冊到Listener,否則需要手工注冊(SQL>alter system register;)。使用ASM的磁盤組中的磁盤很簡單(SQL>create tablespace test datafile '+dg1/test.dbf' size 100M;)。RDBMS在運行的時候,ASM實例是無法關閉的,手工關閉也不可能。

?

?

3.RAC維護工具集

?

oracle clusterware命令集的分類:

節點層:olsnodes

網絡層:oifcfg

集群層:crsctl ocrcheck ocrdump ocrconfig

應用層:srvctl onsctl crs_stat

oifcfg的4個子命令:iflist;getif;setif;delif????舉例:

$oifcfg iflist????--顯示網口列表

$oifcfg getif?????--查看每個網卡的屬性

$oifcfg getif -global dbp???--查看節點dbp的global類型的配置

$oifcfg getif -type public??--查看public類型的網卡配置

$oifcfg getif -type cluster_interconnect

$oifcfg setif -global ten@none/10.0.0.1:public???--添加新的網卡,這個命令并不會檢查網卡是否真的存在。

$oifcfg delif -global??--刪除接口配置

$oifcfg setif -g global eth0/192.168.12.1:public???--添加接口配置

$oifcfg setif -g global eth1/10.0.0.0:cluster_interconnect

$crsctl check crs???--檢查CRS狀態

$crsctl check cssd/crsd/evmd????--分別檢查三個組件的狀態

CRS進程默認隨著OS的啟動而自動啟動,有時出于維護的目的需要停止這個進程,可以用以下命令:

#/oracle/product/oem/crs/bin/crsctl disable/enable crs

這個命令實際上是修改了/etc/oracle/scls_scr/dbp/root/crsstart 這個文件的內容。

啟動、停止CRS棧:crsctl start/stop crs

$crsctl get query css votedisk???--查看votedisk磁盤的位置。

$crsctl get css misscount???--查看參數

$crsctl set css miscount 100???--設置參數

CRS由CRS、CSS、EVM3個服務組成,每個服務又是由一系列module組成的。CRSCTL允許對每個module進行跟蹤,并把跟蹤內容記錄到日志中。

$crsctl lsmodules css/crs/evm

#/oracle/product/oem/crs/bin/crsctl debug log css "CSSD:1"???--跟蹤CSSD模塊。

#more $CRS_HOME/log/dbp/cssd/ocssd.log??--查看跟蹤產生的日志。

維護votedisk:可以通過crsctl命令添加votedisk,votedisk使用是的是一種過半數的算法,所以添加votedisk應該添加兩個。添加和刪除votedisk的操作比較危險,必須停止數據庫、停止ASM、停止CRS后操作,并且操作時必須使用-force參數。舉例如何添加一個votedisk:

1.#$ORA_CRS_HOME/bin/crsctl add css votedisk /dev/raw/raw1 -force

??#$ORA_CRS_HOME/bin/crsctl add css votedisk /dev/raw/raw2 -force

2.#$ORA_CRS_HOME/bin/crsctl query css votedisk

3.#crsctl start crs??

OCR系列命令:ORACLE會每4個小時對OCR做一個備份,并且保留最后3個備份,以及前一天,前一周的最后一個備份。這個備份由master node的CRSD進程完成,備份的默認位置為:$CRS_HOME/crs/cdata/<cluster_name>目錄下,每次備份后,備份文件名會自動更改,最近一次備份叫backup00.ocr。建議DBA除了保存在本地外,還應該在其它地方保存一份。

ocrdump:以ASCII的方式打印出OCR的內容,產生的文件只能用于閱讀,不能用于恢復。

$ocrdump -stdout -keyname SYSTEM.css -xml|more??--把SYSTEM.css鍵的內容以.xml格式打印輸出到屏幕。命令的執行過程中,會在$CRS_HOME/log/<nodename>/client目錄下產生名為ocrdump_<pid>.log的日志文件,如果命令出現執行問題,可以查看這個日志。

ocrcheck:用于檢查OCR內容的一致性,不需要參數。這個命令會產生ocrcheck_pid.log日志文件。

ocrconfig:用于維護OCR磁盤,OCR磁盤最多只能有兩個,一個是primary OCR,另一個是Mirror OCR。

$ocrconfig -help???--查看命令幫助

$ocrconfig -showbackup??--查看自動備份,OCR的自動備份在$CRS_HOME/crs/cdata/<cluster_name>目錄ixa,可以通過ocrconfig -backuploc <directory_name>命令修改到新目錄。

OCR的備份與恢復:oracle推薦在對集群作調整時,比如增加、刪除節點前,應該對OCR做一個備份。可以使用export備份到指定文件。如果做了replace或restore等操作,oracle建議使用cluvfy comp ocr -n all命令做一次全面檢查。下面舉一個OCR備份與恢復的案例:

1.crsctl stop crs

2.ocrconfig -export /oracle/ocr.exp??(注意這里要用root用戶導出)

3.crsctl start crs

4.crsctl check crs

5.dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=102400??(故意破壞ocr內容)

6.ocrcheck???--檢查會失敗。

7./backup/install_medir/clusterware/cluvfy/runcluvfy.sh comp ocr -n all???--檢查一致性也失敗。

8.ocrconfig -import /oracle/ocr.exp???--恢復OCR內容。

9.再次用剛才的兩個工具進行檢查。

10.crsctl start crs

?

移動OCR的位置:(/dev/raw/raw1移到/dev/raw/raw31)

1.ocrconfig -showbackup /??ocrconfig -export /tmp/ocrexp -s online???--查看OCR是否有備份,如果沒有執行一次導出做備份。

2.ocrcheck???/??ocrconfig -replace ocrmirror??/dev/raw/raw21????--查看當前OCR的位置,發現只有一個primary ocr,沒有mirror ocr,所以不能直接改變OCR的位置,需要添加鏡像再修改OCR位置。

3.ocrcheck??--驗證一下是否添加成功。

4.ocrconfig -replace ocr /dev/raw/raw31???--改變位置。

5.檢查/etc/oracle/ocr.loc文件。系統默認會修改這個文件,如果沒有更改,需要手工修改相應的條目。

?

crs_stat??--查看CRS維護的所有資源的運行狀態,包括2個GSD,ONS,VIP,ASM INSTANCE,LISTENER,RDBMS INSTANCE和1個database。使用-v -p參數可以獲得更詳細的信息。 -ls選項可以獲得每個資源的權限定義。

?

onsctl??--這個命令用于管理配置ONS(oracle notification service),ONS是oracle clusterware實現FAN(fast application notification)Event push模型的基礎。傳統模型中,客戶端需要定期檢索服務器來判斷服務端狀態,本質上是一個PULL模型。10g引入了一種全新的PUSH機制-FAN,當服務端發生某些事件時,服務器會主動的通知客戶端這種變化,這樣客戶端能盡早知道服務端的變化,而這種機制就是依賴ONS實現的。在使用這個命令之前,需要先配置ONS服務。

ONS配置內容:配置文件在$CRS_HOME/opmn/conf/ons.config,注意這個文件中的nodes和useocr這兩個參數。這兩個參數共同決定了本機ONS daemon要和哪些遠程節點上的ONS daemon進行通信。如果useocr=ON,說明信息保存在OCR中,如果是OFF說明信息取nodes中的配置。對于單實例而言,要把useocr設置成OFF。看幾個配置的例子:

useocr=off

nodes=dbs:6200,dbp:6200

(節點信息從nodes參數讀取,本機的ONS要和這dbs,dbp兩個節點上的6200端口通信)

useocr=on

(使用OCR時,這個信息是保存在DATABASE.ONS_HOSTS這個鍵下。可以把這個鍵從OCR導出來:ocrdump -xml abc.xml -keyname DATABASE.ONS_HOSTS)。

可以直接編輯這個配置文件來配置ONS,如果使用了OCR則可以通過racgons命令進行配置。舉個例子:

racgons add_config dbs:6200 dbp:6200??--添加配置

racgons remove_config dbs:6200 dbp:6200??--刪除配置

ONS進程運行,并不代表ONS正常工作,需要使用ping命令來確認。比如ps -ef|grep ons可以看到ONS進程正常運行,但onsctl ping看到ons is not running...,啟動ONS服務:onsctl start 再次確認ONS服務狀態,已經ok。 $onsctl debug??--查看詳細信息。

?

srvctl --RAC維護中最常用的命令,也是最復雜的命令。

查看配置:

$srvctl config database???--顯示在OCR中注冊的所有數據庫

$srvctl config database -d a??--查看數據庫a的配置

$srvctl config database -d a -a --查看數據庫a更詳細的配置

$srvctl config nodeapps -n dbs??--返回節點名、實例、$ORACLE_HOME

$srvctl config nodeapps -n dbs -a??--查看VIP配置

$srvctl config nodeapps -n dbs -g??--查看GSD

$srvctl config nodeapps -n dbs -s??--查看ONS

$srvctl config nodeapps -n dbs -l??--查看listener

$srvctl config listener -n dbs???--查看監聽器的名稱

$srvctl config asm -n dbp???--查看ASM實例名和$ORACLE_HOME

$srvctl config service -d test -a??--查看數據庫的所有service配置

$srvctl add database -d abc -o $ORACLE_HOME??--添加數據庫

$srvctl add instance -d abc -n dbs -i abc2??--添加實例

$srvctl add service -d abc -s abcservice -r abc1 -a abc2 -P BASIC??--添加服務

?

配置數據庫隨CRS的啟動而自動啟動:

srvctl enable/disable database -d test???--啟動/關閉數據庫的自動啟動特性

srvctl config database -d test -a??--確認配置是否成功

srvctl enable/disable instance -d test -i abc1??--開啟/關閉某個實例的自動啟動

srvctl disable service -d test -s abcservice -i abc1??--禁止服務在某個實例上運行

?

$srvctl remove service -d test -s abcservice??--刪除service

$srvctl remove instance -d test -i abc1??--刪除abc1

$srvctl remove database -d test??--刪除數據庫

remove命令刪除的只是對象在OCR中的定義信息,對象本身不會被刪除。

?

$srvctl start database -d test???--啟動數據庫。

$srvctl start database -d test -i abc1 -o mount??--啟動實例abc1到mount狀態。

$srvctl stop instance -d test -i abc1 -o immediate

$srvctl stop instance -d test -i abc1 -o abort

$srvctl start service -d test -s abcservice -i abc1

$srvctl status service -d test -v

?

跟蹤srvctl:10g中跟蹤srvctl,只需要設置SRVM_TRACE=true這個OS環境變量即可,這個命令的所有函數調用會輸出到屏幕上。

?

一個恢復案例(OCR磁盤和votedisk磁盤全部破壞,并且沒有備份):

1.crsctl stop crs??--停止所有節點的clusterware stack

2.$CRS_HOME/install/rootdelete.sh???--分別在每個節點執行這個腳本。

3.$CRS_HOME/install/rootdeinstall.sh??--只需要在一個節點上執行即可。

4.$CRS_HOME/root.sh??--在和步驟3同一個節點執行這個腳本。

5.$CRS_HOME/root.sh??--在其它節點執行這個腳本。

6.用netca命令重新配置監聽器,確認注冊到了clusterware中:crs_stat -t -v

7.srvctl add asm -n dbs -i +ASM1 -o /oracle/product/database

??srvctl add asm -n dbp -i +ASM2 -o /oracle/product/database

8.srvctl start asm -n dbs

??srvctl start asm -n dbp(這里出現了ORA-27550:的錯誤,這個問題是因為RAC無法確認使用哪個網卡作為private interconncect,所以可以通過在兩個ASM實例的pile中添加以下參數解決這個問題。

+ASM1.cluster_interconnects='10.0.0.8'

+ASM2.cluster_interconnects='10.0.0.9'

重啟ASM,問題得到解決)

9.srvctl add database -d test -o /oracle/product/database

10.srvctl add instance -d test -i abc1 -n dbs

???srvctl add instance -d test -i abc2 -n dbp

11.srvctl modify instance -d test -i abc1 -s +ASM1???--修改實例和ASM實例的依賴關系

???srvctl modify instance -d test -i abc2 -s +ASM2

12.srvctl start database -d test(啟動過程又出錯,跟ASM問題相同,解決辦法類似,修改database參數即可,如下:

SQL>alter system set cluster_interconnect='10.0.0.8' scope=spfile sid='abc1';

SQL>alter system set cluster_interconnect='10.0.0.9' scope=spfile sid='abc2';)

srvctl start database -d test??--重啟數據庫,操作成功。

?

?

?

4.HA和LB

?

HA=MTTF/(MTTF+MTTR)??MTTF=平均故障間隔時間???MTTR=平均修復時間

10g RAC failover的分類:client-side connect time failover;TAF;service-side TAF

注意:不要在listner.ora中設置GLOBAL_DB_NAME,這個參數會禁用connect_time failover和transparent application failover

?

client-side connect time failover:用戶端tnsname中配置了多個地址,用戶發起連接請求時,先嘗試第一個地址,如果連接失敗嘗試第二個地址,直到遍歷所有地址。它的特點是只在發起連接的時候才去感知節點故障,一旦連接建好后,節點故障不會處理,客戶端的表現就是會話斷開,用戶程序必須重新建立連接。在tnsnames.ora添加FAILOVER=ON條目即可實現此功能,系統默認就能實現這種功能。

?

TAF:如果某個實例發生故障,連接到這個實例上的用戶就會被自動遷移到其它的健康實例上。遷移對應用程序而言是透明的,但用戶未提交的事務會回滾。TAF的配置也很簡單,只要在tnsnames.ora添加FAILOVER_MODE配置項,這個條目有4個子項目需要定義。METHOD=BASIC/PRECONNECT??(BASIC:感知節點故障時才創建到其它實例的連接。 PRECONNECT:在最初建立連接時就同時建立到所有實例的連接,這樣切換速度就快)。??TYPE=session/select(session:對于select語句切換后需要重新執行查詢語句。 select:對于select語句切換后在新的幾點繼續返回剩下的記錄。兩種方式對未提交的事務都自動回滾)。

DELAY和RETRIES表示重試間隔時間和重試次數。

?

service-side TAF:直接在服務器上修改配置,無需修改客戶端的tnsnames.ora文件。它通過結合service在數據庫里保存FAIL_MODE的配置,把所有的TAF配置保存在數據字典中,省去了客戶端的配置工作。

service-side TAF比TAF多出了一個instance role,所謂實例角色,就是有多個instance參與一個service時,可以配置優先使用哪個instance為用戶提供服務,用戶共有兩種可選角色:

PREFERRED:首選實例??AVAILABLE:后備實例。要想實現這個功能必須配置services(DBCA,手工方式(srvctl)都可以配置)。使用srvctl這個工具時,命令只更新OCR中的配置,不會更新數據字典和監聽器中的信息,因此還要用dbms_service包來更新數據字典。無論使用DBCA還是srvctl命令來配置service,都無法配置TAF的type、delay、retries3個屬性。必須使用dbms_services包來修改這些屬性。10g配置了service-side TAF,客戶端甚至都不需要tnsnames.ora文件。10g提供新連接方法:easy connect naming methods。連接串格式如下:username/password@[//]host[:port][/service_name]

?

oracle clusterware HA框架:這里強調的是oracle clusterware是一款獨立的集群件產品,不只是針對RAC,另外oracle也提供了API,用戶可以進行二次開發實現更豐富的功能。詳見書的P210。

?

LOADBALANCE:10g RAC提供兩種手段實現分散負載:純技術的分散負載;面向業務的的分散負載。

純技術的分散負載有兩種實現方法:客戶端均衡;服務器端均衡

客戶端均衡:oracle8實現的方法,使用隨機算法把連接請求分散到各個實例,這種分配方法沒有考慮每個節點的真實負載。

服務器端均衡:oracle9引進的方法。負載均衡的實現依賴于listener收集的負載信息,PMON進程會收集系統的負載信息,然后登記到listener中,最少1分鐘,最多10分鐘PMON要做一次更新,節點負載越高,更新頻率越高。如果listener關閉,PMON會每隔1秒鐘檢查listener是否重啟。除了自動定時更新任務外,用戶也可以使用alter system register命令手工進行這個過程。整個過程可以在listener日志看到。我們也可以使用1025事件跟蹤PMON進程,來查看注冊的內容。PMON不僅會向本地注冊,還可以向其它節點上的listener注冊,但到底向何處注冊,是由remote_listeners決定的,參數值是一個tnsnames項。

客戶端均衡和服務器端均衡不是互拆的,兩者可以一起工作。配置LB時有點需要注意:需要將各個實例的listener.ora文件中去掉缺省產生的sid_list_listener_name條目,這樣才能保證listener獲得的信息都是動態注冊的,而不是從文件中讀取的靜態信息。

?

利用service分散負載:通過把應用按照功能模塊進行劃分成service,進而把每個service固定在某些RAC節點上。(cache fusion減少了)

?

?

?

5.備份

?

flash recovery area:閃回恢復區可以集中存放所有與恢復有關的文件,這些文件包括以下幾類:

控制文件(創建db時使用了閃回恢復區,會自動在這里創建一個控制文件的copy)

控制文件和spfile的自動備份

備份集backup set文件

image copy文件

歸檔日志,log_archive_dest_10會自動指向flash recovery area

閃回日志(閃回數據庫需要這種功能)

10g中的閃回功能家族中,只有閃回數據庫和閃回恢復區有關系(閃回日志必須放在閃回恢復區),其它的沒有直接關系。

10g中的v$logfile,v$control_file,v$datafile_copy,v$backup_piece,v$archived_log 這些視圖中也增加了

is_reconvery_dest_file列,代表該文件是否放在recovery area中。

RMAN>select name,is_recovery_dest_file from v$archived_log;

?

配置閃回區:RAC環境下的配置,要保證每個節點的配置值都相同。可以在線修改,立即生效:

SQL>alter system set db_recovery_file_dest='+DISKA' scope=both;

SQL>alter system set db_recover-y_file_dest_size='5g' scope=both sid='*';

使用ASM作為閃回區,只能指定到diskgroup級別,而不能指定到目錄,ASM存儲管理是采用OMF方式,每個數據庫會被分配到指定目錄diskgroup/instance_name。

?

閃回區的監控:當空間使用率達到90%,會自動觸發刪除,如果沒有空間可以釋放,并且使用空間超過85%,會記錄一條warning日志,如果超過97%會記錄一條critical warning日志,這些日志內容可以從DBA_OUTSTANDING_ALERTS視圖查看。閃回區的使用情況可以通過v$recovery_file_dest來進行監控。

?

RMAN使用方法:

1.批處理方法:把命令寫入文本文件。cat back

run {

backup database;

}

通過cmdfile指定命令文件,使用log指定日志文件:

$rman target / cmdfile=back log=back.log

?

2.腳本方式:需要恢復目錄,腳本分local和global兩種。

local:連接到target db和catalog db

RMAN>create script full_bakcup

{

backup database plus archivelog

delete obsolete;

}

?

global:需要用global關鍵字

RMAN>create global script global_full_backup

{

backup database plus archivelog;

delete obsolete;

}

?

使用腳本: RMAN>run { execute script full_bakcup;}

?

備份格式:image copy只能在磁盤上進行,backup set是一種壓縮格式,RMAN能跳過空數據塊,備份的時候還可以額外壓縮,但image copy比backup set的restore速度快,盡管它占用較多的空間。

RMAN的備份保留策略: RMAN>configure retention policy to recovery window of 7 days;

????????????????????RMAN>configure retention policy to redundancy 2;

RMAN>report obsolete;

RMAN>report obsolete recovery window of 7 days;

RMAN>report obsolete redundancy 2;

RMAN>show retention policy;

RMAN>delete obsolete;

RMAN>delete obsolete redundancy 2;

RMAN>delete obsolete recovery window of 4 days;

RMAN>configure retention policy to none;

?

RMAN只能對數據文件進行增量備份,控制文件、日志文件不能增量備份。增量備份能夠捕獲nologging操作的數據變化,而這些操作不會被記錄到日志上。

backup as copy db_file_name_convert=('+data/wxxrzxm','/backup/test') database;???--路徑的轉變。

如果想把ASM上的數據文件備份到ASM上,上述方法可能會出錯,因為ASM是使用OMF方式管理數據文件的。

?

增量備份:oracle10g只允許0和1兩級了,0級相當于全備,但不能作為0級使用。

種類:RMAN>backup incremental level 1 database;???--差異增量

??????RMAN>backup incremental level 1 cumulative database;??--累加增量

舉個例子:

RMAN>run {

?????backup as copy db_file_name_convert=('+DATA/wxxrzm','/backup/test') incremental level 0 database tag 'full_backup';

????}

RMAN>run {

?????backup incremental level 1 CUMULATIVE for recover of copy with tag 'full_backup' database;

?????recover copy of database with tag 'full_backup';

?????}

增量備份為了獲得要備份的數據塊,必須對數據文件中的所有數據塊進行遍歷,效率不高。因此oracle提供了一個特殊的文件叫block change tracking file,每當數據塊發生變化時,相關信息同時記錄到這個文件中。

SQL>alter database enable/disable block change tracking;???--啟用關閉該功能。

SQL>select * from v$block_change_tracking;??--查看文件的位置。

SQL>alter database enable block change tracking using file 'path'???--手工指定文件位置。

啟用這個特征后oracle會啟動一個ctwr進程,它負責跟蹤數據變化。

?

RMAN>backup duration 2:00 database;??--希望在2小時內完成備份,如果無法完成,整個任務都會出錯返回,產生的備份文件也不可用。

RMAN>backup duration 2:00 partial database filesperset 1;??--保證產生的每個備份文件都對應一個數據文件。完成的備份保留。

RMAN>backup duration 0:01 minimize load database;

RMAN>backup duration 0:01 minimize time database;

?

恢復命令:10G,restore命令增加了一個preview子命令。舉例如下:

$rman / target

RMAN>spool log to test.log

RMAN>restore datafile 1 preview;

RMAN>restore database preview summary;

RMAN>spool log off;

?

RMAN>list backup;

RMAN>list copy;

RMAN>crosscheck copy;

RMAN>delete expired copy;??--list顯示的信息是從控制文件獲得,如果用rm命令刪除copy這個動作不會同步到控制文件,這會造成不一致。

?

v$rman_output:查看每個備份任務的日志。??v$rman_status:查看備份任務的完成情況。

?

RAC的備份:RAC的備份與單實例備份有兩點需要注意:1.RMAN連接集群中的某個實例即可。 2.備份歸檔時,必須保證在備份實例上能夠訪問所有實例的歸檔日志,否則會報錯。

SQL>alter system set log_archive_dest_state_2=defer scope=both sid='*';

注意10g里增加的新參數log_archive_local_first參數,10g以前本地和遠程的歸檔都完成后,聯機日志文件才能被重用。這個參數設置為true后,oracle先進行本地歸檔,然后同時遠程傳遞和使用聯機日志。

?

?

?

6.恢復

?

修改數據塊之前,代表本次修改操作的redo記錄必須先要被保存下來,然后才能修改數據記錄。舊的日志被覆蓋前需要完成兩件事:1,檢查點必須完成。2,完成歸檔。

SCN的種類:系統檢查點SCN--記錄在控制文件中(v$database可以看到)。??數據文件檢查點SCN--記錄在控制文件中(v$datafile)。 數據文件的啟動、終止SCN--數據文件頭記錄啟動scn(v$datafile_header),控制文件記錄數據文件的終止scn。這兩個SCN用來確認數據文件是否需要恢復。數據庫運行中,所有數據文件的終止SCN都是null,正常關閉數據庫后數據文件的終止scn會被設置成啟動scn,異常關閉數據庫后,終止scn來不及修改還是null。

每個實例對應的聯機日志就是一個redo thread。rac環境下每個實例都需要自己的聯機日志,也就是每個實例都有自己的redo thread,所以在rac下添加日志時必須指定線程號:

SQL>alter database add logfile thread 1 group 5('/oracle/oradata/redo5') size 50m;

日志切換觸發檢查點,檢查點啟動DBWR把data buffer cache中的dirty block寫入磁盤,當該聯機日志所覆蓋的操作都被同步到數據時,這個聯機日志文件就可以被重用了。但是dirty blcok在磁盤上不是連續分布的,所以日志切換要等待DBWR寫完,這就會導致用戶進程必須長時間的等待。oracle 8開始出現了增量檢查點的算法。執行檢查點時,只在控制文件中記錄當時的檢查點SCN,然后DBWR在后臺進程進行寫操作,每隔3s,DBWR會在控制文件中更新checkpoint progress record,代表工作進展情況,而用戶進程繼續前臺操作,不受DBWR的影響。

記住RAC下的聯機日志必須放在共享存儲上,因為恢復時必須把所有實例的聯機日志都合并,把redo log record按照SCN排序。

crash recovery:RAC下某個實例發生了crash后在其它實例上進行的recovery。在執行crash recovery時,故障節點被IO fencing,即故障節點不能對共享數據進行操作。

PCM-lock:用來描述數據塊的buffer copy在不同實例間的分布情況。它有三個屬性:MODE,ROLE,PAST IMAGE。具體參見書的P270。可以根據其它節點上的PCM-lock推斷出哪些數據塊需要恢復。關于crash recovery的過程詳見p273。

online block recovery:某個用戶進程修改數據時異常死掉,導致data buffer數據不一致,這時就會觸發online block recovery動作。這個動作找到一個恢復起點(最近的past image)應用聯機日志進行恢復。

?

完全恢復的一個特殊案例:數據結構改變后的恢復

先做一個全備份,然后添加一個數據文件,并創建一個表空間,同時增加一些數據。--》關閉數據庫,模擬災難。刪除剛才新建的數據文件。--》啟動數據庫,因為刪除的數據文件沒有備份,所以restore,recover的方法都不行。 --》只能用alter database create datafile重建數據文件(無需指定數據文件所屬的表空間,也不用指定數據文件大小,因為這些屬性在控制文件都有記錄) --》在ASM里要注意,你指定建的數據文件名可能跟控制文件記錄的數據文件名不同。這時需要將控制文件記錄的數據文件名rename成ASM里記錄的數據文件名。SQL>alter database rename file '' to ''??-->再次recover datafile就可以了。

?

ASM也可以像目錄一樣操作:

$export ORACLE_SID=+ASM1

$asmcmd -p

ASMCMD[+] >cd +DATA2/DB/controlfile/

>ls

>rm ...

?

不完全恢復的一個案例:

1.RMAN>backup database;???--先做一個全備份。

2.abort數據庫,進ASM刪除數據文件、聯機日志、控制文件。

3.SQL>startup nomount;

4.RMAN>restore controlfile from '自動備份

5.RMAN>sql 'alter database mount';

6.RMAN>restore database;??--恢復過程中,數據文件被自動改名,并且改動被同步到控制文件中。

7.確定恢復終點。控制文件記錄的歸檔文件(v$archived_log)和磁盤上的歸檔文件數量不一樣,有4個文件時備份之后產生的。

8.RMAN>catalog archivelog '歸檔;???--將備份后產生的歸檔登記到控制文件。

9.SQL>recover database using backup controlfile until cancel;??--執行不完全恢復。如果使用RMAN工具,需要使用set until提前指定恢復終點:

RMAN>run {

set until sequence 64 thread 2;

restore database;

recover database;

}

10.RMAN>sql 'alter database open resetlogs';

11.$srvctl start database -d test???--打開其它實例。

?

?

轉載于:https://www.cnblogs.com/SuperXJ/p/3550290.html

總結

以上是生活随笔為你收集整理的oracle rac理解和用途扩展的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品99在线观看 | av一本久道久久波多野结衣 | 国产精品av电影 | 久久99精品热在线观看 | 91在线国内视频 | 久久国产免费视频 | 奇米影视8888在线观看大全免费 | 日本xxxx裸体xxxx17| 久久不卡日韩美女 | 国产91丝袜在线播放动漫 | 久久综合导航 | 亚洲va欧美va人人爽春色影视 | 日韩中文字幕免费 | 国产一区二区三区高清播放 | www.色婷婷| 成人国产精品av | 亚洲综合欧美激情 | 伊人婷婷网 | 99国产高清 | 人人涩| 国产亚洲精品电影 | 久久激情五月丁香伊人 | 亚洲 欧美 变态 国产 另类 | 国产精品99久久久久久人免费 | 人人干人人超 | 亚洲综合成人婷婷小说 | 三级黄色网址 | 色 中文字幕 | 91精品国产92久久久久 | 国产女人40精品一区毛片视频 | 日本三级不卡视频 | 成人视屏免费看 | 五月天亚洲综合小说网 | 中文乱幕日产无线码1区 | 一级黄色在线视频 | 一区二区在线影院 | 一区二区三区在线免费观看视频 | 国产99精品在线观看 | 国产1区2区3区精品美女 | 久久 精品一区 | 波多野结衣电影一区二区 | 日本久久精 | 91大神在线观看视频 | 91九色丨porny丨丰满6 | 欧美黄色特级片 | 国产精品情侣视频 | 99久久久免费视频 | 天天色天天草天天射 | 亚洲理论片 | 91av视频网 | av不卡免费在线观看 | 日本久久久影视 | 色资源二区在线视频 | 四虎影视精品永久在线观看 | 久草热久草视频 | 日韩大片在线观看 | 天天插综合网 | 天天操天天操天天操天天操天天操 | 日韩黄色一区 | 久久不射电影网 | 91精品夜夜 | 国产成人久久 | 欧美日韩国产精品一区二区 | 美女黄久久 | 黄色一级免费 | 丁香五婷 | 亚洲国产午夜精品 | 96久久| 久草在线免 | 手机看片国产日韩 | 视频国产精品 | 国产在线一线 | 国产高清精 | 色婷婷伊人 | 在线免费看黄网站 | 国产黄a三级三级三级三级三级 | 亚洲精品午夜一区人人爽 | 婷婷丁香综合 | japanesexxx乱女另类 | 最近最新最好看中文视频 | 精品在线一区二区三区 | 久热只有精品 | 天天干天天做 | 福利在线看片 | 91看片成人 | 超碰人人av | 色多视频在线观看 | 91精品久久久久久久久久入口 | 色综合久久88色综合天天6 | 国产精品99久久久久 | 国产高清免费视频 | 日韩av在线资源 | 久久久久久毛片精品免费不卡 | 中文字幕av免费在线观看 | 99tvdz@gmail.com| 91精品久久久久久粉嫩 | 婷婷六月丁香激情 | 99精品一级欧美片免费播放 | 国产精品av免费 | 六月丁香色婷婷 | 麻豆高清免费国产一区 | 又色又爽的网站 | 五月婷婷在线视频 | 91成人在线视频 | 狠狠躁夜夜躁人人爽超碰91 | 亚洲成人黄色在线 | 中国一区二区视频 | 久久久精品小视频 | 五月开心婷婷 | 久久官网 | 在线观看精品黄av片免费 | 精品久久久久久久久久久久久久久久久久 | 欧美久久久久久久久久久 | 一区av在线播放 | 高清视频一区二区三区 | 91尤物在线播放 | 看片一区二区三区 | 中文 一区二区 | 手机av电影在线观看 | 久久综合色一综合色88 | 久久精品视频播放 | 在线精品视频免费观看 | 91av原创| 最新黄色av网址 | 亚洲久在线 | 人人插人人玩 | 国产午夜在线观看 | 国产一区二区三区高清播放 | 97在线观看免费观看高清 | 国产精品一区二区在线 | 久久精品第一页 | 午夜精选视频 | 免费看片在线观看 | 欧美-第1页-屁屁影院 | 丁香六月婷婷开心婷婷网 | 欧美性大战 | 久久精品播放 | 激情丁香婷婷 | 国产精品女 | 成人一区二区三区在线 | 久久大视频 | 久久欧美在线电影 | 日韩影视大全 | 最新国产精品亚洲 | 久久综合狠狠综合久久综合88 | 一区二区三区福利 | 麻豆 free xxxx movies hd| 又粗又长又大又爽又黄少妇毛片 | 又黄又爽又色无遮挡免费 | 九九99 | 久草在线一免费新视频 | 成人福利在线观看 | 欧美日韩在线精品一区二区 | 天天av综合网 | 婷婷久月 | 成年人视频免费在线播放 | 99 色| 免费日韩高清 | 国产韩国日本高清视频 | 日韩成人在线免费观看 | 国内久久视频 | 96av视频| 免费精品久久久 | 香蕉视频久久久 | 91精品欧美一区二区三区 | 中文字幕乱在线伦视频中文字幕乱码在线 | 日日操狠狠干 | 欧美一区,二区 | 国产精品一区二区三区免费视频 | 在线看福利av| 久热这里有精品 | 久久在视频 | 亚洲精品高清在线观看 | 久久久久黄色 | 精品一区二三区 | 人人插人人插 | 国产精品国产自产拍高清av | 高清av中文字幕 | 天天曰天天曰 | 日本黄色免费大片 | 高清av免费观看 | 久久综合婷婷国产二区高清 | 超碰免费公开 | 免费的成人av | 亚洲欧洲精品一区二区精品久久久 | 国产精品久久久久婷婷二区次 | 精品久久中文 | 欧美日韩精品在线 | 欧美日韩国产在线一区 | av一级免费| 婷婷色狠狠 | 99性视频 | 麻豆综合网| 久久视频这里只有精品 | 天天看天天干 | 久久精品五月 | 99色在线视频 | 成人黄大片| 国产日韩欧美在线观看 | 久久a级片 | 天堂资源在线观看视频 | 99久久999久久久精玫瑰 | 久久久精品电影 | 人人舔人人爱 | 国产日韩一区在线 | 中文字幕一区二区三区精华液 | 国产精品久久久久久吹潮天美传媒 | 天天天天射 | 玖玖视频网 | 久久久久日本精品一区二区三区 | 色视频在线看 | 国产精品视频永久免费播放 | 成人免费视频播放 | 亚洲精品福利在线观看 | 91av在线视频免费观看 | 中文字幕在线观看第一区 | 国产精品区在线观看 | 91av在线电影| 91精品国产92久久久久 | 久久婷亚洲五月一区天天躁 | 日本精品视频在线观看 | 99久久国产免费看 | 日本福利视频在线 | 日韩三级视频 | 中文字幕在线观看第三页 | 国产 日韩 在线 亚洲 字幕 中文 | 日本特黄一级 | 日韩av一区二区在线 | 青青草国产精品 | 国产热re99久久6国产精品 | 欧美久久久久久久久久久久久 | 亚洲一区二区高潮无套美女 | 国产成人av福利 | 在线观看小视频 | 成人三级视频 | 综合色久 | 久久成人午夜 | 国产一区二区视频在线播放 | 成人免费在线看片 | 色偷偷男人的天堂av | 久久97久久 | 在线播放视频一区 | 国产又粗又猛又爽 | 日韩videos高潮hd | 特黄色大片 | 国产成人av福利 | 九9热这里真品2 | 国产成年免费视频 | 91成年人网站 | 国产日韩欧美精品在线观看 | 日日干夜夜爱 | 国产日韩欧美在线观看视频 | 日韩久久在线 | 国产女人18毛片水真多18精品 | 国产精品第52页 | 成人av免费在线观看 | 国产精品女同一区二区三区久久夜 | 综合久色| 中文字幕一区二区三区乱码在线 | 97品白浆高清久久久久久 | 欧美精品成人在线 | av免费电影在线观看 | 久久黄色影院 | 超碰人人91| 日韩中文字幕免费电影 | 国产精品嫩草影视久久久 | 毛片的网址 | 91视频午夜 | 黄色特级一级片 | 伊人婷婷综合 | 97精品一区二区三区 | 99国产精品久久久久久久久久 | 亚洲综合五月 | 操操操日日日干干干 | 天天干天天干天天 | 国产尤物在线观看 | 日韩理论影院 | 国产高清第一页 | 美女网站视频免费黄 | 亚洲a免费 | 婷婷色六月天 | 久久久精品在线观看 | 国产99爱 | 黄色小网站在线观看 | 99精品久久久久久久久久综合 | 国产综合片 | 人人艹视频 | 91丨九色丨蝌蚪丨老版 | 香蕉视频亚洲 | 精品美女久久久久久免费 | 国产精品 久久 | 99在线观看视频 | 就要干b| 亚洲一区av| 日本中文字幕电影在线免费观看 | 日韩高清精品一区二区 | 国产99在线 | 啪啪动态视频 | 国外成人在线视频网站 | 伊色综合久久之综合久久 | 911在线| 8x成人在线| 亚洲国产精品va在线看黑人 | av免费电影网站 | 国产中文字幕一区二区 | 日本性久久 | 午夜18视频在线观看 | 久久久久久久久影院 | 中文免费 | 97在线观看免费 | 激情欧美在线观看 | 99热99| 日韩精品极品视频 | 91禁在线看 | 亚洲精品在线电影 | 国产精品免费成人 | 狂野欧美激情性xxxx欧美 | 中字幕视频在线永久在线观看免费 | 精品视频一区在线观看 | 亚洲涩涩色 | 国产三级国产精品国产专区50 | 一区二区三区免费看 | 久久激情五月丁香伊人 | 成人黄色国产 | 精品国产伦一区二区三区观看说明 | 欧美一区二视频在线免费观看 | a极黄色片 | 欧美成人黄色 | 99视频+国产日韩欧美 | 亚洲第一av在线播放 | 在线视频观看你懂的 | 国产精品国产三级国产 | 五月开心六月伊人色婷婷 | a在线一区 | 日韩在线免费高清视频 | 婷婷五综合 | 天天干夜夜夜操天 | 久久情爱 | 中文在线a√在线 | aⅴ视频在线 | 91在线视频免费播放 | www视频在线观看 | av888.com | 91中文字幕永久在线 | 91中文字幕在线视频 | 激情婷婷六月 | 91av在线精品| 狠狠黄 | 91精品久久久久久综合乱菊 | 国产精品美女在线 | 麻豆系列在线观看 | 日韩免费电影一区二区三区 | 免费在线观看不卡av | 亚洲 欧美 日韩 综合 | 亚洲色图 校园春色 | 91成人久久 | 欧美精品一二三 | 亚洲视频在线免费观看 | 91av网址| 日韩在线观看网址 | 亚洲精品视频在线观看免费视频 | 久久99久久99精品免费看小说 | av日韩精品| 9i看片成人免费看片 | www.国产精品 | 亚洲在线视频播放 | 日韩色爱| 激情久久小说 | 99热这里只有精品国产首页 | 免费在线看成人av | 热久在线 | 欧美另类重口 | 97免费| 国产91精品在线观看 | 国产精品一区二区视频 | 成人在线超碰 | www免费黄色 | 韩国av电影在线观看 | 深夜国产福利 | 日韩精品一区电影 | 国产999精品久久久 免费a网站 | 日韩免费中文字幕 | 绯色av一区| 国产中文字幕在线免费观看 | 91大神电影 | 亚洲精品456在线播放 | 欧美专区国产专区 | 亚洲成a人片综合在线 | 黄色一级在线免费观看 | 欧美性生爱 | 丁香六月婷婷综合 | 精品国产亚洲日本 | 一区二区不卡在线观看 | 国产精品美女久久久久久久久久久 | 97超碰资源总站 | 国产高清视频在线播放 | 在线成人免费av | 91成人精品一区在线播放69 | 99日精品| 99久在线精品99re8热视频 | 免费在线电影网址大全 | 国产精品午夜在线观看 | 少妇性aaaaaaaaa视频 | 99婷婷| 亚洲在线看 | 黄色日批网站 | 亚洲人天堂 | 久久九九久久 | 国产亚洲精品久久久久秋 | 国产精品入口麻豆www | 欧美成人精品欧美一级乱 | 国产精品永久久久久久久久久 | 激情视频免费在线观看 | 国内精品福利视频 | 久久久私人影院 | 在线国产福利 | 亚洲伊人色 | 日韩电影中文字幕 | 久久精品综合视频 | 国产黄色资源 | 色六月婷婷 | 亚洲激情精品 | 99久久精品国产亚洲 | 免费三级骚 | 天天爽天天爽 | 久久久久久久网站 | 国产成人精品福利 | 久久精品精品电影网 | 精品一区二区免费在线观看 | 黄色成人影视 | 又黄又爽的视频在线观看网站 | 午夜电影一区 | 99热精品在线观看 | 久久国产三级 | 在线v片| 国产成人精品av久久 | 亚洲在线免费视频 | 久久国产美女 | 97国产在线 | 免费观看丰满少妇做爰 | 国产91在线 | 美洲 | 久久久久久97三级 | 成人午夜片av在线看 | 国产91精品在线播放 | 精品国产免费一区二区三区五区 | 国产精品午夜在线 | 玖玖视频国产 | 天天夜操 | 婷婷丁香七月 | 九九久久成人 | 人人干网站 | 欧美片一区二区三区 | 色激情五月 | 亚洲综合成人婷婷小说 | 欧美性色网站 | 高清有码中文字幕 | 午夜精品久久久久久99热明星 | 亚洲激情五月 | 久久在现| 婷婷视频导航 | 久久理伦片 | 99中文字幕视频 | 亚洲日本中文字幕在线观看 | 日韩h在线观看 | 国产成人av福利 | 日本中文乱码卡一卡二新区 | 亚洲欧美国产日韩在线观看 | 中文av网站 | 探花视频在线版播放免费观看 | 欧美日韩不卡一区 | 成人动漫视频在线 | 欧美一区二区三区在线播放 | 国产va饥渴难耐女保洁员在线观看 | 精品久久久亚洲 | 国产理论免费 | 五月天最新网址 | 久黄色 | 美腿丝袜一区二区三区 | av中文资源在线 | 久久久久久久久久网 | 久色 网 | 婷婷激情站 | 六月激情丁香 | 久久久久国产视频 | 人成在线免费视频 | 青草视频免费观看 | 西西大胆免费视频 | 操久| 亚洲精品免费在线观看 | 狠狠综合 | 一本—道久久a久久精品蜜桃 | 国产高清黄 | 免费三级大片 | 91视频麻豆 | 中文字幕久久精品 | 日日夜夜天天 | 色永久免费视频 | 国产精品欧美在线 | 亚洲自拍av在线 | 国产精品久久久久久吹潮天美传媒 | 精品成人国产 | 69精品视频 | 天天视频亚洲 | 最新av在线播放 | 免费网址在线播放 | 日韩欧美在线视频一区二区 | 美女免费黄网站 | 狠狠亚洲 | 中文亚洲欧美日韩 | 国产精品免费不卡 | 永久免费精品视频 | 国产精品成人免费 | 精品亚洲视频在线 | 久久成人黄色 | h网站免费在线观看 | 在线播放视频一区 | 欧美久久久一区二区三区 | 97香蕉超级碰碰久久免费软件 | 91免费国产在线观看 | 在线观看的av网站 | 精品国产乱码一区二区三区在线 | 天天爱综合 | 欧美日韩在线免费视频 | 在线视频久 | 成人高清在线观看 | 天堂av网在线 | 国产偷在线 | 亚洲精品免费在线观看视频 | 成人免费共享视频 | 欧美日比视频 | 国产精品美女久久久免费 | 亚洲综合视频在线播放 | 91成品视频| 99久久精品无码一区二区毛片 | 91色综合 | 伊人久久国产 | 麻豆激情电影 | 中文字幕亚洲欧美 | 91爱看片 | 97超碰在线人人 | 91porny九色在线播放 | 久久99精品热在线观看 | 黄色一级片视频 | 丁香综合网 | 亚洲精品在线二区 | 一区二区精品国产 | 亚洲性少妇性猛交wwww乱大交 | 在线观看av不卡 | 九九热在线免费观看 | 日本mv大片欧洲mv大片 | 久久久www成人免费精品 | 国产午夜免费视频 | 51久久成人国产精品麻豆 | 久久国产精品免费 | 97在线观看免费 | 91看片成人| 九九国产视频 | 中文字幕高清视频 | 99r在线播放 | 成人久久| 国产精品com | 中文字幕一区二区三区在线视频 | 午夜久久 | 人人爽人人舔 | 国产日韩精品一区二区三区 | 九九久久影视 | 久久久免费 | av青草| 97电影院在线观看 | 91亚色视频 | 在线观看亚洲专区 | 国产精品永久在线 | 婷婷在线网| 国产超碰在线观看 | 97在线观视频免费观看 | 天天操夜夜操夜夜操 | av片在线观看 | 91精品色| 中文字幕av最新更新 | 亚洲国内精品 | 午夜黄色影院 | 国产精品美女久久久网av | 日韩三级.com | 在线看黄色av | 日韩三级在线观看 | 日本一区二区三区免费看 | 二区三区av | 婷婷久操| 欧日韩在线视频 | 91tv国产成人福利 | 最近免费中文字幕mv在线视频3 | 丁香视频| 午夜三级毛片 | 亚洲成色777777在线观看影院 | 亚洲免费小视频 | 97超碰资源 | 国产成人a v电影 | 中文字幕av全部资源www中文字幕在线观看 | 国产精品免费视频观看 | 亚洲精品资源在线 | 91看片成人 | 久久综合久久综合久久综合 | 最近免费中文视频 | 91亚洲精品久久久蜜桃 | 国产一区二区中文字幕 | 国产在线看 | 色免费在线 | 在线播放视频一区 | 免费一级日韩欧美性大片 | 伊人手机在线 | 亚洲精品视频在线播放 | 四虎在线永久免费观看 | 国产精品第52页 | 91精品老司机久久一区啪 | 黄色av网站在线观看免费 | 亚洲欧美日韩国产一区二区 | 日韩免费网站 | 亚洲 欧美 国产 va在线影院 | 免费观看91 | www.com.日本一级| а天堂中文最新一区二区三区 | 国产二区免费视频 | 一区二区三区在线免费观看视频 | 久久精品综合视频 | 成人一区二区三区在线观看 | 久久九九精品久久 | 免费看成人a | 中文字幕综合在线 | 亚洲涩涩色 | 久久久久国 | 精品久久久免费视频 | 人人藻人人澡人人爽 | 香蕉影院在线观看 | 97电影在线 | 丁香婷婷深情五月亚洲 | 97超碰资源| 丁香六月色 | 超碰公开在线观看 | 粉嫩av一区二区三区四区五区 | 日本久久精品视频 | 96久久久 | 欧美国产日韩在线观看 | 中文字幕最新精品 | 国产一区视频导航 | 亚洲免费精品一区二区 | 激情深爱| 国产精品乱码在线 | 中文字幕av网站 | 色老板在线| 国产精品久久久久久久久久99 | 中文字幕丝袜美腿 | 免费看污黄网站 | 亚洲视频在线播放 | 精品久久视频 | 日日射av| 国产小视频免费在线观看 | av+在线播放在线播放 | 91观看视频| www.国产精品 | 最近中文字幕在线 | 激情五月婷婷激情 | 成人在线视频你懂的 | 久久久99精品免费观看乱色 | 在线观看福利网站 | 成人av一区二区兰花在线播放 | 在线日本看片免费人成视久网 | 69久久夜色精品国产69 | 国产一区不卡在线 | 在线久热 | 黄色的网站免费看 | 久久久综合色 | 97在线视频观看 | 成人黄色在线 | 亚洲天天在线日亚洲洲精 | 亚洲乱码久久久 | 四虎影视成人精品国库在线观看 | 精品久久久久久久 | 国产在线精品观看 | 成 人 黄 色 免费播放 | 色5月婷婷 | 久久精品国产一区二区三区 | 欧美在线18| 亚洲作爱 | 丁香激情五月婷婷 | a视频免费看| 日韩资源在线播放 | 人人爱爱人人 | 九九视频在线 | 一区二区欧美日韩 | 免费观看福利视频 | 色婷婷色 | 在线观看免费高清视频大全追剧 | 干 操 插 | 国产一在线精品一区在线观看 | 久久精品国产一区二区 | 激情视频一区二区 | 亚洲婷婷在线 | 欧美a级在线免费观看 | 九九热只有精品 | 午夜视频免费在线观看 | 色婷婷激情电影 | 日韩成人xxxx | 欧美99热| 啪啪激情网| 九九九热精品免费视频观看网站 | 丁香花在线观看免费完整版视频 | 在线观看国产福利片 | 能在线观看的日韩av | 久久天天综合网 | 中文字幕精品三区 | 国产一级视频在线免费观看 | 久久99精品一区二区三区三区 | 午夜精品一区二区三区可下载 | 97av在线| 亚洲理论片在线观看 | 久久亚洲私人国产精品 | 精品国产欧美一区二区三区不卡 | 亚洲精品婷婷 | 国产乱码精品一区二区三区介绍 | 久久亚洲人| 96国产精品| 精品久久久999 | 青青草国产在线 | 国产小视频在线播放 | 国产中文字幕国产 | 国产一区视频免费在线观看 | 欧美日韩精品国产 | aa一级片| 99久国产 | 丁香花中文在线免费观看 | 国产一区高清在线 | 欧美精品在线视频观看 | 99久高清在线观看视频99精品热在线观看视频 | 色婷婷福利 | 久久欧美精品 | 日韩天天干 | 91网页版免费观看 | 国产精品免费看久久久8精臀av | 一级a性色生活片久久毛片波多野 | 色综合网| 欧美一级电影免费观看 | 免费观看成人 | 天天干天天操天天入 | 青青草久草在线 | 中文字幕久久精品亚洲乱码 | 亚洲欧美日韩一级 | 久久久久国产免费免费 | 日本精品一区二区三区在线观看 | 国产亚洲激情视频在线 | 国产亚洲一级高清 | 国模精品一区二区三区 | 丝袜精品视频 | 男女免费av| avav片| 九色91av| www五月天com | 九九热99视频 | 日韩欧美网址 | 色黄www小说 | 成人av在线电影 | a在线免费 | 国产精品精品视频 | 国产视频精品在线 | 国产亚洲精品bv在线观看 | 中文字幕成人av | 五月天婷婷丁香花 | 97超碰在线免费 | 在线免费观看欧美日韩 | 在线国产日本 | 久久久久成人精品免费播放动漫 | 激情九九 | 国产精品欧美激情在线观看 | 国产1区2区3区精品美女 | 五月天久久婷 | 日韩在线观看一区二区 | 中文字幕在线观看一区二区 | 欧美日韩一区二区免费在线观看 | 色妞色视频一区二区三区四区 | 91精品国产99久久久久久红楼 | 91成人免费在线 | 亚洲精品美女久久久久网站 | 婷婷中文字幕 | 欧美日韩后 | 99r在线 | 国产精品热视频 | 91精品一区二区在线观看 | japanesefreesexvideo高潮 | 夜夜骑日日 | 日韩欧美精品一区二区三区经典 | 69精品视频在线观看 | 韩国av免费观看 | 最新一区二区三区 | 免费福利在线视频 | 久久国产免费 | 国产免费av一区二区三区 | 久保带人 | 久久这里精品视频 | 在线av资源| 九九99视频 | 国产在线2020 | 成人免费在线播放 | 夜色资源网 | 久草9视频 | 亚洲免费国产视频 | 97超碰影视| 久久在线免费视频 | 亚洲欧美日韩不卡 | 国产视频1区2区3区 久久夜视频 | 欧美日韩首页 | 91精品在线视频观看 | 国产成人精品不卡 | 精品一区 在线 | 日韩精品亚洲专区在线观看 | 久草在线久草在线2 | 91最新网址 | 麻豆视频免费入口 | 五月天久久综合网 | 国产高清免费在线播放 | 成人在线一区二区 | 日韩av在线不卡 | 久久99日韩 | 国产女做a爱免费视频 | 久久综合久久综合久久综合 | 中文一区二区三区在线观看 | 黄网站色视频 | a v在线观看 | 久草久热| 精品国产乱码久久久久久1区2匹 | 天天射综合网站 | 91大神dom调教在线观看 | 人人爱爱人人 | 国产亚洲视频在线 | 欧美一级片在线播放 | 天天色天天草天天射 | 日本黄色免费大片 | 免费精品国产 | 久久福利精品 | 99热国产在线观看 | 欧美91视频| 九九免费在线观看视频 | 91免费版在线 | 人人干人人模 | 日本黄色免费电影网站 | 欧美成年网站 | 在线观看成人小视频 | 激情视频网页 | 麻豆视频大全 | 婷婷伊人综合亚洲综合网 | 国产精品久久久久久久久大全 | 少妇bbw撒尿 | 久久短视频 | 中文字幕在线视频一区二区三区 | 国产精品成人一区二区三区吃奶 | 国产精品成人品 | 在线视频黄| 蜜桃视频日韩 | 精品久久久影院 | 国产精品乱码久久 | 丁香婷婷激情国产高清秒播 | 91视频免费视频 | 就操操久久 | 久久综合电影 | 天天爱av导航 | 久草在线免费看视频 | 亚洲欧美成人综合 | 色爱区综合激月婷婷 | 国产精品福利小视频 | 久久精品国产精品亚洲 | 国产亚洲字幕 | 国产视频一区二区在线观看 | 日韩精品一区二区三区视频播放 | 国产精品亚洲综合久久 | 最近中文字幕国语免费高清6 | av经典在线| 激情久久一区二区三区 | 成人一级影视 | 精品国产成人在线 | 在线播放第一页 | 99久久久国产精品免费99 | 狠狠干天天操 | 免费在线观看的av网站 | 国产精品视频区 | 亚洲天堂香蕉 | 偷拍久久久 | 国产一性一爱一乱一交 | 日韩欧美视频免费观看 | 在线观看韩日电影免费 | 99精品在线视频观看 | 久久成人精品电影 | 永久精品视频 | 日韩电影中文字幕 | 欧美日韩免费一区 | 久久久久久久久久久影院 | 国内99视频| 伊人狠狠色丁香婷婷综合 | 免费av网站观看 | 在线免费黄 | 日本狠狠干 | 99电影456麻豆 | 久久艹在线 | 日产乱码一二三区别免费 | 日韩美女久久 | 美女网站在线免费观看 | 久久久www成人免费毛片麻豆 | 国产成人精品久久久久 | 国产精品欧美精品 | 天天做日日做天天爽视频免费 | 亚洲国产精品免费 | 日韩中文字幕电影 | 免费看日韩 | 婷婷六月综合网 | 日韩精品中文字幕在线观看 | 在线观看韩国av | 九九视频精品免费 | 亚洲爱av | 日韩免费一级a毛片在线播放一级 | 国产亚洲精品精品精品 | 中文字幕资源在线观看 | 日本久久久精品视频 | 超碰av在线播放 | 97福利社| 亚洲午夜大片 | 麻豆免费看片 | 国产精品黄色影片导航在线观看 | 在线观看视频一区二区三区 | 一本—道久久a久久精品蜜桃 | 美女久久久久久久久久久 | 91精品欧美一区二区三区 | 国产精品一区二区果冻传媒 | 肉色欧美久久久久久久免费看 | 久久久久久国产精品久久 | 国产99久久久国产精品免费二区 | 天天看天天操 | 国产精品区二区三区日本 | 99久国产 | 91中文字幕网 | 狠狠色丁香婷婷综合最新地址 | 西西444www大胆高清视频 | 伊人色播 | 1000部18岁以下禁看视频 | 伊人热| 天天干,天天干 | 欧美一二三专区 | 99热这里只有精品8 久久综合毛片 | 国产高清免费视频 | 六月色播| 最新一区二区三区 | 久久九九精品久久 | 久久午夜影视 | 青青啪| 99视频在线免费 | 欧洲亚洲女同hd | 精品国产一区二区三区久久 | 欧美在一区 | 国产亚洲小视频 | 日韩综合一区二区三区 | 久久这里精品视频 | 久久国产精品久久久 | 五月婷婷,六月丁香 | 国产伦精品一区二区三区四区视频 | 日本韩国精品一区二区在线观看 | 射久久久 | 天天爽综合网 | 精品久久久久久亚洲综合网站 | 久久国产成人午夜av影院宅 | 日韩欧美网址 | 亚洲视频在线播放 | 欧美一级久久久 | 欧美日韩免费在线视频 | 黄色网在线免费观看 | 色窝资源| 免费无遮挡动漫网站 | 久久黄色美女 | 久久精品视频一 | 人人狠狠综合久久亚洲婷 | 婷婷色综合色 | 麻豆一区二区 | 日韩黄色在线电影 | 91精品国产高清自在线观看 | 一区二区三区在线观看中文字幕 | 欧美日韩一区二区三区在线免费观看 | 国产精品一区二区三区免费看 | 精品亚洲欧美无人区乱码 | 福利一区二区三区四区 | 欧美成人xxxx | 久久亚洲精品电影 | avv天堂| 欧美日韩在线网站 | 免费在线观看a v | 午夜男人影院 | 中文字幕免费成人 | 99色婷婷 | 日韩一级成人av | 日韩激情片在线观看 | 成年人在线观看视频免费 | 丁香影院在线 | 人成免费网站 | 国产成人久久久77777 |