成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > MySQL是怎么保證主備一致的

MySQL是怎么保證主備一致的

熱門標(biāo)簽:智能外呼系統(tǒng)復(fù)位 400電話可以辦理嗎 外東北地圖標(biāo)注 云南電商智能外呼系統(tǒng)價(jià)格 拉卡拉外呼系統(tǒng) 臨清電話機(jī)器人 大眾點(diǎn)評星級酒店地圖標(biāo)注 高清地圖標(biāo)注道路 話務(wù)外呼系統(tǒng)怎么樣

拋出問題:大家知道 binlog 可以用來歸檔,也可以用來做主備同步,但它的內(nèi)容是什么樣的呢?為什么備庫執(zhí)行了 binlog 就可以跟主庫保持一致了呢?

MySQL 主備的基本原理

圖 1 MySQL 主備切換流程

在狀態(tài) 1 中,客戶端的讀寫都直接訪問節(jié)點(diǎn) A,而節(jié)點(diǎn) B 是 A 的備庫,只是將 A 的更新都同步過來,到本地執(zhí)行。這樣可以保持節(jié)點(diǎn) B 和 A 的數(shù)據(jù)是相同的。
當(dāng)需要切換的時(shí)候,就切成狀態(tài) 2。這時(shí)候客戶端讀寫訪問的都是節(jié)點(diǎn) B,而節(jié)點(diǎn) A 是 B 的備庫。
在狀態(tài) 1 中,雖然節(jié)點(diǎn) B 沒有被直接訪問,但是建議你把節(jié)點(diǎn) B(也就是備庫)設(shè)置成只讀(readonly)模式。這樣做,有以下幾個考慮:

  • 有時(shí)候一些運(yùn)營類的查詢語句會被放到備庫上去查,設(shè)置為只讀可以防止誤操作;
  • 防止切換邏輯有 bug,比如切換過程中出現(xiàn)雙寫,造成主備不一致;
  • 可以用 readonly 狀態(tài),來判斷節(jié)點(diǎn)的角色。

我把備庫設(shè)置成只讀了,還怎么跟主庫保持同步更新呢?
這個問題,你不用擔(dān)心。因?yàn)?readonly 設(shè)置對超級 (super) 權(quán)限用戶是無效的,而用于同步更新的線程,就擁有超級權(quán)限。

圖 2 主備流程圖

主庫接收到客戶端的更新請求后,執(zhí)行內(nèi)部事務(wù)的更新邏輯,同時(shí)寫 binlog。備庫 B 跟主庫 A 之間維持了一個長連接。主庫 A 內(nèi)部有一個線程,專門用于服務(wù)備庫 B 的這個長連接。一個事務(wù)日志同步的完整過程是這樣的:

  • 在備庫 B 上通過 change master 命令,設(shè)置主庫 A 的 IP、端口、用戶名、密碼,以及要從哪個位置開始請求 binlog,這個位置包含文件名和日志偏移量。
  • 在備庫 B 上執(zhí)行 start slave 命令,這時(shí)候備庫會啟動兩個線程,就是圖中的 io_thread 和 sql_thread。其中 io_thread 負(fù)責(zé)與主庫建立連接。
  • 主庫 A 校驗(yàn)完用戶名、密碼后,開始按照備庫 B 傳過來的位置,從本地讀取 binlog,發(fā)給 B。
  • 備庫 B 拿到 binlog 后,寫到本地文件,稱為中轉(zhuǎn)日志(relay log)。
  • sql_thread 讀取中轉(zhuǎn)日志,解析出日志里的命令,并執(zhí)行。

后來由于多線程復(fù)制方案的引入,sql_thread 演化成為了多個線程。

binlog 的三種格式對比

binlog 有兩種格式,一種是 statement,一種是 row??赡苣阍谄渌Y料上還會看到有第三種格式,叫作 mixed,其實(shí)它就是前兩種格式的混合。

mysql> CREATE TABLE t (
	id int(11) NOT NULL,
	a int(11) DEFAULT NULL,
	t_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (id),
	KEY a (a),
	KEY t_modified(t_modified)
) ENGINE=InnoDB;

