久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

淺析Oracle體系結(jié)構(gòu)

本篇文章給大家?guī)砹岁P(guān)于Oracle的相關(guān)知識(shí),其中主要整理了體系結(jié)構(gòu)的相關(guān)問題,Oracle的體系結(jié)構(gòu)大體上分為兩部分:Instance(實(shí)例)和Database(數(shù)據(jù)庫(kù)),下面一起來看一下,希望對(duì)大家有幫助。

淺析Oracle體系結(jié)構(gòu)

推薦教程:《Oracle視頻教程》

Oracle的體系結(jié)構(gòu)大體上分為兩部分:Instance(實(shí)例)Database(數(shù)據(jù)庫(kù))

如圖1所示:

淺析Oracle體系結(jié)構(gòu)

圖1 Oracle 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

我們平時(shí)說的Oracle Server(Oracle服務(wù)器)就是由 Oracle Instance 和 Oracle Database 組成的,如圖2:

淺析Oracle體系結(jié)構(gòu)

圖2 Oracle Server

Oracle InstanceInstance中主要包含 SGA 以及一些 Backgroud Process (后臺(tái)進(jìn)程)(例如:PMON、SMON、DBWR、LGWR、CKPT等)。

SGA

SGA包含6 個(gè)基本組件:Shared Pool(Library Cache,Data Dictionary Cache)、Database Buffer Cache、Redo Log Buffer、Java Pool、Large Pool、stream pool。

下面將分別介紹這6個(gè)基本組件的功能。

1) shared pool

  • 共享池是對(duì) SQL、PL/SQL 程序進(jìn)行語(yǔ)法分析、編譯、執(zhí)行的內(nèi)存區(qū)域。
  • 共享池由 Library Cache(庫(kù)緩存)、Data Dictionary Cache(數(shù)據(jù)字典緩存)和 Server Result Cache(結(jié)果緩存)等組成。

它們分別都有哪些作用呢?

Library Cache: SQL 和 PL/SQL 的解析場(chǎng)所,存放著經(jīng)過編譯解析后的SQL和PL/SQL語(yǔ)句的內(nèi)容,以備所有用戶共享。

* 如果下次再執(zhí)行同樣的 SQL 語(yǔ)句的時(shí)候,就不需要解析了,立即從 Library Cache 獲取執(zhí)行。

* Library Cache的 SIZE 會(huì)決定著編譯解析 SQL 語(yǔ)句的頻度,從而決定了性能。

* Library Cache中又包含兩部分內(nèi)容:Shared SQL Area和Shared PL/SQL Area。

Data Dictionary Cache: 存放重要的數(shù)據(jù)字典信息,以備數(shù)據(jù)庫(kù)使用。

* Data Dictionary是使用最頻繁的,幾乎所有的操作都需要到數(shù)據(jù)字典去查詢。為了提高訪問Data Dictionary的速度,此時(shí)需要一個(gè)Cache,需要的時(shí)候訪問內(nèi)存即可。

* Data Dictionary Cache里面的信息包含了Database Files、Tables、Indexes、Columns、Users、Privileges和其他的數(shù)據(jù)庫(kù)對(duì)象。

Server Result Cache: 存放服務(wù)器端的 SQL 結(jié)果集及 PL/SQL 函數(shù)返回值。

看了上面的講解,或許會(huì)覺得有些抽象,下面將通過一個(gè)例子進(jìn)行講解。

假設(shè)在客戶端提交一個(gè)命令,如下:

SELECT ename,sal FROM emp WHERE empno=7788;

如果數(shù)據(jù)庫(kù)是第一次被提交這條語(yǔ)句,則需要進(jìn)行解析,解析過程分為硬解析和軟解析。

  • 硬解析:檢查語(yǔ)法、語(yǔ)義、權(quán)限,分析綁定變量等,最終生成一個(gè)執(zhí)行計(jì)劃;
  • 軟解析:依據(jù)執(zhí)行計(jì)劃去具體執(zhí)行它。若是select語(yǔ)句,執(zhí)行完后還會(huì)返回結(jié)果集,若是update、delete語(yǔ)句則無(wú)需返回結(jié)果集。

