精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Oracle服務進程如何處理用戶進程的請求?

數據庫 Oracle
本文我們主要介紹了Oracle服務進程如何處理用戶進程的請求所完成的7個任務:sql語句的解析、數據塊的讀入db buffe、記日志、為事務建立回滾段、本事務修改數據塊、放入dirty list以及用戶commit或rollback。希望能夠對您有所幫助。

Oracle服務器進程在完成用戶進程的請求過程中,主要完成如下7個任務:0.sql語句的解析;1.數據塊的讀入db buffer(寫入數據緩存);2.記日志;3.為事務建立回滾段;4.本事務修改數據塊;5.放入dirty list;6.用戶commit或rollback。接下來我們就分別來介紹一下這7個任務的相關知識,希望能夠對您有所幫助。

0.sql語句的解析

下面要講oracle服務器進程如可處理用戶進程的請求,當一用戶進程提交一個sql時:update temp set a=a*2;首先oracle服務器進程從用戶進程把信息接收到后,在PGA中就要此進程分配所需內存,存儲相關的信息,如在會話內存存儲相關的登錄信息等;

服務器進程把這個sql語句的字符轉化為ASCII等效數字碼,接著這個ASCII碼被傳遞給一個HASH函數,并返回一個hash值,然后服務器進程將到shared pool中的library cache中去查找是否存在相同的hash值,如果存在,服務器進程將使用這條語句已高速緩存在SHARED POOL的library cache中的已分析過的版本來執行,如果不存在,服務器進程將在CGA中,配合UGA內容對sql,進行語法分析,首先檢查語法的正確性,接著對語句中涉及的表,索引,視圖等對象進行解析,并對照數據字典檢查這些對象的名稱以及相關結構,并根據ORACLE選用的優化模式以及數據字典中是否存在相應對象的統計數據和是否使用了存儲大綱來生成一個執行計劃或從存儲大綱中選用一個執行計劃,然后再用數據字典核對此用戶對相應對象的執行權限,***生成一個編譯代碼。

ORACLE將這條sql語句的本身實際文本、HASH值、編譯代碼、與此語名相關聯的任何統計數據和該語句的執行計劃緩存在SHARED POOL的library cache中。服務器進程通過SHARED POOL 鎖存器(shared pool latch)來申請可以向哪些共享PL/SQL區中緩存這此內容,也就是說被SHARED POOL鎖存器鎖定的PL/SQL區中的塊不可被覆蓋,因為這些塊可能被其它進程所使用。在SQL分析階段將用到LIBRARY CACHE,從數據字典中核對表、視圖等結構的時候,需要將數據字典從磁盤讀入LIBRARY CACHE,因此,在讀入之前也要使用LIBRARY CACHE鎖存器(library cache pin,library cache lock)來申請用于緩存數據字典。

到現在為止,這個sql語句已經被編譯成可執行的代碼了,但還不知道要操作哪些數據,所以服務器進程還要為這個sql準備預處理數據。

1.數據塊的讀入db buffer

Oracle處理數據,都需要把數據讀取到內存中(即db buffer中),首先服務器進程要判斷所需數據是否在db buffer存在,如果存在且可用,則直接獲取該數據,同時根據LRU算法增加其訪問計數;如果buffer不存在所需數據,則要從數據文件上讀取。首先服務器進程將在表頭部請求TM鎖(保證此事務執行過程其他用戶不能修改表的結構),如果成功加TM鎖,再請求一些行級鎖(TX鎖),如果TM、TX鎖都成功加鎖,那么才開始從數據文件讀數據,在讀數據之前,要先為讀取的文件準備好buffer空間。服務器進程需要掃面LRU list尋找free db buffer,掃描的過程中,服務器進程會把發現的所有已經被修改過的db buffer注冊到dirty list中,