insert into t values(1,1,'2018-11-13');
insert into t values(2,2,'2018-11-12');
insert into t values(3,3,'2018-11-11');
insert into t values(4,4,'2018-11-10');
insert into t values(5,5,'2018-11-09');

如果要在表中刪除一行數(shù)據(jù)的話,我們來看看這個 delete 語句的 binlog 是怎么記錄的。

mysql> delete from t /comment/  where a>=4 and t_modified='2018-11-10' limit 1;

當(dāng) binlog_format=statement 時(shí),binlog 里面記錄的就是 SQL 語句的原文。你可以用mysql> show binlog events in ‘master.000001';命令看 binlog 中的內(nèi)容。

圖 3 statement 格式 binlog 示例

現(xiàn)在,我們來看一下圖 3 的輸出結(jié)果。

  • 第一行 SET @@SESSION.GTID_NEXT='ANONYMOUS'你可以先忽略,后面文章我們會在介紹主備切換的時(shí)候再提到;
  • 第二行是一個 BEGIN,跟第四行的 commit 對應(yīng),表示中間是一個事務(wù);
  • 第三行就是真實(shí)執(zhí)行的語句了??梢钥吹剑谡鎸?shí)執(zhí)行的 delete 命令之前,還有一個“use ‘test'”命令。這條命令不是我們主動執(zhí)行的,而是 MySQL 根據(jù)當(dāng)前要操作的表所在的數(shù)據(jù)庫,自行添加的。這樣做可以保證日志傳到備庫去執(zhí)行的時(shí)候,不論當(dāng)前的工作線程在哪個庫里,都能夠正確地更新到 test 庫的表 t。
  • use 'test'命令之后的 delete 語句,就是我們輸入的 SQL 原文了。可以看到,binlog“忠實(shí)”地記錄了 SQL 命令,甚至連注釋也一并記錄了。
  • 最后一行是一個 COMMIT。你可以看到里面寫著 xid=61。

為了說明 statement 和 row 格式的區(qū)別,我們來看一下這條 delete 命令的執(zhí)行效果圖:

圖 4 delete 執(zhí)行 warnings

運(yùn)行這條 delete 命令產(chǎn)生了一個 warning,原因是當(dāng)前 binlog 設(shè)置的是 statement 格式,并且語句中有 limit,所以這個命令可能是 unsafe 的。為什么這么說呢?這是因?yàn)?delete 帶 limit,很可能會出現(xiàn)主備數(shù)據(jù)不一致的情況。

如果 delete 語句使用的是索引 a,那么會根據(jù)索引 a 找到第一個滿足條件的行,也就是說刪除的是 a=4 這一行;
但如果使用的是索引 t_modified,那么刪除的就是 t_modified='2018-11-09'也就是 a=5 這一行。

由于 statement 格式下,記錄到 binlog 里的是語句原文,因此可能會出現(xiàn)這樣一種情況:在主庫執(zhí)行這條 SQL 語句的時(shí)候,用的是索引 a;而在備庫執(zhí)行這條 SQL 語句的時(shí)候,卻使用了索引 t_modified。因此,MySQL 認(rèn)為這樣寫是有風(fēng)險(xiǎn)的

如果我把 binlog 的格式改為 binlog_format=‘row', 是不是就沒有這個問題了呢?

圖 5 row 格式 binlog 示例

與 statement 格式的 binlog 相比,前后的 BEGIN 和 COMMIT 是一樣的。但是,row 格式的 binlog 里沒有了 SQL 語句的原文,而是替換成了兩個 event:Table_map 和 Delete_rows。

  • Table_map event,用于說明接下來要操作的表是 test 庫的表 t;
  • Delete_rows event,用于定義刪除的行為。

借助 mysqlbinlog 工具,用下面這個命令解析和查看 binlog 中的內(nèi)容。這個事務(wù)的 binlog 是從 8900 這個位置開始的,所以可以用 start-position 參數(shù)來指定從這個位置的日志開始解析。

mysqlbinlog  -vv data/master.000001 --start-position=8900;

圖 6 row 格式 binlog 示例的詳細(xì)信息

