成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

DB2數(shù)據(jù)庫的數(shù)據(jù)復制技術(shù)簡單概述(1)

瀏覽:189日期:2023-11-11 09:59:40
文章實驗環(huán)境:Win2000 Server、IBM® DB2® Universal Database™ for Windows® V7.1+補丁包9。注:本文將主要討論DB2之間的數(shù)據(jù)復制,而不考慮包含非IBM數(shù)據(jù)庫的數(shù)據(jù)復制什么是數(shù)據(jù)復制數(shù)據(jù)復制就是通過將源數(shù)據(jù)庫中指定的數(shù)據(jù)復制到目標數(shù)據(jù)庫中,以保持源數(shù)據(jù)庫與目標數(shù)據(jù)庫中指定數(shù)據(jù)的同步(一致)。基礎概念CD表:change data tables更改數(shù)據(jù)表,用于臨時存放更改數(shù)據(jù)的表。一般包含有需要捕捉更改的列及一些控制列。例如:用戶指定的,要捕捉更改的列CREATE TABLE DEPARTMENT (DEPTNO …, <--DEPTNAME …, <--MGRNO …,ADMRDEPT …,LOCATION …)源表CREATE TABLE CD20030805296530(IBMSNAP_UOWID …,IBMSNAP_INTENTSEQ…,IBMSNAP_OPERATION …,DEPTNO…, <--DEPTNAME …) <--CD表DB2日志類型:循環(huán)日志 歸檔日志:DB2數(shù)據(jù)復制的組件DB2 DataPropagator由三部分組成:治理界面、更改捕捉機制、應用程序注重:此處應用程序(Apply program)與我們通常所說的應用程序是不同的概念,本文中如無非凡說明,“應用程序都是指DB2數(shù)據(jù)復制的組件。治理界面我們主要用它來創(chuàng)建用于存儲復制標準的控制表。控制表有多種類型,用來存放要復制哪些表哪些列等信息,我們在后面再仔細探討。我們可以使用的治理界面有兩種:1.DB2 Control Center(DB2 控制中心)只能針對DB2服務器之間的數(shù)據(jù)復制 12345678910下一頁 2.DataJoiner Replication Administration (DJRA)可包含非IBM數(shù)據(jù)庫的數(shù)據(jù)復制(本文不具體討論)具體控制表類型可通過查看文件“SQLLIBsamplesepldpcntl.udb來獲得,本文涉及到的控制表主要有:ASN.IBMSNAP_REGISTER、ASN.IBMSNAP_UOW等。更改捕捉機制在建立復制環(huán)境之后,利用該機制去捕捉源數(shù)據(jù)庫發(fā)生的更改,且將更改臨時存放于CD表中。 DB2數(shù)據(jù)復制解決方案提供兩種捕捉數(shù)據(jù)的機制:1.捕捉DB2源表的捕捉程序當源是DB2表時,捕捉程序會捕捉在源上所發(fā)生的更改。捕捉程序使用數(shù)據(jù)庫日志去捕捉發(fā)生于源數(shù)據(jù)庫上的更改,并將更改臨時存儲在表里。捕捉程序運行在源服務器上。2.捕捉非IBM數(shù)據(jù)庫源表的捕捉觸發(fā)器(本文不具體討論)應用程序當捕捉程序?qū)⒃幢戆l(fā)生的更改臨時存放于CD表中后,應用程序再從這些表中讀出源數(shù)據(jù)庫的更改,將它應用于目標數(shù)據(jù)庫,或者直接將數(shù)據(jù)從源數(shù)據(jù)庫拷貝到目標數(shù)據(jù)庫。1.當剛搭建起復制環(huán)境時,有一個初始化過程,該過程應用程序?qū)⒅苯訌脑幢砘蛞晥D讀數(shù)據(jù)來初始目標表。而后假如你想復制更改,應用程序從CD表中讀取臨時存儲的變化數(shù)據(jù),將它應用于目標表。2.應用程序通常運行在目標服務器上,但它也可以運行在可以連接到源、控制和目標服務器的網(wǎng)絡上的任一服務器上。多個應用程序?qū)嵗梢赃\行在相同或不同的服務器上。3.每一個應用程序與一個包含著控制表的控制服務器相關(guān)聯(lián),控制表中包含著預訂集的定義。控制表可以被多個應用程序?qū)嵗褂谩1热纾耗阌幸粋€源服務器和兩個目標服務器,那么,你就可以將應用程序分別運行于每一臺目標服務器上。這兩個應用實例可以共享控制表,控制表中有特定的信息與每一應用實例相關(guān)聯(lián)。 上一頁1234567下一頁 各復制組件之間如何通訊各復制組件之間是相互獨立的,所以他們依靠于控制表中的信息進行通信。捕捉、應用程序通過更新控制表以指示復制的進程及協(xié)調(diào)變化進程。對于DB2之間的復制,捕捉程序通過讀取源服務器上的日志來捕捉源表中數(shù)據(jù)的更改。然后捕捉程序?qū)⒏牡臄?shù)據(jù)放入稱之為更改數(shù)據(jù)(CD)表的表中。每次應用程序拷貝數(shù)據(jù)到目標數(shù)據(jù)庫,目標數(shù)據(jù)庫的內(nèi)容將反映出在源數(shù)據(jù)庫上發(fā)生的更改。應用程序是通過應用自應用程序所知道的對于目標的上一次更新以來累加的事務來實現(xiàn)的,即只應用還沒應用的更改。基于日志的通訊捕捉程序使用部分控制表去記錄發(fā)生在源數(shù)據(jù)庫上的更改,而應用程序使用這些控制表中的值去檢測什么需要拷貝到目標庫中。重要:假如應用程序沒有通知捕捉程序,捕捉程序不會捕捉任何更改信息。同樣,除非你定義一個復制源并將它和預訂集相關(guān)聯(lián),否則應用程序不會通知捕捉程序開始捕捉更改。下面講解在典型的復制環(huán)境下,應用程序和捕捉程序如何通訊以保證數(shù)據(jù)的一致性:從源數(shù)據(jù)庫捕捉數(shù)據(jù)1.捕捉程序通過讀控制表ASN.IBMSNAP_REGISTER來判定哪些復制源需要開始捕捉更改。假如在捕捉程序運行期間,用戶定義了新的復制源,那么你必須重新初始化或重啟捕捉程序,它才會開始生效。2.捕捉程序通過監(jiān)控DB2的日志去檢測那些定義為復制源的源表所更改的記錄。3.每一復制源都有一張CD表。當捕捉程序在DB2日志中發(fā)現(xiàn)有一行數(shù)據(jù)發(fā)生更改時,它會在CD表中加入一行相應的數(shù)據(jù),以記錄發(fā)生的更改(假如updates被定義為DELETE和INSERT時,則加入兩行)。4.捕捉程序?qū)⑻峤坏氖聞招畔⒋鎯υ诳刂票鞟SN.IBMSNAP_UOW中。該控制表中的行標志著在源服務器上發(fā)生的已提交的事務。對于基于日志的捕捉程序,每一個DB2源服務器都存在一張控制表ASN.IBMSNAP_UOW。 上一頁12345678下一頁 5.捕捉程序會更新控制表ASN.IBMSNAP_REGISTER來記錄每一個復制源有多少已提交的數(shù)據(jù)被捕捉。將數(shù)據(jù)應用于目標數(shù)據(jù)庫6.對于所有的預訂集,應用程序首先通過將源表的所有數(shù)據(jù)拷貝到目標表中,以達到與復制源的同步。這個步驟稱之為全更新拷貝。在進行全更新拷貝之后,捕捉程序開始捕捉數(shù)據(jù)源發(fā)生的更改。7.假如任何預訂集預備復制,應用程序通過檢查控制表ASN.IBMSNAP_REGISTER來判定是否有發(fā)生變化以需要復制。8.應用程序通過更新修剪控制表來同步存儲在CD表中相關(guān)源表的更改9.應用程序從CD表和控制表ASN.IBMSNAP_UOW的連接中拷貝變化的數(shù)據(jù)到目標表中。通過連接這兩個控制表,應用程序確保只拷貝在數(shù)據(jù)源上已提交的變化。修剪表10.應用程序用一個指向拷貝變化到目標數(shù)據(jù)庫的值來更新修剪控制表ASN.IBMSNAP_PRUNCNTL。11.當應用程序修剪CD表和UOW控制表時,它先確定哪些更改已經(jīng)應用,然后將其從那兩個控制表中刪除。DB2數(shù)據(jù)復制概念這部分介紹一些DB2數(shù)據(jù)復制的重要概念。你應該閱讀整個部分以獲得一個整體的概念。復制源一個復制源其實就是一張你想從中拷貝數(shù)據(jù)的用戶表或視圖。在你可以復制數(shù)據(jù)之前,你必須先定義一個復制源用來描述更改捕捉機制所使用的信息。當你定義一個復制源時,你必須指定你想復制的列,還有決定你想把更新當做UPDATE操作處理還是DELETE和INSERT操作。另外,你必須決定:-是否想對一列捕捉前映象-你是否想使用更改捕捉(差別更新拷貝)還是不使用更改捕捉(全更新拷貝)-對于任何地方的更新復制(復制源有讀/寫目標表)想使用什么級別的沖突檢測后映象列和前映象列 上一頁123456789下一頁 一列后映象列包含源表中一列數(shù)據(jù)列被更新后的那列數(shù)據(jù)。一列前映象列包含源表中一列數(shù)據(jù)列被更新前的那列數(shù)據(jù)。當你定義一個復制源的時候,你可以選擇只捕捉后映象(默認)或者后映象和前映象一起捕捉。這取決于你打算使用這些數(shù)據(jù)的方法和你正在使用的表的類型。例如:表DEPARTMENT中有一列DEPTNO,若在定義復制源時指定該列捕捉后映象和前映象,該列有一行數(shù)據(jù)為’A00’,若使用UPDATE語句將’A00’更新為’A01’,則在其相應的CD表中同時記錄了更新前后的值:紅色部分為用戶指定的,要捕捉更改的列(后映象列),藍色部分為前映象列,存放對應列被更新前的值。CREATE TABLE DEPARTMENT (DEPTNO …, ‘A00’DEPTNAME …,MGRNO …,ADMRDEPT …,LOCATION …)源表CREATE TABLE CD20030805296530(IBMSNAP_UOWID …,IBMSNAP_INTENTSEQ…,IBMSNAP_OPERATION …,XDEPTNO…, ‘A00’DEPTNO…,  ‘A01’XDEPTNAME …,DEPTNAME …)CD表在需要審計或回滾能力的應用系統(tǒng)中,前映象列是非常有用的。全更新和差別更新拷貝應用程序通過全更新或差別更新拷貝從源表拷貝數(shù)據(jù)到目標表中。-在只進行全更新拷貝時,應用程序執(zhí)行一下任務:1.刪除目標表中的所有行2.從源表中讀取所有行3.拷貝這些行到目標表中-在進行差別更新拷貝時,應用程序只拷貝更改的數(shù)據(jù)到目標表中。 上一頁12345678910下一頁 沖突檢測級別沖突檢測僅適用于“任何地方的更新(update-anywhere)復制配置。它是在同一個復制周期,源和目標表中的同一行被更新的檢測程序。對于標準沖突檢測,應用程序在那些已經(jīng)捕捉到CD表中的行中查找沖突。對于增強的沖突檢測,應用程序鎖住所有目標表,因此確保了在檢查沖突時所有更改都被考慮到。預訂集和預訂集成員在開始從復制源復制數(shù)據(jù)前,你必須先將復制源和復制目標相關(guān)聯(lián)起來,復制源所發(fā)生變化將被復制到復制目標中。我們使用預訂集和預訂集成員來定義這種信息。我們定義的這些信息將存儲在各種復制控制表中。一個預訂集包含一個復制預訂的屬性。當你創(chuàng)建一個預訂集時,要定義下面的屬性:-預訂名-源服務器和目標服務器-應用限定符-什么時候開始復制,復制頻率,是否使用基于時間或基于事件或者基于兩者的復制頻率-假如你有大量的更改,是否將數(shù)據(jù)分塊提交預訂集中對每一張目標表或視圖,必須有一個預訂集成員。當你創(chuàng)建一個預訂集成員,要定義以下屬性:-源表或視圖、目標表或視圖-目標表或視圖的結(jié)構(gòu)-要復制的列(子查詢列)-要復制的行(用SQL謂詞WHERE限定過濾條件)預訂集確保所有預訂集成員在復制期間是相同的:更改要么被應用于所有的目標,要么不被應用于所有的目標。在一個預訂集中的所有預訂成員的更改數(shù)據(jù)通過單一的一個事務復制到指定的目標表中。因為在一個預訂集中的目標表是在一個事務中處理的,預訂集使性能最優(yōu)化。預訂集也保持著參照一致性。一個預訂集被一個應用程序使用,然而,每個應用程序可以通過相同的應用限定符處理多個預訂集。 上一頁234567891011下一頁 應用限定符應用限定符將一個應用程序和一個或多個預訂集關(guān)聯(lián)起來。當你定義一個預訂集時,指定一個名稱(區(qū)分大小寫)作為應用限定符。通過使用多個應用限定符,你可以只使用一個用戶ID運行多個應用程序?qū)嵗@纾杭僭O你想從兩個源數(shù)據(jù)庫復制數(shù)據(jù)到你計算機上的目標表。源表A中的數(shù)據(jù)使用“全更新拷貝復制到目標表A,源表B中的數(shù)據(jù)使用“差別更新拷貝復制到目標表B中。你定義了兩個預訂集(一個對應表A,一個對應表B),而且你使用各自的應用限定符以答應應用程序的兩個實例在不同的時間拷貝數(shù)據(jù)。你也可以將兩個預訂集用同一個應用限定符定義,用同一個應用程序?qū)嵗截悢?shù)據(jù)。數(shù)據(jù)操作也許你想只復制源表中的子集,可以使用簡單的視圖來重構(gòu)從源表到目標表的數(shù)據(jù),或者使用復雜的連接或聯(lián)合。源表的子集你可以復制源表中的某些列或某些行,而不是復制整個表。對于目標的連接和聯(lián)合你可以創(chuàng)建和維護包含由多張已存在的源表連接或聯(lián)合成的內(nèi)容的目標表。你可以使用下面的連接類型:-跨越一個或多個定義的復制源的簡單內(nèi)部連接,可能和其它的復制源的其它表或視圖組合。你可以通過下面的方法采用連接和聯(lián)合來操作數(shù)據(jù):-從單一的DB2源服務器上連接表(通過定義一張由某些表連接成的DB2視圖)-從一個源服務器上聯(lián)合的表(通過在一個預訂集中使用包含相同目標表的多個預訂集成員)-從多個源服務器的聯(lián)合,有時稱之為多點聯(lián)合(通過創(chuàng)建在多個預訂集中的多個預訂集成員)目標表當你定義一個預訂集成員時,你必須指定你所使用目標表的類型。有下面幾種表類型可以用: 上一頁3456789101112下一頁 -用戶拷貝表-時間點表-聚集表-CCD表-副本或行副本表-用戶表下面介紹一下這些目標表類型的特點:用戶拷貝表這些表是復制源的只讀拷貝,不帶有附加的復制控制列,就像普通的源表。它們是目標表最普通的類型。時間點表這些表是復制源的只讀拷貝,附帶有一時間戳列。時間戳列初始為空。當復制更改時,該列被賦予相應值以指示更新的時間。當你想跟蹤更改的時間時,可以使用這種類型的表。聚集表這些是只讀的表,使用SQL列函數(shù)(如SUM、AVG)來計算源表全部或最近發(fā)生更改的數(shù)據(jù)的摘要。行會隨時間追加到聚集表。基礎聚集表匯總一張源表的內(nèi)容。用基礎聚集表來定期地跟蹤源表狀態(tài)。例如,假設你想知道你每個月的顧客平均數(shù)。假如你的源表中一個顧客對應一行,你每月將你源表中的行數(shù)取平均,而后將平均值存儲到一張基礎聚集表中。基礎聚集表沒有跟蹤更改信息。例如,假設你一月份平均有500個顧客,二月份也有500個顧客。然而,在二月份,你失去兩個現(xiàn)有的客戶,同時新增兩個新客戶。基礎數(shù)據(jù)表顯示這兩個月平均顧客數(shù)是一樣的,但它沒有反映出二月份的變化。假如你想跟蹤變化信息,可以使用更改聚集表。更改聚集表使用控制表中的更改數(shù)據(jù),而不使用源表中的內(nèi)容。使用更改聚集表來跟蹤隨時間發(fā)生的更改(UPDATE、INSERT、DELETE操作)。例如,假設你想知道每個月你增加多少新客戶(INSERTS)失去多少現(xiàn)有客戶(DELETES)。你將按月統(tǒng)計你源表中行所發(fā)生的更改,將統(tǒng)計結(jié)果存儲在更改聚集表中。CCD表涉及非IBM數(shù)據(jù)庫,本文不予討論。副本或行副本表這些是唯一能被直接被我們的應用程序(此處的應用程序指用戶的應用系統(tǒng))更新的目標表。發(fā)生于副本或行副本的更改會被復制到相關(guān)的源表中;源表再依次復制更改至其它副本。使用副本表類型適用于任何地方的更新的復制。 上一頁456789101112下一頁 用戶表你不用直接指定一張用戶表作為目標表;然而,對于任何地方的更新的復制,一張用戶表將自動做為與其相關(guān)的副本或行副本的目標。用戶表是副本的父母,而且它的拷貝依靠于副本。副本的父母從依靠副本那里接受更新,假如沒有沖突檢測,它將復制更改到其它依靠副本。副本的父母是主要數(shù)據(jù)源。假如任何更新沖突被檢測到,副本的父母的內(nèi)容成功。典型情況下,你的應用程序訪問依靠的副本表;然而,當副本不可用時,它們將連接至包含用戶表的服務器上。應用更新的調(diào)度同步復制將連續(xù)的遞送更新。當源數(shù)據(jù)發(fā)生改變,它將臨時存儲起來,繼而轉(zhuǎn)送到目標。只有更改已經(jīng)復制到目標數(shù)據(jù)庫,源數(shù)據(jù)庫才進行提交。這種類型的復制也稱之為實時復制。異步復制將分階段遞送更新。當源數(shù)據(jù)發(fā)生改變,它將在事先設定的時間間隔內(nèi)臨時存儲起來,而后再繼續(xù)轉(zhuǎn)送到目標。時間間隔可以用時間(秒、分、時)度量或用指定的事件(午夜,或一天中的其它時間)來度量。假如更改沒能被應用于目標數(shù)據(jù)庫(例如,目標數(shù)據(jù)庫或者網(wǎng)絡停機),它們將被存儲起來稍后再被應用,應用的順序?qū)凑赵谠磾?shù)據(jù)庫上的發(fā)生順序。這種復制類型提供了比同步復制更多的好處:更好的利用網(wǎng)絡資源,更少的數(shù)據(jù)庫連接,在數(shù)據(jù)到達目標數(shù)據(jù)庫之前有機會提高數(shù)據(jù)。例子以下操作或命令主要在DB2的控制中心或命令控制臺中進行(紅色部分根據(jù)具體情況調(diào)整),相關(guān)命令更具體的使用參見DB2幫助文檔。建立復制環(huán)境先創(chuàng)建文件夾C:示例以存放一些腳本文件1.創(chuàng)建源數(shù)據(jù)庫DB2 CREATE DB DB_S2.將數(shù)據(jù)庫日志改為歸檔日志CaptureDB2 UPDATE DB CFG FOR DB_S USING LOGRETAIN Capture 上一頁56789101112下一頁 3.根據(jù)需要調(diào)整日志大小(假如需要的話)4.備份數(shù)據(jù)庫(改為歸檔日志的數(shù)據(jù)庫必須先備份才能對其進行操作)DB2 BACKUP DB DB_S5.創(chuàng)建源表DB2 CONNECT TO DB_S USER UserName USING PasswordDB2 CREATE TABLE TAB_1_S (COL_1 VARCHAR(20) NOT NULL, COL_2 VARCHAR(20), PRIMARY KEY(COL_1))6.定義復制源在控制中心左邊樹型列表中數(shù)據(jù)庫DB_S下選中表,右邊列表列出了所有的表,用右鍵點擊表TAB_1_S,在彈出的菜單中選中定義為復制源—>定制,接受默認選項,點擊確定,彈出現(xiàn)在運行還是保存窗口,接受默認的保存設置,點擊確定,彈出選擇系統(tǒng)名窗口,選擇數(shù)據(jù)庫所在系統(tǒng),點擊確定,彈出文件瀏覽器,把當前目錄定位到C:示例,在路徑中輸入文件名tab_1_replscr.sql,點擊確定。保存成功后可以用文本編輯器查看tab_1_replscr.sql中的內(nèi)容,可以發(fā)現(xiàn)里邊主要是生成CD表,和注冊復制源(通過往表ASN.IBMSNAP_REGISTER中插入記錄)的SQL語句。7.運行復制源用右鍵點擊控制中心左邊樹型列表中數(shù)據(jù)庫DB_S下的復制源,在彈出菜單中選擇運行SQL文件…,彈出選擇系統(tǒng)名窗口,選擇數(shù)據(jù)庫所在系統(tǒng)名,確定,在彈出的文件瀏覽器中選擇tab_1_replscr.sql后確定,假如成功,用右鍵進行刷新,將顯示出新定義的復制源TAB_1_S。8.將捕捉程序與源數(shù)據(jù)庫綁定(注重:必須轉(zhuǎn)跳到DB2的SQLLIBnd目錄下)CD C:Program FilesSQLLIBndDB2 CONNECT TO DB_S USER UserName USING PasswordDB2 BIND @CAPTURE.LST ISOLATION UR BLOCKING ALLDB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALLDB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL 上一頁6789101112下一頁
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美制服丝袜第一页| 99久久99久久精品免费观看| 成人一二三区视频| 美女国产一区| 亚洲婷婷国产精品电影人久久| 97久久精品人人做人人爽| 欧美成人精品3d动漫h| 国产98色在线|日韩| 日韩一区二区电影| 粉嫩绯色av一区二区在线观看| 91精品国产全国免费观看 | 欧美视频日韩视频| 日韩成人免费电影| 一本大道久久精品懂色aⅴ| 亚洲成人一二三| 亚洲欧美精品| 亚洲成a人v欧美综合天堂| 国产精品乱子乱xxxx| 亚洲午夜一区二区| 六月婷婷久久| 日韩国产精品大片| 欧美亚洲禁片免费| 国产主播一区二区三区| 欧美一区二区在线播放| 成人av在线一区二区三区| 久久久久久久久久久久久夜| 欧美精品一区在线| 中文字幕日韩av资源站| 在线亚洲伦理| 日韩福利电影在线观看| 91高清在线观看| 国产一区免费电影| 日韩视频在线一区二区| 91免费视频网址| 亚洲欧洲精品成人久久奇米网| 亚洲日本无吗高清不卡| 一区二区在线观看视频| 久久久久久一区二区| 精品综合免费视频观看| 日韩欧美一二区| 99久久精品国产一区| 国产精品色哟哟网站| 日韩视频精品| 天天影视网天天综合色在线播放 | 免费久久99精品国产自| 五月天激情综合| 欧美日韩国产小视频在线观看| 国产91精品一区二区| 国产丝袜在线精品| 国产手机视频一区二区| 美女在线视频一区| 日韩欧美一区二区久久婷婷| 欧美a级在线| 亚洲精品一二三| 色94色欧美sute亚洲13| 国产剧情在线观看一区二区| 久久精品在这里| 国产一区二区三区久久| 丝袜a∨在线一区二区三区不卡| 欧美在线观看你懂的| 成人午夜伦理影院| 亚洲视频电影在线| 欧美亚洲国产bt| av电影天堂一区二区在线| 亚洲啪啪综合av一区二区三区| 色婷婷综合视频在线观看| 大桥未久av一区二区三区中文| 中文字幕一区二区三| 91黄色激情网站| eeuss鲁片一区二区三区在线看| 日韩美女啊v在线免费观看| 久久精品一本| 成人黄色av网站在线| 亚洲精品免费视频| 欧美最猛性xxxxx直播| 成人h版在线观看| 玉米视频成人免费看| 欧美精品 日韩| 亚洲福利国产| 精品一区二区日韩| 日本一区二区成人| 久久综合九色综合网站| 波多野结衣精品在线| 一区二区三区在线观看国产| 欧美剧在线免费观看网站| 欧美精品播放| 蜜臀av一区二区| 久久女同性恋中文字幕| 亚洲综合国产| 国产精品亚洲а∨天堂免在线| 成人免费视频在线观看| 欧美日韩一区二区三区在线| 国产精品sm| 久久国产欧美日韩精品| 国产三级欧美三级日产三级99| 久久一区欧美| 欧美一区二区三区免费看| 日韩高清国产一区在线| 国产拍揄自揄精品视频麻豆| 欧美亚洲动漫另类| 18成人免费观看视频| 国产精品资源在线| 亚洲已满18点击进入久久| 精品国产一区二区三区不卡| 欧美一区=区| 午夜亚洲福利| 国产一区二区三区视频在线播放| 国产精品久久久久久久裸模| 欧美日韩三级在线| 99精品久久| 成人app软件下载大全免费| 视频一区视频二区中文| 久久精品视频网| 欧美在线观看视频在线| 亚洲免费久久| 99这里都是精品| 蜜桃久久av一区| 亚洲欧美一区二区三区极速播放| 日韩亚洲国产中文字幕欧美| 久久本道综合色狠狠五月| 欧美黄在线观看| 国产成人在线观看| 日韩二区在线观看| 亚洲精品乱码久久久久久久久 | 欧美日韩国产美女| 国产人成精品一区二区三| 成人h动漫精品一区二| 人人狠狠综合久久亚洲| 亚洲女人****多毛耸耸8| 久久一区二区视频| 884aa四虎影成人精品一区| 亚洲专区一区| 一区免费视频| 色综合一区二区| 国产福利不卡视频| 蜜臀久久99精品久久久画质超高清 | 国产黄色91视频| 石原莉奈在线亚洲三区| 亚洲视频在线一区| 国产人妖乱国产精品人妖| 日韩视频在线永久播放| 欧美日韩中文另类| 一本大道久久a久久精品综合| 91久久精品国产91久久性色tv| 91猫先生在线| 国产美女精品在线| 久久精品国产网站| 奇米777欧美一区二区| 亚洲一二三区视频在线观看| 国产精品亲子伦对白| 精品少妇一区二区三区 | 欧美性淫爽ww久久久久无| 国产精品久久久久久模特| 黄色亚洲在线| 女人色偷偷aa久久天堂| 成人午夜看片网址| 国产一区免费电影| 老司机午夜精品99久久| 亚洲bdsm女犯bdsm网站| 亚洲一区在线视频观看| 亚洲日本va午夜在线影院| 国产精品福利一区二区| 国产女同性恋一区二区| 久久一夜天堂av一区二区三区| 日韩一区二区三区免费看| 欧美精品一二三| 欧美日韩免费不卡视频一区二区三区 | 日韩电影在线免费看| 亚洲国产日韩精品| 亚洲成a人片综合在线| 亚洲线精品一区二区三区八戒| 日韩毛片一二三区| 亚洲欧美日韩国产综合在线| 国产精品电影院| 亚洲欧洲精品一区二区三区| 中文字幕中文字幕一区| 日本一区二区久久| 国产精品三级久久久久三级| 久久精品日产第一区二区三区高清版| 精品福利av导航| 久久九九影视网| 国产欧美综合在线| 国产精品毛片大码女人| 国产精品久久久久久妇女6080| 国产精品久久久久久户外露出| 亚洲丝袜另类动漫二区| 一区二区三区中文在线观看| 亚洲综合一二三区| 偷窥少妇高潮呻吟av久久免费| 日韩av中文字幕一区二区| 日韩激情一二三区| 免费成人在线视频观看| 久久99久久久欧美国产| 国产一区二区三区电影在线观看| 国产成人亚洲综合a∨婷婷图片| 丁香六月久久综合狠狠色| 成人免费视频播放| 亚洲123区在线观看| 成人夜色视频网站在线观看| 欧美久久婷婷综合色|