Library Cache會(huì)把這條 sql 語(yǔ)句和執(zhí)行計(jì)劃裝入其中。
裝入這些東西有什么作用呢?
下次再敲一摸一樣(標(biāo)點(diǎn)符號(hào)、大小寫、空格完全一致)的語(yǔ)句時(shí),就不需要硬解析了。

小問答:
如果此時(shí)客戶端再提交一條命令:

select ename,sal from emp where empno=7788;

猜測(cè)一下,這條語(yǔ)句需要被解析嗎?
答案:需要。

小說明:注意哦,語(yǔ)句必須完全一樣才不需要解析哦。標(biāo)點(diǎn)符號(hào)、大小寫、空格等都要完全一致哦!平時(shí)規(guī)范書寫的好處在這里就體現(xiàn)啦。

前面有說到,若是 select 語(yǔ)句,執(zhí)行完后還會(huì)返回結(jié)果集。那結(jié)果集存放在哪里呢?

select ename,sal from emp where empno=7788;

該語(yǔ)句執(zhí)行返回的結(jié)果集將存放在 Server Result Cache 中。

2) Database Buffer Cache

  • Database Buffer Cache用于存儲(chǔ)從磁盤數(shù)據(jù)文件中讀入的數(shù)據(jù),為所有用戶共享。
  • Server Process(服務(wù)器進(jìn)程)將讀入的數(shù)據(jù)保存在數(shù)據(jù)緩沖區(qū)中,當(dāng)后續(xù)的請(qǐng)求需要這些數(shù)據(jù)時(shí)可以在內(nèi)存中找到,則不需要再?gòu)拇疟P讀取。

小說明:邏輯讀(從內(nèi)存讀)的速度是物理讀(從磁盤讀)的1萬(wàn)倍呦,所以還是想辦法盡量多從內(nèi)存讀哦。
所以,數(shù)據(jù)緩沖區(qū)的大小對(duì)數(shù)據(jù)庫(kù)的讀取速度有直接的影響。

例如用戶訪問一個(gè)表里面的記錄時(shí),數(shù)據(jù)庫(kù)接收到這個(gè)請(qǐng)求后,首先會(huì)在Database Buffer Cache中查找是否存在該數(shù)據(jù)庫(kù)表的記錄,如果有所需的記錄就直接從內(nèi)存中讀取該記錄返回給用戶(有效提升了訪問的速度),否則只能去磁盤上去讀取。

繼續(xù)看上面的例子:

select ename,sal from emp where empno=7788;

該條語(yǔ)句以及它的執(zhí)行計(jì)劃被放在Library Cache里,但語(yǔ)句涉及到的數(shù)據(jù),會(huì)放在 Database Buffer Cache 里。

小問答:
Database Buffer Cache是怎么工作的呢?

這就要說一說Database Buffer Cache的設(shè)計(jì)思想了。
磁盤上存儲(chǔ)的是塊(block),文件都有文件號(hào),塊也有塊號(hào)。
若要訪問磁盤上的塊,并不是CPU拿到指令后直接訪問磁盤,而是先把塊讀到內(nèi)存中的Database Buffer cache里,生成副本,查詢或增刪改都是對(duì)內(nèi)存中的副本進(jìn)行操作。如圖3所示。
另外,如果是增刪操作,操作后會(huì)形成臟塊,臟塊會(huì)在恰當(dāng)時(shí)機(jī)再寫回磁盤原位置,注意哦,可不是立刻寫回呦。

也許你會(huì)問,為什么不立刻寫回呢?
因?yàn)?
(1)減少物理IO;
(2)可共享,若后面又有對(duì)該塊的訪問,可直接在內(nèi)存中進(jìn)行邏輯讀。