從這個圖中,我們可以看到以下幾個信息:

  • server id 1,表示這個事務(wù)是在 server_id=1 的這個庫上執(zhí)行的。
  • 每個 event 都有 CRC32 的值,這是因?yàn)槲野褏?shù) binlog_checksum 設(shè)置成了 CRC32。
  • Table_map event 跟在圖 5 中看到的相同,顯示了接下來要打開的表,map 到數(shù)字 226?,F(xiàn)在我們這條 SQL 語句只操作了一張表,如果要操作多張表呢?每個表都有一個對應(yīng)的 Table_map event、都會 map 到一個單獨(dú)的數(shù)字,用于區(qū)分對不同表的操作。
  • 我們在 mysqlbinlog 的命令中,使用了 -vv 參數(shù)是為了把內(nèi)容都解析出來,所以從結(jié)果里面可以看到各個字段的值(比如,@1=4、 @2=4 這些值)。
  • binlog_row_image 的默認(rèn)配置是 FULL,因此 Delete_event 里面,包含了刪掉的行的所有字段的值。如果把binlog_row_image 設(shè)置為 MINIMAL,則只會記錄必要的信息,在這個例子里,就是只會記錄 id=4 這個信息。

最后的 Xid event,用于表示事務(wù)被正確地提交了。

binlog_format 使用 row 格式的時(shí)候,binlog 里面記錄了真實(shí)刪除行的主鍵 id,這樣 binlog 傳到備庫去的時(shí)候,就肯定會刪除 id=4 的行,不會有主備刪除不同行的問題

為什么會有 mixed 格式的 binlog?

因?yàn)橛行?statement 格式的 binlog 可能會導(dǎo)致主備不一致,所以要使用 row 格式

row 格式的缺點(diǎn)是,很占空間。比如你用一個 delete 語句刪掉 10 萬行數(shù)據(jù),用 statement 的話就是一個 SQL 語句被記錄到 binlog 中,占用幾十個字節(jié)的空間。但如果用 row 格式的 binlog,就要把這 10 萬條記錄都寫到 binlog 中。這樣做,不僅會占用更大的空間,同時(shí)寫 binlog 也要耗費(fèi) IO 資源,影響執(zhí)行速度。

所以,MySQL 就取了個折中方案,也就是有了 mixed 格式的 binlog。mixed 格式的意思是,MySQL 自己會判斷這條 SQL 語句是否可能引起主備不一致,如果有可能,就用 row 格式,否則就用 statement 格式。 也就是說,mixed 格式可以利用 statment 格式的優(yōu)點(diǎn),同時(shí)又避免了數(shù)據(jù)不一致的風(fēng)險(xiǎn)。

現(xiàn)在越來越多的場景要求把 MySQL 的 binlog 格式設(shè)置成 row。這么做的理由有很多,舉一個可以直接看出來的好處:恢復(fù)數(shù)據(jù)。

我們就分別從 delete、insert 和 update 這三種 SQL 語句的角度,來看看數(shù)據(jù)恢復(fù)的問題。

  • 通過圖 6 你可以看出來,即使我執(zhí)行的是 delete 語句,row 格式的 binlog 也會把被刪掉的行的整行信息保存起來。所以,如果你在執(zhí)行完一條 delete 語句以后,發(fā)現(xiàn)刪錯數(shù)據(jù)了,可以直接把 binlog 中記錄的 delete 語句轉(zhuǎn)成 insert,把被錯刪的數(shù)據(jù)插入回去就可以恢復(fù)了。
  • 如果你是執(zhí)行錯了 insert 語句呢?那就更直接了。row 格式下,insert 語句的 binlog 里會記錄所有的字段信息,這些信息可以用來精確定位剛剛被插入的那一行。這時(shí),你直接把 insert 語句轉(zhuǎn)成 delete 語句,刪除掉這被誤插入的一行數(shù)據(jù)就可以了。
  • 如果執(zhí)行的是 update 語句的話,binlog 里面會記錄修改前整行的數(shù)據(jù)和修改后的整行數(shù)據(jù)。所以,如果你誤執(zhí)行了 update 語句的話,只需要把這個 event 前后的兩行信息對調(diào)一下,再去數(shù)據(jù)庫里面執(zhí)行,就能恢復(fù)這個更新操作了。

