日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解

發布時間:2025/3/20 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大部分使用mysql的業務也都會開啟binlog,用以記錄數據庫的更新操作。當然binlog的格式大家也都比較清楚,分別是statement、mixed、row模式。針對row格式的binlog,它以二進制形式記錄相應的SQL,通過編輯器打開無法知道具體的SQL是什么。當然,我們也可以通過mysqlbinlog分析,但分析結果不利于我們做數據的回滾和redo。前段時間同事分享了一個小工具binlog2sql,覺得蠻有意思,湊著今天有時間裝了學習下。

一、binlog2sql簡介

binlog2sql是一開源工具,其可以從MySQL binlog解析出你要的SQL。根據不同選項,你可以得到原始SQL、回滾SQL、去除主鍵的INSERT SQL等。

主要用途如下:

(1)數據快速回滾(閃回)

(2)主從切換后數據不一致的修復

(3)從binlog生成標準SQL,帶來的衍生功能

二、binlog2sql安裝

1、binlog2sql下載

https://github.com/danfengcao/binlog2sql

2、binlog2sql依賴包安裝

python2.6+

PyMySQL==0.7.8+

wheel==0.24.0+

mysql-replication==0.9+

(1)PyMySQL-0.7.10安裝

https://pypi.python.org/pypi/PyMySQL/

[root@node1 binlogsql]# tar -xzvf PyMySQL-0.7.10.tar.gz

[root@node1 binlogsql]# cd PyMySQL-0.7.10

[root@node1 PyMySQL-0.7.10]# python setup.py install

(2)wheel-0.30.0a0安裝

https://pypi.python.org/pypi/wheel/

[root@node1 binlogsql]# tar -xzvf wheel-0.30.0a0.tar.gz

[root@node1 binlogsql]# cd wheel-0.30.0a0

[root@node1 wheel-0.30.0a0]# python setup.py install

(3)python-mysql-replication安裝

https://github.com/noplay/python-mysql-replication

[root@node1 binlogsql]# unzip python-mysql-replication-master.zip

[root@node1 binlogsql]# cd python-mysql-replication-master

[root@node1 python-mysql-replication-master]# python setup.py? install

(4)可以通過pip安裝相應的依賴包

https://pypi.python.org/pypi/pip

[root@node1 tools]# tar -xzvf pip-9.0.1.tar.gz

[root@node1 tools]# cd pip-9.0.1

[root@node1 pip-9.0.1]# python setup.py install

[root@node1 binlog2sql-master]# pip install? -r requirements.txt

3、binlog2sql安裝

直接下載解壓縮即可,運行相應的py腳本

[root@node1 tools]# unzip binlog2sql-master.zip

[root@node1 tools]# cd binlog2sql-master

設置別名,方便命令調用:

alias binlog2sql='python /tools/binlogsql/binlog2sql-master/binlog2sql/binlog2sql.py'

三、binlog2sql使用1、binlog2sql幫助手冊

[root@node1 binlog2sql]# binlog2sql? --help

usage: binlog2sql.py [-h HOST] [-u USER] [-p PASSWORD] [-P PORT]

[--start-file STARTFILE] [--start-position STARTPOS]

[--stop-file ENDFILE] [--stop-position ENDPOS]

[--start-datetime STARTTIME] [--stop-datetime STOPTIME]

[--stop-never] [--help] [-d [DATABASES [DATABASES ...]]]

[-t [TABLES [TABLES ...]]] [-K] [-B]

Parse MySQL binlog to SQL you want

optional arguments:

--stop-never????????? Wait for more data from the server. default: stop

replicate at the last binlog when you start binlog2sql?##持續同步binlog。可選。不加則同步至執行命令時最新的binlog位置

--help??????????????? help infomation

-K, --no-primary-key? Generate insert sql without primary key if exists##對INSERT語句去除主鍵。可選。

-B, --flashback?????? Flashback data to start_postition of start_file ##生成回滾語句,可解析大文件,不受內存限制,每打印一千行加一句SLEEP SELECT(1)。可選。與stop-never或no-primary-key不能同時添加。

connect setting:

-h HOST, --host HOST? Host the MySQL database server located

-u USER, --user USER? MySQL Username to log in as

-p PASSWORD, --password PASSWORD

MySQL Password to use

-P PORT, --port PORT? MySQL port to use

range filter:

--start-file STARTFILE

Start binlog file to be parsed? ##起始解析文件。必須。

