青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

監控 DB2 活動之捕獲快照數據

Posted on 2009-07-21 23:14 Prayer 閱讀(914) 評論(0)  編輯 收藏 引用 所屬分類: DB2
數據庫監控是一項重要的活動,若將其作為日常活動來執行,將連續提供數據庫系統健康狀況的反饋信息。正由于數據庫監控是數據庫管理的完整組成部分,DB2 9 提供了一種稱為數據庫系統監控器的監控實用工具。盡管其名稱 “數據庫系統監控器” 似乎表示僅提供了一種監控工具,但實際上,數據庫系統監控器由兩種不同的工具組成,可用于捕獲和返回系統監控信息:一個快照監控器 和一個或多個事件監控器。快照監控器允許您捕獲特定時間點的數據庫狀態圖,而事件監控器在特定數據庫事件發生時捕獲并記錄數據。這兩種工具所收集的數據均存儲在稱為監控元素(或數據元素)的實體中。所使用的各監控元素通過惟一的名稱標識,且均設計用于容納特定類型的信息。以下類型的元素用于存儲監控數據:
  •   計數器(Counter)。計數器保存活動或事件已發生的次數。在監控器的整個生命周期中,計數器值逐漸增加;通常,計數器監控元素是可重置的。為某個數據庫執行的 SQL 語句總數就是計數器元素的一個示例。
  •   計量器(Gauge)。計量器保存在特定時間點發生的活動或事件的次數。與計數器值不同,計量器值可增加,也可減少,計量器在給定時間點的值通常取決于數據庫活動的級別。當前連接到某個數據庫的應用程序數量就是計量器元素的一個示例。
  •   水位標(Watermark)。水位標表示自監控開始以來觀測到的最高(最大)或最低(最小)值。更新操作所影響的最大行數就是水位標元素的一個示例。
  •   信息(Information)。顧名思義,信息元素提供所執行的全部監控活動的引用類型細節。信息元素的示例包括緩沖池名稱、數據庫名稱和別名、路徑詳細信息等。
  •   時間戳(Timestamp)。時間戳表示活動或事件發生的日期和時間。時間戳值以 1970 年 1 月 1 日后流逝的秒和微秒數形式提供。與數據庫的第一個連接的建立日期和時間就是一個時間戳元素的示例。
  •   時間(Time)。時間元素保存執行一個活動或事件所花費的時間。時間值以自活動或事件開始以后流逝的秒和微秒數形式提供,有些時間元素是可重置的。執行一次排序操作所花費的時間就是一個時間元素的示例。

  數據庫系統監控器可利用上述元素的任意組合來捕獲監控數據,一旦收集完成,即可使用一些方法為快照監控器和事件監控器展示所用各元素中存儲的數據,您可以選擇將收集到的所有數據存儲在文件或數據庫表中,在屏幕上查看,或使用定制應用程序進行處理。(數據庫系統監控器使用自我描述的數據流將監控數據返回給客戶機應用程序。使用快照監控應用程序,您可調用恰當的快照 API,捕獲快照,然后處理所返回的數據流;使用事件監控應用程序,您可準備好通過文件或指定管道接收所生成的數據,激活適當的事件監控器,并在接收到數據流時對其加以處理。)

  快照監控器

  快照監控器設計用于收集 DB2 UDB 實例及其控制的數據庫在特定時間點(換言之,就是在捕獲到快照時)的相關狀態信息。快照對于確定一個數據庫系統的狀態非常有用,若按固定時間間隔捕獲,則可提供能用于觀測發展趨勢并識別潛在問題領域的寶貴信息。要捕獲快照,可在 DB2 Command Line Processor(CLP)中執行 GET SNAPSHOT 命令,方法是在查詢中使用恰當的快照表函數或在 C、C++ 應用程序中使用快照監控器 API。此外,還可根據具體需求打造快照,以便返回特定類型的監控數據值(例如,可將一個快照配置為僅返回與緩沖池相關的信息)。

  快照監控器開關

  通常情況下,收集系統監控數據需要額外的處理開銷。例如,為了計算 SQL 語句的執行時間,DB2 Database Manager 必須調用操作系統,獲取 SQL 語句執行之前和之后的時間戳。此類系統調用的成本高昂。使用系統監控器的另外一個副作用就是所消耗的內存量大大增加 —— DB2 Database Manager 要使用內存來存儲為系統監控器所追蹤的各監控元素收集的數據。

 

  為幫助最小化與收集系統監控信息相關的開銷,可使用一組稱為快照監控器開關 的開關,控制在捕獲快照時收集哪些信息,通過這些快照監控器開關的設置方式來確定所收集的信息類型與數量。各快照監控器開關都有兩種設置:ON 和 OFF。將一個快照監控器開關設置為 OFF 時,受此開關控制的元素的監控信息不予收集。若開關設置為 ON,則情況恰好相反。(切記,有大量監控信息不受開關控制,無論快照監控器開關如何設置,這些信息總是會被收集。)表 1 列出了可用的快照監控器開關,還給出了各開關設置為 ON 時所收集的信息類型的描述。