這些dirty buffer會通過dbwr的觸發條件,隨后會被寫出到數據文件,找到了足夠的空閑buffer,就可以把請求的數據行所在的數據塊放入到db buffer的空閑區域或者覆蓋已經被擠出LRU list的非臟數據塊緩沖區,并排列在LRU list的頭部,也就是在數據塊放入DB BUFFER之前也是要先申請db buffer中的鎖存器,成功加鎖后,才能讀數據到db buffer。

2.記日志

現在數據已經被讀入到db buffer了,現在服務器進程將該語句所影響的并被讀入db buffer中的這些行數據的rowid及要更新的原值和新值及scn等信息從PGA逐條的寫入redo log buffer中。在寫入redo log buffer之前也要事先請求redo log buffer的鎖存器,成功加鎖后才開始寫入,當寫入達到redo log buffer大小的三分之一或寫入量達到1M或超過三秒后或發生檢查點時或者dbwr之前發生,都會觸發lgwr進程把redo log buffer的數據寫入磁盤上的redo file文件中(這個時候會產生log file sync等待事件),已經被寫入redo file的redo log buffer所持有的鎖存器會被釋放,并可被后來的寫入信息覆蓋,redo log buffer是循環使用的。Redo file也是循環使用的,當一個redo file 寫滿后,lgwr進程會自動切換到下一redo file(這個時候可能出現log file switch(checkpoint complete)等待事件)。如果是歸檔模式,歸檔進程還要將前一個寫滿的redo file文件的內容寫到歸檔日志文件中(這個時候可能出現log file switch(archiving needed))。

3.為事務建立回滾段

在完成本事務所有相關的redo log buffer之后,服務器進程開始改寫這個db buffer的塊頭部事務列表并寫入scn,然后copy包含這個塊的頭部事務列表及scn信息的數據副本放入回滾段中,將這時回滾段中的信息稱為數據塊的“前映像“,這個”前映像“用于以后的回滾、恢復和一致性讀。(回滾段可以存儲在專門的回滾表空間中,這個表空間由一個或多個物理文件組成,并專用于回滾表空間,回滾段也可在其它表空間中的數據文件中開辟。)

4.本事務修改數據塊

準備工作都已經做好了,現在可以改寫db buffer塊的數據內容了,并在塊的頭部寫入回滾段的地址。

5. 放入dirty list

如果一個行數據多次update而未commit,則在回滾段中將會有多個“前映像“,除了***個”前映像“含有scn信息外,其他每個“前映像“的頭部都有scn信息和“前前映像”回滾段地址。一個update只對應一個scn,然后服務器進程將在dirty list中建立一條指向此db buffer塊的指針(方便dbwr進程可以找到dirty list的db buffer數據塊并寫入數據文件中)。

接著服務器進程會從數據文件中繼續讀入第二個數據塊,重復前一數據塊的動作,數據塊的讀入、記日志、建立回滾段、修改數據塊、放入dirty list。當dirty queue的長度達到閥值(一般是25%),服務器進程將通知dbwr把臟數據寫出,就是釋放db buffer上的鎖存器,騰出更多的free db buffer。前面一直都是在說明oracle一次讀一個數據塊,其實oracle可以一次讀入多個數據塊(db_file_multiblock_read_count來設置一次讀入塊的個數)

說明: 

在預處理的數據已經緩存在db buffer或剛剛被從數據文件讀入到db buffer中,就要根據sql語句的類型來決定接下來如何操作。

1>如果是select語句,則要查看db buffer塊的頭部是否有事務,如果有事務,則從回滾段中讀取數據;如果沒有事務,則比較select的scn和db buffer塊頭部的scn,如果前者小于后者,仍然要從回滾段中讀取數據;如果前者大于后者,說明這是一非臟緩存,可以直接讀取這個db buffer塊的中內容。

2>如果是DML操作,則即使在db buffer中找到一個沒有事務,而且SCN比自己小的非臟緩存數據塊,服務器進程仍然要到表的頭部對這條記錄申請加鎖,加鎖成功才能進行后續動作,如果不成功,則要等待前面的進程解鎖后才能進行動作(這個時候阻塞是tx鎖阻塞)。