由 delete、insert 或者 update 語句導(dǎo)致的數(shù)據(jù)操作錯誤,需要恢復(fù)到操作之前狀態(tài)的情況,也時(shí)有發(fā)生。MariaDB 的Flashback工具就是基于上面介紹的原理來回滾數(shù)據(jù)的。

mysql> insert into t values(10,10, now());

把 binlog 格式設(shè)置為 mixed,你覺得 MySQL 會把它記錄為 row 格式還是 statement 格式呢?

圖 7 mixed 格式和 now()

MySQL 用的居然是 statement 格式。接下來,我們再用 mysqlbinlog 工具來看看:

圖 8 TIMESTAMP 命令

原來 binlog 在記錄 event 的時(shí)候,多記了一條命令:SET TIMESTAMP=1546103491。它用 SET TIMESTAMP 命令約定了接下來的 now() 函數(shù)的返回時(shí)間。通過這條 SET TIMESTAMP 命令,MySQL 就確保了主備數(shù)據(jù)的一致性。

重放 binlog 數(shù)據(jù)的時(shí)候,是這么做的:用 mysqlbinlog 解析出日志,然后把里面的 statement 語句直接拷貝出來執(zhí)行。
你現(xiàn)在知道了,這個方法是有風(fēng)險(xiǎn)的。因?yàn)橛行┱Z句的執(zhí)行結(jié)果是依賴于上下文命令的,直接執(zhí)行的結(jié)果很可能是錯誤的。

所以,用 binlog 來恢復(fù)數(shù)據(jù)的標(biāo)準(zhǔn)做法是,用 mysqlbinlog 工具解析出來,然后把解析結(jié)果整個發(fā)給 MySQL 執(zhí)行。類似下面的命令:

mysqlbinlog master.000001  --start-position=2738 --stop-position=2942 | mysql -h127.0.0.1 -P13000 -u$user -p$pwd;

這個命令的意思是,將 master.000001 文件里面從第 2738 字節(jié)到第 2942 字節(jié)中間這段內(nèi)容解析出來,放到 MySQL 去執(zhí)行。

循環(huán)復(fù)制問題

binlog 的特性確保了在備庫執(zhí)行相同的 binlog,可以得到與主庫相同的狀態(tài)。我們可以認(rèn)為正常情況下主備的數(shù)據(jù)是一致的。也就是說,圖 1 中 A、B 兩個節(jié)點(diǎn)的內(nèi)容是一致的。其實(shí),圖 1 中我畫的是 M-S 結(jié)構(gòu),但實(shí)際生產(chǎn)上使用比較多的是雙 M 結(jié)構(gòu),也就是圖 9 所示的主備切換流程。

圖 9 MySQL 主備切換流程 -- 雙 M 結(jié)構(gòu)

節(jié)點(diǎn) A 和 B 之間總是互為主備關(guān)系。這樣在切換的時(shí)候就不用再修改主備關(guān)系。

但是,雙 M 結(jié)構(gòu)還有一個問題需要解決。

業(yè)務(wù)邏輯在節(jié)點(diǎn) A 上更新了一條語句,然后再把生成的 binlog 發(fā)給節(jié)點(diǎn) B,節(jié)點(diǎn) B 執(zhí)行完這條更新語句后也會生成 binlog。(我建議你把參數(shù) log_slave_updates 設(shè)置為 on,表示備庫執(zhí)行 relay log 后生成 binlog)。

那么,如果節(jié)點(diǎn) A 同時(shí)是節(jié)點(diǎn) B 的備庫,相當(dāng)于又把節(jié)點(diǎn) B 新生成的 binlog 拿過來執(zhí)行了一次,然后節(jié)點(diǎn) A 和 B 間,會不斷地循環(huán)執(zhí)行這個更新語句,也就是循環(huán)復(fù)制了。這個要怎么解決呢

