国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

DB2高可用性災難恢復

來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 15:25:08
文檔

DB2高可用性災難恢復

DB2高可用性災難恢復:通過本文您將了解DB2HADR的功能及基本的運作原理,然后您將通過一個實例快速配置一個HADR環(huán)境,并進行一些簡單的功能測試。接下來我們將對HADR的一些技術要點進行詳細討論,并給出一些建議。如果您正在考慮HA方面的問題,那么真心希望本文能夠為你提供一些幫
推薦度:
導讀DB2高可用性災難恢復:通過本文您將了解DB2HADR的功能及基本的運作原理,然后您將通過一個實例快速配置一個HADR環(huán)境,并進行一些簡單的功能測試。接下來我們將對HADR的一些技術要點進行詳細討論,并給出一些建議。如果您正在考慮HA方面的問題,那么真心希望本文能夠為你提供一些幫

DB2 HADR概述

High Availability Disaster Recovery (HADR)是數(shù)據(jù)庫級別的高可用性數(shù)據(jù)復制機制,最初被應用于Informix數(shù)據(jù)庫系統(tǒng)中,稱為High Availability Data Replication(HDR)。IBM收購Informix之后,這項技術就應用到了新的DB2發(fā)行版中。一個HADR環(huán)境需要兩臺數(shù)據(jù)庫服務器:主 數(shù)據(jù)庫服務器(primary)和備用數(shù)據(jù)庫服務器(standby)。當主數(shù)據(jù)庫中發(fā)生事務操作時,會同時將日志文件通過TCP/IP協(xié)議傳送到備用數(shù) 據(jù)庫服務器,然后備用數(shù)據(jù)庫對接受到的日志文件進行重放(Replay),從而保持與主數(shù)據(jù)庫的一致性。當主數(shù)據(jù)庫發(fā)生故障時,備用數(shù)據(jù)庫服務器可以接管 主數(shù)據(jù)庫服務器的事務處理。此時,備用數(shù)據(jù)庫服務器作為新的主數(shù)據(jù)庫服務器進行數(shù)據(jù)庫的讀寫操作,而客戶端應用程序的數(shù)據(jù)庫連接可以通過自動客戶端重新路 由(Automatic Client Reroute)機制轉移到新的主服務器。當原來的主數(shù)據(jù)庫服務器被修復后,又可以作為新的備用數(shù)據(jù)庫服務器加入HADR。通過這種機制,DB2 UDB實現(xiàn)了數(shù)據(jù)庫的災難恢復和高可用性,最大限度的避免了數(shù)據(jù)丟失。下圖為DB2 HADR的工作原理圖:


注:處于備用角色的數(shù)據(jù)庫不能被訪問。

下面我們首先從一個配置實例入手來了解DB2 HADR環(huán)境的基本配置過程,然后再對HADR環(huán)境涉及到的一些技術要點展開討論。




快速實例上手

要進行這個實例配置過程,你必須擁有DB2 UDB Enterprise Server Edition (ESE),筆者使用的是DB2 ESE v8.2.2 for Linux 32bit(在v8.2的基礎上打了Fixpack9a)。如果您沒有這個版本,可以到IBM官方網(wǎng)站下載試用版(可能需要花點時間填寫一些信息),下載 鏈接:https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=db2udbdl 。

另外,筆者使用的是兩臺DELL PowerEdge 2850作為數(shù)據(jù)庫服務器,安裝Redhat Linux Enterprise Server v4.0。這兩臺機器的主機名和IP地址分別為:DBSERV1(192.168.1.162)和DBSERV2(192.168.1.163)。在下面 的配置過程中我們將DBSERV1作為主數(shù)據(jù)庫服務器,其實HADR配置好之后,這兩臺服務器的角色是可以轉換的。為簡單起見,我們就采用DB2的樣本數(shù) 據(jù)庫SAMPLE作為配置對象。

配置過程(以下命令均在DB2 CLP中執(zhí)行):