--start-position STARTPOS, --start-pos STARTPOS##start-file的起始解析位置。可選。默認為start-file的起始位置。

Start position of the --start-file

--stop-file ENDFILE, --end-file ENDFILE???????????##末尾解析文件。可選。默認為start-file同一個文件。若解析模式為stop-never,此選項失效。

Stop binlog file to be parsed. default: '--start-file'

--stop-position ENDPOS, --end-pos ENDPOS??? ##stop-file的末尾解析位置。可選。默認為stop-file的最末位置;若解析模式為stop-never,此選項失效。

Stop position of --stop-file. default: latest position

of '--stop-file'

--start-datetime STARTTIME

Start reading the binlog at first event having a

datetime equal or posterior to the argument; the

argument must be a date and time in the local time

zone, in any format accepted by the MySQL server for

DATETIME and TIMESTAMP types, for example: 2004-12-25

11:25:56 (you should probably use quotes for your

shell to set it properly).##從哪個時間點的binlog開始解析,格式必須為datetime,如'2016-11-11 11:11:11'。可選。默認不過濾。

--stop-datetime STOPTIME

Stop reading the binlog at first event having a

datetime equal or posterior to the argument; the

argument must be a date and time in the local time

zone, in any format accepted by the MySQL server for

DATETIME and TIMESTAMP types, for example: 2004-12-25

11:25:56 (you should probably use quotes for your

shell to set it properly).?##到哪個時間點的binlog停止解析,格式必須為datetime,如'2016-11-11 11:11:11'。可選。默認不過濾。

schema filter:

-d [DATABASES [DATABASES ...]], --databases [DATABASES [DATABASES ...]]

dbs you want to process?##只輸出目標db的sql。可選。默認為空。

-t [TABLES [TABLES ...]], --tables [TABLES [TABLES ...]]

tables you want to process? ##只輸出目標tables的sql。可選。默認為空。

2、binlog2sql要求mysql配置參數需包括以下內容[mysqld]

log-bin-index = /home/mysql/bin-index

max_binlog_size = 1G

binlog_format = row

binlog_row_image = full

log-bin = /home/mysql/mysql-bin

3、binlog2sql解析binlog案例

(1)解析某個binlog全部內容

點擊(此處)折疊或打開

##構造binlog內容

(root:localhost:Wed Mar 15 11:45:32 2017)[(none)]>flush logs;

Query OK, 0 rows affected (0.00 sec)

(root:localhost:Wed Mar 15 11:45:36 2017)[(none)]>show master status \G

*************************** 1. row ***************************

File: mysql-bin.000028

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

(root:localhost:Wed Mar 15 11:45:40 2017)[(none)]>use dbtest;

Database changed

(root:localhost:Wed Mar 15 11:46:53 2017)[dbtest]>show tables;

+------------------+

| Tables_in_dbtest |

+------------------+

| T |

| T1 |

| t |

| t1 |

| t2 |

+------------------+

5 rows in set (0.00 sec)

(root:localhost:Wed Mar 15 11:46:54 2017)[dbtest]>drop table t1;

Query OK, 0 rows affected (0.00 sec)

(root:localhost:Wed Mar 15 11:46:57 2017)[dbtest]>drop table T;

Query OK, 0 rows affected (0.01 sec)

(root:localhost:Wed Mar 15 11:47:01 2017)[dbtest]>drop table T1;

Query OK, 0 rows affected (0.01 sec)

(root:localhost:Wed Mar 15 11:47:02 2017)[dbtest]>show tables;

+------------------+

| Tables_in_dbtest |

+------------------+

| t |

| t2 |

+------------------+

2 rows in set (0.00 sec)

(root:localhost:Wed Mar 15 11:47:07 2017)[dbtest]>drop table t2;

Query OK, 0 rows affected (0.00 sec)

(root:localhost:Wed Mar 15 11:47:12 2017)[dbtest]>create table t1 select * from t;

Query OK, 0 rows affected (0.02 sec)

Records: 0 Duplicates: 0 Warnings: 0

(root:localhost:Wed Mar 15 11:47:20 2017)[dbtest]>select * from t;

Empty set (0.00 sec)

(root:localhost:Wed Mar 15 11:47:23 2017)[dbtest]>desc t;

+-------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+-------+

| id | int(11) | YES | | NULL | |

+-------+---------+------+-----+---------+-------+

1 row in set (0.00 sec)