淺析Oracle體系結(jié)構(gòu)
圖3 訪問數(shù)據(jù)塊

小問答:
為什么要通過內(nèi)存訪問數(shù)據(jù)塊,而不是CPU直接訪問磁盤呢?
答:因?yàn)橄噍^于CPU,IO的速度實(shí)在是太慢了,CPU的速度是IO 的100萬(wàn)倍呢?如果CPU直接訪問磁盤的話,會(huì)造成大量的IO等待,CPU的利用率會(huì)很低。所以,利用速度相當(dāng)?shù)膬?nèi)存(CPU速度為內(nèi)存的100倍)做中間緩存,可以有效減少物理IO,提高CPU利用率。

但是,這里會(huì)有一個(gè)問題。前面說到查詢或增刪改都是對(duì)內(nèi)存中的副本進(jìn)行操作,當(dāng)增刪改操作產(chǎn)生臟塊時(shí)不會(huì)立刻寫回磁盤。

小問答:
我們?cè)O(shè)想一下,如果在 Database Buffer Cache 中存放大量未來得及寫回磁盤的臟塊時(shí),突然出現(xiàn)系統(tǒng)故障(比如斷電),導(dǎo)致內(nèi)存中的數(shù)據(jù)丟失。而此時(shí)磁盤中的塊存放的依然是修改前的舊數(shù)據(jù),這樣豈不是導(dǎo)致前面的修改無(wú)效?
要怎樣保持事務(wù)的一致性呢?
答:如果我們能夠保存住提交的記錄,在 Database Buffer Cache 中一旦有數(shù)據(jù)更改,馬上寫入一個(gè)地方記錄下來,不就可以保證事務(wù)一致性了嘛。

小說明:Instance在斷電時(shí)會(huì)消失,Instance在內(nèi)存中存放的數(shù)據(jù)將丟失。這就需要 Redo Log Buffer 發(fā)揮它的作用啦。

3)Redo Log Buffer

  • 日志條目(Redo Entries )記錄了數(shù)據(jù)庫(kù)的所有修改信息(包括 DML 和 DDL),一條Redo Entries記錄一次對(duì)數(shù)據(jù)庫(kù)的改變 ,為的是數(shù)據(jù)庫(kù)恢復(fù)。
  • 日志條目首先產(chǎn)生于日志緩沖區(qū)。日志緩沖區(qū)較小,它是以字節(jié)為單位的,它極其重要。
  • 在Database Buffer Cache中一旦有數(shù)據(jù)更改,馬上寫入Redo Log Buffer,Redo Log Buffer在內(nèi)存中保留一段時(shí)間后,會(huì)寫入磁盤,然后歸檔(3級(jí)結(jié)構(gòu))。

4)Large Pool(可選)

為了進(jìn)行大的后臺(tái)進(jìn)程操作而分配的內(nèi)存空間,與 shared pool 管理不同,主要用于共享服
務(wù)器的 session memory,RMAN 備份恢復(fù)以及并行查詢等。

5)Java Pool(可選)

為了 java 虛擬機(jī)及應(yīng)用而分配的內(nèi)存空間,包含所有 session 指定的 JAVA 代碼和數(shù)據(jù)。

6)Stream Pool(可選)

為了 stream process 而分配的內(nèi)存空間。stream 技術(shù)是為了在不同數(shù)據(jù)庫(kù)之間共享數(shù)據(jù),
因此,它只對(duì)使用了 stream 數(shù)據(jù)庫(kù)特性的系統(tǒng)是重要的。

Background process

在正式介紹 Background Process 之前,先簡(jiǎn)單介紹 Oracle 的 Process 類型。

Oracle Process 有三種類型:

  • User Proces

客戶端要與服務(wù)器連接,在客戶端啟動(dòng)起來的進(jìn)程就是 User Process,一般分為三種形式(sql*plus, 應(yīng)用程序,web 方式(OEM))。

  • Server Process