1. 在DBSERV1和DBSERV2上安裝DB2,并創(chuàng)建缺省實例db2inst1,服務端口:50000,我們使用缺省的實例所有者用戶db2inst1,密碼:db2inst1

2. 使用db2sampl命令在DBSERV1上創(chuàng)建樣本數(shù)據(jù)庫SAMPLE

3. 修改SAMPLE數(shù)據(jù)庫配置參數(shù)LOGRETAIN為ON,以使該數(shù)據(jù)庫日志記錄方式改為存檔日志。

UPDATE DB CFG FOR SAMPLE USING LOGRETAIN ON



UPDATE DB CFG FOR SAMPLE USING TRACKMOD ON



4. 修改索引日志記錄參數(shù)

UPDATE DB CFG FOR SAMPLE USING LOGINDEXBUILD ON



UPDATE DB CFG FOR SAMPLE USING INDEXREC RESTART



注:這一步并不是必須的。

5. 備份數(shù)據(jù)庫SAMPLE

BACKUP DB SAMPLE TO /database/dbbak




其中"/database/dbbak"是筆者用來存放數(shù)據(jù)庫備份文件的目錄,你完全可以指定任何一個db2inst1有寫入權限的其他目錄。

備份完成之后,在/database/dbbak目錄下我們會看到數(shù)據(jù)庫備份映像文件:

SAMPLE.0.db2inst1.NODE0000.CATN0000.20050726122125.001



注:你所得到的文件名的時間標志部分肯定和我的不一樣,在下面的恢復數(shù)據(jù)庫命令中要注意做相應的修改。

6. 將得到的數(shù)據(jù)庫映像文件復制到DB2SERV2對應的目錄下(/database/dbbak)。

7. 在DBSERV2上恢復數(shù)據(jù)庫SAMPLE:

RESTORE DATABASE SAMPLE FROM "/database/dbbak" TAKEN AT 



20050726122125 REPLACE HISTORY FILE WITHOUT PROMPTING



8. 配置自動客戶端重新路由:

在主數(shù)據(jù)庫服務器(DBSERV1)上:

UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME 192.168.1.163 PORT 50000



在備用數(shù)據(jù)庫服務器上(DBSERV2):

UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME 192.168.1.162 PORT 50000



9. 配置HADR服務和偵聽端口

用vi編輯/etc/services文件(需要切換到root用戶),加入下面兩行:

DB2_HADR_1 55001/tcp



DB2_HADR_2 55002/tcp



對于 Windows,編輯%SystemRoot%/system32/drivers/etc/services。

注:這一步不是必須的,因為在下面配置HADR_LOCAL_SVC和HADR_REMOTE_SVC數(shù)據(jù)庫參數(shù)的時候您可以直接使用端口號來替代服務名。

10. 修改主數(shù)據(jù)庫(DBSER1 - SAMPLE)的配置參數(shù):

UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST 192.168.1.162



UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_SVC DB2_HADR_1



UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST 192.168.1.163



UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_2



UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST db2inst1



UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNC



UPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 120



CONNECT TO SAMPLE



QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS



UNQUIESCE DATABASE



CONNECT RESET



11. 修改備用數(shù)據(jù)庫(DBSERV2 - SAMPLE)的配置參數(shù):

UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST 192.168.1.163



UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_SVC DB2_HADR_2



UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST 192.168.1.162



UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_1



UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST db2inst1



UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNC



UPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 120



12. 啟動HADR:

首先啟動備用數(shù)據(jù)庫服務器的HADR:

DEACTIVATE DATABASE SAMPLE



START HADR ON DATABASE SAMPLE AS STANDBY



然后啟動主數(shù)據(jù)庫服務器的HADR:

DEACTIVATE DATABASE SAMPLE



START HADR ON DATABASE SAMPLE AS PRIMARY