(root:localhost:Wed Mar 15 11:47:27 2017)[dbtest]>insert into t values(1),(2),(3);

Query OK, 3 rows affected (0.01 sec)

Records: 3 Duplicates: 0 Warnings: 0

(root:localhost:Wed Mar 15 11:47:38 2017)[dbtest]>insert into t1 select * from t;

Query OK, 3 rows affected (0.00 sec)

Records: 3 Duplicates: 0 Warnings: 0

(root:localhost:Wed Mar 15 11:47:45 2017)[dbtest]>update t1 set id='11' where id<10;

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3 Changed: 3 Warnings: 0

(root:localhost:Wed Mar 15 11:48:12 2017)[dbtest]>show master status \G

*************************** 1. row ***************************

File: mysql-bin.000028

Position: 38968

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

正常語句是:python binlog2sql.py? -h10.1.0.10 -P3306 -udb_user -p'abc.123' -ddbtest? --start-file='mysql-bin.000028'

由于上文做了binlog2sql別名,這里可以通過別名直接調用命令:

[root@node1 binlog2sql]#? binlog2sql -h10.1.0.10 -P3306 -udb_user -p'abc.123' -ddbtest? --start-file='mysql-bin.000028'

USE dbtest;

DROP TABLE `t1` /* generated by server */;

USE dbtest;

DROP TABLE `T` /* generated by server */;

USE dbtest;

DROP TABLE `T1` /* generated by server */;

USE dbtest;

DROP TABLE `t2` /* generated by server */;

USE dbtest;

CREATE TABLE `t1` (

`id` int(11) DEFAULT NULL

);

INSERT INTO `dbtest`.`t`(`id`) VALUES (1); #start 35104 end 35274 time 2017-03-15 11:47:38

INSERT INTO `dbtest`.`t`(`id`) VALUES (2); #start 35104 end 35274 time 2017-03-15 11:47:38

INSERT INTO `dbtest`.`t`(`id`) VALUES (3); #start 35104 end 35274 time 2017-03-15 11:47:38

INSERT INTO `dbtest`.`t1`(`id`) VALUES (1); #start 36062 end 36233 time 2017-03-15 11:47:45

INSERT INTO `dbtest`.`t1`(`id`) VALUES (2); #start 36062 end 36233 time 2017-03-15 11:47:45

INSERT INTO `dbtest`.`t1`(`id`) VALUES (3); #start 36062 end 36233 time 2017-03-15 11:47:45

UPDATE `dbtest`.`t1` SET `id`=11 WHERE `id`=1 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

UPDATE `dbtest`.`t1` SET `id`=11 WHERE `id`=2 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

UPDATE `dbtest`.`t1` SET `id`=11 WHERE `id`=3 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

(2)解析某幾個binlog相應的表t,t1操作記錄

點擊(此處)折疊或打開

(root:localhost:Wed Mar 15 15:01:01 2017)[dbtest]>flush logs;

Query OK, 0 rows affected (0.00 sec)

(root:localhost:Wed Mar 15 15:01:09 2017)[dbtest]>show master status \G

*************************** 1. row ***************************

File: mysql-bin.000030

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

(root:localhost:Wed Mar 15 15:01:16 2017)[dbtest]>delete from t1;

Query OK, 3 rows affected (0.00 sec)

(root:localhost:Wed Mar 15 15:01:51 2017)[dbtest]>create table t2(id int);

Query OK, 0 rows affected (0.00 sec)

(root:localhost:Wed Mar 15 15:02:03 2017)[dbtest]>insert into t2 select * from t;

Query OK, 3 rows affected (0.01 sec)

Records: 3 Duplicates: 0 Warnings: 0##特別注意的是,如果值解析特定表的sql,DDL全部解析,DML過濾相應的表SQL

[root@node1 mysql]# binlog2sql? -h10.0.1.10? -P3306 -udb_user -p'abc.123' -ddbtest -t t t1 --start-file='mysql-bin.000028' --stop-file='mysql-bin.000030'

USE dbtest;

DROP TABLE `t1` /* generated by server */;

USE dbtest;

DROP TABLE `T` /* generated by server */;

USE dbtest;

DROP TABLE `T1` /* generated by server */;

USE dbtest;

DROP TABLE `t2` /* generated by server */;

USE dbtest;

CREATE TABLE `t1` (

`id` int(11) DEFAULT NULL

);

INSERT INTO `dbtest`.`t1`(`id`) VALUES (1); #start 36062 end 36233 time 2017-03-15 11:47:45