從上面的圖 6 中可以看到,MySQL 在 binlog 中記錄了這個命令第一次執(zhí)行時(shí)所在實(shí)例的 server id。因此,我們可以用下面的邏輯,來解決兩個節(jié)點(diǎn)間的循環(huán)復(fù)制的問題:

  • 規(guī)定兩個庫的 server id 必須不同,如果相同,則它們之間不能設(shè)定為主備關(guān)系;
  • 一個備庫接到 binlog 并在重放的過程中,生成與原 binlog 的 server id 相同的新的 binlog;
  • 每個庫在收到從自己的主庫發(fā)過來的日志后,先判斷 server id,如果跟自己的相同,表示這個日志是自己生成的,就直接丟棄這個日志。

按照這個邏輯,如果我們設(shè)置了雙 M 結(jié)構(gòu),日志的執(zhí)行流就會變成這樣:

  • 從節(jié)點(diǎn) A 更新的事務(wù),binlog 里面記的都是 A 的 server id;
  • 傳到節(jié)點(diǎn) B 執(zhí)行一次以后,節(jié)點(diǎn) B 生成的 binlog 的 server id 也是 A 的 server id;
  • 再傳回給節(jié)點(diǎn) A,A 判斷到這個 server id 與自己的相同,就不會再處理這個日志。所以,死循環(huán)在這里就斷掉了。

總結(jié):

到此這篇關(guān)于MySQL是怎么保證主備一致的的文章就介紹到這了,更多相關(guān)MySQL是怎么保證主備一致的內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL GTID主備不一致的修復(fù)方案