注:如果你先啟動主數(shù)據(jù)庫服務器HADR,那么你必須保證在HADR_TIMEOUT參數(shù)指定的時間內(單位為秒)啟動備用數(shù)據(jù)庫服務器HADR。否則將啟動失敗。

OK,到目前為止,我們已經(jīng)成功配置并啟動了DB2 HADR。在下一節(jié)中我們將對這個配置好的HADR環(huán)境進行一些測試來驗證它是否能按照我們預期的方式工作。





HADR測試

1. 連接到主數(shù)據(jù)庫,創(chuàng)建測試表HADRTEST,并插入幾條測試數(shù)據(jù):

CONNECT TO SAMPLE USER db2inst1 USING db2inst1



CREATE TABLE HADRTEST(ID INTEGER NOT NULL WITH DEFAULT,NAME VARCHAR(10),PRIMARY KEY (ID))



INSERT INTO HADRTEST (ID,NAME) VALUES (1,'張三')



INSERT INTO HADRTEST (ID,NAME) VALUES (2,'李四')



2. 使用備份數(shù)據(jù)庫接管主數(shù)據(jù)庫

TAKEOVER HADR ON DATABASE SAMPLE USER db2inst1 USING db2inst1



觀察數(shù)據(jù)庫主數(shù)據(jù)庫和備用數(shù)據(jù)庫的狀態(tài):

GET SNAPSHOT FOR DB ON SAMPLE



新的主數(shù)據(jù)庫(原備用數(shù)據(jù)庫):


備用數(shù)據(jù)庫(原主數(shù)據(jù)庫):


3. 連接到新的主數(shù)據(jù)庫,并查詢HADRTEST表:


顯然,我們的HADR環(huán)境已經(jīng)可以正常工作了。讀者可以自己再針對數(shù)據(jù)的修改、刪除等進行一些測試。自動客戶端重新路由(Automatic Client Reroute)功能也留給讀者自己測試。




HADR管理操作匯總

1. 啟動和停止HADR

使用START HADR命令啟動主數(shù)據(jù)庫和備用數(shù)據(jù)庫的HADR。啟動主數(shù)據(jù)庫使用AS PRIMARY子句,啟動備用數(shù)據(jù)庫使用AS STANDBY 子句。如果想以其他用戶啟動HADR,可以通過USER user-name USING password子句指定用戶名和密碼:

例子:

START HADR ON DATABASE SAMPLE USING db2inst1 USING db2inst1 AS STANDBY



在啟動主數(shù)據(jù)庫的HADR時,如果在數(shù)據(jù)庫HADR_TIMEOUT所指定的時間內未能建立與備用數(shù)據(jù)庫HADR的連接,啟動將失敗。這時候,你可以等排除故障并成功啟動備用數(shù)據(jù)庫HADR后再啟動主數(shù)據(jù)庫HADR,也可以通過指定BY FORCE子句強行啟動主數(shù)據(jù)庫。

例如:

START HADR ON DATABASE SAMPLE AS PRIMARY BY FORCE



使用STOP HADR 停止主數(shù)據(jù)庫和備用數(shù)據(jù)庫的HADR。

如果在活動的主數(shù)據(jù)庫上發(fā)出此命令,所有的數(shù)據(jù)庫連接都被斷開,數(shù)據(jù)庫恢復為標準數(shù)據(jù)庫(我們稱沒有啟用HADR的數(shù)據(jù)庫為標準數(shù)據(jù)庫),并保持聯(lián)機狀態(tài)。

如果在活動的備用數(shù)據(jù)庫上發(fā)出此命令,將停止失敗。你必須先使用DEACTIVATE DATABASE命令取消激活,然后再停止HADR。

2. 查看HARD的配置及運行狀態(tài)

HADR連接狀態(tài):