INSERT INTO `dbtest`.`t1`(`id`) VALUES (2); #start 36062 end 36233 time 2017-03-15 11:47:45

INSERT INTO `dbtest`.`t1`(`id`) VALUES (3); #start 36062 end 36233 time 2017-03-15 11:47:45

UPDATE `dbtest`.`t1` SET `id`=11 WHERE `id`=1 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

UPDATE `dbtest`.`t1` SET `id`=11 WHERE `id`=2 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

UPDATE `dbtest`.`t1` SET `id`=11 WHERE `id`=3 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

DELETE FROM `dbtest`.`t1` WHERE `id`=11 LIMIT 1; #start 10116 end 10287 time 2017-03-15 15:01:51

DELETE FROM `dbtest`.`t1` WHERE `id`=11 LIMIT 1; #start 10116 end 10287 time 2017-03-15 15:01:51

DELETE FROM `dbtest`.`t1` WHERE `id`=11 LIMIT 1; #start 10116 end 10287 time 2017-03-15 15:01:51

USE dbtest;

create table t2(id int);(3)數據庫回滾

##通過-B或者--flashback參數解析回滾的SQL,但從解析內容看,也是只解析DML

[root@node1 mysql]# binlog2sql --flashback?? -h10.0.1.10? -P3306 -udb_user -p'abc.123' -ddbtest -tt -tt1? --start-file='mysql-bin.000028' --stop-file='mysql-bin.000030'

INSERT INTO `dbtest`.`t1`(`id`) VALUES (11); #start 10116 end 10287 time 2017-03-15 15:01:51

INSERT INTO `dbtest`.`t1`(`id`) VALUES (11); #start 10116 end 10287 time 2017-03-15 15:01:51

INSERT INTO `dbtest`.`t1`(`id`) VALUES (11); #start 10116 end 10287 time 2017-03-15 15:01:51

UPDATE `dbtest`.`t1` SET `id`=3 WHERE `id`=11 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

UPDATE `dbtest`.`t1` SET `id`=2 WHERE `id`=11 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

UPDATE `dbtest`.`t1` SET `id`=1 WHERE `id`=11 LIMIT 1; #start 36625 end 36812 time 2017-03-15 11:48:12

DELETE FROM `dbtest`.`t1` WHERE `id`=3 LIMIT 1; #start 36062 end 36233 time 2017-03-15 11:47:45

DELETE FROM `dbtest`.`t1` WHERE `id`=2 LIMIT 1; #start 36062 end 36233 time 2017-03-15 11:47:45

DELETE FROM `dbtest`.`t1` WHERE `id`=1 LIMIT 1; #start 36062 end 36233 time 2017-03-15 11:47:45

四、知識擴展

1、binlog種類以及其優缺點

參考:(1)Statement:每一條會修改數據的sql都會記錄在binlog中。

優點:不需要記錄每一行的變化,減少了binlog日志量,節約了IO,提高性能。(相比row能節約多少性能與日志量,這個取決于應用的SQL情況,正常同一條記錄修改或者插入row格式所產生的日志量還小于Statement產生的日志量,但是考慮到如果帶條件的update操作,以及整表刪除,alter表等操作,ROW格式會產生大量日志,因此在考慮是否使用ROW格式日志時應該跟據應用的實際情況,其所產生的日志量會增加多少,以及帶來的IO性能問題。)

缺點:由于記錄的只是執行語句,為了這些語句能在slave上正確運行,因此還必須記錄每條語句在執行的時候的一些相關信息,以保證所有語句能在slave得到和在master端執行時候相同 的結果。另外mysql 的復制,像一些特定函數功能,slave可與master上要保持一致會有很多相關問題(如sleep()函數, last_insert_id(),以及user-defined functions(udf)會出現問題).使用以下函數的語句也無法被復制:LOAD_FILE()、UUID()、USER()、FOUND_ROWS()、SYSDATE() (除非啟動時啟用了 --sysdate-is-now 選項),同時在INSERT ...SELECT 會產生比 RBR 更多的行級鎖

(2)Row:不記錄sql語句上下文相關信息,僅保存哪條記錄被修改。

優點: binlog中可以不記錄執行的sql語句的上下文相關的信息,僅需要記錄那一條記錄被修改成什么了。所以rowlevel的日志內容會非常清楚的記錄下每一行數據修改的細節。而且不會出現某些特定情況下的存儲過程,或function,以及trigger的調用和觸發無法被正確復制的問題

