精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲国产日韩综合一区| 国产精品老牛影院在线观看| 好吊色视频一区二区三区| 午夜伦理福利在线| 国产精品网站在线| 成人免费视频观看视频| 精品不卡一区二区| 久久精品国内一区二区三区水蜜桃| 日韩午夜在线影院| 日本免费一级视频| 高潮毛片在线观看| 91视频com| 亚洲aa在线观看| 久久久久久久久久久影院| 97欧美在线视频| 日韩电影免费观看在线观看| 999久久久精品视频| 高清在线视频不卡| 亚洲欧美日韩国产中文在线| 欧美性xxxx69| 黄色a在线观看| 久久99精品国产.久久久久| 91国内免费在线视频| 黄色精品视频在线观看| 亚洲人成精品久久久| 日韩欧美久久久| 久久久精品高清| 欧美自拍电影| 五月激情六月综合| 日韩一区二区高清视频| 午夜小视频在线| 久久久91精品国产一区二区三区| 91一区二区三区| 一二三区在线播放| 日韩av电影天堂| 热久久免费国产视频| 久久午夜无码鲁丝片| 天堂美国久久| 日韩在线免费视频观看| 亚洲一区二区在线免费| 精品视频在线播放一区二区三区 | 超碰在线97观看| 亚洲人成久久| 午夜精品三级视频福利| 男女羞羞免费视频| 1024精品久久久久久久久| 色婷婷av一区二区三区在线观看| 亚洲成人黄色av| 国产99久久| 亚洲欧美另类国产| 51调教丨国产调教视频| 久久国产精品免费精品3p| 日韩欧美综合在线| 在线播放国产视频| 亚洲精品一区国产| 日韩美女视频一区二区在线观看| 中文字幕55页| 一区二区在线视频观看| 精品国产一区二区三区av性色| 91大神免费观看| 日韩欧美中文在线观看| 日韩视频一区二区三区 | 国产精品高清一区二区| 欧美绝品在线观看成人午夜影视| av在线网址导航| 精品国产亚洲一区二区三区大结局| 7777精品久久久大香线蕉| 久久久久久久久久毛片| 日韩黄色av| 亚洲成色999久久网站| 精品无码国产一区二区三区51安| 神马午夜久久| 一区二区三区无码高清视频| 亚洲一二三四五六区| 亚洲高清资源在线观看| 欧美激情免费在线| 久草国产精品视频| 老牛影视一区二区三区| 国产精品丝袜一区二区三区| ,亚洲人成毛片在线播放| 国内精品久久久久影院色| 成人免费在线一区二区三区| 偷拍25位美女撒尿视频在线观看| 久久九九久久九九| 亚洲激情一区二区三区| 污视频在线看网站| 福利二区91精品bt7086| 九九热在线免费| 日韩中文字幕视频网| 日韩精品极品视频| 精品无码一区二区三区蜜臀| 在线播放一区| 国产美女久久精品| 六月婷婷中文字幕| 日本一区二区免费在线观看视频| 99精品一级欧美片免费播放| 欧美少妇精品| 制服丝袜亚洲播放| 无码人妻精品一区二区三区温州| 欧美成人milf| 欧美在线一区二区三区四| 一级黄在线观看| 99国产精品一区| 99热一区二区三区| 欧美精选视频一区二区| 精品嫩草影院久久| 9.1片黄在线观看| 在线观看一区视频| 国产欧亚日韩视频| 婷婷国产在线| 亚洲综合免费观看高清在线观看| 女人另类性混交zo| 网站一区二区| xvideos亚洲人网站| 天天干天天干天天干天天| 国产风韵犹存在线视精品| 日韩精品电影网站| av在线中出| 欧美一二三区在线观看| 性欧美丰满熟妇xxxx性仙踪林| 亚洲国产一区二区三区在线播放| 国产成人精品视频在线| 色婷婷av一区二区三区之e本道| 国产精品久久看| 成人在线免费播放视频| 国产香蕉精品| 欧美激情精品久久久久久免费印度| 一级α片免费看刺激高潮视频| 91啪亚洲精品| 欧美精品久久久久久久免费| 免费看一区二区三区| 日韩在线视频国产| 国产在线观看第一页| 久久久久久影视| 爱福利视频一区二区| 巨人精品**| 欧美精品18videos性欧美| 国产女人18毛片水18精| 国产精品福利一区| 91人人澡人人爽人人精品| 欧美日韩爱爱| 欧洲成人免费视频| 日产精品久久久久久久性色| 亚洲18色成人| 亚洲啪av永久无码精品放毛片| 欧美黄色精品| 高清一区二区三区视频| 久草在线资源站资源站| 欧美mv日韩mv| 国产精品自拍视频一区| 成人深夜在线观看| 欧美一级视频在线播放| 国内精品偷拍| 2019国产精品自在线拍国产不卡| 日本高清视频www| 欧美日韩视频在线| 国产伦精品一区二区三区妓女 | 五月天婷婷视频| 午夜伦理一区二区| 在线观看国产三级| 麻豆成人在线| 无码免费一区二区三区免费播放| 国产成人77亚洲精品www| 少妇高潮久久久久久潘金莲| 亚洲视频久久久| 亚洲免费视频成人| 亚洲一级Av无码毛片久久精品| 伊人久久大香线蕉av超碰演员| 国内精品久久久久久久果冻传媒| 忘忧草在线日韩www影院| 亚洲欧美精品中文字幕在线| 中文字幕人妻丝袜乱一区三区| 国产精品国产三级国产普通话三级 | 欧美日韩日本网| 成人免费在线观看视频| 久久久91精品| 刘亦菲毛片一区二区三区| 一本在线高清不卡dvd| 山东少妇露脸刺激对白在线| 国产一区美女在线| 免费无码毛片一区二三区| 欧美偷拍综合| 成人免费视频视频在| 亚洲电影观看| 精品国产一区二区三区久久| 欧美 日韩 国产 精品| 色婷婷久久久综合中文字幕 | a天堂视频在线观看| 天堂蜜桃91精品| 国产一二三四五| 嫩草国产精品入口| 成人国产在线激情| 菠萝蜜视频在线观看www入口| 一区二区三区日韩在线| 亚洲国产精品18久久久久久| 一本大道av一区二区在线播放| 男人av资源站| wwww国产精品欧美| 午夜xxxxx| 久久久久国产精品一区三寸| 喜爱夜蒲2在线| 九九亚洲视频| 99久热re在线精品996热视频| 大胆人体一区| 午夜精品久久17c| 色综合久久影院| 日韩av影院在线观看| jizz国产视频| 欧美日精品一区视频| 日本免费观看视| 亚洲欧美日韩在线播放| 舐め犯し波多野结衣在线观看| 成人免费三级在线| 国产乱叫456| 日本视频在线一区| 免费av观看网址| 欧美国产三级| 日本三级福利片| 日韩精品永久网址| 茄子视频成人在线观看| 国产亚洲成av人片在线观黄桃| 91久久精品国产91久久| ww久久综合久中文字幕| 91av在线免费观看| 久久香蕉av| 另类色图亚洲色图| 免费在线午夜视频| 一本色道久久88综合亚洲精品ⅰ| 天天操天天插天天射| 欧美va天堂va视频va在线| 国产欧美一级片| 777xxx欧美| 88av在线视频| 91精品国产综合久久蜜臀| 91精品视频免费在线观看| 欧美视频日韩视频在线观看| 精品国产午夜福利| 一本到不卡免费一区二区| 国语对白永久免费| 欧美视频裸体精品| 欧美三级韩国三级日本三斤在线观看| 亚洲自拍偷拍av| 青青草手机在线视频| 一区二区三区四区视频精品免费 | 麻豆mv在线看| 国模叶桐国产精品一区| 96av在线| 91av在线播放视频| 日韩免费电影| 国产精品扒开腿做爽爽爽男男 | 亚洲妇熟xxxx妇色黄| 久久精品久久久久电影| 高清全集视频免费在线| 欧美福利小视频| 97蜜桃久久| 欧美一区二区.| 欧美日韩尤物久久| 国产精品美女免费视频| 在线高清欧美| 99在线观看视频| 另类尿喷潮videofree| 另类小说综合网| 成人免费av| ijzzijzzij亚洲大全| 欧美三级在线| 伊人成色综合网| 香蕉av777xxx色综合一区| 国产一区亚洲二区三区| 日本不卡在线视频| 在线看免费毛片| 成人性生交大片免费看中文| 亚洲一区二区三区综合| 国产女人aaa级久久久级| 欧美一级特黄高清视频| 亚洲一区在线播放| 麻豆精品久久久久久久99蜜桃| 欧美色图第一页| 精品国产无码AV| 日韩高清中文字幕| 日本在线人成| 海角国产乱辈乱精品视频| 欧美成人免费电影| 国产伦精品免费视频| 狠狠一区二区三区| 亚洲高清视频一区二区| 国内自拍视频一区二区三区| 久久久久久久久久久99| 日av在线不卡| 荫蒂被男人添免费视频| 国产精品欧美极品| 国产一级大片在线观看| 91久久国产综合久久| 成人av手机在线| 亚洲性夜色噜噜噜7777| 亚洲精品一线| 国产精品丝袜久久久久久高清| 国产66精品| 亚洲欧美日韩精品在线| 亚洲伦伦在线| 国产又粗又长又爽又黄的视频| 91丨九色丨黑人外教| 污污的视频在线免费观看| 岛国av一区二区三区| 国产乱淫av片免费| 亚洲视频999| heyzo一区| 亚洲a∨日韩av高清在线观看| 国产一区二区三区91| 无码人妻精品一区二区蜜桃网站| 免费观看在线综合色| 欧美一区二区三区成人精品| 亚洲精选在线视频| 中文字幕在线观看1| 亚洲精品动漫100p| 日韩激情av| 91亚洲精品在线| 成人羞羞网站入口免费| 人妻精品无码一区二区三区| 福利电影一区二区三区| 永久免费看片直接| 欧美中文字幕一区二区三区亚洲| 日韩中文字幕综合| 欧美精品在线播放| 色综合.com| 午夜一区二区三区| 久久精品卡一| 黄色工厂在线观看| 午夜视频一区二区三区| 亚洲精品国产suv一区| 久久人人爽亚洲精品天堂| xxxxx.日韩| 一区二区三区在线观看www| 久久亚洲视频| 精品人妻一区二区三区日产乱码卜| 亚洲影院久久精品| 午夜精品久久久久久久第一页按摩| 日韩在线中文视频| 国外成人福利视频| 亚洲欧洲一区二区在线观看| 日韩中文字幕1| 亚洲av熟女国产一区二区性色| 一本大道久久a久久综合婷婷| 免费人成在线观看网站| 欧美性受xxx| 最新国产一区| 亚洲视频在线a| 中国色在线观看另类| 综合久久中文字幕| 色偷偷av一区二区三区乱| 欧美视频免费看| 色中文字幕在线观看| 国产一区二区三区久久久| 91日韩中文字幕| 日韩欧美中文字幕精品| 国产桃色电影在线播放| 国产精品久久久久久久小唯西川| 黄色成人精品网站| 精品中文字幕在线播放 | 99久久国产宗和精品1上映| 国产视频一区在线播放| 亚洲精品国产精品乱码视色| 中文字幕精品国产| 亚洲欧美在线综合| 黄色影视在线观看| 成人精品国产一区二区4080| 五月婷婷中文字幕| 国产亚洲精品美女| 日韩欧国产精品一区综合无码| 奇米777四色影视在线看| 成人黄色网址在线观看| 国产精品久久久久久久久久久久久久久久久| 国产丝袜一区二区三区免费视频| 成人免费一区| 黄色激情在线视频| 国产亚洲一区二区在线观看| 一区二区三区www污污污网站| 久久久久久伊人| 国产乱码精品一区二区亚洲| 欧美午夜精品理论片| 性欧美大战久久久久久久久| 国产在线观看免费网站| 91亚洲精华国产精华| 夜夜精品视频| 少妇高潮在线观看| 亚洲国产精品久久久| 国产精品高潮久久| 欧美黄网在线观看| 久久精品视频在线免费观看| 国产欧美日韩成人| 欧美中文字幕在线播放| 亚洲精品888| 91精品人妻一区二区三区蜜桃欧美| 欧美日韩dvd在线观看| 9999精品成人免费毛片在线看| 亚洲成人一区二区三区| 成人激情小说网站| 一区二区三区免费在线视频| 91av国产在线| 欧美视频导航| 中文字幕第69页|