黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

實例講解基于DB2及PHP的應用系統跨平臺遷移

瀏覽:112日期:2024-07-06 11:36:46

本文主要介紹如何完成基于 DB2 的 PHP 應用系統從 AIX 平臺到 Linux 平臺的移植過程。文中包含了底層的 DB2 數據庫移植、上層的 PHP 應用系統移植的詳細步驟以及移植過程中可能遇到的問題和解決方法。

任務概述

系統遷移的工作主要分為以下幾個方面:

1.DB2 數據庫系統的跨平臺遷移

2.Apache 服務器與 php 應用系統的安裝和配置

下面我們就分 2 個方面分別介紹遷移和配置的具體步驟。

DB2 數據庫系統的跨平臺遷移

數據庫環境

源環境:AIX+DB2 v8.1

目標環境:Linux+DB2 v8.1

其中源數據庫中包含了 2 個數據庫 Instance:SRCDB1 與 SRCDB2。在 SRCDB1/SRCDB2 數據庫中,均包含了上百張數據庫表,并有很多的索引、外鍵約束、觸發器、存儲過程以及一些含有自增字段的表(含有 GENERATED ALWAYS AS IDENTITY 定義字段的表)。更為困難的是,我們并沒有關于這些數據庫對象的準確創建腳本。

遷移方案的選擇

如果遷移的源系統與目的系統屬于同一類型操作系統,例如 Linux 之間的遷移,或者 AIX 系統之間的遷移,則情況相對簡單,DB2 本身已經提供相關的實用工具來實現這種同類型平臺之間的數據庫移植,如: BACKUP 和 RESTORE 命令。當然,根據不同的情況還需要對實用工具所提供的參數有比較清楚的了解,譬如源系統與目標系統使用不同的表空間,就會涉及到表空間重定向的問題。由于本文的重點在于跨平臺的移植,這種方案顯然無法滿足需求,在此不再熬述。

那么,如何處理跨平臺的數據庫遷移問題?是不是可以使用實用工具 db2move 呢? db2move 只能遷移表中的數據,而無法對索引、外鍵約束、觸發器和存儲過程等數據庫對象也實現遷移操作,而且對于包含自增字段數據的表來說,db2move 也有一定的限制。并且 db2move 只能把數據導入到已存在的數據庫的表中,無法顯示指定表空間的位置。由于在數據庫的系統遷移過程中,不僅需要遷移表中的數據,還有索引、外鍵約束、觸發器和存儲過程等數據庫對象,與本文所選方案相比,還是后者更具優勢。可以將 db2move 僅作為遷移表數據的一種備用方案。

而對于 export 和 import 來說,一次只能針對一張表進行導出導入操作,并且需要手動輸入 export 和 import 的命令以及需要導入導出的數據表名,在數據庫表的數量不多的情況下,這種方案也許還可以考慮,但也不并是最佳的方案。而在數據庫中表數量眾多的情況下,這種做法則是基本不現實的,而且 import 命令并不能保證自增字段的數據與原來的表數據保持一致。

本文根據 DB2 對數據庫對象的處理機制,采用將 db2look 與 DDL、DML 腳本相結合的方式,并針對原數據庫中的觸發器、存儲過程以及外鍵約束等分別處理,給出了一種跨平臺 DB2 數據庫系統移植的可行方案。

下面我們以 SRCDB1 為例介紹一下這種情況下的數據庫整體遷移過程。SRCDB1 數據庫中有 SRCDB1、ASN、DB2DBG 和 SQLDBA 這四個數據庫模式。假設 SRCDB1 數據庫的用戶名為 user_srcdb1,密碼:pw_srcdb1。

在源系統 (AIX) 上的相關操作

1.使用 db2look 命令抽取生成數據庫對象的 DDL 腳本

清單 1. db2look 命令及參數

# db2look -d SRCDB1 -e -o srcdb1.ddl -a -i user_srcdb1 -w pw_srcdb1

db2look :生成 DDL 以便重新創建在數據庫中定義的對象

語法: db2look -d DBname [-e] [-u Creator] [-z Schema]

[-t Tname1 Tname2...TnameN] [-tw Tname] [-h] [-o Fname] [-a]

[-m] [-c] [-r] [-l] [-x] [-xd] [-f] [-fd] [-td x]

[-noview] [-i userID] [-w password]

[-v Vname1 Vname2 ... VnameN] [-wrapper WrapperName]

[-server ServerName] [-nofed]

-d : 數據庫名稱,必選參數

-e : 抽取復制數據庫所需要的 DDL 文件,此選項將生成包含 DDL 語句的腳本

-o : 將輸出重定向到給定的文件名,如果未指定 -o 選項,則輸出默認轉到 stdout

-a : 為所有創建程序生成統計信息,如果指定了此選項,則將忽略 -u 選項

-i : 指定登錄到數據庫所在服務器時所使用的用戶標識

-w : 指定登錄到數據庫所在服務器時所使用的密碼

2.根據不同類型對象,分化數據庫對象 DDL 腳本

由于源數據庫中的各個表數據已經是經過觸發器、存儲過程等數據庫對象處理過的數據,為保證數據庫中數據的一致性和完整性,這些數據庫對象應該在導入數據后再創建,以防止在導入表數據時重復執行觸發器和存儲過程等數據庫對象生成錯誤數據。使用文本編輯器編輯由 db2look 生成的 srcdb1.ddl,將創建表及索引的 DDL 語句,創建外鍵約束的 DDL 語句以及創建觸發器和創建存儲過程的語句分為四組,分別保存為下面四個 DDL 腳本:

srcdb1_tables.ddl srcdb1_foriegnkeys.ddl