User Process 不能直接訪問 Oracle,必須通過相應(yīng)的 Server Process 訪問實(shí)例,進(jìn)而訪問數(shù)據(jù)庫(kù)。
用戶登錄到 Oracle Server 就是 User Process 和 Server Process 建立Connection。

  • background process

Oracle Instance的重要組成部分。接下來會(huì)對(duì)其做詳細(xì)講解。

小補(bǔ)充:
Connection & Session
Connection是指一個(gè)Oracle的客戶端和后臺(tái)和后臺(tái)的進(jìn)程(Server Process)建立的TCP連接。如圖4所示:

淺析Oracle體系結(jié)構(gòu)

圖4 Connection

Connection 建立過程可簡(jiǎn)單描述如下:

1.首先建立 TCP 連接,Oracle 對(duì)用戶的身份進(jìn)行認(rèn)證、進(jìn)行安全審計(jì)等等;
2.當(dāng)這些都通過后, Oracle 的 Server Process 才會(huì)允許客戶端使用Oracle提供的服務(wù);
3.當(dāng) Oracle 的連接建立起來以后,就意味著開始了一個(gè) Session (會(huì)話),當(dāng)連接斷開的時(shí)候這個(gè)會(huì)話就消失了。

Session 是和 Connection 相輔相成的。Session信息會(huì)存儲(chǔ)在 Oracle 的 Data Dictionary 中。
可通過圖5直觀看出 Connection 和 Session 的區(qū)別。

淺析Oracle體系結(jié)構(gòu)

圖5 Connection & Session

Background Process(后臺(tái)進(jìn)程)主要包括:SMON(系統(tǒng)監(jiān)控器進(jìn)程 )、PMON(進(jìn)程監(jiān)控器進(jìn)程)、DBWR( 數(shù)據(jù)庫(kù)寫入程序進(jìn)程)、LGWR(日志寫入程序進(jìn)程)、CKPT(檢查點(diǎn)進(jìn)程)。

1)PMON(Process Monitor)

PMON的主要作用如下:

  • 監(jiān)控各個(gè)Oracle后臺(tái)進(jìn)程是否正常,發(fā)現(xiàn)異常的進(jìn)程將其清除掉,重新生成該進(jìn)程。
  • (說明:當(dāng)用戶進(jìn)程斷掉時(shí),Server Process 留著就沒用了,但是還占著空間,PMON 會(huì)定時(shí)檢查 Server Process ,如果和 User Process 連接不上了,PMON 會(huì)把 Server Process 收回,把 PGA 空間收回,里面的鎖也收回。)
  • 監(jiān)控空閑會(huì)話是否到達(dá)閥值。
  • 動(dòng)態(tài)注冊(cè)監(jiān)聽。

2)SMON(System Monitor)

SMON的主要作用如下:

  • 當(dāng)Oracle運(yùn)行時(shí)突然宕機(jī),下次啟動(dòng)需要實(shí)例恢復(fù)(Instance Recovery),SMON負(fù)責(zé)實(shí)例恢復(fù)的全程監(jiān)控;
  • 當(dāng)Oracle運(yùn)行時(shí)突然宕機(jī),在下一次啟動(dòng)Oracle Instance的時(shí)候,它里面一些沒有釋放的資源會(huì)由SMON進(jìn)行清理;
  • 一些事務(wù)失敗的時(shí)候也由SMON進(jìn)行清理;內(nèi)存空間很分散(不連續(xù))時(shí)需要SMON將這個(gè)分散的空間整合起來;
  • 釋放不再使用的臨時(shí)段(Segment)。

3)DBWR(Database Writer)

DBWn是Oracle中工作最繁重的進(jìn)程。主要作用如下:

  • 將 Database Buffer Cache 中的臟塊(Dirty Buffer)寫到 Data File 中。
  • 釋放Data Buffer Cache空間。