標(biāo)簽:揚(yáng)州 定西 三明 無錫 山西 阿里 溫州 福州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL是怎么保證主備一致的》,本文關(guān)鍵詞  MySQL,是,怎么,保證,主備,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL是怎么保證主備一致的》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL是怎么保證主備一致的的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    一级欧洲+日本+国产| 91色在线播放| 亲爱的老师6电影韩剧| 国产成人8x视频一区二区| 黄色激情在线视频| 亚洲精品日韩在线观看| 中文字幕国产一区二区| 日韩伦理电影网站| 伊人国产在线观看| 性高湖久久久久久久久aaaaa| 天天操夜夜操天天射| 毛片在线播放视频| 国产男女猛烈无遮挡91| 色香阁99久久精品久久久| 国产女人18毛片水真多18精品| 人交獸av完整版在线观看| 欧美最猛性xxxxx喷水| heisi视频网在线观看| 日韩欧美激情视频| 国产亚洲依依| 日本成人看片网址| 国产无套粉嫩白浆内谢| 国产区精品视频在线观看豆花| 特黄毛片在线观看| www.4hu95.com四虎| 精品国产a一区二区三区v免费| 日韩黄色在线视频| 亚洲第一区第二区第三区| 国产精品久久久久一区| 精品推荐国产麻豆剧传媒| 免费成人av网站| 综合久久av| 久热精品在线播放| 911美女片黄在线观看游戏| 成人午夜精品在线| www.国产精品一区| 欧美日韩免费观看一区三区| 欧美综合久久久| 最新电影电视剧在线观看免费观看| 超薄肉色丝袜脚交一区二区| 97视频在线观看亚洲| 亚洲精品视频一二三| 精品成人av| 国产美女在线精品| 中文字幕一区二区人妻痴汉电车| 能直接看的av| 人妻一区二区视频| 成人毛片18女人毛片| www.com久久久| 成人免费观看www在线| 久久精品久久久久久国产 免费| 亚洲精品无码久久久久久久| 日本少妇bbwbbw精品| 无码人妻精品一区二区蜜桃网站| 欧美亚洲色图校园春色| 国产精品视频一区二区三区,| 可以免费在线观看的av| 欧美大片91| 国产精品毛片一区二区在线看| 久久久久国产精品一区二区| 91九色国产在线| 国产日韩v精品一区二区| 欧美猛交免费看| 超碰成人免费| 丁香花在线电影小说观看| 91短视频推广| 国产一级片免费视频| 亚洲天堂一区| 精品人妻人人做人人爽夜夜爽| 在线影院av| 天堂a√在线| 色婷婷综合缴情免费观看| 国产黄色录像视频| 四虎影视精品永久在线观看| 人人澡人人澡人人看欧美| 男人午夜视频| 欧美69精品久久久久久不卡| 男人的天堂影院| 成人av在线亚洲| 欧美一区二区三区白人| а√资源新版在线天堂| 亚洲一区在线日韩在线深爱| 国 产 黄 色 大 片| 亚洲欧美激情网| 精品中文字幕一区| 99精品久久只有精品| 一区二区三区小说| 国产99久久久国产精品潘金网站| 国产精品日韩高清| 欧美三级小视频| 毛片在线免费播放| 国产粉嫩在线观看| 国产富婆一级全黄大片| 伊人手机在线| 欧美日韩在线三级| 99草在线视频| 国产经典av| 日韩精品二区| 一级特黄妇女高潮| 天天射天天爱天天射干| 欧美精品国产一区二区| 永久免费看mv网站入口78| 偷偷看偷偷操| 动漫h在线观看| 午夜成人影视| 国产毛片aaa| 欧美特黄一区| 天堂影视av| 蜜桃一区二区三区在线观看| 国产999精品久久| free性中国hd国语露脸| 午夜国产小视频| 久操视频在线观看| 337p粉嫩大胆噜噜噜鲁| 开心九九激情九九欧美日韩精美视频电影| 狠狠操狠狠色综合网| 亚洲欧美日韩一区在线观看| 久久香蕉国产线看观看99| 欧美午夜18电影| 久久精品免费电影| 制服诱惑一区二区| 日韩亚洲视频在线观看| 无码粉嫩虎白一线天在线观看| 国产欧美精品一区二区三区-老狼| 亚洲一区精品在线观看| 日韩一二三区不卡在线视频| 日本免费三片免费观看| 午夜精品一二三区| 日韩一级免费视频| www.日韩视频| 亚洲精品一区二区口爆| 欧美白人最猛性xxxxx69交| 午夜激情视频网| 黄黄视频在线观看| gratisvideos另类灌满| 美女视频一区二区三区在线| 久久久久久国产精品日本| 九九免费精品视频在线观看| 亚洲第一成肉网| 91免费精品视频| 伊甸园亚洲一区| 91福利社在线观看| 99精品欧美一区二区三区| 中文字幕日韩在线播放| 国产高清一区二区三区| 黄色国产网站在线播放| 五月婷婷激情视频| 国产 欧美 精品| 国产美女久久精品| 男生操女生视频网站| 在线中文字日产幕| 亚洲成人黄色av| 国产寡妇树林野战在线播放| 欧美在线视频在线播放完整版免费观看| 西西444www无码大胆| 日本1区2区3区视频| 亚洲最大的成人av| 国产高清在线观看免费不卡| 国产精品永久久久久久久久久| 国产视频久久| 亚洲自拍偷拍视频| 精品视频91| 天天干天天色综合| 中文字幕网站视频在线| 亚洲一区日韩| 欧美色欧美亚洲另类七区| 久久丫精品久久丫| 99久久99久久久精品齐齐| 成人精品一区二区不卡视频| 18深夜在线观看免费视频| 国产av无码专区亚洲av毛网站| 精品伦一区二区三区| 在线观看视频99| 外国一级黄色片| 精品国产乱码久久久久久久久| 精品免费日韩av| 国产三区四区在线观看| 国产91精品看黄网站在线观看| 久久久精品人妻无码专区| 日本少妇激三级做爰在线| 青青久在线视频免费观看| 国内自拍在线观看| 国产一级黄色av| 国产老女人精品毛片久久| 欧美性生活一级片| 欧美精品精品精品精品免费| 亚洲男人天天操| 九一精品国产| 国产三级自拍视频| 国产成人午夜精品影院观看视频| 中文字幕第五页| 日本亚洲天堂网| 久久久久久久国产视频| 日韩a级片在线观看| 免费看男男www网站入口在线| 国产精品国产三级国产aⅴ浪潮| 欧美午夜不卡影院在线观看完整版免费| 日韩一区二区免费看| 九九视频精品在线观看| 欧美v亚洲v综合v国产v仙踪林| 国产精品久久久久久妇女| 欧美最顶级丰满的aⅴ艳星| 日韩欧美一中文字暮专区| 黄网址在线看| 国产精品对白交换视频| 樱花草在线观看www| 99精品国自产在线| 337p粉嫩大胆噜噜噜噜噜91av| 樱桃视频成人在线观看| 精品久久久久久久久久久久久久久久| 久久亚洲国产精品成人av秋霞| 日本一区二区三区电影免费观看| 六月激情综合网| 成a人片亚洲日本久久| 亚洲美女av在线| 亚洲成人性视频| 伊人精品成人久久综合软件| 懂色av一区二区夜夜嗨| 97精品免费视频| 亚洲福利视频一区二区| 国产精品入口免费视| 91嫩草在线视频| 天堂av最新在线| 一级片一级片一级片| 成人精品三级| 91精品视频在线免费观看| 在线这里只有精品| 手机看片国产1024| 视频亚洲一区二区| 97超碰人人草| 亚洲麻豆av| 中文在线视频| 成人黄页毛片网站| 国产一区二区三区av在线| 激情丁香综合五月| 日韩电影免费观看| 亚洲女同中文字幕| 亚洲码欧美码一区二区三区| 特大黑人娇小亚洲女mp4| 日本在线视频播放| 成人国产免费电影| 成人免费三级在线| 99久久久无码国产精品衣服| 亚洲一二区视频| 日韩国产精品久久久久久亚洲| 在线三级电影| 一区二区三区精品| 中文字幕视频一区二区三区久| 97人人模人人爽人人少妇| 欧美日韩国产一二| 日韩国产精品一区二区三区| 91美女精品网站| 老熟妇一区二区三区| 草莓视频丝瓜在线观看丝瓜18| 日韩视频一区在线| 日本高清不卡aⅴ免费网站| 99热.com| 国产成人aa在线观看网站站| 久久久精品高清| 国内不卡的一区二区三区中文字幕| 天堂网www在线中文天堂| 日韩一级免费一区| 中文字幕一区二区三三| 综合久久精品| 日韩专区一区二区| 久久久久久久久久久99999| www.欧美色图| jizzjizzjizz中国| 97在线免费视频观看| 蜜臀精品一区二区| 欧美黄页免费| 天堂在线中文视频| 91热门视频在线观看| 一区二区三区高清视频在线观看| 欧美日本一区二区高清播放视频| 欧美 变态 另类 人妖| 国产美女无遮挡网站| 亚洲综合色视频在线观看| 成人做爰69片免网站| 欧美视频在线观看| 91视频这里只有精品| 91精品国产综合久久香蕉| 青青草自拍偷拍| 奇米777日韩| 亚洲乱码国产一区三区| 日韩中文影院| 亚洲成人精品在线| 91社影院在线观看| 日本蜜桃在线观看| 日本xxxx裸体xxxx| 性少妇videosexfreexxx片| 欧日韩不卡在线视频| 免费成人看片网址| 成年人视频网站免费观看| 国产精品日韩无码| 日韩av一区二区在线影视| 在线电影一区二区三区| 亚洲小说春色综合另类电影| 99久久精品免费看国产交换| 日本三级一区二区三区| 韩剧1988免费观看全集| 久久久精品免费网站| 欧美日韩视频专区在线播放| 成人av地址| 天天天天天操| 免费男同深夜夜行网站| 亚洲美女www午夜| 亚洲天堂中文字幕在线| 精品国产欧美| 欧洲精品一区二区三区在线观看| 国产精品主播视频| 欧美激情国产精品免费| av天天在线| 亚洲综合清纯丝袜自拍| 69成人精品免费视频| 国产精品视频第一区| 日本免费一区二区三区最新| 污污视频网站在线| 黄色免费网站视频| 97久久精品人搡人人玩| 亚洲成人tv网| 国产日本欧美一区二区三区| 黄色在线播放| 亚洲一区二区色| 精品国内自产拍在线观看视频| 天天舔天天干| 日本成人在线免费视频| 国产一线在线观看|