缺點:所有的執行的語句當記錄到日志中的時候,都將以每行記錄的修改來記錄,這樣可能會產生大量的日志內容,比如一條update語句,修改多條記錄,則binlog中每一條修改都會有記錄,這樣造成binlog日志量會很大,特別是當執行alter table之類的語句的時候,由于表結構修改,每條記錄都發生改變,那么該表每一條記錄都會記錄到日志中。

(3)Mixed: 是以上兩種level的混合使用,一般的語句修改使用statment格式保存binlog,如一些函數,statement無法完成主從復制的操作,則采用row格式保存binlog,MySQL會根據執行的每一條具體的sql語句來區分對待記錄的日志形式,也就是在Statement和Row之間選擇一種.新版本的MySQL中隊row level模式也被做了優化,并不是所有的修改都會以row level來記錄,像遇到表結構變更的時候就會以statement模式來記錄。至于update或者delete等修改數據的語句,還是會記錄所有行的變更。

2、binlog相關配置參數

log_bin:設置此參數表示啟用binlog功能,并指定路徑名稱

log_bin_index:設置此參數是指定二進制索引文件的路徑與名稱

binlog_do_db:此參數表示只記錄指定數據庫的二進制日志

binlog_ignore_db:此參數表示不記錄指定的數據庫的二進制日志

max_binlog_cache_size:此參數表示binlog使用的內存最大的尺寸

binlog_cache_size:此參數表示binlog使用的內存大小,可以通過狀態變量binlog_cache_use和binlog_cache_disk_use來幫助測試。

binlog_cache_use:使用二進制日志緩存的事務數量

binlog_cache_disk_use:使用二進制日志緩存但超過binlog_cache_size值并使用臨時文件來保存事務中的語句的事務數量

max_binlog_size:Binlog最大值,最大和默認值是1GB,該設置并不能嚴格控制Binlog的大小,尤其是Binlog比較靠近最大值而又遇到一個比較大事務時,為了保證事務的完整性,不可能做切換日志的動作,只能將該事務的所有SQL都記錄進當前日志,直到事務結束

sync_binlog:這個參數直接影響mysql的性能和完整性。sync_binlog=0表示當事務提交后,Mysql僅僅是將binlog_cache中的數據寫入Binlog文件,但不執行fsync之類的磁盤 同步指令通知文件系統將緩存刷新到磁盤,而讓Filesystem自行決定什么時候來做同步,這個是性能最好的。sync_binlog=n,在進行n次事務提交以后,Mysql將執行一次fsync之類的磁盤同步指令,同志文件系統將Binlog文件緩存刷新到磁盤。Mysql中默認的設置是sync_binlog=0,即不作任何強制性的磁盤刷新指令,這時性能是最好的,但風險也是最大的。一旦系統繃Crash,在文件系統緩存中的所有Binlog信息都會丟失

binlog_format:binlog日志格式,statement/row/mixed

binlog_row_image:其是在5.6之后有的參數,FULL記錄每一行的變更,minimal只記錄影響后的行,前提是row模式。

3、binlog刪除方法

reset master;?? ##刪除master的binlog

reset slave;??? ##刪除slave的中繼日志,reset slave all

purge master logs before '2016-03-15 10:00:00';? ##刪除指定日期以前的日志索引中binlog日志文件

purge master logs to 'binlog.000001';? ##刪除指定日志文件的日志索引中binlog日志文件

4、mysqlbinlog解析row模式的binlog日志

mysqlbinlog --base64-output=decode-rows -v --start-datetime='2016-07-13 10:00:00' --stop-datetime='2016-07-13 10:40:00'? mysql-bin.0000215、主從binlog和relaylog文件內容

主庫:

File: binlog.007247?? ??? ??? ??? ??? ##主庫當前寫入的binlog文件

Position: 132941350?? ??? ??? ??? ?##主庫當前寫入的binlog文件position

從庫:

Master_Log_File: binlog.007247?? ??? ??? ?????????##從庫io thread當前讀取的主庫binlog文件

Read_Master_Log_Pos: 100309902?? ??? ??? ? ? ##從庫io thread當前讀取的主庫binlog文件的position

Relay_Log_File: mysql-relay-bin.025950?? ??? ?? ##從庫SQL thread當前寫入的relay-log文件