小說明:
如果數(shù)據(jù)庫(kù)的負(fù)荷比較大,來自于客戶端的請(qǐng)求比較多,存在大量的IO操作,需要頻繁的將緩沖區(qū)的內(nèi)容寫到磁盤文件上,那么這時(shí)就可以配置多個(gè)DBWn(一共Oracle支持20個(gè)DBWn,DBW0-DBW9,DBWa-DBWg)。通常一個(gè)中小型的Oracle只需要一個(gè)DBW0 Process就可以了。

注意:以下幾種情況發(fā)生時(shí),都會(huì)觸發(fā)DBWR Process將 Database Buffer Cache 的內(nèi)容寫到Data Files :

  • Checkpoint Occurs
  • Dirty Buffer reach threshold
  • There are no free Buffers
  • Timeout occurs
  • RAC ping request is made
  • Tablespace OFFLINE
  • Tablespace READ ONLY
  • Table DROP or TRUNCATE
  • Tablespace BEGIN
  • BACKUP

小補(bǔ)充:
服務(wù)器進(jìn)程對(duì)數(shù)據(jù)文件執(zhí)行讀操作,而 DBWR 負(fù)責(zé)對(duì)數(shù)據(jù)文件執(zhí)行寫操作。

小問答:
Commit 時(shí) DBWR 有何動(dòng)作?
答:什么也不做!

4)LGWR((LOG Writer))

Oracle Instance中只有一個(gè)LGWR Process,這個(gè)Process的工作和DBWR Process類似。主要作用如下:

將 Redo Log Buffer 中的內(nèi)容寫入到 Redo Log Files 中(必須在 DBWR 寫臟塊之前寫入日志)。

(Redo Log Buffer 是一個(gè)循環(huán)的Buffer,對(duì)應(yīng)的 Redo Log Files 也是一個(gè)循環(huán)的文件組,從文件頭開始寫,當(dāng)文件寫滿了,又會(huì)從文件頭開始寫,會(huì)把前面的內(nèi)容覆蓋掉,為了避免將 Redo Log Files 覆蓋掉可以選擇將其寫入到 Archived Redo Log Files 中。)

注意:以下幾種情況發(fā)生時(shí),都會(huì)觸發(fā)LGWR Process將 Redo Log Buffer 中的內(nèi)容寫到 Redo Log Files :

  • At Commit
  • When one-third full
  • When there is 1 MB of redo
  • Every three seconds
  • Before DBWn writes

怎么保證提交的事務(wù)永久保留呢?
答:已執(zhí)行update操作為例 。
1. 當(dāng)寫提交語(yǔ)句的時(shí)候,修改已經(jīng)寫到 Redo Log Buffer 里了;
2. 當(dāng)看到返回提交成功時(shí),說明修改已經(jīng)寫到磁盤 Redo Logfile 里了;
3. 所以提交成功后,改動(dòng)已經(jīng)同步到磁盤了,不會(huì)丟了。

5)CKPT(Checkpoint)

CKPT的主要作用如下:

  • 生成檢查點(diǎn), 通知或督促 DBWR 寫臟塊;
  • *完全檢查點(diǎn):保證數(shù)據(jù)一致性。
  • *增量檢查點(diǎn):不斷更新控制文件中的檢查點(diǎn)位置,當(dāng)發(fā)生實(shí)例崩潰時(shí),可以盡量縮短實(shí)例恢復(fù)的時(shí)間。在Data File的在文件頭更新檢查點(diǎn)信息;在Control File中更新檢查點(diǎn)的信息。

6)ARCn(Archiver)

  • ARCn是一個(gè)可選的后臺(tái)進(jìn)程(幾乎可看作必選進(jìn)程)。
  • Oracle可以運(yùn)行在兩種模式下:ARCHIVELOG MODE(歸檔模式)、NOARCHIVELOG MODE(非歸檔模式)。
  • DBA 必須做出的一個(gè)重要決策是,配置數(shù)據(jù)庫(kù)在ARCHIVELOG模式下運(yùn)行,還是在NOARCHIVELOG模式下運(yùn)行。
  • 聯(lián)機(jī)重做日志文件填滿后,oracle實(shí)例開始寫入下一個(gè)聯(lián)機(jī)重做日志文件。
  • 從一個(gè)聯(lián)機(jī)重做日志文件切換到另一個(gè)聯(lián)機(jī)重做日志文件的過程稱為日志切換。