當備用數(shù)據(jù)庫的HADR啟動時,它首先進入本地同步更新狀態(tài)。并根據(jù)本地日志路徑配置參數(shù)及日志歸檔方法的設置檢索本地系統(tǒng)中的日志文件并重放。當 本地日志文件重放完畢,備用數(shù)據(jù)庫進入遠程同步暫掛狀態(tài)。當與主數(shù)據(jù)庫建立連接之后,備用數(shù)據(jù)庫進入遠程同步更新狀態(tài)。即主數(shù)據(jù)庫將自己的日志文件通過 TCPIP協(xié)議發(fā)送給備用數(shù)據(jù)庫,備用數(shù)據(jù)庫接收到日志文件并重放,直到所有日志文件都重放完畢,備用數(shù)據(jù)庫和主數(shù)據(jù)庫進入對等狀態(tài)。見下圖:


通過GET SNAPSHOT命令觀察主數(shù)據(jù)庫和備用數(shù)據(jù)庫的連接狀態(tài)。

通過GET DB CFG命令可以查看HADR的配置情況,即HADR相關的幾個數(shù)據(jù)庫參數(shù)值。

3. 接管/故障轉移

當主數(shù)據(jù)庫發(fā)生故障時,備用數(shù)據(jù)庫可以接管主數(shù)據(jù)庫的服務,成為新的主數(shù)據(jù)庫(稱為故障轉移)。當原主數(shù)據(jù)庫修復后,又可以作為備用數(shù)據(jù)庫加入 HADR對。即使主數(shù)據(jù)庫服務器沒有故障,我們通過接管命令(TAKEOVER)切換主數(shù)據(jù)庫和備用數(shù)據(jù)庫的角色。接管命令只能用在備用數(shù)據(jù)庫上。

HADR提供兩種接管方式:

緊急接管:

當主數(shù)據(jù)庫發(fā)生故障時,可以在備用數(shù)據(jù)庫上使用緊急接管,使備用數(shù)據(jù)庫成為新的主數(shù)據(jù)庫。緊急接管必須指定TAKEOVER命令的BY FORCE子句,例如:

TAKEOVER HADR ON DATABASE SAMPLE BY FORCE



普通接管:

普通接管就是沒有使用BY FORCE子句的接管,例如:

TAKEOVER HADR ON DATABASE SAMPLE



這種接管必須在主數(shù)據(jù)庫和備用數(shù)據(jù)庫都正常運行的情況下使用。如果主數(shù)據(jù)庫發(fā)生故障,普通接管將失敗,這時候必須使用上面的緊急接管。

4. 同步方式

在上面的配置實例中我們將主數(shù)據(jù)庫和備用數(shù)據(jù)庫的HADR_SYNCMODE參數(shù)值設置為NEARSYNC,當主數(shù)據(jù)庫和備用數(shù)據(jù)庫處于對等狀態(tài)時,HADR采用NEARSYNC(接近同步)同步方式管理日志寫入。DB2提供了三種日志同步方式:

SYNC(同步):

采用SYNC方式時,僅當主數(shù)據(jù)庫日志寫入成功,并收到備用數(shù)據(jù)庫的應答,確保備用數(shù)據(jù)庫的日志也成功寫入的情況下,才認為日志寫入成功。

這種方式下的事務響應時間最長,但最大限度的確保不發(fā)生事務丟失。

NEARSYNC(接近同步):

采用NEARSYNC方式時,當主數(shù)據(jù)庫日志寫入成功,并收到備用數(shù)據(jù)庫的應答,確定備用數(shù)據(jù)庫已經(jīng)接收到日志時,即認為日志寫入成功。也就是說,備用數(shù)據(jù)庫接收到的日志并不一定能成功寫入持久存儲設備上的日志文件。

這種方式下的事務響應時間比SYNC方式短,且僅當兩臺服務器同時發(fā)生故障時,才會發(fā)生事務丟失。

ASYNC(異步):

采用ASYNC方式時,當主數(shù)據(jù)庫日志寫入成功,并將日志發(fā)送出去之后,即認為日志寫入成功。此方式并不保證備用數(shù)據(jù)庫能收到日志,這要依賴于TCP/IP網(wǎng)絡情況。