Relay_Log_Pos: 29008629?? ??? ??? ??? ??????????? ##從庫SQL thread當前寫入的replay-log文件的position

Relay_Master_Log_File: binlog.007243?? ??? ??? ##當前執行的replay-log對應的主庫binlog文件

Exec_Master_Log_Pos: 565883515?? ??? ??? ??? ##當前執行的binlog文件的position

Relay_Log_Space: 4395318217?? ??? ??? ????? ?? ##讀取與執行的relay-log間隔

cat relay-log.info##relay-log執行binlog信息

./mysql-relay-bin.025950?? ??? ??? ?##當前SQL thread寫入的relay-log文件

29008629?? ??? ??? ??? ??? ?##當前SQL thread寫入的relay-log文件的position

binlog.007243?? ??? ??? ??? ??? ?##當前執行的relay-log文件對應的binlog 文件

565883515?? ??? ??? ??? ??? ?##當前執行的relay-log文件對應的binlog 文件的position

cat master.info##主從同步信息記錄文件

binlog.007247?? ??? ??? ??? ??? ?##當前讀取的主庫binlog文件

372008635?? ??? ??? ??? ??? ?##當前讀取的主庫binlog文件對應的position

總結

以上是生活随笔為你收集整理的mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 午夜视频网站在线观看 | 91精品欧美一区二区三区 | 婷婷亚洲综合五月天小说 | xxxxⅹxxxhd日本8hd | 久久婷婷影院 | 大咪咪av| 婷婷综合在线观看 | 日韩国产中文字幕 | 小泽玛利亚一区二区三区视频 | 亚洲电影一区二区三区 | 一区二区三区激情 | 激情综合区| 无码一区二区三区在线 | 午夜国产福利视频 | 国产小视频在线免费观看 | 公交上高潮的丁芷晴 | 依人成人网 | 欧美激情视频一区 | 超污视频网站 | 天堂中文字幕av | 末路1997全集免费观看完整版 | 熟妇一区二区三区 | 欧美在线一二三 | 亚洲黄片一区二区 | 国产露脸无套对白在线播放 | 开心综合网| 伊人久综合 | 国产孕妇孕交大片孕 | 91精品婷婷国产综合久久蝌蚪 | 国模私拍在线观看 | 日本黄a三级三级三级 | 2020国产精品视频 | 亚洲综合色网 | 嫩模啪啪 | 黄色小视频免费网站 | 日韩av一二三区 | 一区二区三区中文视频 | 亚洲激情av | 国产网站在线看 | 中文字av | 国产极品美女高潮无套嗷嗷叫酒店 | 狠狠搞狠狠干 | 欧美亚洲精品在线观看 | 色综综| 国产天堂网 | 筱田优全部av免费观看 | 欧美人与禽性xxxxx杂性 | 国产第一页av | 国产欧美在线视频 | 国产欧美三级 | 在线播放小视频 | 午夜影院入口 | 日韩精品极品视频免费观看 | 久热精品免费视频 | xxxx视频在线 | 精品国产乱子伦一区二区 | 人妻熟女aⅴ一区二区三区汇编 | 日韩精品中文字幕在线 | 九九九在线 | 国产美女主播 | 亚洲 美腿 欧美 偷拍 | a级在线免费观看 | 少妇一级淫片免费观看 | 在线一区二区三区四区五区 | 另类亚洲激情 | 日韩电影一区二区三区 | 一级特黄aa大片免费播放 | 一久久 | 色屁屁ts人妖系列二区 | 色呦呦视频| 秋霞av鲁丝片一区二区 | 尤物国产在线 | 婷婷色av| 久久涩综合 | 中文字幕无线精品亚洲乱码一区 | 777久久久精品一区二区三区 | 欧美性福利 | 亚洲精品水蜜桃 | 一区二区三区四区精品视频 | 中文av一区二区三区 | 久久人人爽人人爽人人 | 91网站免费入口 | 中文字幕免费视频观看 | 天堂网2020| 800av免费在线观看 | 男人把女人捅爽 | 色黄大色黄女片免费中国 | 无码aⅴ精品一区二区三区 精品久久在线 | 亚洲天堂免费av | 最近中文字幕一区二区 | 音影先锋av资源 | 啪啪综合网| 宝贝乖h调教灌尿穿环 | 亚洲成人av | 在线观看成人免费 | 丁香六月激情综合 | 中文在线观看视频 | 不卡av电影在线 | 国产精品99久久久久久宅男 |