6.用戶commit或rollback

到現在為止,數據已經在db buffer或數據文件中修改完成,但是否要***寫到數文件中,要由用戶來決定commit(保存更改到數據文件)和rollback(撤銷數據的更改),下面來看看在commit和rollback時,oracle都在做什么。

用戶執行commit命令

只有當sql語句所影響的所有行所在的***一個塊被讀入db buffer并且重做信息被寫入redo log buffer(僅指日志緩沖區,而不包括日志文件)之后,用戶才可以發去commit命令,commit觸發lgwr進程,但不強制立即dbwr來釋放所有相應db buffer塊的鎖(也就是no-force-at-commit,即提交不強制寫),也就是說有可能雖然已經commit了,但在隨后的一段時間內dbwr還在寫這條sql語句所涉及的數據塊。表頭部的行鎖并不在commit之后立即釋放,而是要等dbwr進程完成之后才釋放,這就可能會出現一個用戶請求另一用戶已經commit的資源不成功的現象。

A .從Commit和dbwr進程結束之間的時間很短,如果恰巧在commit之后,dbwr未結束之前斷電,因為commit之后的數據已經屬于數據文件的內容,但這部分文件沒有完全寫入到數據文件中。所以需要前滾。由于commit已經觸發lgwr,這些所有未來得及寫入數據文件的更改會在實例重啟后,由smon進程根據重做日志文件來前滾,完成之前commit未完成的工作(即把更改寫入數據文件)。

B.如果未commit就斷電了,因為數據已經在db buffer更改了,沒有commit,說明這部分數據不屬于數據文件,由于dbwr之前觸發lgwr(也就是只要數據更改,肯定要先有log),所有DBWR在數據文件上的修改都會被先一步記入重做日志文件,實例重啟后,SMON進程再根據重做日志文件來回滾。其實smon的前滾回滾是根據檢查點來完成的,當一個全部檢查點發生的時候,首先讓LGWR進程將redo log buffer中的所有緩沖(包含未提交的重做信息)寫入重做日志文件,然后讓dbwr進程將db buffer已提交的緩沖寫入數據文件(不強制寫未提交的)。然后更新控制文件和數據文件頭部的SCN,表明當前數據庫是一致的,在相鄰的兩個檢查點之間有很多事務,有提交和未提交的。像前面的前滾回滾比較完整的說法是如下的說明:

A.發生檢查點之前斷電,并且當時有一個未提交的改變正在進行,實例重啟之后,SMON進程將從上一個檢查點開始核對這個檢查點之后記錄在重做日志文件中已提交的和未提交改變,因為dbwr之前會觸發lgwr,所以dbwr對數據文件的修改一定會被先記錄在重做日志文件中。因此,斷電前被DBWN寫進數據文件的改變將通過重做日志文件中的記錄進行還原,叫做回滾,

B. 如果斷電時有一個已提交,但dbwr動作還沒有完全完成的改變存在,因為已經提交,提交會觸發lgwr進程,所以不管dbwr動作是否已完成,該語句將要影響的行及其產生的結果一定已經記錄在重做日志文件中了,則實例重啟后,SMON進程根據重做日志文件進行前滾.

實例失敗后用于恢復的時間由兩個檢查點之間的間隔大小來決定,可以通個四個參數設置檢查點執行的頻率:

Log_checkpoint_interval:決定兩個檢查點之間寫入重做日志文件的系統物理塊(redo blocks)的大小,默認值是0,無限制。

log_checkpoint_timeout: 決定了兩個檢查點之間的時間長度(秒),默認值是1800s。

fast_start_io_target:決定了用于恢復時需要處理的塊的多少,默認值是0,無限制。

