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

主頁 > 知識庫 > 淺談PostgreSQL中的孤兒文件用法(orphaned data files)

淺談PostgreSQL中的孤兒文件用法(orphaned data files)

熱門標簽:400電話申請客服 江蘇400電話辦理官方 電銷機器人能補救房產中介嗎 地圖標注要花多少錢 廣州電銷機器人公司招聘 移動外呼系統(tǒng)模擬題 天津開發(fā)區(qū)地圖標注app 電話機器人怎么換人工座席 濟南外呼網絡電話線路

創(chuàng)建一個測試表

postgres=# create table t1(a int);
CREATE TABLE
postgres=# select pg_relation_filepath('t1');
 pg_relation_filepath
----------------------
 base/75062/75297
(1 row) 
postgres=#

在操作系統(tǒng)上已經可以看到該文件。

$ ls -la $PGDATA/base/75062/75297
-rw------- 1 postgres postgres 0 Nov 9 11:11 /data/pgdata/11/data/base/75062/75297

插入一些數據:

postgres=# show segment_size;
 segment_size
--------------
 1GB
(1 row)
postgres=# insert into t1 select * from generate_series(1,100000000);
INSERT 0 100000000
postgres=#

因為segment_size的設置為1GB,磁盤上已經有了多個文件

$ ls -la $PGDATA/base/75062/75297*
-rw------- 1 postgres postgres 1073741824 Nov 9 11:19 /data/pgdata/11/data/base/75062/75297
-rw------- 1 postgres postgres 1073741824 Nov 9 11:17 /data/pgdata/11/data/base/75062/75297.1
-rw------- 1 postgres postgres 1073741824 Nov 9 11:18 /data/pgdata/11/data/base/75062/75297.2
-rw------- 1 postgres postgres 439803904 Nov 9 11:19 /data/pgdata/11/data/base/75062/75297.3
-rw------- 1 postgres postgres  917504 Nov 9 11:18 /data/pgdata/11/data/base/75062/75297_fsm

現在,開啟另一個會話(session 2)。

在session2中,啟動一個事務并創(chuàng)建一個空表,但是不提交事務:

postgres=# begin;
BEGIN
postgres=# create table t2(a int);
CREATE TABLE
postgres=# select pg_relation_filepath('t2');
 pg_relation_filepath
----------------------
 base/75062/75300
(1 row)
 
postgres=# select * from pg_backend_pid();
 pg_backend_pid
----------------
   17710
(1 row) 
postgres=#

在操作系統(tǒng)已經可以看到對應的文件:

$ ls -la $PGDATA/base/75062/75300
-rw------- 1 postgres postgres 0 Nov 9 11:23 /data/pgdata/11/data/base/75062/75300

如果這個時候,posrgresql server發(fā)生了奔潰、或者發(fā)生了oom被kill了或者session被kill了。會發(fā)生什么呢?

我們來模擬一下session被kill的場景:

$ kill -9 17710

再次在session2中執(zhí)行查詢:

postgres=# select 1;
server closed the connection unexpectedly
  This probably means the server terminated abnormally
  before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
postgres=#

這個session在事務提交之前被kill了,事務無法正常完成,但是事務已經創(chuàng)建了一個表。應該發(fā)生什么呢?事務被回滾,創(chuàng)建的表應該不存在了。

postgres=# select * from t2;
ERROR: relation "t2" does not exist
LINE 1: select * from t2;
      ^
postgres=#

這正是我們所預期的。但在操作系統(tǒng)上,文件仍然存在:

$ ls -la $PGDATA/base/75062/75300
-rw------- 1 postgres postgres 0 Nov 9 11:23 /data/pgdata/11/data/base/75062/75300

這樣,文件就成了孤兒文件(orphaned file)。

postgresql并不知道這個文件屬于哪個relation

postgres=# select relname from pg_class where oid = '75300';
 relname
---------
(0 rows) 
postgres=#

這樣,你就需要自己手動清理孤兒文件了!