表 1. 快照監控器開關
監控器組 監控器開關 DBM 配置參數 所提供的信息
緩沖池 BUFFERPOOL dft_mon_bufferpool 緩沖池活動的數量(換言之,即所執行的讀取和寫入操作的數量,以及各次讀/寫操作所用時間)。
LOCK dft_mon_lock 具有的鎖數量,以及遇到的死鎖循環數量。
排序 SORT dft_mon_sort 所執行的排序操作數量、使用的堆數量、遇到的溢出數、排序性能。
SQL 語句 STATEMENT dft_mon_stmt SQL 語句處理開始時間、SQL 語句處理結束時間、SQL 語句標識。
TABLE dft_mon_table 所執行的表活動數量,例如讀取的行數、寫入的行數等。
時間戳 TIMESTAMP dft_mon_timestamp 時間和時間戳信息。
事務 UOW dft_mon_uow 事務開始時間、事務結束時間以及事務的完成狀態。

  默認情況下,表 1 中的所有開關均設置為 OFF,TIMESTAMP 開關是個例外,其默認設置為 ON,并在一個實例初次啟動時初始化。

  查看當前快照監控器開關設置

  前面已經提到,在捕獲快照時,所收集的信息類型和數量在某種程度上是可以控制的 —— 通過設置快照監控器開關實現。在您捕獲快照之前,應了解哪些快照監控器開關已打開,而哪些快照監控器開關依然是關閉的,這一點非常重要。如何才能了解各可用快照監控器開關的當前設置呢?最簡單的方法就是在 DB2 Command Line Processor(CLP)中執行 GET MONITOR SWITCHES 命令。此命令的基本語法是:

  GET MONITOR SWITCHES

  其中的 PartitonNum 標識要為其獲取并顯示可用快照監控器開關狀態的數據庫分區(在多分區數據庫環境中)。

  注意:尖括號(< >)中的參數是可選的;方括號([ ])中的參數或選項是必需的;而逗號后接省略號(...)則表示之前的參數可重復使用多次。

  如果您希望為單分區數據庫獲取并顯示快照監控器開關狀態,可執行 GET MONITOR SWITCHES 命令,方式如下:

  GET MONITOR SWITCHES

  在 Command Line Processor 中執行此命令時,您應看到形式如下的輸出結果。

  GET MONITOR SWITCHES 命令的輸出

  Monitor Recording Switches

  Switch list for db partition number 0

  Buffer Pool Activity Information (BUFFERPOOL) = OFF

  Lock Information (LOCK) = OFF

  Sorting Information (SORT) = OFF

  SQL Statement Information (STATEMENT) = OFF

  Table Activity Information (TABLE) = OFF

  Take Timestamp Information (TIMESTAMP) = ON 06-12-2006 10:30:00.028810

 

  Unit of Work Information (UOW) = OFF

  觀察上述輸出后,您會立即注意到 TIMESTAMP 快照監控器開關已打開,而其他所有開關均為關閉。緊接于 TIMESTAMP 監控器開關狀態之后的時間戳值可以告訴您 TIMESTAMP 監控器開關被打開的準確日期和時間(本例中為 2006 年 6 月 12 日上午 10:30)。

  更改快照監控器開關的狀態

  了解哪些快照監控器開關被設置為 ON、哪些快照監控器開關被設置為 OFF 之后,您可能會發現,在開始監控過程之前,有必要更改一個或多個開關的設置。快照監控器開關設置可在實例級更改,方法是通過 UPDATE DATABASE MANAGER CONFIGURATION 命令修改適當的 DB2 Database Manager 配置參數(參見表 1)。

  另一方面,快照監控器開關設置也可在應用程序級更改,方法是執行 UPDATE MONITOR SWITCHES 命令。此命令的基本語法是:

  UPDATE MONITOR SWITCHES USING [[SwitchID] ON | OFF ,...]

  其中的 SwitchID 表示要為之更改狀態的一個或多個快照監控器開關。此參數可包含以下任意或全部值:BUFFERPOOL、LOCK、SORT、STATEMENT、TABLE、TIMESTAMP 以及 UOW。

  如果您希望在應用程序級將 LOCK 快照監控器開關的狀態更改為 ON,可執行 UPDATE MONITOR SWITCHES 命令,如下所示:

  UPDATE MONITOR SWITCHES USING LOCKS ON

  類似地,如果您希望將 BUFFERPOOL 快照監控器開關設置為 OFF,也可執行一條 UPDATE MONITOR SWITCHES 命令,如下所示:

  UPDATE MONITOR SWITCHES USING BUFFERPOOL OFF

  在實例級設置快照監控器開關(使用 UPDATE DATABASE MANAGER CONFIGURATION 命令)將影響到受此實例控制的所有數據庫(也就是說,所有與該實例控制的一個數據庫建立了連接的應用程序都將繼承實例配置中的開關設置)。此外,在實例級做出的快照監控器開關設置在實例重啟后依然保留。

  在應用程序級設置快照監控器開關(使用 UPDATE MONITOR SWITCHES 命令)僅影響到與這一個應用程序交互的數據庫。此外,開關設置僅在此應用程序的生命周期內持續。
  
  捕獲快照監控數據

 

  只要數據庫被激活或與數據庫的連接建立起來,快照監控器立即開始收集監控數據。但在所收集到的任何數據能夠被查看之前,必須捕獲快照(快照實際上就是一張關于所用監控元素在特定時間點的形式的圖片)。可通過在應用程序中嵌入 db2GetSnapshot() API 捕獲快照,也可通過執行 GET SNAPSHOT 命令捕獲。此命令的基本語法是:

  GET SNAPSHOT FOR

  [DATABASE MANAGER | DB MANAGER | DBM] |

  ALL DATABASES |

  ALL APPLICATIONS |

  ALL BUFFERPOOLS |

  ALL REMOTE_DATABASES |

  ALL REMOTE_APPLICATIONS |

  ALL ON [DatabaseAlias] |

  DATABASE ON [DatabaseAlias] |

  APPLICATIONS ON [DatabaseAlias] |

  TABLES ON [DatabaseAlias] |

  TABLESPACES ON [DatabaseAlias] |

  LOCKS ON [DatabaseAlias] |

  BUFFERPOOLS ON [DatabaseAlias] |

  DYNAMIC SQL ON [DatabaseAlias]

  其中的 DatabaseAlias 表示將為其收集快照監控器信息的那個數據庫被指派的別名。

  在捕獲快照時,如果您希望其中僅包含在與 PAYROLL 數據庫交互的應用程序所擁有的鎖上收集的數據,可通過執行以下命令來實現:

  GET SNAPSHOT FOR LOCKS ON PAYROLL

  此命令產生的輸出結果應與以下示例類似。(務必牢記,這只是一個簡單的示例。實際的監控環境往往會生成大批數據。)

  GET SNAPSHOT 命令輸出示例

  Database Lock Snapshot

  Database name = PAYROLL

  Database path = C:\DB2\NODE0000\SQL00002\

  Input database alias = PAYROLL

  Locks held = 2

  Applications currently connected = 1

  Agents currently waiting on locks = 0

  Snapshot timestamp = 06-12-2004 08:39:40.750316

  Application handle = 8

  Application ID = *LOCAL.DB2.00E286133931

  Sequence number = 0001

  Application name = db2bp.exe

  CONNECT Authorization ID = DB2ADMIN

  Application status = UOW Waiting

  Status change time = Not Collected

  Application code page = 1252

  Locks held = 2

  Total wait time (ms) = Not Collected

  List Of Locks

  Lock Name = 0x94928D848F9F949E7B89505241

  Lock Attributes = 0x00000000

  Release Flags = 0x40000000

  Lock Count = 1

  Hold Count = 0

  Lock Object Name = 0

  Object Type = Internal P Lock

  Mode = S

  Lock Name = 0x96A09A989DA09A7D8E8A6C7441

  Lock Attributes = 0x00000000

  Release Flags = 0x40000000

  Lock Count = 1

  Hold Count = 0

  Lock Object Name = 0

  Object Type = Internal P Lock

  Mode = S

  如您所見,GET SNAPSHOT 命令可用于捕獲幾種不同類型的監控數據,包括:

  •   DB2 Database Manager 實例數據
  •   受一個實例控制的所有活動數據庫的數據庫數據
  •   應用程序數據
  •   緩沖池活動數據
  •   表空間數據
  •   表數據
  •   鎖數據(關于具有的所有鎖的信息)
  •   動態 SQL 數據(SQL 語句緩存器在某個時間點所具有的 SQL 語句的相關信息)

  或許您已注意到,可用快照監控器開關與捕獲快照時可收集的監控數據的各種類型之間有著直接關系。若將特定快照監控器開關關閉,再捕獲與此開關相關的監控元素的快照,則所捕獲到的監控數據將不包含任何值。(在前面的數據中,所列出的部分值為 Not Collected,這正是因為其對應的快照監控器開關已關閉。此外,若在捕獲快照時未獲得任何鎖,則 Locks held 的值將為 0, List of Locks 信息則根本不會出現。)

  使用 SQL 捕獲快照監控數據

  在 DB2 UDB 的較早版本中,捕獲快照監控數據的惟一途徑就是執行 GET SNAPSHOT 命令或在應用程序中調用其相應的 API。在 DB2 UDB V8.1 中,引入了通過構建查詢捕獲快照監控數據的能力。這種方法依賴于 20 個特殊快照監控器表函數,在 V9.1 中,這些函數的作用已被弱化。現在,可使用一組全新的 SQL 例程來訪問特殊管理視圖中存儲的數據,通過這種方法來獲取快照監控數據。表 2 介紹了這些例程和視圖。