fast_start_mttr_target:直接決定了用于恢復的時間的長短,默認值是0,無限制(SMON進程執行的前滾和回滾與用戶的回滾是不同的,SMON是根據重做日志文件進行前滾或回滾,而用戶的回滾一定是根據回滾段的內容進行回滾的。在這里要說一下回滾段存儲的數據,假如是delete操作,則回滾段將會記錄整個行的數據,假如是update,則回滾段只記錄被修改了的字段的變化前的數據(前映像),也就是沒有被修改的字段是不會被記錄的,假如是insert,則回滾段只記錄插入記錄的rowid。

這樣假如事務提交,那回滾段中簡單標記該事務已經提交;假如是回退,則如果操作是delete,回退的時候把回滾段中數據重新寫回數據塊,操作如果是update,則把變化前數據修改回去,操作如果是insert,則根據記錄的rowid 把該記錄刪除。)

用戶執行rollback

如果用戶rollback,則服務器進程會根據數據文件塊和DB BUFFER中塊的頭部的事務列表和SCN以及回滾段地址找到回滾段中相應的修改前的副本,并且用這些原值來還原當前數據文件中已修改但未提交的改變。如果有多個“前映像”,服務器進程會在一個“前映像”的頭部找到“前前映像”的回滾段地址,一直找到同一事務下的最早的一個“前映像”為止。一旦發出了COMMIT,用戶就不能rollback,這使得COMMIT后DBWR進程還沒有全部完成的后續動作得到了保障。到現在為例一個事務已經結束了。

說明:

TM鎖:符合lock機制的,用于保護對象的定義不被修改。

TX鎖:這個鎖代表一個事務,是行級鎖,用數據塊頭、數據記錄頭的一些字段表示,也是符合lock機制,有resource structure、lock structure、enqueue算法。

關于Oracle事務的完整流程分析的相關知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. Oracle學習筆記之DECODE及常用窗口函數
  2. Oracle數據庫各類控制語句的使用詳細介紹
  3. Oracle數據庫日期范圍查詢的兩種實現方式
  4. Oracle數據庫只讀模式的CACHE BUFFERS CHAINS測試
  5. Oracle 10g數據庫中UNDO_RETENTION參數的使用詳解
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2011-08-24 10:15:55

Oracle數據庫服務器進程

2010-11-29 14:14:29

Sybase用戶權限

2025-01-09 10:20:53

2023-10-04 07:35:03

2010-03-31 14:36:50

Oracle進程結構

2011-04-11 17:10:16

Oracle

2023-09-19 22:41:30

控制器HTTP

2010-04-06 17:52:09

Oracle SMON

2021-01-25 06:53:59

前端AJAX技術熱點

2010-11-15 12:02:24

Oracle進程結構

2010-10-29 15:54:13

Oracle后臺進程

2010-04-08 12:31:03

Oracle死鎖進程

2010-04-09 13:48:31

Oracle SMON

2010-04-13 09:29:54

Oracle SMON

2010-05-10 13:25:09

Oracle SMON

2010-05-05 16:30:25

Oracle后臺進程

2011-08-24 10:45:23

Oracle數據庫進程從屬進程

2021-01-18 05:13:04

TomcatHttp

2009-11-18 09:05:36

Oracle死鎖進程

2009-11-20 10:40:33

Oracle SMON
點贊
收藏

51CTO技術棧公眾號