ARCn的主要作用如下:

當(dāng)Oracle運(yùn)行在歸檔模式時(shí)

  • ARCn進(jìn)程在每次進(jìn)行日志切換時(shí)都會(huì)開始對(duì)已填滿的日志組進(jìn)行備份或歸檔。
  • ARCn進(jìn)程會(huì)在可以重新使用日志之前自動(dòng)歸檔重做日志文件,因此會(huì)保留對(duì)數(shù)據(jù)庫(kù)所做的所有更改。

這樣,即使磁盤驅(qū)動(dòng)器損壞,也可以將數(shù)據(jù)庫(kù)恢復(fù)到故障點(diǎn)。

通過上面的學(xué)習(xí),先把圖1更新如下:

淺析Oracle體系結(jié)構(gòu)

圖6 Oracle 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

Database

Database 其實(shí)就是由一堆物理文件組成的,主要是用于存儲(chǔ)數(shù)據(jù),Database 中主要包含三種類型的文件:Data Files、Control Files、Redo Log Files。
另外還有Parameter File、Password File、Achieved Log Files等。

1)Data Files(數(shù)據(jù)文件)

Data Files 就是用于存儲(chǔ)數(shù)據(jù)的,Table 中的數(shù)據(jù)都是保存在 Data Files 中的。

2)Control Files(控制文件)

Oracle為了操作Data File,提供了一些 Control Files,這些 Control Files 主要是記錄數(shù)據(jù)庫(kù)的一些控制信息。

3)Redo Log Files(重做日志文件)

Redo Log Files 記錄著數(shù)據(jù)庫(kù)的改變,如果向數(shù)據(jù)庫(kù)中放入數(shù)據(jù)或者是修改里面的數(shù)據(jù),只要對(duì)數(shù)據(jù)庫(kù)作了修改,那么就要將修改之前的狀態(tài)、修改之后的狀態(tài)都記錄在 Redo Log Files 中,其作用就是恢復(fù)Data File。
* 例如:數(shù)據(jù)庫(kù)有一個(gè)事務(wù)需要提交,但是提交失敗了,事務(wù)就要回滾,那么事務(wù)回滾的依據(jù)就來自于這個(gè) Redo Log Files。Redo Log Files 中記錄著數(shù)據(jù)庫(kù)的改變,關(guān)于這個(gè)事務(wù)的改變,如果需要回滾就需要把Redo Log Files中的數(shù)據(jù)取出來,依照 Redo Log Files 中的數(shù)據(jù)把 Data Files 恢復(fù)到修改之前的狀態(tài)。

4)Parameter File(參數(shù)文件)

任何一個(gè)數(shù)據(jù)庫(kù)都必須要有參數(shù)文件,這個(gè)參數(shù)文件規(guī)定了Oracle中的一些基本的參數(shù)、初始化的參數(shù)的值。

5)Archived Log Files(歸檔日志文件)

Archived Log Files 和 Redo Log Files 是相輔相成的,Redo Log Files 其實(shí)是一個(gè)反復(fù)利用的過程,會(huì)有幾個(gè)(一般為3個(gè))固定的文件,這些固定文件會(huì)被依次使用,用滿了以后,Oracle就會(huì)再次寫這個(gè)文件頭,就把以前的東西沖掉了。為了進(jìn)一步加強(qiáng)數(shù)據(jù)庫(kù)的備份恢復(fù)能力,在覆蓋之前把這些修改的信息都?xì)w檔到 Archived Log Files 中。

6)Password File(密碼文件)

用戶客戶端連接到后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)候存儲(chǔ)口令的。