表 2. 快照管理 SQL 例程和視圖
管理視圖 例程 描述
APPLICATIONS N/A 這一管理視圖包括連接的數據庫應用程序的相關信息。
APPL_PERFORMANCE N/A 這一管理視圖包含選定行與各應用程序讀取行數的比率。
BP_HITRATIO N/A 這一管理視圖包含緩沖池的命中率,包括總體、數據和索引。
BP_READ_IO N/A 這一管理視圖包含緩沖池的讀取性能信息。
BP_WRITE_IO N/A 這一管理視圖包含緩沖池的寫入性能信息。
CONTAINER_UTILIZATION N/A 這一管理視圖包含表空間容器和利用率的相關信息。
LOCKS_HELD N/A 這一管理視圖包含當前具有的鎖的相關信息。
LOCKWAITS N/A 這一管理視圖包含等待授權的鎖的信息。
LOG_UTILIZATION N/A 這一管理視圖包含關于當前連接的數據庫的日志利用情況的信息。
LONG_RUNNING_SQL N/A 這一管理視圖包含當前連接的數據庫中運行時間最長的 SQL 語句的相關信息。
QUERY_PREP_COST N/A 這一管理視圖包含一個 SQL 語句列表,以及關于各語句準備所需時間的信息。
N/A SNAP_WRITE_FILE 此過程將系統快照數據寫入實例目錄的 tmp 子目錄中的一個文件。
SNAPAGENT SNAP_GET_AGENT 該管理視圖和表函數返回應用程序快照的代理信息,特別是 agent 邏輯數據組。
SNAPAGENT_MEMORY_POOL SNAP_GET_AGENT_MEMORY_POOL 該管理視圖和表函數返回代理級的內存使用信息。
SNAPAPPL SNAP_GET_APPL 該管理視圖和表函數返回應用程序快照的應用程序信息,特別是 appl 邏輯數據組。
SNAPAPPL_INFO SNAP_GET_APPL_INFO 該管理視圖和表函數返回應用程序快照的應用程序信息,特別是 appl_info 邏輯數據組。
SNAPBP SNAP_GET_BP 該管理視圖和表函數返回緩沖池快照的緩沖池信息,特別是 bufferpool 邏輯數據組。
SNAPBP_PART SNAP_GET_BP_PART 該管理視圖和表函數返回緩沖池快照的緩沖池信息,特別是 bufferpool_nodeinfo 邏輯數據組。
SNAPCONTAINER SNAP_GET_CONTAINER_V91 該管理視圖和表函數返回 tablespace_container 邏輯數據組的表空間快照信息。
SNAPDB SNAP_GET_DB_V91 該管理視圖和表函數返回數據庫(dbase)和數據庫存儲(db_storaeg_group)邏輯分組的快照信息。
SNAPDB_MEMORY_POOL SNAP_GET_DB_MEMORY_POOL 該管理視圖和表函數返回數據庫級內存使用情況的信息,僅用于 UNIX(R) 平臺。
SNAPDBM SNAP_GET_DMB 該管理視圖和表函數返回快照監控器 DB2 數據庫管理器(dbm)邏輯分組信息。
SNAPDBM_MEMORY_POOL SNAP_GET_DBM_MEMORY_POOL 該管理視圖和表函數返回數據庫管理器級的內存使用情況信息。
SNAPDETAILLOG SNAP_GET_DETAILLOG_V91 該管理視圖和表函數返回 detail_log 邏輯數據組的快照信息。
SNAPDYN_SQL SNAP_GET_DYN_SQL_V91 該管理視圖和表函數返回 dynsql 邏輯數據組的快照信息。
SNAPFCM SNAP_GET_FCM 該管理視圖和表函數返回數據庫管理器快照的快速通信管理器(FCM)相關信息,特別是 fcm 邏輯數據組。
SNAPFCM_PART SNAP_GET_FCM_PART 該管理視圖和表函數返回數據庫管理器快照的快速通信管理器(FCM)相關信息,特別是 fcm_node 邏輯數據組。
SNAPHADR SNAP_GET_HADR 該管理視圖和表函數返回數據庫快照的高可用性災難恢復信息,特別是 hadr 邏輯數據組。
SNAPLOCK SNAP_GET_LOCK 該管理視圖和表函數返回關于鎖的快照信息,特別是 lock 邏輯數據組。
SNAPLOCKWAIT SNAP_GET_LOCKWAIT 該管理視圖和表函數返回管理鎖等待的快照信息,特別是 lockwait 邏輯數據組。
SNAPSTMT SNAP_GET_STMT 該管理視圖和表函數返回應用程序快照的語句信息。
SNAPSTORAGE_PATHS SNAP_GET_STORAGE_PATHS 該管理視圖和表函數從 db_storage_group 邏輯數據組中為數據庫返回一個自動存儲路徑列表,特別還包括各存儲路徑的文件系統信息。
SNAPSUBSECTION SNAP_GET_SUBSECTION 該管理視圖和表函數返回關于應用程序子段的信息,也就是子段邏輯監控分組。
SNAPSWITCHES SNAP_GET_SWITCHES 該管理視圖和表函數返回關于數據庫快照開關狀態的信息。
SNAPTAB SNAP_GET_TAB_V91 該管理視圖和表函數返回 table 邏輯數據組中的快照信息。
SNAPTAB_REORG SNAP_GET_TAB_REORG 該管理視圖和表函數返回表重組信息。
SNAPTBSP SNAP_GET_TBSP_V91 該管理視圖和表函數返回 tablespace 邏輯數據組的快照信息。
SNAPTBSP_PART SNAP_GET_TBSP_PART_V91 該管理視圖和表函數返回 tablespace_nodeinfo 邏輯數據組的快照信息。
SNAPTBSP_QUIESCER SNAP_GET_TBSP_QUIESCER 該管理視圖和表函數返回表空間快照的 quiescer 信息。
SNAPTBSP_RANGE SNAP_GET_TBSP_RANGE 該管理視圖和表函數返回一個 range 快照的信息。
SNAPUTIL SNAP_GET_UTIL 該管理視圖和表函數返回 utility_info 邏輯數據組在實用工具方面的快照信息。
SNAPUTIL_PROGRESS SNAP_GET_UTIL_PROGRESS 該管理視圖和表函數返回關于實用工具進展的信息,特別是 progress 邏輯數據組。
TBSP_UTILIZATION N/A 這一管理視圖中包含表空間配置和利用率信息。
TOP_DYNAMIC_SQL N/A 這一管理視圖中包含可按執行次數、平均執行時間、排序次數或各語句分類排序的頂級動態 SQL 語句。

  舉例來說,如果您希望為當前連接的數據庫獲取鎖信息,可執行類似于下面這樣的查詢:

  SELECT AGENT_ID, LOCK_OBJECT_TYPE, LOCK_MODE, LOCK_STATUS

  FROM SYSIBMADM.SNAPLOCK

  SNAP_GET_LOCK 表函數返回與 SNAPLOCK 管理視圖相同的信息,但允許您為特定數據庫或特定數據庫分區(而非當前連接的數據庫)上的特定數據庫檢索信息。使用 SNAP_GET_LOCK 表函數的查詢形式如下:

  SELECT AGENT_ID, LOCK_OBJECT_TYPE, LOCK_MODE, LOCK_STATUS

  FROM TABLE(SNAP_GET_LOCK('',-1)) AS T

  在使用 SNAP_GET_LOCKWAIT 表函數時,SNAP_GET_LOCK 表函數提供的信息與 GET SNAPSHOT FOR LOCKS ON [DatabaseAlias] 命令相同。

  重置快照監控器計數器

  上文已經介紹過,監控元素用于存儲數據的一種元素就是計數器,計數器持續保存活動或事件發生的總次數。計數器值在監控器的整個生命周期中是逐漸增加的。那么計數開始的準確時間是什么?典型情況下,打開快照監控器開關或建立數據庫連接時,計數便立即開始(若使用的是實例級監控,則計數在應用程序第一次建立起與該實例控制的數據庫的連接時開始)。但有時您可能希望將所有計數器重置為 0,而且不想先關閉快照監控器開關,之后再打開,也不希望終止并重新建立數據庫連接。目前,將所有快照監控器計數器迅速重置為 0 的最簡便的方法就是執行 RESET MONITOR 命令。此命令的基本語法是:

  RESET MONITOR ALL

  或

  RESET MONITOR FOR [DATABASE | DB] [DatabaseAlias]

  其中 DatabaseAlias 表示將為之重置快照監控器計數器的數據庫的別名。

  如果您希望將一個實例所控制的所有數據庫的快照監控器計數器均重置為 0,可以連接到該實例,然后執行一條 RESET MONITOR 命令,如下所示:

  RESET MONITOR ALL

  另一方面,如果您只希望將與 SAMPLE 數據庫相關的快照監控器計數器重置為 0,也可以通過執行 RESET MONITOR 命令實現,如下所示:

  RESET MONITOR FOR DATABASE SAMPLE

  這里有一個需注意的重點,對于一個由快照監控器開關控制的特殊監控組,您不能使用 RESET MONITOR 命令選擇性地為其重置計數器。要執行此類操作,您必須關閉恰當的監控器開關,然后再打開,或者終止并重新建立數據庫連接。


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区三区视频在线观看| 亚洲缚视频在线观看| 欧美成人免费全部| 欧美日韩另类综合| 韩国精品久久久999| 亚洲天堂成人| 亚洲福利国产精品| 久久久久国产精品厨房| 久久综合五月| 久久国产精品一区二区三区| 亚洲高清精品中出| 欧美一区2区三区4区公司二百| 欧美日韩国产一级片| 91久久亚洲| 老司机午夜精品视频| 香蕉乱码成人久久天堂爱免费| 欧美日韩在线三区| 亚洲精品视频一区| 欧美a级一区| 久久国产夜色精品鲁鲁99| 国产精品一区在线观看你懂的| 一区二区日韩精品| 欧美激情精品久久久久久| 久久免费视频这里只有精品| 久久精品水蜜桃av综合天堂| 美女国内精品自产拍在线播放| 99在线精品观看| 欧美激情中文不卡| 一本不卡影院| 艳女tv在线观看国产一区| 欧美午夜不卡视频| 午夜精品一区二区三区四区| 亚洲一品av免费观看| 国产伦精品一区二区三区高清| 欧美在线观看视频一区二区三区 | 亚洲高清在线视频| 午夜精品久久久久久久| 欧美精品一区二区在线观看| 黄色精品一二区| 久久青青草原一区二区| 亚洲欧美日韩国产综合精品二区| 亚洲一区二区三区中文字幕在线| 99国产精品久久久久老师| 欧美图区在线视频| 午夜精品一区二区三区四区| 欧美一站二站| 91久久综合| 一区二区精品国产| 国产一区二区三区自拍| 亚洲成人自拍视频| 亚洲一区二区三区777| 久久精品成人欧美大片古装| 国产亚洲一区二区三区| 老牛嫩草一区二区三区日本| 欧美国产视频日韩| 欧美一区二区在线免费观看| 久久躁日日躁aaaaxxxx| 亚洲午夜一区二区| 久久九九全国免费精品观看| 99精品99| 久久天天综合| 欧美在线观看日本一区| 欧美激情精品久久久久久黑人| 欧美在线一二三区| 欧美日韩免费一区| 久久亚洲美女| 国产精品二区影院| 亚洲国产婷婷| 国外精品视频| 亚洲国产一区二区三区高清| 欧美日韩一区二区视频在线| 久久最新视频| 国产乱码精品| 亚洲精品美女在线| 黄色国产精品| 欧美影院视频| 亚洲自拍偷拍视频| 欧美激情欧美狂野欧美精品| 久久香蕉国产线看观看av| 国产精品国产三级国产专区53| 欧美丰满高潮xxxx喷水动漫| 国产色综合久久| 亚洲一级影院| 午夜欧美电影在线观看| 亚洲男女自偷自拍| 久久女同精品一区二区| 欧美一级精品大片| 国产精品xxxav免费视频| 亚洲国产高清一区二区三区| 韩国三级在线一区| 欧美一区=区| 久久岛国电影| 国产亚洲欧美日韩美女| 亚洲女性裸体视频| 欧美日本韩国在线| 国产精品qvod| 欧美成人a视频| 狠狠久久婷婷| 久久久不卡网国产精品一区| 久久久av网站| 国产一区清纯| 久久久久久有精品国产| 男女激情久久| 欧美三区在线视频| 老鸭窝91久久精品色噜噜导演| 欧美日韩视频在线观看一区二区三区 | 中文国产成人精品久久一| 亚洲毛片在线观看.| 欧美高清hd18日本| 99精品久久久| 欧美综合国产| 亚洲第一成人在线| 欧美风情在线| 亚洲午夜久久久| 久久国产精品久久久久久久久久| 国产一区观看| 蜜臀va亚洲va欧美va天堂| 亚洲国产另类精品专区| 亚洲图中文字幕| 国产伦精品一区二区三区在线观看| 欧美亚洲一区| 国产精品国色综合久久| 亚洲午夜未删减在线观看| 午夜久久影院| 极品日韩av| 欧美久久久久免费| 亚洲免费人成在线视频观看| 蜜桃av一区| 一本色道久久88综合亚洲精品ⅰ | 一区二区三区精品在线| 国产欧美日韩不卡免费| 蜜桃精品久久久久久久免费影院| 日韩午夜精品| 久热精品视频| 午夜精品久久久久久久| 亚洲成人在线| 国产精品日韩二区| 久色成人在线| 亚洲永久视频| 亚洲国产精品成人精品| 欧美一区国产一区| 日韩网站在线| 欧美区日韩区| 亚洲小说区图片区| 乱人伦精品视频在线观看| 亚洲伦理久久| 国外成人在线| 国产精品亚洲网站| 欧美国产免费| 久久久www成人免费精品| 亚洲最新色图| 欧美搞黄网站| 久久久999国产| 亚洲欧美视频一区| 一本一本久久| 一区二区三区精品| 亚洲国产成人精品久久| 国产精品综合视频| 欧美—级a级欧美特级ar全黄| 欧美一区亚洲| 亚洲婷婷综合色高清在线| 亚洲国产成人久久综合| 久久亚洲不卡| 久久精品国产77777蜜臀| 欧美激情视频免费观看| 亚洲美女淫视频| 国产伦精品一区二区三| 欧美精品在线一区| 久久女同互慰一区二区三区| 午夜精品亚洲| 亚洲一区二区三区高清 | 在线精品视频一区二区| 国产乱人伦精品一区二区| 欧美偷拍另类| 欧美日韩国产综合视频在线观看| 欧美不卡视频一区| 久热精品视频在线观看一区| 久久成人精品视频| 欧美综合二区| 久久久精品久久久久| 久久久久久久久久久久久女国产乱 | 狠狠综合久久av一区二区小说| 国产精品美女久久久久aⅴ国产馆| 欧美激情欧美激情在线五月| 欧美高清自拍一区| 欧美精品久久久久久久免费观看| 欧美成人免费va影院高清| 免费日韩av电影| 欧美精品 日韩| 欧美日韩精品是欧美日韩精品| 欧美视频1区| 国产精品久久久久久影院8一贰佰| 欧美丝袜一区二区| 国产精品自在欧美一区| 国内揄拍国内精品少妇国语| 亚洲高清在线视频| 一本久道久久综合狠狠爱| 亚洲自拍另类| 久久午夜电影网| 亚洲国产小视频|