日韩在线免费观看av| 东北少妇不带套对白| 国产理论视频在线观看| 午夜日韩av| 亚洲精品按摩视频| 污污网站免费看| av免费在线观看网站| 成人在线一区二区三区| 日本国产一区二区三区| 精品国产乱码久久久久久鸭王1 | 国产一区美女| 亚洲欧洲偷拍精品| 香蕉视频xxxx| 成人全视频免费观看在线看| 亚洲国产日韩综合久久精品| 色狠狠久久av五月综合| 国产香蕉在线观看| 精品一区二区三区在线播放| 91高潮精品免费porn| 国产喷水在线观看| 久操国产精品| 精品国产一区二区三区忘忧草| 亚洲欧美另类动漫| 成av人片在线观看www| 日韩一区中文字幕| 青青影院一区二区三区四区| 色婷婷av一区二区三区之红樱桃| 国产麻豆精品theporn| 国产精品av在线播放| 欧美亚韩一区二区三区| 欧美在线二区| 久久伊人精品一区二区三区| 中字幕一区二区三区乱码| 久久av国产紧身裤| 欧美成人精品高清在线播放 | 久久久久久久久久免费视频| 欧美欧美全黄| 日韩在线视频免费观看高清中文 | 国产浮力第一页| 精品一区二区三区在线观看国产 | 婷婷五月综合缴情在线视频| 日本aa在线| 亚洲欧洲美洲综合色网| 国产在线精品一区| av网站免费播放| 日日摸夜夜添夜夜添国产精品| 69影院欧美专区视频| 亚洲av鲁丝一区二区三区| 精品国产一区二区三区| 日韩av综合中文字幕| 91成人在线观看喷潮蘑菇| 日韩亚洲国产免费| 欧美性极品少妇| 国模杨依粉嫩蝴蝶150p| 免费高潮视频95在线观看网站| 亚洲人精品一区| 一区二区三区四区欧美日韩| 国产片在线观看| 久久久久国产免费免费| 国产一区二区三区四区五区在线 | 日韩 欧美一区二区三区| 美女少妇精品视频| 国产白丝一区二区三区| 欧美老女人另类| 亚洲男人第一网站| 成人手机在线免费视频| 97超碰成人| 欧美不卡一区二区三区| 国产精品果冻传媒| 在线精品视频一区| 精品国产91九色蝌蚪| 在线看黄色的网站| 99久久婷婷国产综合精品青牛牛 | 国产精品丝袜一区二区三区| 波多野结衣视频网址| 日韩福利视频网| 国产一区视频在线播放| 国产精品免费无遮挡| 久久精品国产99| 国产精品久久久久久超碰| chinese国产精品| 日本美女视频一区二区| 国产精品视频播放| 一区二区国产欧美| 久久99精品国产麻豆婷婷| 成人av在线亚洲| 国产女人爽到高潮a毛片| 国产大陆精品国产| 国产精品免费观看高清| 人人妻人人澡人人爽久久av| 91麻豆免费在线观看| 欧美一区二区三区精美影视| 黄色国产在线| 亚洲视频一区二区在线观看| 精品久久久无码人妻字幂| 成人影音在线| 一本色道亚洲精品aⅴ| 亚洲成人av免费看| 欧美一级大片在线视频| 欧美xxxx老人做受| 国产精品九九九九九| 久久理论电影| 精品视频9999| 中文字幕在线欧美| 蜜臀精品久久久久久蜜臀 | 日韩久久久久久久久| 久久久xxx| 国产精品老女人视频| 99草在线视频| 久久久精品国产99久久精品芒果| 亚洲欧美日韩精品久久久| 七七成人影院| 欧美三级日韩在线| 精产国品一二三区| 亚洲第一福利社区| 久热精品视频在线免费观看| 亚洲国产成人精品激情在线| 蜜桃av一区二区| 成人午夜电影在线播放| eeuss影院在线观看| 亚洲午夜免费视频| 精品久久久久久久无码| 99精品在免费线中文字幕网站一区 | 91亚洲精华国产精华精华液| 亚洲精品成人久久久998| 丰满大乳少妇在线观看网站| 欧美日韩综合在线| 95视频在线观看| 91亚洲人成网污www| 992tv成人免费视频| 最近中文字幕av| 成人网在线播放| 永久域名在线精品| xxxxx性欧美特大| 日韩一区二区三区av| 色哟哟精品观看| 国产综合精品| 成人免费网站在线| 东凛在线观看| 欧美视频一二三| 国产精久久久久| 在线成人激情| 国产欧美亚洲视频| 免费福利在线视频| 婷婷综合在线观看| 潘金莲一级淫片aaaaaaa| 日韩在线综合| 国产91精品不卡视频| 999久久久久| 最新欧美精品一区二区三区| 色综合天天色综合| 精品国产乱码久久久久久1区2匹| 国产69精品久久久久9| 超碰在线观看99| 亚洲欧美在线观看| 日本中文字幕观看| 不卡一区综合视频| 国产精品成人免费电影| 蜜桃视频在线免费| 欧美午夜xxx| 无码精品一区二区三区在线播放 | 国产一区二区三区四区五区入口 | 国产精品午夜免费| 亚洲天堂av线| 日韩一区三区| 国产主播精品在线| 日本三级视频在线播放| 欧美日韩专区在线| 婷婷综合在线视频| 麻豆精品视频在线观看免费| 亚洲国产一区二区三区在线播| 日本.亚洲电影| 色偷偷888欧美精品久久久 | 青青草成人在线观看| 天堂资源在线亚洲视频| 欧美日韩卡一| 久久精品国产成人| 亚洲av无码一区二区三区dv| 日韩毛片高清在线播放| 亚洲精品无码久久久久久久| 欧美日韩亚洲一区二区三区在线| 国产精品乱子乱xxxx| 超级白嫩亚洲国产第一| 亚洲欧美在线磁力| 最新中文字幕免费| 中文字幕一区二区三区在线播放 | 中国一级黄色录像| 亚洲一区 二区| 2018国产精品视频| 色呦呦中文字幕| 欧洲人成人精品| 国产中文av在线| 国产超碰在线一区| 久久久999免费视频| 米奇777超碰欧美日韩亚洲| 国产精品久久久久久久久久久不卡 | 69精品无码成人久久久久久| 国产伦精品一区二区三区在线观看| 超碰超碰超碰超碰超碰| 青青草原在线亚洲| 国产九九精品视频| 波多野结衣中文字幕久久| 亚洲第一福利网站| 国产又大又黄又爽| 亚洲成人激情综合网| www久久久久久久| 高清久久久久久| 日韩在线第三页| 你懂的成人av| 欧美日韩在线精品一区二区三区| 色综合视频一区二区三区日韩| 欧美国产中文字幕| 风间由美一区| 亚洲精品国产成人| 一级黄色片在线观看| 午夜精品久久久久久久99樱桃 | 亚洲免费福利一区| 亚洲自拍av在线| 午夜激情电影在线播放| 精品国产一区二区在线| 亚洲色图欧美视频| 日韩一区二区三区电影| 久久人人爽人人爽人人片av免费| 一区二区免费看| 成年人视频软件| 久久日一线二线三线suv| 丰满少妇一区二区三区专区| 久久精品主播| 分分操这里只有精品| 婷婷综合伊人| 欧美第一黄网| 日韩一级淫片| 国产精品对白刺激| 在线heyzo| 久久久国产91| 国产女主播在线写真| 日韩电影网在线| 性生交大片免费看女人按摩| 欧美日韩在线精品一区二区三区激情 | 成人免费一级视频| 777精品伊人久久久久大香线蕉| av网站中文字幕| 精品国产精品自拍| 国产在线视频卡一卡二| 亚洲男人的天堂av| 精品伦精品一区二区三区视频密桃 | 亚洲 欧美 精品| 亚洲国产免费av| 性生交生活影碟片| 欧美精品一二三| 97人妻人人澡人人爽人人精品| 在线免费观看日本欧美| 免费看日批视频| 欧美日韩精品中文字幕| 日韩字幕在线观看| 精品国产91久久久久久老师| 国产 日韩 欧美 成人| 亚洲永久精品大片| 青娱乐av在线| 亚洲国产wwwccc36天堂| 美女三级黄色片| 国产精品久久久久久久久免费相片 | 色欲人妻综合网| 亚洲日本va在线观看| 裸体武打性艳史| 一区二区三区四区在线播放 | 一区二区三区.www| 久久久久久久久久久网 | 欧美亚洲大片| 国产成人精品视| 日韩精品第一| 国产精品一区久久| 国内不卡的一区二区三区中文字幕| 国产精品麻豆va在线播放| 精品免费av一区二区三区| 国产精品高潮粉嫩av| 日韩一级视频| 99久久久精品免费观看国产| 成人春色在线观看免费网站| 国产亚洲一区在线播放| 天堂综合网久久| 日本一区二区在线视频观看| 久久在线视频| 黑人巨茎大战欧美白妇 | 国产亚洲黄色片| 欧美亚洲一级| 日日摸天天爽天天爽视频| 国产综合色在线视频区| 久久久无码人妻精品无码| 91丨porny丨国产入口| 九色porny自拍视频| 国产欧美视频在线观看| 糖心vlog免费在线观看| 亚洲一二三区在线观看| 中文在线第一页| 欧美一区二区三区公司| 五月婷婷狠狠干| 日韩中文在线不卡| segui88久久综合9999| 国产精品视频区1| 91精品啪在线观看国产爱臀| 久久99久久精品国产| 成人一二三区| 青青视频免费在线| 亚洲免费中文| 日本中文字幕在线不卡| 99re热这里只有精品免费视频| 日韩不卡av在线| 一区二区免费看| 国产一区二区三区中文字幕| 精品国产成人系列| 69av在线| 91高潮在线观看| 精品一区二区三区中文字幕视频| 久久精品国产美女| 亚洲一区 二区 三区| 丰满少妇被猛烈进入高清播放| 国产一区二区在线免费观看| 在线观看国产免费视频| 亚洲码国产岛国毛片在线| 亚洲 欧美 日韩 综合| 在线不卡一区二区| 青青操在线视频| 久久99久国产精品黄毛片入口| 搜成人激情视频| 国产欧美丝袜| 亚洲精品国产偷自在线观看| 丁香啪啪综合成人亚洲| 不卡一区二区三区四区| 人妻无码一区二区三区免费| 91久久精品网| 熟妇人妻一区二区三区四区 | 国产在线高清视频| 国产不卡av在线免费观看| a看欧美黄色女同性恋| 综合视频免费看| 日韩国产在线一| 国产乱了高清露脸对白| 亚洲精品国产视频| 国产精品特级毛片一区二区三区| 中文日韩在线观看| 1234区中文字幕在线观看| 91精品国产一区二区三区动漫 | 四虎影视永久免费在线观看一区二区三区| 最新国产拍偷乱拍精品 | 免费在线激情视频| 91在线视频观看| 豆国产97在线 | 亚洲| 欧美一级欧美一级在线播放| 在线观看av黄网站永久| 国产精品免费视频xxxx| 教室别恋欧美无删减版| 99热在线这里只有精品| 不卡av在线网| 国产无码精品视频| 亚洲成av人乱码色午夜| 日韩免费影院| 成人动漫视频在线观看完整版 | 亚洲性猛交xxxxwww| 免费福利视频一区二区三区| 狼狼综合久久久久综合网| 国产婷婷精品| 中国xxxx性xxxx产国| √…a在线天堂一区| 国产女人高潮毛片| 欧美日韩福利视频| 99久久香蕉| a在线视频观看| 2020日本不卡一区二区视频| 最近免费中文字幕大全免费版视频| 亚洲第一区中文99精品| 刘亦菲一区二区三区免费看| 日本不卡二区| 日本美女视频一区二区| 182在线观看视频| 日韩一区二区在线播放| 白白色在线观看| 久久婷婷开心| 国产精品久久久久久久久久妞妞| 日韩av手机在线播放| 色综合久久久久综合体桃花网| 国产在线视频你懂得| 国产欧美一区二区三区在线看 | 中日韩精品一区二区三区| 欧美色国产精品| 日本三级视频在线观看| 精品欧美一区二区三区久久久| 久久黄色网页| 久久久久久久久久97| 精品国产亚洲在线| 日韩精品美女| 亚洲综合av一区| 成人免费视频caoporn| 秋霞精品一区二区三区| 美女少妇精品视频| 亚洲欧洲av| 人妻体体内射精一区二区| 欧美日韩国产丝袜另类| aaa在线观看| 国产一区二区三区高清|