小問答:
Instance 和 Database 的對(duì)應(yīng)關(guān)系是怎樣的呢?

答:Instance :Database = n :1
1個(gè) Instance 只能屬于1個(gè)數(shù)據(jù)庫(kù),可以多個(gè) Instance 同時(shí)訪問1個(gè)數(shù)據(jù)庫(kù)。

小補(bǔ)充:
Oracle 的內(nèi)存結(jié)構(gòu)(Memory Structure)

Oracle 的 Memory Structure 實(shí)際上包含兩部分內(nèi)容:SGA和PGA

SGA(System Global Area系統(tǒng)全局區(qū))

  • 一個(gè) Oracle Instance 對(duì)應(yīng)一個(gè)SGA,SGA 在Oracle Instance啟動(dòng)的時(shí)候被分配,SGA 是Oracle Instance 的基本組成部分。
  • 一個(gè) Oracle Instance 僅有一個(gè) SGA,SGA是一個(gè)非常大的內(nèi)存空間,甚至可以占據(jù)物理內(nèi)存的80%。

PGA(Program Global Area程序全局區(qū))

  • 一個(gè) Server Process 啟動(dòng)的時(shí)候就會(huì)分配一個(gè) PGA。在 Oracle Instance 中 PGA 可能會(huì)很多。例如啟動(dòng)10個(gè)Server Process就會(huì)有10個(gè)PGA。
  • PGA 存放用戶游標(biāo)、變量、控制、數(shù)據(jù)排序、存放 hash 值。
  • 與 SGA 不同,PGA 是獨(dú)立的,非共享。是分配給一個(gè)進(jìn)程并歸該進(jìn)程私有的內(nèi)存區(qū)域。