這種方式下的事務響應時間最短,但產(chǎn)生事務丟失的可能性也最大

5. 自動客戶端重新路由(Automatic Client Reroute)

要配置自動客戶端重新路由,使用UPDATE ALTERNATE SERVER命令設置備用數(shù)據(jù)庫信息(使用方法參考上面的配置實例),這些信息將被存放在數(shù)據(jù)庫的系統(tǒng)目錄中。請注意:必須使用此命令來設置備用數(shù)據(jù)庫, 而不是HADR_REMOTE_HOST 和 HADR_REMOTE_SVC 數(shù)據(jù)庫配置參數(shù),自動客戶端重新路由不使用這兩個參數(shù)。

當客戶端與數(shù)據(jù)庫建立連接時,備用數(shù)據(jù)庫的配置信息(主機/IP 及 端口號)也同時被發(fā)送給DB2客戶端。當客戶端與主數(shù)據(jù)庫的連接被中斷時,客戶端就使用這些信息連接到備用數(shù)據(jù)庫,從而最小限度的降低了數(shù)據(jù)庫故障所造成 的影響。需要強調的是,這個過程由DB2客戶端自動完成,不需要用戶用程序干涉。見下圖:


通過LIST DB DIRECOTRY 命令可以查看系統(tǒng)數(shù)據(jù)庫目錄中自動客戶端重新路由的配置。

6. 使用控制中心管理HADR

在上面的討論中我們主要通過DB2 CLP命令來創(chuàng)建和管理DB2 HADR。實際上DB2的控制中心也提供了創(chuàng)建和管理HADR的圖形界面,例如:工具-〉向導-〉設置高可用性災難恢復(HADR)數(shù)據(jù)庫。這些功能使用 起來都非常簡單,在這里我們就不詳細討論了。但是,筆者強烈建議盡量多使用DB2 CLP命令來管理DB2(不僅僅是針對HADR),不要過于依賴DB2控制中心,因為很多服務器環(huán)境都不安裝控制中心,這時候你如果沒有掌握DB2 CLP命令,那可就麻煩大了。

7. 關于索引日志記錄

索引的創(chuàng)建、重建、重組也是HADR環(huán)境中需要考慮的一個方面,DB2通過數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD和CREATE TABLE或ALTER TABLE語句中的LOG INDEX BUILD選項來控制是否對索引的相關操作進行詳細的日志記錄。我們在上面的HADR配置實例中將LOGINDEXBUILD數(shù)據(jù)庫參數(shù)配置為ON,意為 讓DB2記錄索引創(chuàng)建、重建、重組的完整日志。這顯然會降低主數(shù)據(jù)庫的運行效率并占用更多的日志空間。但因為備用數(shù)據(jù)庫可以通過重放日志來重新構建索引, 所以當主數(shù)據(jù)庫發(fā)生故障,備用數(shù)據(jù)庫的索引仍然可用。