srcdb1_triggers.ddl srcdb1_procedures.ddl

srcdb1_tables.ddl :包含創建 SEQUENCE,UDF,TABLE,VIEW 等數據庫對象的 ddl 語句。

清單2. srcdb1_tables.ddl 語句

CREATE SEQUENCE 'SRCDB1'.'SAMPLE_SEQ_1' AS INTEGER

MINVALUE 1 MAXVALUE 9999999999

START WITH 1 INCREMENT BY 1;

CREATE FUNCTION ' SRCDB1'.' SAMPLE _FUNC_1'

(

VARCHAR(254),

VARCHAR(254),

VARCHAR(254)

) RETURNS VARCHAR(254)

SPECIFIC SAMPLE _FUNC_1 ……;

CREATE TABLE ' SRCDB1'.' SAMPLE _TAB_1' (

'TAB_COL1' CHAR(20) NOT NULL ,

'TAB_COL2' VARCHAR(70) NOT NULL ) ;

CREATE TABLE ' SRCDB1'.' SAMPLE _TAB_2' (……);

……

CREATE TABLE ' SRCDB1'.' SAMPLE _TAB_N' (……);

CREATE VIEW SRCDB1.SAMPLE_VIEW_1 (VIEW_COL1,VIEW_COL2) AS SELECT distinct

COL1 , COL2 FROM SAMPLE_TAB WHERE ……;

CREATE VIEW SRCDB1.SAMPLE_VIEW_2 ……;

……

CREATE VIEW SRCDB1.SAMPLE_VIEW_N ……;

srcdb1_foriegnkeys.ddl :包含創建外鍵約束的 ddl 語句。

清單3. srcdb1_foriegnkeys.ddl 語句

ALTER TABLE ' SRCDB1'.'SAMPLE_FK_1'

ADD CONSTRAINT 'SQL030903143850120' FOREIGN KEY

('FK_COL1')

REFERENCES ' SRCDB1'.'SAMPLE_TABLE'

('COL1');

ALTER TABLE ' SRCDB1'.'SAMPLE_FK_2' ADD ……;

……

ALTER TABLE ' SRCDB1'.'SAMPLE_FK_N' ADD ……;

srcdb1_triggers.ddl :包含創建觸發器的 ddl 語句。

清單 4. srcdb1_triggers.ddl 語句

CREATE TRIGGER SRCDB1.SAMPLE_TRIG_1 AFTER UPDATE OF col1 ON SRCDB1.SAMPLE_TAB

REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL WHEN ( n.col1 > 3)

BEGIN ATOMIC

update SAMPLE_TAB

set(col2) = 'anotherValue' where col1 = n.col1 ;--

END;

CREATE TRIGGER SRCDB1. SAMPLE_TRIG_2 ……;

……

CREATE TRIGGER SRCDB1. SAMPLE_TRIG_N ……;

srcdb1_procedures.ddl :包含創建 SQL 存儲過程以及 java 存儲過程的 ddl 語句。

清單 5. srcdb1_procedures.ddl語句

CREATE PROCEDURE ' SRCDB1'.' JAVA_PROCEDURE_1'

(

OUT SQLSTATE CHARACTER(5),

OUT ROWS_SUBMITED INTEGER,

IN BATCH_ID INTEGER,

IN LEVEL VARCHAR(4000)

)

DYNAMIC RESULT SETS 0

SPECIFIC SUBMIT_BATCH

EXTERNAL NAME 'Submit_batch!submit_batch'

LANGUAGE JAVA

PARAMETER STYLE JAVA

NOT DETERMINISTIC

FENCED THREADSAFE

MODIFIES SQL DATA

NO DBINFO;

CREATE PROCEDURE ' SRCDB1'.'JAVA_PROCEDURE_2' ……;

……

CREATE PROCEDURE ' SRCDB1'.'JAVA_PROCEDURE_N' ……;

SET CURRENT SCHEMA = ' SRCDB1';

SET CURRENT PATH = 'SYSIBM','SYSFUN',' SRCDB1';

CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_1 (

IN hostname varchar(4000),

IN username varchar(4000),

OUT SQLCODE_OUT int )

SPECIFIC SRCDB1.SQL_PROCEDURE_1

LANGUAGE SQL

-------------------------------------------------

-- SQL Stored Procedure

-------------------------------------------------

P1: BEGIN

……

END P1 ;

CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_2 ……;

……

CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_N ……;

需要注意的是,db2 v6 版本的 db2look 尚未實現抽取如 UDF,TRIGGER,UserSpace,NodeGroup,BufferPool 等數據庫對象的 ddl 語句。從 db2 v7 開始,db2look 可以抽取上述對象的 DDL,但是依然無法抽取創建存儲過程對象的 ddl 語句。從 db2 v8.2 開始,完善了對 db2look 功能的支持,實現了存儲過程 ddl 語句的抽取功能。由于本文所涉及的源數據庫系統的版本較低(DB2 v8.1),因此需要采取上述方案獲取所有數據庫對象的 DDL 信息:

1). 從某個 DB2 v8.2 系統對 SRCDB1(DB2 v8.1 版本)執行 CATALOG 操作:

db2 catalog db SRCDB1 as SRCDB1;

2). 從 DB2 v8.2 系統對 SRCDB1 進行 db2look 抽取過程:

db2look -d SRCDB1 -e -o srcdb1.ddl -a -i user_srcdb1 -w pw_srcdb1;

這樣就可以獲取完整的數據庫對象 DDL 信息。

3.生成數據導出export腳本