假設你做了大量的數據的加載,就在加載完成之前,會話被殺死:

postgres=# begin;
BEGIN
postgres=# create table t3(a int);
CREATE TABLE
postgres=# select pg_relation_filepath('t3');
 pg_relation_filepath
----------------------
 base/75062/99528
(1 row)
 
postgres=# select * from pg_backend_pid();
 pg_backend_pid
----------------
   21988
(1 row)
 
postgres=# insert into t3 select * from generate_series(1,1000000000);
server closed the connection unexpectedly
  This probably means the server terminated abnormally
  before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.

雖然會話被kill了。但是磁盤上的空間并沒有被釋放。

$ ls -la $PGDATA/base/75062/99528*
-rw------- 1 postgres postgres 1073741824 Nov 9 11:51 /data/pgdata/11/data/base/75062/99528
-rw------- 1 postgres postgres 413777920 Nov 9 11:51 /data/pgdata/11/data/base/75062/99528.1
-rw------- 1 postgres postgres  385024 Nov 9 11:51 /data/pgdata/11/data/base/75062/99528_fsm

在最糟糕的時候,可能會占用大量的磁盤空間。那是否有什么方法去檢測這些孤兒文件呢?

你需要比較postgresql中的目錄表中的記錄和文件系統(tǒng)上信息,然后刪除這些孤兒文件。這個過程需要小心謹慎。

首先獲得你要檢測的數據庫的oid:

postgres=# select oid from pg_database where datname = 'postgres';
 oid 
-------
 75062
(1 row) 
postgres=#

這樣就可以知道文件在文件系統(tǒng)上的位置。即 $PGDATA/base/[OID_OF_THE_DATABASE]

然后,獲得孤兒文件:

postgres=# select * from pg_ls_dir ( '/data/pgdata/11/data/base/75062' ) as file where file ~ '^[0-9]*$' and file::text not in (select oid::text from pg_class );
 file 
-------
 75280
 75281
 75282
 75283
 75300
 83144
 99528
(7 rows) 
postgres=#

補充:理解postgreSQL中的prepared transactions和處理孤兒(orphans)事務

Prepared transactions是PostgreSQL的一個關鍵特性。理解該特性提供的功能和處理任何潛在的陷阱對于系統(tǒng)的維護是很關鍵的。所以,我們來深入研究一下具體什么是prepared transactions。

關于事務

在數據庫系統(tǒng)中,事務是一種處理通常包含多個語句的塊中的全部或零個語句的方法。在提交整個塊之前,該塊中語句的結果對其他事務不可見。 如果事務失敗或回滾,則對數據庫完全沒有影響。

事務依附于會話。但是,當要執(zhí)行與會話獨立的事務時(也有其他好處)。這就是“prepared transactions”的來源。

prepared transactions

prepared transaction是獨立于會話、抗崩潰、狀態(tài)維護的事務。事務的狀態(tài)存儲在磁盤上,這使得數據庫服務器即使在從崩潰中重新啟動后也可以恢復事務。在對prepared transaction執(zhí)行回滾或提交操作之前,將一直維護該事務。

PostgreSQL文檔聲明,在一個已存在的事務塊中,可以使用prepare transaction 'transaction_id‘命令創(chuàng)建一個prepared transaction。它進一步聲明該過程為兩階段提交準備了一個事務。

此外,建議應用程序或交互式會話不要使用prepared transaction。理想情況下,外部事務管理器應該跨同構或異構數據庫資源執(zhí)行原子的全局事務。

在postgreSQL中,缺省的max_prepared_transaction=0;即關閉了prepared transaction。如果你想使用prepared transaction,建議將max_prepared_transaction設置成max_connections的值。在同步的流復制standby庫上,最好將其設置的比max_connections大一點,以免standby不能接收查詢。

在任何給定的時間,你可以查看活躍狀態(tài)的prepared transactions,通過查看視圖pg_prepared_xacts。