推薦教程:《Oracle視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产精品美女| 青青在线精品| 色偷偷色偷偷色偷偷在线视频| 国产精品久久| 国产精品久久久久久久久久白浆| 日韩欧美另类中文字幕| 天堂久久一区| 欧美日韩中文| 亚洲性图久久| 99久久精品网站| 国产精品婷婷| 日韩毛片一区| 国产亚洲精品美女久久| 国产精品xxx在线观看| 欧美黄页在线免费观看| 人人精品亚洲| 人人爽香蕉精品| 国产日韩欧美三级| 国产精品.xx视频.xxtv| 久久精品二区亚洲w码| 日本а中文在线天堂| 日韩成人亚洲| 羞羞答答国产精品www一本| 免费精品视频| 国产欧美日韩视频在线| 国产成人精品免费视| 国产伊人精品| 国产乱码精品| 日韩午夜精品| 精品理论电影在线| 最新国产拍偷乱拍精品| 国产激情久久| 蜜臀a∨国产成人精品| 国产精品一区二区三区av麻| 久久男人天堂| 国产麻豆一区二区三区 | 精品丝袜久久| 日韩精品一二区| 成人在线免费观看91| 日韩中文字幕区一区有砖一区| 精品国产乱码久久久| 三级一区在线视频先锋| 久久精品天堂| 丝瓜av网站精品一区二区| 国产精品22p| 亚洲免费影院| 久久99国产精品视频| 日韩精品一区二区三区中文 | 一区二区91| 蜜臀久久99精品久久一区二区| 国产乱码精品一区二区三区亚洲人| 亚洲国产日韩欧美在线| 日韩欧美不卡| 精品一区二区三区中文字幕在线| 久久福利一区| 欧美日韩视频| 国产一区日韩一区| 欧产日产国产精品视频| 久久中文字幕一区二区| 蜜桃av一区二区| 91精品国产福利在线观看麻豆| 欧美精品成人| 久久精品五月| 国产麻豆一区| 国产精品啊v在线| 欧美成人精品午夜一区二区| 国产精品久久久亚洲一区| 日韩三级一区| 欧美日韩伊人| 美腿丝袜亚洲一区| 国产黄色一区| 日本欧美国产| 欧美日韩一区二区三区视频播放| 亚洲福利精品| 性欧美69xoxoxoxo| 在线综合视频| 日韩高清一区在线| 国产精品黄网站| 国产精品高潮呻吟久久久久| 精品视频网站| 欧美日韩国产综合网| 中文字幕中文字幕精品| 国产精品麻豆成人av电影艾秋| 精品久久99| 99在线|亚洲一区二区| 日韩欧美在线精品| 国产中文欧美日韩在线| 国产精品91一区二区三区| 亚洲免费专区| 福利精品在线| 五月天久久777| 国产亚洲字幕| 五月精品视频| 久久精品国产亚洲一区二区三区| 欧美日韩中文一区二区| 日韩欧乱色一区二区三区在线| 国产suv精品一区二区四区视频 | 美女视频黄 久久| 99视频一区| 精品国产91| 亚洲欧美日韩国产| 久久久久伊人| 在线精品视频一区| 日韩视频免费| 欧美日韩精品一区二区视频| 午夜久久影院| 日韩毛片视频| 国产精品蜜月aⅴ在线| 亚洲欧美网站| 成人在线观看免费视频| 青青草91视频| 蜜桃视频在线观看一区| 亚洲成人不卡| 久久精品国产999大香线蕉| 蜜桃视频在线观看一区| 91亚洲国产| 久久免费视频66| 国产精品久久久久久av公交车| 日韩中文字幕麻豆| 亚洲欧美日本国产专区一区| 99视频精品全部免费在线视频| 久久影院一区二区三区| 日本91福利区| 中文字幕亚洲在线观看| 亚洲深夜福利| 丝袜亚洲精品中文字幕一区| 国产综合精品| 99视频一区| 蜜臀久久99精品久久久画质超高清| 偷拍欧美精品| 久久视频国产| 欧美精品一区二区三区精品| 国产91久久精品一区二区| 99久精品视频在线观看视频| 日韩和的一区二在线| 日韩影院二区| 天堂网在线观看国产精品| 91精品国产乱码久久久久久久| 欧美亚洲国产一区| 一区在线观看| 婷婷综合电影| 麻豆国产精品视频| 91一区二区| 亚洲欧洲一区| 亚洲精品国产精品粉嫩| 四虎精品一区二区免费| 国产精品国码视频| 色在线视频观看| 亚洲在线电影| 久久免费精品| 99国内精品| 国产精品乱战久久久| 久久久久国产| 日韩午夜视频在线| 精品国产亚洲一区二区三区大结局| 日韩在线观看| 亚洲精品动态| 国产成人精品一区二区免费看京 | 婷婷激情综合| 免费国产亚洲视频| 久久精品毛片| 亚洲影视一区二区三区| 精品国产不卡一区二区| 亚洲免费网址| 国产欧美一区二区三区精品酒店| 蜜桃视频一区二区三区在线观看 | 五月激情久久| 日韩av不卡在线观看| 成人一区不卡| 91精品国产自产精品男人的天堂| 久久久久久免费视频| 香蕉久久一区| 91九色精品国产一区二区| 久久久久97| 日本成人中文字幕| 在线亚洲观看| 久久网站免费观看| av中文字幕在线观看第一页| 青青草91久久久久久久久| 国产精品腿扒开做爽爽爽挤奶网站| 国产+成+人+亚洲欧洲在线| 色综合视频一区二区三区日韩| 99成人超碰| 在线观看精品| 午夜欧美巨大性欧美巨大| 精品视频国产| 国产精品主播在线观看| 美女尤物久久精品| 亚洲调教视频在线观看| 日韩高清成人| 日韩欧美综合| 日韩在线短视频| 久久青青视频| 精品无人区麻豆乱码久久久| 亚洲精品日韩久久| 日韩欧美精品一区二区综合视频| 黄色日韩精品| 喷白浆一区二区| 日韩中文字幕视频网| 日本va欧美va欧美va精品|