使用 shell 腳本生成并導出所有數據的 DML 腳本,并將其重定向到 srcdb1_export.sql 文件中。對于熟悉 DB2 的用戶來說,應該知道數據庫中創建的每個表、視圖、別名均對應 SYSCAT.TABLES 中一行記錄。因此可以通過相應的數據庫 select 語句就可以獲取所有需要的數據庫表信息。根據需要,下述 shell 腳本將從系統表 SYSCAT.TABLES 中根據 tabname 字段選出 SRCDB1 中所有 tabschema 表模式是 SRCDB1,ASN,SQLDBA,DB2DBG 的表名字,并根據它們的名字生成相應的 export 導出語句,到達批量導出的目的。rtrim 函數用于去除 tabname 字段數據的右邊的空格。

清單6. 生成export腳本

# db2 'select 'export to ' || rtrim(tabname) || '.ixf of ixf select * from ' ||

rtrim(tabname) || ';' from syscat.tables

where tabschema in('SRCDB1', 'ASN', 'SQLDBA', 'DB2DBG')' > srcdb1_export.sql ;

編輯生成的 srcdb1_export.sql,刪除頭部和尾部所顯示的統計信息,只保留必要的 export 語句。通過修改上述腳本中所包含的 tabschema 信息,可以指定需要導出的表的范圍,也即遷移過程中需要的所有表名。所生成的 export 導出語句具有如下的命令形式:

db2 export to tablename.ixf of ixf select * from tablename;

4.生成數據導入 load 腳本

使用 shell 腳本生成 load 腳本用于將數據導入目標系統:srcdb1_load.sql

清單7. 生成 load 腳本

# db2 'select 'load from ' || rtrim(tabname) || '.ixf of ixf insert into ' ||

rtrim(tabname) || ';' from syscat.tables

where tabschema in ('SRCDB1', 'ASN', 'SQLDBA', 'DB2DBG')' > srcdb1_load.sql;

編輯生成的 srcdb1_load.sql,刪除頭部和尾部的統計信息,只保留必要的 load 語句。與 export 導出語句類似,上述 shell 腳本從系統表中選出 SRCDB1 中所有表的名字,并根據它們的名字生成相應的 import 導入語句,到達批量導入的目的。所生成的 import 導入語句命令形式如下:

db2 load from tablename.ixf of ixf insert into tablename;

5.處理數據庫表中的自增字段

對于需要加載的含有自增字段的表,即該表的 ixf 數據文件中有自增列的值, 可以在 load 命令中加入如下參數控制自增字段值:

1). modified by identityignore :加載的數據文件中有自增字段值,load 時忽略數據文件中自增字段值 ;

2). modified by identitymissing :加載的數據文件中沒有自增字段值,load 時自動生成自增字段值 ;

3). modified by identityoverride :加載的數據文件中有自增字段值,load 時使用數據文件中的自增字段值 。

為了使目標數據庫中含有自增字段的表中數據與源數據庫中的數據保持一致,本文實例中選擇使用 modified by identityoverride 參數,在導入數據時使用數據文件中的自增字段值。讀者可以根據不同情況選擇適當的控制參數。

首先,在 srcdb1_tables.ddl 文件中查找所有包自增字段的表名 ( 含有 GENERATED ALWAYS AS IDENTITY 字段的表 ),然后在 srcdb1_load.sql 中將 modified by identityoverride 語句片段插入到這些含有自增字段的表所對應的 load 命令行中。

清單8. load 腳本中自增字段處理

db2 load from test.ixf of ixf modified by identityoverride insert into TEST;

6.執行導出腳本

執行導出腳本,導出所有表的數據 。

# db2 -tvf srcdb1_export.sql

導出的表數據以 ixf 格式存放于當前路徑下。

7.保存腳本和數據文件

將所有 DDL 腳本以及數據文件 *.ixf 復制到目標系統所在站點。

LINUX 系統上的操作

1.通過命令行處理器(CLP)創建實例 SRCDB1:

# db2icrt SRCDB1

2.使用 CREATE DATABASE 命令創建數據庫 SRCDB1,創建必要的表空間及配置必要的數據庫參數。

# db2 create database SRCDB1

3.連接到數據庫 SRCDB1,執行 srcdb1_tables.ddl 腳本創建緩沖池,表空間,UDF,表以及 Index,Sequence,視圖等數據庫對象。

# db2 connect to srcdb1

# db2 -tvf srcdb1_tables.ddl

4.進入到放置 .ixf 數據文件的目錄,執行下面的命令導入表數據。

# db2 -tvf srcdb1_load.sql

5.使用 srcdb1_foriegnkeys.ddl,srcdb1_triggers.ddl ,srcdb1_procedures.ddl 腳本文件創建外鍵約束,觸發器和存儲過程。

# db2 -tvf srcdb1_foriegnkeys.ddl

# db2 -tvf srcdb1_triggers.ddl

# db2 -tvf srcdb1_procedures.ddl

成功完成上述步驟后,數據庫的遷移工作基本完成。

Apache 服務器與 php 的安裝和配置

Apache 服務器的安裝和配置

Apache HTTP 服務器是一個模塊化的軟件,管理員可以通過選擇服務器中包含的模塊進行功能增減。模塊可以在編譯時被靜態包含進httpd二進制文件,也可以編譯成獨立于httpd二進制文件的動態共享對象 (DSO)。DSO 模塊可以與服務器一起編譯,也可以用 Apache 擴展工具 (apxs) 單獨編譯。動態加載的方式相比靜態加載具有更高的靈活性。使用動態載入特性,Apache 服務器必須以動態共享對象(DSO,Dynamic Shared Object)的方式編譯。Apache 對 DSO 的支持,是基于一個叫 mod_so 的模塊來實現的,為支持動態加載方式,這個模塊必須預先被靜態編譯到內核中。因此可以通過 mod_so 模塊檢測已安裝的 Apache 是否支持 DSO:

清單9. mod_so 模塊檢測

# $APACHEHOME/bin/httpd –l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

如果在列出的模塊名中有 mod_so.c,則說明安裝的 Apache 已經支持 DSO,否則需要重新編譯 Apache。Apache 的安裝和配置過程十分簡單,如下所示:

1.下載 httpd-2.0.54.tar.gz(http://httpd.apache.org/),并將其解壓到制定目錄

# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54

2.編譯安裝 apache

# ./configure --prefix=/usr/local/apache2 --enable-module=so

-- prefix 指定 apache 的安裝路徑

--enable-module=so 將 so 模塊(mod_so)靜態編譯進 apache 服務器的內核,以支持 DSO 模式

# make && make install

3. 啟動 apache

# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl

# apachectl start

php 的安裝和配置

在 php 的安裝和配置過程中,有兩個方面需要注意,首先是 php 與 apache http server 的結合,其次是 php 與 db2 數據源的連接。

在 Apache 環境下安裝 PHP 的時候,有三種安裝模式可供選擇:靜態模塊、動態模塊(DSO)和 CGI。建議以 DSO 模式安裝,這種模式的維護和升級都相對簡單,可以在無需重新編譯 Apache 的條件下,根據需求動態增加新功能模塊。當然,這樣做也會帶來一些運行效率上的下降,Apache 服務器在啟動時會慢約 20%。

PHP 連接 DB2 數據源同樣有三種方式 : unified ODBC driver、IBM_DB2 和 PDO(php data object)。

◆unified ODBC driver 是最早的 PHP 訪問數據庫的擴展模塊之一。從 DB2 v7.2 開始,unified ODBC driver 就支持對其的訪問。對所有支持 ODBC 的數據庫,unified ODBC driver 提供了統一的數據訪問接口。為了保證接口的一般性,unified ODBC driver 并未對不同類型的數據庫做特定的優化。

◆IBM_DB2 是由 IBM 開發和維護的與 DB2 數據源交互的擴展模塊,它遵守開源協議。對基于 DB2 UDB 和 php 4.x 的應用來說,IBM_DB2 是最優的選擇,因為它針對 DB2 UDB 進行了優化,同時避免了一些使用 unified ODBC driver 時可能存在的兼容性問題。不過,IBM_DB2 只支持 DB2 v8.2.2 或更高版本。

◆PDO 則是 php 5.x 中即將支持的新的數據庫訪問方式。本文中,由于源數據庫與目標數據庫的版本均為 DB2 v8.1,并且源環境中采用 unified ODBC driver 的方式,為了保持環境配置的一致性,仍然選擇 unified ODBC driver 作為 php 與數據源的訪問接口。

PHP 的安裝與配置過程具體如下:

1.下載并解壓 php-4.4.4.tar.gz(http://www.php.net/)

# tar zxvf php-4.4.4.tar.gz

# cd php-4.4.4

2.配置編譯 php 源代碼

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --without-mysql --with-ibm-db2=/home/reportdb/sqllib

--prefix 指定 php 的安裝路徑

--with-apxs2 指定 apxs 程序的路徑 (apxs 是一個 perl 腳本,它可以脫離 apache 的源碼將 php 模塊編譯成 DSO 文件 )

--with-ibm-db2 指定 unified ODBC driver 作為 php 與數據源的訪問接口,并指定 DB2 的實例安裝目錄。

--without-mysql 忽略 mysql 數據庫缺省的安裝配置

#cp php.ini-dist /usr/local/lib

將 php 安裝文件中的 php.ini-dist 拷貝到 /usr/local/lib 下作為 php 的配置文件。

# make && make install

# cp php.ini-dist /usr/local/lib/php.ini

3.編輯 /usr/local/apache2/conf/httpd.conf 文件,做如下修改:

設置 html 文件主目錄:用于存放網站所需 web 文件的主目錄

DocumentRoot '/home/web/www/'

設置 apache 的默認文件名的次序: apache 將按照由前至后的順序在當前路徑下查找其所支持的默認主頁文件

DirectoryIndex index.php index.html.var index.cgi index.html

添加 php 解釋文件后綴:對于所有需要被 PHP 解釋的文件類型,需要將后綴添加至 AddType 配置項

AddType application/x-httpd-php .php .inc

加載 PHP 模塊:加載模塊目錄 modules 下的庫 libphp4.so,并將模塊結構名 php4_module 添加到活動模塊列表中

LoadModule php4_module modules/libphp4.so

4.編輯配置文件 /usr/local/apache2/bin/apachectl :

為保證與 DB2 數據庫的連通,啟動 Apache 服務時,需要同時初始化 DB2 客戶機實例環境。創建 DB2 實例時,DB2 會自動生成 shell 腳本用于初始化所需的 DB2 實例環境,只需直接調用即可:

if test -f /home/reportdb/sqllib/db2profile; then

. /home/reportdb/sqllib/db2profile

fi

5.然后,重新啟動 Apache 服務器以繼承上面的配置更改。

# apachectl restart

6.編寫 PHP 的測試文件 test.php,內容如下:

echo phpinfo();

?>

將其存放在 apache 的 html 文件主目錄 /home/web/www 下,通過瀏覽器訪問該網頁,若能正常訪問(如下圖所示),則配置工作全部完成。

結束語

本文主要涵蓋了一個基于 php 和 DB2 UDB 的應用系統的跨平臺移植過程,詳細介紹了 DB2 數據庫系統的跨平臺遷移以及 Apache 服務器與 php 應用系統的安裝和配置過程。基于實踐經驗,為 DB2 數據庫系統的跨平臺遷移問題提供了一個可行的解決方案。對于移植過程中可能出現的問題,本文也給予詳細的描述并提供相應的解決方案。雖然本文所涉及的只是從 AIX 系統到 LINUX 系統的應用系統移植過程,讀者亦可以參考具體的移植過程,將其應用于其它平臺之上。

標簽: PHP
主站蜘蛛池模板: 97se综合| 国产九九九九九 | 真实人妻互换毛片视频 | 少妇啪啪姿势不断呻吟av | 天堂中文字幕在线观看 | 美女主播精品视频一二三四 | 91中文字幕网| 欧美成人精品三级网站 | 日韩欧美在线精品 | 2020毛片| 香蕉网站视频 | 天天草天天草 | 99福利在线观看 | 婷婷四月开心色房播播网 | 妲己艳史淫片免费看 | 青青草日本 | 香蕉视频入口 | 亚洲精品人 | 久热中文字幕在线 | 91视频a| 日韩欧美卡一卡二卡新区 | 亚洲视频在线观看一区 | 国产成人精品2021 | 特黄三级又爽又粗又大 | 三区在线观看 | 婷婷无套内射影院 | 欧美第一页在线 | 国产特级毛片aaaaaa高清 | 国产性夜夜春夜夜爽 | 成人性生交大片免费8 | 国产免费一区二区三区四区五区 | 成人国产精品免费观看动漫 | 亚洲精品喷潮一区二区三区 | 久久精品一区二区三区中文字幕 | 国产精品白虎 | 午夜爱精品免费视频一区二区 | 亚洲人成无码网站在线观看 | 国产一级自拍 | 精品国产精品三级精品av网址 | 祥仔av大片av免费看 | 男人添女人囗交做爰高潮 | 亚洲香蕉网站 | 午夜天堂一区人妻 | 久草在线免| 56pao国产成人免费视频 | 又粗又大又黄又硬又爽免费看 | 色噜噜av亚洲色一区二区 | 香蕉视频在线看 | 香蕉视频网站入口 | 巨大乳の揉んで乳榨り奶水 | 欧美xxxxx做受vr91九色 | 精品女同一区二区三区 | 91视频久久久久久 | 亚洲一区二区自拍 | 亚洲涩网 | 300部国产真实乱 | 欧美性猛交xxxx久久久 | 日本久久丰满的少妇三区 | 国产亚洲精品自在久久 | 99精品免费久久久久久久久 | 黑人黄色片| 4438xx亚洲最大五色丁香 | 国产精品69av | 人人人妻人人人妻人人人 | 台湾全黄色裸体视频播放 | 伊人久久国产精品 | 亚洲一区视频网站 | 风流少妇bbwbbw69视频 | 蜜桃视频在线观看免费视频网站www | 欧美老熟妇乱子 | 少妇人妻精品一区二区三区 | 九九九九久久久久 | 亚洲欧美日韩在线不卡 | www国产精| 全黄h全肉边做边吃奶视频 熟妇人妻av无码一区二区三区 | 狠狠色狠狠色综合日日92 | 精品国产伦一区二区三区免费 | 色www精品视频在线观看 | 中文天堂在线www | 日本xxxx在线观看 | 国产二区视频在线观看 | 成人中文视频 | 久久综合丁香 | 拍真实国产伦偷精品 | 亚洲欧美v国产一区二区 | 久久九九热视频 | 在线免费日韩av | 无码高潮少妇毛多水多水 | 小明天天看 | 中国华裔少妇黑人内谢 | jzzjzzjzz亚洲成孰少妇 | 鲁一鲁av2019在线 | 日本一码二码三码在线 | 乱淫a欧美裸体超级xxxⅹ | 色狠久久av北条麻妃081 | 成人性生交大片免费看 | 狠狠做深爱婷婷久久综合一区 | 午夜久久久久久禁播电影 | 午夜专区 | 国产伦精品一区二区三区精品视频 | 少妇人妻偷人精品视蜜桃 | 国产午夜精品美女视频明星a级 | 夜夜添日日射 | 一区二区三区日韩欧美 | 亚洲精品无码专区在线 | 色综合久久久久综合体桃花网 | 香蕉网站视频 | 伊人动漫| 国产女人在线 | 日韩影视一区二区三区 | 国产三级视频在线 | 亚洲性网址 | 日本欧美另类 | 日韩精品一区二区三区在线观看 | 精品人妻少妇一区二区 | 老子影院午夜伦手机不四虎卡 | 国产一区在线视频观看 | 少妇又紧又爽视频 | 天堂а√在线中文在线新版 | 中文字幕免费高清网站 | 国产精品人妻熟女毛片av久 | 欧美婷婷六月丁香综合色 | 国产主播户外勾搭人xx | 欧美亚一区二区 | 亚洲国产精品一区二区久久hs | 中文人妻无码一区二区三区 | 天天综合干 | 国产小视频一区 | 人妻无码αv中文字幕久久琪琪布 | 日韩 高清 无码 人妻 | 日本少妇吞精囗交 | 欧美人与性动交xxⅹxx | 波多野结衣免费在线视频 | 欧洲美女黑人粗性暴交 | 成人性毛片 | 中文字幕一区三级久久日本 | 天堂网日本 | 我和公激情中文字幕 | 日韩 欧美 自拍 | 无遮挡又色又刺激的女人视频 | 91免费视频网 | 亚洲欧美日韩精品久久亚洲区 | 日本人妻巨大乳挤奶水 | 超碰在线免费公开 | 天天色天天射综合网 | 男人的天堂视频 | 欧洲美女黑人粗性暴交视频 | 亚洲专区免费 | 日韩成人福利 | 又爽又色禁片1000视频免费看 | 亚洲欧美一区二区爽爽爽 | 污色视频| 精品中文字幕一区二区 | 一区二区三区视频网站 | 不卡视频一区 | 少妇挑战黑人3p | 国产精品美女www爽爽爽三炮 | 免费av网站在线观看 | 国产第一页在线观看 | 国产成人无码a区在线观看视频app | 撕开奶罩揉吮奶头视频 | 欧美在线视频第一页 | 日韩一区欧美一区 | 夜夜夜久久久 | 夜夜嗨av一区二区三区免费区 | 精品伦一区二区三区免费视频 | 国产99久久久久久免费看 | 成人免费在线看片 | 日韩亚洲区 | 四川一级毛毛片 | 在线观看久 | 高h辣h情趣道具h黄n男一女 | 日本一本久| 日韩国精品一区二区a片 | 尤物在线视频观看 | 日韩精品在线第一页 | 中日韩高清无专码区2021 | 免费看少妇作爱视频 | 国产成人免费高清激情视频 | 国产在线一二三 | 国产一区不卡视频 | 欧美理伦在线观看 | 高h全肉老汉嫩草文 | 亚洲性片 | 91亚洲国产成人精品一区二三 | 欧美一级xxx| 亚洲国产欧美日韩精品一区二区三区 | 色爽爽爽爽爽爽爽爽 | 欧美性一区二区三区 | 永久免费网站看黄yyy45视频 | 大桥未久亚洲无av码在线 | 国产激情片 | 国产欧美亚洲精品a | 99视频精品全部免费 在线 | 日韩色图视频 | 久久久久一级片 | 亚洲精品中文字幕 | 女厕偷窥一区二区三区 | 成人国产精品入麻豆 | 日韩免费黄色片 | 91精品视频一区二区三区 | 2020av在线 | 亚洲综合在线播放 | 日本特黄特刺激一级猛片 | www成人avcom | 亚洲国产精品久久久天堂不卡 | 国产高清在线精品 | 日韩亚洲在线 | 妇挑战三黑人4p日本中文字幕 | 日韩 欧美 亚洲 国产 | 岛国精品在线 | 久久精品无码免费不卡 | 欧美日韩免费网站 | 国产一区 在线播放 | 无码人妻丰满熟妇啪啪欧美 | 丝袜脚交一区二区三区 | 久久成年人视频 | 国产又色又爽又黄刺激视频免费 | 性高潮免费视频 | 国产在热线精品av | 日本黄色xxxx | 成在人线av | 亚洲欧美成人aⅴ大片 | 久久国产精品视频 | 午夜影皖精品av在线播放 | 国内精品久久久久影院一蜜桃 | 国产成人av大片大片在线播放 | 麻豆国产精品777777在线 | 亚洲精品久久久久午夜福禁果tⅴ | 亚洲乱亚洲乱妇无码麻豆 | 2021中文字幕在线观看 | 久久99国产精一区二区三区 | 伦理av在线 | 网站在线观看你懂的 | 欧美又大又硬又粗bbbbb | 国产午夜精品18久久蜜臀董小宛 | 欧美三级午夜理伦三级 | 日本高清视频一区二区三区 | 又色又污又爽又黄的网站 | 国产在线视频第一页 | 久久久久久久久888 国产激情无码一区二区 | 天堂无乱码 | 国产无套粉嫩白浆内精在线网站 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产综合激情 | 久久草在线视频 | 制服丝袜另类专区制服 | 色婷婷777| 无码av中文一区二区三区 | 一级做人爰片全过 | 亚洲欧洲成人在线 | 无码精品视频一区二区三区 | 亚洲精品www久久久 国产免费无码一区二区视频 | 久久无码精品一区二区三区 | 欧美在线观看视频免费 | 熟女人妻aⅴ一区二区三区60路 | 少妇特黄a一区二区三区 | 青青青视频免费 | 精品国产一区三区 | 韩国和女邻居做爰2三级 | 精品人人妻人人澡人人爽人人 | 自拍偷拍五月天 | 粉嫩av一区二区三区免费观看喜好 | 97人人模人人爽人人少妇 | 三级毛片在线看 | 天天综合网在线 | 91视频安卓版 | 国产一区二区不卡在线 | 高潮毛片无遮挡高清免费视频网站 | 丁香婷婷在线观看 | 草草影院国产第一页 | 久久久精品国产sm调教网站 | 国产又粗又猛又大爽老大爷 | 免费看捆绑女人毛片 | 天天天天色| 亚洲第一极品精品无码 | 色婷婷综合久久久久中文字幕 | 中文毛片无遮挡高潮免费 | 无码中文字幕人妻在线一区二区三区 | 国产欧美亚洲精品a | 182tv在线观看免费午夜免费线路 | 人人妻人人澡人人爽欧美一区双 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 特级无码毛片免费视频 | 亚洲视频一区在线 | 男女激情在线观看 | 欧美99久久精品乱码影视 | 色老板最新地址 | 绯色av一区二区三区在线观看 | 东方成人av | 色香色香欲天天天影视综合网 | 中文字幕制服丝袜 | 亚洲无圣光 | 国产午夜精品一区理论片飘花 | 中文字幕网址在线 | 国产av天堂亚洲国产av天堂 | 久久黄色录像 | 岳睡了我中文字幕日本 | 成年人免费网站视频 | 久久久噜噜噜久久中文福利 | 欧美日韩国产精品综合 | 国产精品网站在线 | 日批视频在线看 | 国产精品成人影院在线观看 | 欧美两根一起进3p做受视频 | 中文字幕人妻无码一区二区三区 | 毛片播放器 | 中文字幕岛国 | 国产精品人人爽人人做av片 | 久久精品成人一区二区三区蜜臀 | 日本性xxxxx 日本性高潮视频 | 中文字幕av无码一区二区三区电影 | 免费一级黄色 | 三级av在线免费观看 | 正在播放东北夫妻内射 | 色偷偷噜噜噜亚洲男人 | 久久天天躁狠狠躁夜夜avapp | 成年人av网站 | 91亚洲乱码卡一卡二卡新区豆瓣 | 污污视频网站在线免费观看 | 亚洲精品12p | 999久久欧美人妻一区二区 | 一个人看的视频在线观看www | 欧美黄色毛片 | 日本黄大片在线观看 | 欧美刺激性大交 | 免费视频永久免费人 | 欧美日韩视频在线播放 | 青青久久av北条麻妃黑人 | av激情在线 | 日韩人妻一区二区三区蜜桃视频 | 中文在线免费观看入口 | 超碰爱爱| 国产对白叫床清晰在线播放图片 | 亚洲永久精品ww.7491进入 | 一区二区三区视频免费观看 | 中文国产成人精品久久不卡 | 色 亚洲 日韩 国产 综合 | 亚洲区在线播放 | 国产91综合 | 日日躁夜夜摸月月添添添 | 亚洲国产中文在线二区三区免 | 中文字幕488页在线 中文字幕58页 | 久久美女免费视频 | 肉色超薄丝袜脚交91 | 九色福利 | av成人在线免费观看 | 国产精品aaa| 粉嫩av在线播放 | 交专区videossex非洲 | 国产清纯白嫩初高生在线播放性色 | 欧美在线日韩精品 | 91精品国产91久久综合 | 亚洲性少妇性猛交wwww乱大交 | www91在线观看 | 中文在线字幕 | 性爱免费在线视频 | 国产黄色a | 日韩在线第二页 | 精品国产一区二区三区小蝌蚪 | 午夜剧场福利社 | 夜夜摸狠狠添日日添高潮出水 | 成人羞羞国产免费软件小说 | 99xav| 1000午夜黄三级 | 狠狠色噜噜狠狠狠狠97首创麻豆 | 欧美国产乱视频 | 任你躁国产自任一区二区三区 | 成人在线免费看 | 国产亚洲va综合人人澡精品 | 非洲黑人狂躁日本妞 | 中文字幕人妻互换av久久 | 好大好硬好爽免费视频 | 久久久亚洲精华液精华液精华液 | 国产精品jizz在线观看软件 | 钻石午夜影院 | 欧洲熟妇性色黄 | 日韩av无码中文无码不卡电影 | 苍井空张开腿实干12次 | 4hu44四虎www在线影院麻豆 | 国产超碰人人做人人爽aⅴ 国产超碰人人做人人爽av牛牛 | 四月婷婷 | 毛片基地视频 | 日韩中文字幕av在线 | 91成人在线免费视频 | 97精品人妻一区二区三区香蕉 | 欧美成人在线网站 | 日本人xxxxxx免费泡妞 | 色麻豆国产原创av色哟哟 | 精品少妇人妻av无码久久 | 国产精品国产精品国产专区蜜臀ah | 香蕉人人超人人超碰超国产 | 黄色精品一区二区 | 一区二区播放 | 自拍偷自拍亚洲精品10p | 久久久久人妻一区精品色 | 欧美四区 | 成人网在线 | 52avaⅴ我爱haose免费视频 | 亚洲码与欧洲码一二三四区 | 国产精品无码天天爽视频 | 天堂8中文在线 | 欧美日本中文字幕 | 国产精品video爽爽爽爽 | 伊人毛片| 久久精品视频国产 | 麻豆黄色网址 | 欧洲视频一区二区 | 天天操天天摸天天干 | 欧美日韩一区二区三区四区 | 久久久久噜噜噜亚洲熟女综合 | 亚洲成人基地 | 奇米第四色一二三四区 | 在线看的av网站 | 日本v片做爰免费视频网站 日本www | 香蕉视频久久 | 99re久久精品国产 | 亚洲人a成www在线影院 | 暴力强奷在线播放无码 | 97久久精品人人做人人爽50路 | 一级特级毛片 | 国产精品免费一区二区三区 | 国产中文字幕乱人伦在线观看 | 国产成人午夜精品影院游乐网 | 亚洲精品国产成人av在线 | 国产永久免费无遮挡 | 人妻尝试又大又粗久久 | 波多野结衣丝袜 | av福利院| 国产一在线观看 | 亚洲精品无码永久在线观看你懂的 | 国产精品久久一区二区三区 | 爱爱视频免费网站 | аⅴ天堂中文在线网 | 国产一区二区三区久久久久久久 | 精品福利一区二区三区 | 国产ts人妖系列张思妮在线观看 | 国产欧美日韩精品在线 | 中文字幕人妻无码专区app | 亚洲熟妇自偷自拍另类 | 日韩免费观看视频 | 好吊色欧美一区二区三区视频 | 免费萌白酱国产一区二区三区 | 国产一区二区三区成人欧美日韩在线观看 | 成人年无码av片在线观看 | 欧美一区二区三区在线视频 | 国产91精品一区二区麻豆亚洲 | 九九九九免费视频 | 久久久网站 | 人间水蜜桃av五月色 | 西西人体44www大胆无码 | 色视频网站免费 | 久久亚洲色www成人 av免费网站在线观看 | 对白超刺激精彩粗话av | 鲁鲁狠狠狠7777一区二区 | 国产 日韩 欧美 精品 | 色爱激情网 | 日本免费高清视频 | 亚洲网站免费观看 | 动漫美女爆羞羞动漫在线蜜桃 | 精品黑人一区二区三区 | 欧美在线二区 | 亚洲精品国产精品国 | 欧美亚洲一区二区三区 | 日韩av无码一区二区三区 | av片在线看免费高清网站 | 少妇把腿扒开让我爽爽视频 | а√天堂资源中文在线官网九色 | 性初体验美国理论片 | 中文字幕日韩精品有码视频 | 99精品无人区乱码在线观看 | 国产又粗又硬又猛的毛片视频 | 日本高清视频网站 | 欧美一区二区三区精品 | 少妇大叫太大太粗太爽了 | 97久久人人超碰caoprom欧美 | 亲子伦一区二区三区观看方式 | 日本绝伦老头与少妇在线观看 | 少妇天天干 | 麻豆天美传媒毛片av88 | 午夜精品久久久久久久99热蜜臀 | 51真实女性私密spa按摩偷拍 | 成人做爰69片免费看 | 国产精品扒开腿做爽爽爽a片唱戏 | 上原瑞穗av在线播放 | 草草影院在线观看 | 精品黑人一区二区三区 | 性视频欧美 | 91麻豆精产国品一二区灌醉 | 两人做人爱费视频午夜 | 玩丰满熟妇xxxx视频 | 精品日产乱码久久久久久仙踪林 | 精品国产乱码久久久久久预案 | 国产91综合 | 韩国不卡av | 男女猛烈激情xx00免费视频 | 亚洲自拍偷拍网 | 久久久久人妻精品一区 | 国产精品第六页 | 午夜无码免费福利视频网址 | jav成人av免费播放 | 国产精品theporn | www日韩视频 | 欧洲熟妇色xxxx欧美老妇老头多毛 | 尤物99国产成人精品视频 | 久久亚洲国产成人精品性色 | 中文在线字幕免 | 日韩三级在线播放 | 伊人久久大香网 | av在线免费观看网站 | 久久精品国产一区二区电影 | 欧产日产国产精品98 | 97性视频 | 亚洲综合二区 | 色婷婷久久一区二区三区麻豆 | 夜av| 成人精品免费在线观看 | 成人欧美一区二区三区黑人 | 精品国产品香蕉在线 | 国产思思99re99在线观看 | 中文字幕一二三四区 | 他掀开裙子舌头进去69式 | 久久久久亚洲视频 | 成人免费看片39 | 性色av蜜臀av牛牛影院 | 欧美男女交配视频 | 免费黄色毛片视频 | 国产又黄又猛又粗 | 国产在线资源站 | 欧洲美女黑人粗性暴交视频 | 国产精品久久久久久久久妇女 | 97婷婷狠狠成为人免费视频 | 国产极品视觉盛宴 | 午夜剧院免费观看 | 精品无码久久久久久国产 | 欧美激情一区二区三区在线 | 国内自拍视频在线播放 | 国产精品一区二区三区视频免费 | 北条麻妃一区二区免费播放 | 一色桃子av大全在线播放 | 夜夜草视频| 亚洲一区高清视频 | 午夜激情视频在线 | 亚洲www色| 中国国语毛片免费观看视频 | 九九在线视频免费观看精彩 | 久操视频免费观看 | 国产成人精品123区免费视频 | 国产又粗又大又爽视频 | 国产羞羞| 成人亚洲精品久久久久软件 | 精品福利视频一区二区 | 小泽玛莉亚一区二区视频在线 | 无码一区二区 | 激情宗合网 | 婷婷爱五月 | 伊人久色| 夜夜高潮夜夜爽夜夜爱爱一区 | 白浆影院 | aⅴ亚洲 日韩 色 图网站 播放 | 五月色婷婷综合 | 我和岳疯狂性做爰全过程视频 | 波多野结衣视频一区 | 国产无套白浆一区二区 | 久久日韩激情一区二区三区四区 | 午夜爱爱免费视频体验区 | 少妇哺乳期在线喷奶 | 亚洲精品9999久久久久无码 | 国产精品一区二区不卡 | 久久综合伊人 | 国产精品天干天干在线 | 久久永久免费视频 | 久久久精品久久日韩一区 | 色婷婷六月天 | 欧美视频a | 成人影片在线免费观看 | 娇小发育未年成性色xxx8 | 欧美一区二区三区粗大 | 精品久久免费观看 | 欧美激情视频一区二区三区在线播放 | 亚洲精品一级 | 女人十八毛片嫩草av | 亚洲美女激情视频 | 黑人借宿巨大中文字幕 | 两男一女3p揉着她的奶视频 | 国产97色 | 在线播放中文字幕 | 亚洲国产精品一区二区成人片国内 | 国产真实乱偷精品视频免 | 久久国产精品日本波多野结衣 | 免费一区二区无码东京热 | 夜色www国产精品资源站 | 国产又黄又猛又粗又爽的a片动漫 | 国产又粗又长又爽 | 欧美高清性色生活片免费观看 | 久久99精品久久久久久按摩秒播 | 久久精品国产亚洲7777 | 免费黄色av | 超碰在线公开 | 成人av一区二区兰花在线播放 | 激情综合网五月天 | 99视屏| 色婷婷一区 | 51区成人一码二码三码是什么 | 日韩精品一区不卡 | 特黄特色大片免费播放器图片 | 精品欧美一区二区精品久久久 | 免费高清a级南片在线观看 免费高清成人 | 国产精品久久久久久久久免费桃花 | 久久精品视频网站 | 欧美性猛交xxxx免费视频软件 | 私拍在线 | 一本加勒比北条麻妃 | 黄色69视频| 午夜精品久久久久久久91蜜桃 |