pg_prepared_xacts視圖含有以下一些列:

#select * from pg_prepared_xacts;
 transaction | gid | prepared | owner | database
-------------+-----+----------+-------+----------
(0 rows)

1.transaction:事務id

2.gid:用戶為prepared transaction定義的名稱

3.prepared:prepared日期,創(chuàng)建事務時帶有時區(qū)的時間戳

4.owner:創(chuàng)建該prepared transaction的事務

5.database:數據庫名

創(chuàng)建prepared transaction

知道什么是prepared transaction之后,現在來看看如何創(chuàng)建一個prepared transaction。創(chuàng)建一個該事務通常需要四個步驟:

1.begin(或start transaction)

2.執(zhí)行需要的操作

3.prepare transaction

4.commit(或rollback prepared)

prepare transaction、commit prepared、或rollback prepared后面加上一個gid,可以唯一標識prepared transaction。

例如下面的代碼塊:

postgres=# begin;
BEGIN
postgres=# create table abce(id int);
CREATE TABLE
postgres=# insert into abce values(1);
INSERT 0 1
postgres=# prepare transaction 'abce_insert';
PREPARE TRANSACTION
postgres=# select * from pg_prepared_xacts;
 transaction |  gid  |   prepared   | owner | database
-------------+-------------+-------------------------------+----------+----------
  16362 | abce_insert | 2020-12-09 11:41:45.742375+08 | postgres | postgres
(1 row)
 
postgres=# commit prepared 'abce_insert';
COMMIT PREPARED
postgres=# select * from pg_prepared_xacts;
 transaction | gid | prepared | owner | database
-------------+-----+----------+-------+----------
(0 rows)
 
postgres=#

當一個含有一個或多個活躍的prepared transactions的postgresql停止了或者奔潰了,會為每個活躍的prepared transaction創(chuàng)建一個文件,在目錄pg_twophase中。

比如,我們有個prepared transaction:

postgres=# select * from pg_prepared_xacts;
 transaction |  gid  |   prepared   | owner | database
-------------+--------------+-------------------------------+----------+----------
  16363 | abce_insert2 | 2020-12-09 11:46:01.983483+08 | postgres | postgres
(1 row)
 
postgres=#

所以我沒有提交事務就停止了postgresql server。postgresql就會創(chuàng)建一個名為00003FEB的文件,對應于prepared transaction的事務id。

$ ls -l ../data/pg_twophase/
total 4
-rw------- 1 postgres postgres 220 Dec 9 11:47 00003FEB

00003FEB等價于16363。在postgresql被重啟后,在啟動日志會報如下信息:

2020-12-09 11:51:28.112 CST [963] LOG: database system was shut down at 2020-12-09 11:47:39 CST
2020-12-09 11:51:28.113 CST [963] LOG: recovering prepared transaction 16363 from shared memory
2020-12-09 11:51:28.132 CST [960] LOG: database system is ready to accept connections

如果你不希望恢復一個prepared transaction,可以簡單地刪除pg_twophase文件夾下的相應文件。

這很簡單,不是嗎?那么我們?yōu)槭裁床唤洺5厥褂盟?#63;畢竟,它提供了更高的提交操作成功的可能性。事情要是這么簡單就好了!

prepared transaction可能遇到哪些錯誤?

如果客戶端消失了,則prepared transaction可以未完成(既不提交也不回滾)。發(fā)生這種情況的原因多種多樣,包括客戶機崩潰,或者服務器崩潰導致客戶機連接被終止而無法重新連接。你實際上是依靠事務管理器來確保沒有孤立的prepared transaction。

除了崩潰之外,還有另一種原因可以使prepared transaction未完成。如果一個用于恢復的備份包含了事務的prepared階段,但是沒有包含關閉事務的階段,仍然會生成孤兒事務。

或者,DBA創(chuàng)建了一個prepared transaction,卻忘記了關閉它。

所以,如果一個prepared transaction沒有完成,又會有什么大不了的呢?