用戶可以通過CREATE TABLE或ALTER TABLE語句的LOG INDEX BUILD選項來對單個表設定索引日志記錄級別。LOG INDEX BUILD選項有三個可選參數(shù):

  • NULL:這是缺省值,當使用此參數(shù)時,表的索引日志記錄級別由數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD的值決定。
  • ON:使用此參數(shù),數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD的值將被忽略,DB2將記錄這個表上所有索引維護的詳細日志。
  • OFF:使用此參數(shù)時,數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD的值將被忽略,DB2將不記錄這個表上索引維護的日志。
  • 如果表選項LOG INDEX BUILD設置為OFF,或者LOG INDEX BUILD設置為NULL但數(shù)據(jù)庫配置參數(shù)LOGINDEXBUILD設置為OFF,DB2將不記錄這些表的索引維護日志,備用數(shù)據(jù)庫也就無法重放索引維 護操作,致使這些索引在備用數(shù)據(jù)庫上變?yōu)闊o效狀態(tài)。當主數(shù)據(jù)庫發(fā)生故障,備用數(shù)據(jù)庫切換為新主數(shù)據(jù)庫后,這些無效的索引必須重建才能被使用。DB2通過數(shù) 據(jù)庫配置參數(shù)INDEXREC來指定在什么時候檢查并重建無效索引。INDEXREC參數(shù)有三個可選值:

  • RESTART:DB2將在顯式或隱式重啟數(shù)據(jù)庫(RESTART DATABASE)的時候檢查并重新構建無效索引。
  • ACCESS:DB2將在無效索引第一次被訪問的時候才會重新構建它。
  • SYSTEM:使用數(shù)據(jù)庫管理器配置參數(shù)(Database Manager Configuration)INDEXREC的值。
  • 在上面的配置實例中,我們將INDEXREC的值設為RESTART,備用數(shù)據(jù)庫將在接管為新的主數(shù)據(jù)庫時檢查并重新構建所有無效索引。




    DB2 HADR的使用限制

  • 只有DB2 UDB Enterprise Server Edition(ESE)支持HADR,但HADR不能支持分區(qū)數(shù)據(jù)庫(Database Partitioning Feature,DPF)。
  • 主數(shù)據(jù)庫和備用數(shù)據(jù)庫必須運行在相同的操作系統(tǒng)版本上,并且DB2 UDB的版本也必須一致,除非短暫的軟件升級過程。
  • 主數(shù)據(jù)庫和備用數(shù)據(jù)庫的位大小必須一致(32位或64位)。
  • 不能在備用數(shù)據(jù)庫上進行備份操作
  • 備用數(shù)據(jù)庫是不能訪問的,客戶端程序無法連接備用數(shù)據(jù)庫。
  • 日至歸檔操作只能在主數(shù)據(jù)庫上進行。
  • 帶有COPY NO選項的LOAD命令是不支持的
  • 主數(shù)據(jù)庫和備用數(shù)據(jù)庫必須是一對一的。
  • HADR不能使用循環(huán)日志
  • HADR不復制數(shù)據(jù)庫配置參數(shù)、共享庫、DLLs、UDFs或存儲過程
  • 聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    DB2高可用性災難恢復

    DB2高可用性災難恢復:通過本文您將了解DB2HADR的功能及基本的運作原理,然后您將通過一個實例快速配置一個HADR環(huán)境,并進行一些簡單的功能測試。接下來我們將對HADR的一些技術要點進行詳細討論,并給出一些建議。如果您正在考慮HA方面的問題,那么真心希望本文能夠為你提供一些幫
    推薦度:
    標簽: 恢復 了解 通過
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品成人第一区 | 欧美综合图区亚洲综合图区 | 日韩毛毛片 | 国产欧美日韩综合二区三区 | 亚洲欧洲免费视频 | 日本人乱人乱亲乱色视频观看 | 日韩首页 | 中文字幕日韩一区二区三区不卡 | 亚洲第二页 | 亚洲欧洲日韩 | 美女全黄网站 | 在线精品亚洲欧洲第一页 | 久久亚洲精品国产精品婷婷 | 高清视频一区 | 免费观看国产精品 | 视频一区二区三区欧美日韩 | 国产精品综合色区在线观看 | 国内精品视频在线播放 | 国产精品久久久久久久免费 | 欧美αv日韩αv另类综合 | 在线国产视频 | 国产精品免费精品自在线观看 | 欧美日韩国产三级 | 亚洲综合一区二区三区 | 国产免费精彩视频 | xxx色| 国产欧美日韩精品综合 | 亚洲色欧美 | 高清视频一区 | 日韩欧美亚 | 欧美一区在线播放 | 久久久久久久国产高清 | 亚洲精品二三区伊人久久 | 欧美日韩免费一区二区三区 | 久久久国产99久久国产久 | 边做边爱边吃奶叫床的视频 | 欧美成人中文字幕在线视频 | 在线免费观看国产精品 | 午夜香蕉视频 | 五月婷婷伊人 | 天堂精品高清1区2区3区 |