真正的問題

真正的問題是,孤兒prepared transaction繼續(xù)持有可能包含鎖的關鍵系統(tǒng)資源,或者使事務ID保持活動狀態(tài),該事務ID可能會阻止vacuum清除只對該孤兒事務可見、對其它事務不可見的死的元組。

回想一下我在上面創(chuàng)建的prepared 事務。當事務prepared,并且在提交該事務之前,如果另一個事務試圖更改該表,它將無法獲取所需的鎖并掛起,直到解決了prepared事務(提交或回滾)為止。 否則,alter命令會無限期掛起,最終,我必須發(fā)出CTRL + C來停止該命令。

postgres=# select * from pg_prepared_xacts;
 transaction |  gid  |   prepared   | owner | database
-------------+--------------+-------------------------------+----------+----------
  16363 | abce_insert2 | 2020-12-09 11:46:01.983483+08 | postgres | postgres
(1 row)
 
postgres=# alter table abce add column b int;
^CCancel request sent
ERROR: canceling statement due to user request
postgres=# select c.oid,c.relname,l.locktype,l.relation,l.mode
postgres-# from pg_class c
postgres-# inner join pg_locks l on c.oid=l.relation
postgres-# where c.relname='abce';
 oid | relname | locktype | relation |  mode  
--------+---------+----------+----------+------------------
 370883 | abce | relation | 370883 | RowExclusiveLock
(1 row)
 
postgres=#

對vacuum的阻塞可能會更嚴重,在極端情況下,會導致數據庫關閉,因為孤兒prepared事務會阻止事務id的wrap around。

發(fā)現和通知

雖然一般的預期是prepared事務在幾秒鐘內完成,但是情況并不總是這樣。一個prepared事務可能持續(xù)幾分鐘、幾小時甚至幾天。

為這些事務維護元數據本身可能是一項挑戰(zhàn)。但是,我建議設置一個術語來定義prepared事務可以存在的最大時間。例如,考慮以下的prepared事務:

postgres=# BEGIN;
BEGIN
postgres=# INSERT INTO abce VALUES(3);
INSERT 0 1
postgres=# PREPARE TRANSACTION 'abce_insert 1m';
PREPARE TRANSACTION

或者下面的事務:

postgres=# BEGIN;
BEGIN
postgres=# INSERT INTO abce VALUES(4);
INSERT 0 1
postgres=# PREPARE TRANSACTION 'abce_insert 1d';
PREPARE TRANSACTION

在這些事務名稱中,最后一部分定義事務的時間。任何超出時間的事務可以通過sql查詢輕易地找出來:

postgres=# select gid,prepared,regexp_replace(gid, '.* ', '') AS age
from pg_prepared_xacts
WHERE prepared + CAST(regexp_replace(gid, '.* ', '') AS INTERVAL)  NOW();
  gid  |   prepared   | age
----------------+-------------------------------+-----
 abce_insert 1m | 2020-12-09 13:39:01.383091+08 | 1m
(1 row)
 
postgres=#

這里就很清晰地顯示了一個不應該再有效的事務。因此,使用一個外部代理或者cron任務可以輕易找出這些事務,或者通知管理員、或者回滾事務。

在我看來,這是一種簡單而容易的方式,可以確保即使事務管理器失敗或DBA意外地留下了一個事務,也可以在你的環(huán)境中管理孤兒事務。

結論

Prepared transactions顯然是一個非常重要的功能,但是需要使用回退通知程序或清理程序仔細設置環(huán)境,以輕松確保這些事務不會不必要地占用關鍵資源,并且系統(tǒng)保持良好狀態(tài)。

PostgreSQL社區(qū)中仍在討論如何處理孤兒prepared事務。它是否成為postgresql核心的一部分尚待觀察。同時,我們需要使用外部工具來管理這些事務,或者設法解決這個問題。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PostgreSQL 對IN,EXISTS,ANY/ALL,JOIN的sql優(yōu)化方案
  • postgresql 13.1 insert into select并行查詢的實現
  • PostgreSQL 啟動失敗的解決方案
  • 解決postgresql無法遠程訪問的情況
  • 淺談Postgresql默認端口5432你所不知道的一點
  • postgresql修改完端口后直接psql連接數據庫報錯的解決
  • postgresql 實現啟動、狀態(tài)查看、關閉
  • postgresql連續(xù)歸檔及時間點恢復的操作

標簽:榆林 濮陽 杭州 寶雞 辛集 溫州 海西 昭通

巨人網絡通訊聲明:本文標題《淺談PostgreSQL中的孤兒文件用法(orphaned data files)》,本文關鍵詞  淺談,PostgreSQL,中的,孤兒,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談PostgreSQL中的孤兒文件用法(orphaned data files)》相關的同類信息!
  • 本頁收集關于淺談PostgreSQL中的孤兒文件用法(orphaned data files)的相關信息資訊供網民參考!
  • 推薦文章
    91精品国产91久久久久久密臀| 亚洲第一区在线| 国产片侵犯亲女视频播放| aⅴ在线免费观看| 国产欧美日韩亚洲精品| 欧洲精品在线视频| 激情内射人妻1区2区3区| 逼特逼视频在线观看| 变态黄色小视频网站| 一本一本a久久| 国产精品一二二区| 亚洲国产精品久久网午夜小说| 久久精品99久久香蕉国产色戒| 国产精品腿扒开做爽爽爽挤奶网站| 欧美四级电影在线观看| 水蜜桃色314在线观看| 中文字幕欧美人妻精品一区蜜臀| 午夜久久久久久久| 国产精品青青在线观看爽香蕉| 欧美a级片免费看| 久久久久无码国产精品一区李宗瑞| 日韩av一卡二卡三卡| 欧美四级电影网| 亚洲视频手机在线观看| 日韩免费一区二区三区在线播放| 国产a级黄色大片| 日韩网站在线| 日韩精品一线二线三线| 婷婷久久青草热一区二区| 在线观看欧美一区二区| 色偷偷在线观看| 国产精成人品免费观看| 69久久夜色精品国产69乱青草| 激情五月播播久久久精品| 少妇欧美激情一区二区三区| 国产第一页第二页| 国产高清不卡二三区| 国产精欧美一区二区三区蓝颜男同| 在线播放国产精品二区一二区四区| 潮喷失禁大喷水aⅴ无码| 人妻一区二区三区| 日本一区二区不卡高清更新| 亚州一区二区| av噜噜色噜噜久久| 国产成人精品av在线观| 久久久久久美女| 国产精品九九久久久久久久| 国产精品乱码一区二区三区| 国产小视频在线| 亚洲一区二区三区四区av| 一区二区中文字| 久久最新网址| 亚洲主播在线播放| 久久久噜噜噜久久人人看| www.av91| 成人蜜桃视频| 动漫美女无遮挡免费| 九色porny丨精品自拍视频| 国产特黄大片aaaa毛片| 国产亚洲色婷婷久久99精品91| 国产午夜福利100集发布| 黄色在线免费看| 欧美激情成人动漫| 欧美一级小视频| 色噜噜在线网| 美日韩中文字幕| 五月婷婷丁香六月| 白白色在线发布| 久久国产精品久久久久久久久久| 日本精品视频| 美女被人操网站| 91免费网站视频| 中文字幕视频精品一区二区三区| 97se亚洲国产综合自在线| 不卡一区视频| 久久激情久久| 亚洲999一在线观看www| 一区二区三区精品99久久| 欧美精品七区| 僵尸世界大战2 在线播放| 日本一区二区视频在线观看| 久久人人爽爽人人爽人人片av| 福利一区三区| 欧亚在线中文字幕免费| 亚洲午夜国产成人av电影男同| 国产精品三级久久久久三级| 亚洲精品国产系列| 欧美特黄一级片| 精品乱码一区内射人妻无码| 亚洲天堂二区| 国产在线不卡精品| 开心激情综合| 日韩av专区| www.污网站| 国产欧美日韩中文字幕| 中文字幕电影av| 黄色大片在线观看| 国产精品高清无码在线观看| 国产欧美一区二区三区视频| 亚洲精品成a人| 日韩一级精品视频在线观看| 日本大胆欧美| 天天鲁一鲁摸一摸爽一爽| 国产99午夜精品一区二区三区| 2018中文字幕在线| h视频在线观看免费网站| jizz性欧美10| av片在线观看免费| 青青草国产免费一区二区下载| 888av在线| 成人在线观看免费网站| 亚洲色图第四色| 成人黄色在线看| 麻豆精品一区二区| 欧美精品中文字幕一区二区| 欧美国产精品一区二区| 欧美日韩电影一区| 日本www高清| 精品久久久久久久人人人人传媒| 亚洲xxx大片| 欧美乱大交做爰xxxⅹ小说| 91精品国产经典在线观看| 久久久亚洲精华液精华液精华液| 久久久久久九九九九九| 日本边添边摸边做边爱的第三级| 亚洲欧美日韩视频一区| 国产成人一区二区三区影院在线| 三级网站视频在在线播放| 成人性生交大片免费看在线播放| 欧美日韩国产综合草草| 日韩**中文字幕毛片| 天堂中文在线8| 成人女保姆的销魂服务| 国产精品美女免费视频| 欧美xxxx做受欧美| 色丁香久综合在线久综合在线观看| 精品久久久在线观看| 欧美日韩黄色影视| 中文字幕在线播放日韩| 久久欧美肥婆一二区| 男人天堂v视频| 欧美www在线观看| 欧美午夜宅男影院| 狠狠入ady亚洲精品| 91传媒理伦片在线观看| 四季av一区二区三区免费观看| 777777av| 欧美疯狂做受xxxx富婆| 探花国产精品| 中文字幕不卡每日更新1区2区| 亚洲av毛片成人精品| 亚洲精品7777xxxx青睐| 亚洲xxx拳头交| 日韩一区二区三区精品视频| 亚洲国产精品成人综合| 亚洲精品福利在线| 第84页国产精品| 天天影视色香欲综合网天天录日日录| 久久久久久久久久看片| 国产视频中文字幕在线观看| 天天看片中文字幕| 飘雪影院手机免费高清版在线观看| 中文字幕日韩av资源站| 最近2019中文字幕第三页视频| 久久亚洲精品欧美| 亚洲国产美国国产综合一区二区| 久久精品国产99| 91超碰中文字幕久久精品| 成年女人免费v片| 狠狠狠狠狠狠狠| 亚洲一二三不卡| 无码h肉动漫在线观看| 日韩成人在线视频观看| 一区二区三区在线播放欧美| 中文字幕色一区二区| 丁香花高清在线观看完整版| 国产精品入口麻豆九色| 午夜影院久久久| 午夜精品久久久久久久久久久久久| 国产亚洲观看| 日韩大片欧美大片| 中文字幕高清在线免费播放| xxx国产精品| 国产91亚洲精品一区二区三区| 高清在线成人网| 91精品国产综合久久福利| 亚洲精品福利电影| 中文国产一区| 国产在线视精品麻豆| 色偷偷噜噜噜亚洲男人| 潘金莲一级淫片aaaaa| 在线免费观看电影网站入口| 成人免费av| 久久久久久久综合日本| 在线观看 中文字幕| www.久久色| 成人av免费看| 亚洲少妇一区二区三区| 亚洲自拍欧美色图| 欧美国产日韩精品| 狠狠88综合久久久久综合网| www.亚洲色图.com| 国产在线一区二区三区四区| 日日噜噜夜夜狠狠| 国产精品jvid在线观看| 日韩a在线播放| 色wwwwww| 日本韩国视频一区二区| 色棕色天天综合网| 草草视频在线一区二区| 久久se这里有精品| 麻豆av观看| 久久综合九色综合97婷婷| 黄色av免费观看| 欧美电影一区| 天美一区二区三区| 国产成人精品午夜| 成年人在线免费观看视频网站| 最新中文字幕在线观看视频| 欧美人与物videos另类| 久久99蜜桃精品久久久久小说| 精品999在线观看| 91人妻一区二区三区蜜臀| 亚洲成**性毛茸茸| 欧美午夜精品久久久久久超碰| 一本久久综合亚洲鲁鲁| 免费成人美女女| 美女一区网站| 黄色国产在线| 国产精品xxx电影| 中文字幕欧美三区| 日韩久久午夜影院| 国产巨乳在线观看| 国产伦精品一区二区三区免费视频| 在线不卡中文字幕播放| 日韩hmxxxx| 久久夜色精品国产亚洲aⅴ| av在线观看地址| 成人免费看片载| 午夜写真片福利电影网| 亚洲国产高清aⅴ视频| 三日本三级少妇三级99| 国产大片中文字幕| 婷婷六月综合亚洲| 国产精品香蕉av| 精品国产99国产精品| 影音先锋男人在线| 精品国产乱码久久久久久丨区2区| 91精品1区2区| 成人性生交大片免费看中文网站| 日韩欧美第一页| 99久re热视频这里只有精品6| 私人高清影院 强乱中文字| 日韩大胆人体| 国产精品视频午夜| 免费观看亚洲| 亚洲 小说 欧美 激情 另类| 亚洲男人天堂av在线| 成人写真福利网| 人妻无码中文久久久久专区| 羞羞污视频在线观看| 九九九久久久久久久| 色婷婷综合久久久久久| a4yy在线播放免费观看视频| 日本一区二区三区免费视频| 日本精品视频在线观看| 最近2019年日本中文免费字幕| 国产一区玩具在线观看| 久久亚洲综合网| 日韩一卡二卡在线观看| 亚洲图片欧美午夜| 美女网站免费看| 怡红院在线播放| 欧美成人精品3d动漫h| 最新久久zyz资源站| 国产免费一区二区三区最新6| 国产美女直播视频一区| 日本一区二区不卡| 国外成人在线直播| 欧美日韩亚洲不卡| 亚洲欧美激情视频| 亚洲欧美日韩一区成人| 自拍偷在线精品自拍偷无码专区| 国内精品久久久久久久久久久| 黄色欧美日韩| 精品无人区乱码1区2区3区免费| 手机在线观看免费av| 日韩午夜高潮| 视频1区2区3区| 在线观看成人黄色| 在线免费电影观看| 久久这里有精品15一区二区三区| 香蕉久久夜色精品国产更新时间| 色一情一区二区三区| 4k岛国日韩精品**专区| 一区二区三区免费在线看| 国产高清精品一区二区三区| 五月伊人六月| 精品少妇一二三区| av资源网在线观看| 欧美视频一区二区三区四区| 色琪琪久久se色| 欧美影视一区二区三区| 最近2019中文免费高清视频观看www99| 日本最黄视频| ass极品水嫩小美女ass| 欧美边添边摸边做边爱免费| 亚洲一区二区三区乱码aⅴ| 色综合视频二区偷拍在线| www.国产精品.com| 日韩欧美在线免费| 亚洲熟妇av一区二区三区漫画| 国产一区三区在线播放| 中文字幕av一区二区三区| 538在线观看| 欧美国产欧美综合| 九九九热视频| 亚洲精品国产偷自在线观看| 高清免费成人av| 亚洲欧美精品suv| 国产日韩欧美精品在线观看| 中文字幕佐山爱一区二区免费| 中文字幕视频一区| 色偷偷7777www人| 欧美—级a级欧美特级ar全黄| 中文字幕视频免费在线观看| 中文字幕日本三级| 1区2区视频|