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

Oracle 分區(qū)表之在線重定義

數(shù)據(jù)庫(kù) Oracle
在線重定義表是從oracle9i開始提供的一個(gè)功能,能在線完成對(duì)一個(gè)表結(jié)構(gòu)或存儲(chǔ)的重定義,并且不影響當(dāng)前應(yīng)用的使用,是oracle高可用性中的一個(gè)很有用的特性。

一、介紹

「DBMS_REDEFINITION(在線重定義):」

  • 「支持的數(shù)據(jù)庫(kù)版本」:Oracle Database - Enterprise Edition - Version 9.2.0.4 and later
  • 在線重定義是通過(guò) 「物化視圖」 實(shí)現(xiàn)的。

「使用在線重定義的一些限制條件」:

  • 必須有足夠的表空間來(lái)容納表的兩倍數(shù)據(jù)量。
  • 主鍵列不能被修改。
  • 表必須有主鍵。
  • 必須在同一個(gè)用戶下進(jìn)行在線重定義。
  • SYS和SYSTEM用戶下的表無(wú)法進(jìn)行在線重定義。
  • 在線重定義無(wú)法采用nologging。
  • 如果中間表有新增列,則不能有NOT NULL約束

「DBMS_REDEFINITION包:」

  • ABSORT_REDEF_TABLE:清理重定義的錯(cuò)誤和中止重定義;
  • CAN_REDEF_TABLE:檢查表是否可以進(jìn)行重定義,存儲(chǔ)過(guò)程執(zhí)行成功代表可以進(jìn)行重定義;
  • COPY_TABLE_DEPENDENTS:同步索引和依賴的對(duì)象(包括索引、約束、觸發(fā)器、權(quán)限等);
  • FINISH_REDEF_TABLE:完成在線重定義;
  • REGISTER_DEPENDENTS_OBJECTS:注冊(cè)依賴的對(duì)象,如索引、約束、觸發(fā)器等;
  • START_REDEF_TABLE:開始在線重定義;
  • SYNC_INTERIM_TABLE:增量同步數(shù)據(jù);
  • UNREGISTER_DEPENDENT_OBJECT:不注冊(cè)依賴的對(duì)象,如索引、約束、觸發(fā)器等;

二、實(shí)戰(zhàn)

1、構(gòu)建測(cè)試數(shù)據(jù)創(chuàng)建測(cè)試表空間和用戶:

  1. sqlplus / as sysdba 
  2. create tablespace PAR; 
  3. create user par identified by par; 
  4. grant dba to par; 

創(chuàng)建測(cè)試表:

  1. sqlplus par/par 
  2. create table lucifer( 
  3. id number(8) PRIMARY KEY
  4. name varchar2(20) not null
  5. par_date date
  6. tablespace PAR; 
  7. comment on table lucifer is 'lucifer表'
  8. comment on column lucifer.name is '姓名'
  9. comment on column lucifer.par_date is '分區(qū)日期'
  10. create index id_name on lucifer(name) tablespace par; 

 

插入測(cè)試數(shù)據(jù):

  1. sqlplus par/par 
  2. begin 
  3.   for i in 0 .. 24 loop 
  4.     insert into lucifer values 
  5.       (i, 
  6.        'lcuifer_' || i, 
  7.        add_months(to_date('2021-1-1''yyyy-mm-dd'), i)); 
  8.   end loop; 
  9.   commit
  10. end

可以看到,測(cè)試數(shù)據(jù)已經(jīng)構(gòu)建完成,接下來(lái)開始實(shí)戰(zhàn)操作。

2、查看是否能夠重定義

需提前確認(rèn)表是否有主鍵,表空間是否足夠:

  1. sqlplus / as sysdba 
  2. ##查看主鍵 
  3. select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 'LUCIFER'

確認(rèn)是否可以重定義,沒(méi)有主鍵用 rowid:

  1. sqlplus / as sysdba 
  2. exec dbms_redefinition.can_redef_table('PAR''LUCIFER'); 

執(zhí)行沒(méi)有報(bào)錯(cuò)代表可以進(jìn)行表的在線重定義。

3、創(chuàng)建中間表(分區(qū)表結(jié)構(gòu))

通過(guò)PL/SQL包一鍵生成分區(qū)表結(jié)構(gòu):

  1. sqlplus par/par 
  2. BEGIN 
  3.   ctas_par(p_tab        => 'lucifer'
  4.            p_part_colum => 'par_date'
  5.            p_part_nums  => 24, 
  6.            p_tablespace => 'par'); 
  7. END

創(chuàng)建中間分區(qū)表 lucifer_par:

  1. create table lucifer_par 
  2.   id       NUMBER(8), 
  3.   name     VARCHAR2(20), 
  4.   par_date DATE 
  5. partition BY RANGE(par_date)( 
  6. partition lucifer_P202101 values less than (TO_DATE(' 2021-02-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  7. partition lucifer_P202102 values less than (TO_DATE(' 2021-03-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  8. partition lucifer_P202103 values less than (TO_DATE(' 2021-04-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  9. partition lucifer_P202104 values less than (TO_DATE(' 2021-05-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  10. partition lucifer_P202105 values less than (TO_DATE(' 2021-06-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  11. partition lucifer_P202106 values less than (TO_DATE(' 2021-07-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  12. partition lucifer_P202107 values less than (TO_DATE(' 2021-08-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  13. partition lucifer_P202108 values less than (TO_DATE(' 2021-09-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  14. partition lucifer_P202109 values less than (TO_DATE(' 2021-10-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  15. partition lucifer_P202110 values less than (TO_DATE(' 2021-11-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  16. partition lucifer_P202111 values less than (TO_DATE(' 2021-12-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  17. partition lucifer_P202112 values less than (TO_DATE(' 2022-01-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  18. partition lucifer_P202201 values less than (TO_DATE(' 2022-02-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  19. partition lucifer_P202202 values less than (TO_DATE(' 2022-03-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  20. partition lucifer_P202203 values less than (TO_DATE(' 2022-04-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  21. partition lucifer_P202204 values less than (TO_DATE(' 2022-05-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  22. partition lucifer_P202205 values less than (TO_DATE(' 2022-06-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  23. partition lucifer_P202206 values less than (TO_DATE(' 2022-07-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  24. partition lucifer_P202207 values less than (TO_DATE(' 2022-08-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  25. partition lucifer_P202208 values less than (TO_DATE(' 2022-09-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  26. partition lucifer_P202209 values less than (TO_DATE(' 2022-10-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  27. partition lucifer_P202210 values less than (TO_DATE(' 2022-11-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  28. partition lucifer_P202211 values less than (TO_DATE(' 2022-12-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  29. partition lucifer_P202212 values less than (TO_DATE(' 2023-01-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) tablespace par, 
  30. partition lucifer_MAX values less than (maxvalue) tablespace par) 
  31.              enable row movement 
  32.              tablespace par; 

如上,唯一索引和約束不加,會(huì)自動(dòng)復(fù)制,分區(qū)表結(jié)構(gòu)的中間表已經(jīng)生成。

4、檢查中間表是否開啟行遷移

  1. select row_movement from dba_tables where table_name='LUCIFER' and owner='PAR'
  2. select row_movement from dba_tables where table_name='LUCIFER_PAR' and owner='PAR'

5、收集表統(tǒng)計(jì)信息

為了確保數(shù)據(jù)準(zhǔn)確,開始前進(jìn)行統(tǒng)計(jì)信息收集:

  1. sqlplus / as sysdba 
  2. exec dbms_stats.gather_table_stats(ownname => 'PAR',tabname => 'LUCIFER',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE,degree => '8') ; 
  3. exec dbms_stats.gather_table_stats(ownname => 'PAR',tabname => 'LUCIFER_PAR',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE,degree => '8') ; 

6、開始在線重定義

  1. sqlplus / as sysdba 
  2. EXEC DBMS_REDEFINITION.START_REDEF_TABLE('PAR','LUCIFER','LUCIFER_PAR'); 

7、復(fù)制表屬性,排除索引

選擇自動(dòng)復(fù)制表屬性,手動(dòng)創(chuàng)建本地索引(local):

  • 優(yōu)點(diǎn):只需要關(guān)注索引是否遺漏,無(wú)需關(guān)注觸發(fā)器,權(quán)限,約束等依賴。
  • 缺點(diǎn):需要手動(dòng)創(chuàng)建索引,并且結(jié)束后手動(dòng)rename索引。
  1. sqlplus par/par 
  2. SET SERVEROUTPUT ON 
  3. DECLARE 
  4.   l_errors  NUMBER; 
  5. BEGIN 
  6.   DBMS_REDEFINITION.copy_table_dependents( 
  7.     uname            => USER
  8.     orig_table       => 'LUCIFER'
  9.     int_table        => 'LUCIFER_PAR'
  10.     copy_indexes     => 0, 
  11.     copy_triggers    => TRUE
  12.     copy_constraints => TRUE
  13.     copy_privileges  => TRUE
  14.     ignore_errors    => FALSE
  15.     num_errors       => l_errors, 
  16.     copy_statistics  => FALSE
  17.     copy_mvlog       => FALSE); 
  18.      
  19.   DBMS_OUTPUT.put_line('Errors=' || l_errors); 
  20. END

執(zhí)行過(guò)程沒(méi)有任何報(bào)錯(cuò),代表正常。

8、中間表創(chuàng)建本地索引

中間表LUCIFER_PAR創(chuàng)建索引:

  1. create index ID_NAME_PAR on LUCIFER_PAR(NAME) tablespace PAR local parallel 8; 

注意:索引名稱需要與原索引名稱不一致。

9、取消索引并行度

如果創(chuàng)建索引時(shí),開啟并行創(chuàng)建,則需要取消索引并行度:

  1. sqlplus / as sysdba 
  2. select 'alter index '||owner||'.'||index_name||' noparallel;' 
  3. from dba_indexes  
  4. where table_name = 'LUCIFER_PAR' and owner= 'PAR'

10、同步數(shù)據(jù)(可以減少結(jié)束重定義過(guò)程的鎖表時(shí)間)

  1. sqlplus / as sysdba 
  2. BEGIN 
  3. dbms_redefinition.sync_interim_table( 
  4. uname => 'PAR'
  5. orig_table => 'LUCIFER'
  6. int_table => 'LUCIFER_PAR'); 
  7. END

注意: 這一步操作是為了在結(jié)束重定義的時(shí)候,減少鎖表的時(shí)間。

11、收集中間表統(tǒng)計(jì)信息

為了下面同步數(shù)據(jù)做準(zhǔn)備,收集中間表統(tǒng)計(jì)信息:

  1. sqlplus / as sysdba 
  2. exec dbms_stats.gather_table_stats(ownname => 'PAR',tabname => 'LUCIFER_PAR',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE,degree => '8') ; 

12、結(jié)束重定義(結(jié)束重定義需要鎖表,具體時(shí)間根據(jù)表的大小決定)

  1. sqlplus / as sysdba 
  2. BEGIN 
  3. dbms_redefinition.finish_redef_table( 
  4. uname => 'PAR'
  5. orig_table => 'LUCIFER'
  6. int_table => 'LUCIFER_PAR'); 
  7. END

13、查看分區(qū)表是否已轉(zhuǎn)換

  1. sqlplus par/par 
  2. select owner,table_name,partitioned from user_tables where table_name in ('LUCIFER','LUCIFER_PAR'); 

如上,LUCIFER表已經(jīng)在線重定義為分區(qū)表結(jié)構(gòu)。

14、手動(dòng)修改重命名索引

此時(shí),原表名的表已經(jīng)轉(zhuǎn)換為中間表,需要先將原表的索引,rename到其他名字,本次是BAK,需要注意索引名稱長(zhǎng)度不能過(guò)長(zhǎng)

  1. sqlplus / as sysdba 
  2. ALTER index PAR.ID_NAME RENAME TO ID_NAME_BAK; 

rename新分區(qū)表索引,由于新分區(qū)表的索引名稱還是中間表的索引名稱,所以需要手動(dòng)rename:

  1. sqlplus / as sysdba 
  2. ALTER index PAR.ID_NAME_PAR RENAME TO ID_NAME; 

15、查看是否存在無(wú)效索引

  1. sqlplus / as sysdba 
  2. SELECT owner index_owner, index_name, index_type,'N/A' partition_name,status,table_name,tablespace_name, 
  3.   'alter index '||owner||'.'||index_name||' rebuild;' rebuild_index 
  4.   FROM dba_indexes 
  5. WHERE status = 'UNUSABLE' 
  6. UNION ALL 
  7. SELECT a.index_owner,a.index_name,b.index_type,a.partition_name,a.status,b.table_name,a.tablespace_name, 
  8. 'alter index '||a.index_owner||'.'||a.index_name||' rebuild partition '||a.partition_name||' ;' rebuild_index 
  9.   FROM dba_ind_partitions a, dba_indexes b 
  10. WHERE a.index_name = b.index_name 
  11.    AND a.index_owner = b.owner 
  12.    AND a.status = 'UNUSABLE' 
  13. UNION ALL 
  14. SELECT owner index_owner,a.index_name,b.index_type,'N/A' partition_name,a.status,b.table_name,NULL
  15. 'alter index '||a.index_owner||'.'||a.index_name||' rebuild subpartition '||a.subpartition_name||';' rebuild_index 
  16.   FROM dba_ind_subpartitions a, dba_indexes b 
  17. WHERE a.index_name = b.index_name 
  18.    AND a.index_owner = b.owner 
  19.    AND a.status = 'UNUSABLE'

16、檢查切換后是否開啟row_movement

  1. sqlplus / as sysdba 
  2. select owner,table_name,row_movement from dba_tables where table_name in ('LUCIFER','LUCIFER_PAR'and owner='PAR'

17、檢查無(wú)效對(duì)象

  1. ##無(wú)效對(duì)象編譯 
  2. sqlplus / as sysdba  
  3. @?/rdbms/admin/utlrp.sql 
  4.  
  5. select  'alter  '||object_type||'   '||owner||'.'||object_name||'   compile;' 
  6. from  dba_objects t 
  7. where t.status = 'INVALID' order by 1; 

 

18、收集統(tǒng)計(jì)信息

  1. sqlplus / as sysdba 
  2. exec dbms_stats.gather_table_stats(ownname => 'PAR',tabname => 'LUCIFER',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE,degree => '8') ; 

19、插入測(cè)試數(shù)據(jù)

  1. sqlplus par/par 
  2. begin 
  3.   for i in 100 .. 124 loop 
  4.     insert into lucifer values 
  5.       (i, 
  6.        'lcuifer_' || i, 
  7.        add_months(to_date('2021-5-1''yyyy-mm-dd'), i)); 
  8.   end loop; 
  9.   commit
  10. end

20、查詢分區(qū)表數(shù)據(jù)分布

  1. sqlplus par/par 
  2. SELECT COUNT(*) FROM  LUCIFER; 
  3. SELECT * FROM  LUCIFER PARTITION(LUCIFER_P202101); 
  4. SELECT * FROM  LUCIFER PARTITION(LUCIFER_P202201); 
  5. SELECT * FROM  LUCIFER PARTITION(LUCIFER_MAX); 

可以發(fā)現(xiàn),數(shù)據(jù)已經(jīng)根據(jù)日期均勻分布在不同的子分區(qū)中。

至此,在線重定義已經(jīng)完成,分區(qū)表已成功轉(zhuǎn)換。

「參考MOS文檔:」

  • How To Partition Existing Table Using DBMS_REDEFINITION (Doc ID 472449.1)

 

責(zé)任編輯:姜華 來(lái)源: Lucifer三思而后行
相關(guān)推薦

2009-06-24 10:26:41

Oracle約束分區(qū)表

2021-01-20 08:07:52

oracle分區(qū)單表

2017-07-04 11:02:40

Oracle新列分區(qū)

2023-10-11 13:42:21

2010-04-19 14:01:22

Oracle查看分區(qū)表

2011-04-11 11:32:29

Oracle分區(qū)表磁盤IO沖突

2023-01-30 09:13:17

Oracle分區(qū)表技術(shù)

2017-08-30 16:59:54

PostgreSQL分區(qū)表

2011-08-23 10:37:15

Oracle分區(qū)表本地索引

2010-10-11 10:16:17

Mysql分區(qū)表

2010-11-22 15:06:46

MySQL分區(qū)表

2011-03-22 14:49:35

Oracle數(shù)據(jù)庫(kù)重定義表

2011-03-22 14:57:52

Oracle數(shù)據(jù)庫(kù)普通表分區(qū)表

2021-09-07 17:54:04

OpenGauss分區(qū)表索引

2010-10-11 09:50:32

Mysql分區(qū)表

2021-04-19 08:16:38

Hive數(shù)據(jù)類型大數(shù)據(jù)技術(shù)

2010-04-16 13:41:14

Oracle表分區(qū)

2009-08-17 08:35:22

Linux掛載分區(qū)表fstab

2011-08-11 15:34:26

Oracle數(shù)據(jù)庫(kù)新增字段在線重定義

2010-04-19 14:23:34

Oracle增加表分區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一本久道久久综合| 成人xxxx视频| 国产特黄级aaaaa片免| 国偷自产一区二区免费视频| 欧美高清在线精品一区| 亚洲影院在线看| 国产情侣在线视频| 日本不卡高清| 精品日韩一区二区| 日本新janpanese乱熟| 高清免费电影在线观看| 97久久超碰精品国产| 国产精品一区av| 精品少妇theporn| 成人久久电影| 亚洲精品97久久| 欧美一级xxxx| av资源亚洲| 一区二区三区四区精品在线视频| 韩日午夜在线资源一区二区| 国产手机视频在线| 久久久噜噜噜| 国内精品小视频| 美国一级片在线观看| 亚洲自拍都市欧美小说| 欧美一区二区观看视频| 成人性生生活性生交12| 98色花堂精品视频在线观看| 亚洲男人天堂一区| 日本在线观看一区二区三区| 三级网站在线看| 国产中文字幕精品| 国产精品久久99久久| 日韩欧美性视频| 亚洲欧美文学| 色婷婷综合久久久久| 亚洲第一香蕉网| 欧美日韩一区二区三区四区不卡 | 亚洲国产精品久久久久婷蜜芽| 免费在线看黄网站| 中文字幕第一区二区| 蜜桃传媒视频第一区入口在线看| www.99视频| 另类小说一区二区三区| 国产精品久久久av久久久| av大全在线观看| 亚洲美女色禁图| 久久久久久九九九| 久久婷婷国产麻豆91| 五月天综合网站| 综合av色偷偷网| 美国美女黄色片| 精品免费视频| 亚洲理论在线a中文字幕| 亚洲成人日韩在线| 色婷婷精品视频| 精品香蕉一区二区三区| 精品人妻一区二区三区视频| 伊人久久大香线蕉无限次| 亚洲人成毛片在线播放| 亚洲av无码国产精品麻豆天美 | 在线码字幕一区| 爱久久·www| 国产精品丝袜91| 一本一生久久a久久精品综合蜜| 日本中文字幕伦在线观看| 欧美国产精品一区| 亚洲精品人成| 国内精品不卡| 亚洲国产精品一区二区尤物区| 成人在线视频一区二区三区| 欧美xxxxhdvideosex| 亚洲成人一区在线| a√天堂在线观看| 91tv亚洲精品香蕉国产一区| 欧美日本高清视频在线观看| 国产资源中文字幕| 97精品久久| 亚洲免费av网址| 天堂网av2018| 国产综合网站| 青草热久免费精品视频| 在线免费观看高清视频| 国产高清不卡一区二区| 国产精品久久久久久久免费大片 | www.美女亚洲精品| 欧美人妻一区二区| 国产日韩精品视频一区二区三区 | 偷窥自拍亚洲色图精选| 亚洲一区999| 国产suv精品一区二区68| 亚洲一级黄色| 国产精品xxx视频| 国产同性人妖ts口直男| 91网站最新网址| 亚洲国产精品毛片| av午夜在线观看| 欧美性极品少妇| 免费观看污网站| 国产亚洲电影| 九九久久久久99精品| 中文字幕亚洲乱码熟女1区2区| 免费在线看一区| 国产精华一区二区三区| 最新电影电视剧在线观看免费观看| 亚洲男人的天堂av| 欧美一级黄色片视频| 欧美9999| 影音先锋欧美精品| 精品无码m3u8在线观看| 日产国产欧美视频一区精品| 成人看片视频| 91视频在线观看| 亚洲综合免费观看高清完整版 | 国产一区二区剧情av在线| 久久久久久久久四区三区| 成人片在线看| 在线观看视频一区| 白嫩情侣偷拍呻吟刺激| 91精品精品| 国产精品免费电影| 深夜视频在线免费| 亚洲综合999| 不卡的在线视频| 精品国产91| 久久久久久久久久久成人| 91成品人影院| 国产亚洲一本大道中文在线| 欧美视频在线免费播放| 在线播放一区二区精品视频| 日韩有码片在线观看| 亚洲国产精品无码久久久| 波多野结衣在线一区| 久久久99精品视频| 国产麻豆一区二区三区| 丝袜美腿精品国产二区| 波多野结衣绝顶大高潮| 91丨九色丨蝌蚪丨老版| 亚洲精品久久久久久久蜜桃臀| 精品91福利视频| www日韩欧美| 一级特黄aaa大片| 亚洲国产精品激情在线观看| 四季av一区二区| 精品国产91久久久久久浪潮蜜月| 茄子视频成人在线| 亚洲av毛片成人精品| 午夜a成v人精品| 一边摸一边做爽的视频17国产 | 中文字幕中文字幕在线一区 | 亚洲桃花岛网站| 久久精品国产成人av| 99精品视频一区| 精品无码国模私拍视频| 极品国产人妖chinesets亚洲人妖| 欧美日韩国产成人| 黄频网站在线观看| 无吗不卡中文字幕| 麻豆精品免费视频| 蜜桃一区二区三区四区| 午夜啪啪免费视频| 精品久久久久久久久久岛国gif| 美女撒尿一区二区三区| 亚洲av无码乱码国产精品久久| 亚洲一区二区视频| 亚洲精品乱码久久久久久久| 嫩草成人www欧美| 视频三区二区一区| 亚洲伦理一区二区| 欧美乱大交xxxxx| 色婷婷视频在线| 日韩欧美黄色动漫| 国产免费嫩草影院| 国产福利精品导航| 黄色一级片播放| 精品视频亚洲| 91香蕉国产在线观看| 日本高清成人vr专区| 亚洲国产精品嫩草影院久久| 中文字幕一区二区人妻视频| 国产精品亲子乱子伦xxxx裸| 久久综合桃花网| 在线一区视频| 亚洲精品视频一二三| 亚洲精品在线播放| 日本伊人精品一区二区三区介绍| 在线观看精品一区二区三区| 欧美xxx久久| 亚洲av无码精品一区二区| 成人免费一区二区三区视频| 久久久久久婷婷| 蜜臀久久99精品久久久久久9| 国产91视频一区| 亚洲三级性片| 97久久人人超碰caoprom欧美 | 成人黄色片在线| 精品极品在线| 久热精品视频在线免费观看 | 99精品热视频| 亚洲网中文字幕| 男女精品网站| av动漫在线免费观看| 国产欧美日韩| 国产91色在线|亚洲| 国产精品黄色片| 97久久国产精品| 国产成人高清精品| 在线视频一区二区| 欧美一级淫片aaaaaa| 欧美日本韩国一区| 波多野结衣一本一道| 亚洲午夜久久久久久久久电影网| 在线观看免费黄色网址| 2023国产精品| 国产a级片视频| 久久99国产精品麻豆| 99免费视频观看| 91久久亚洲| 超碰10000| 国产精品毛片一区二区在线看| 欧美一级片免费观看| 高清欧美性猛交xxxx黑人猛| 91精品视频在线播放| 国产成人免费精品| 国产精品999| 高清av不卡| 97视频在线观看免费高清完整版在线观看| 九色porny在线| 日韩在线视频导航| 国产福利免费在线观看| 国产丝袜精品第一页| 熟妇人妻系列aⅴ无码专区友真希| 欧美一级日韩一级| 国产麻豆免费观看| 欧美精选午夜久久久乱码6080| 91视频久久久| 色av成人天堂桃色av| 国产伦精品一区二区三区视频网站| 亚洲mv在线观看| 久久久久久久久久久久久久久久久| 亚洲欧洲韩国日本视频| 国产精品夜夜夜爽阿娇| 国产精品欧美一区喷水| 五月婷婷综合激情网| 国产精品每日更新| www.99re6| 亚洲伦在线观看| 亚洲av鲁丝一区二区三区| 亚洲女与黑人做爰| 免费在线观看黄色av| 亚洲国产中文字幕在线视频综合| 日日骚一区二区三区| 一区二区国产视频| 精品亚洲永久免费| 天天影视色香欲综合网老头| 在线观看亚洲欧美| 色婷婷综合五月| 欧美在线视频精品| 欧美日韩久久久久久| 国产精品久久久久久无人区| 日韩一区二区三区精品视频| 成人乱码一区二区三区| 国产丝袜一区视频在线观看| 可以直接在线观看的av| 中文字幕久久久av一区| 久草资源在线| 久久国产精品亚洲| 国产日产一区二区三区| 插插插亚洲综合网| 国产日产一区二区| 午夜伦理精品一区| 日韩欧美精品电影| 91夜夜未满十八勿入爽爽影院| 欧美9999| 欧美成人第一区| 97视频热人人精品免费| 久久久久久久香蕉| 亚洲永久网站| 亚洲精品手机在线观看| 丁香婷婷综合色啪| 日韩人妻无码精品综合区| 国产精品久久久久一区二区三区共| 欧美黄色aaa| 欧美性猛交99久久久久99按摩| 中文天堂在线资源| 精品少妇一区二区三区| 欧美zozo| 欧美成人精品影院| 韩国美女久久| 99精品99久久久久久宅男| 性欧美lx╳lx╳| 国产又粗又硬又长| 久久久噜噜噜久久狠狠50岁| 999在线精品视频| 久久久蜜桃精品| 色在线观看视频| 色av成人天堂桃色av| 亚洲爆乳无码一区二区三区| 亚洲网站在线看| 久久大胆人体| 成人美女av在线直播| 日韩成人av在线资源| 欧美一级黄色录像片| 日韩综合一区二区| 蜜臀av粉嫩av懂色av| 18欧美乱大交hd1984| 国产免费一级视频| 欧美成人一区二区三区| 91在线网址| 欧美怡红院视频一区二区三区| 欧美日韩国产网站| 国模精品娜娜一二三区| 久久精品免费一区二区三区| 成人羞羞国产免费网站| 粉嫩欧美一区二区三区高清影视| 国产一区二区三区四区在线| 欧美日韩亚洲高清| 亚洲第一免费视频| 美女福利精品视频| 国产精品久久久久久久久免费高清| 精品不卡一区二区三区| 欧美精品97| 两性午夜免费视频| 中文字幕一区二区5566日韩| 最新中文字幕在线观看视频| 日韩电视剧免费观看网站| 日本中文字幕中出在线| 成人性教育视频在线观看| 成人免费a**址| 亚洲国产精品毛片av不卡在线| a亚洲天堂av| 久久久久久免费观看| 日韩欧美亚洲国产另类| 美女免费久久| 成人免费淫片视频软件| 999久久久精品国产| 一级黄色特级片| 国产精品美女久久久久aⅴ| 亚洲男人天堂网址| 亚洲日韩中文字幕| 香蕉成人av| 亚洲高清123| 久久精品国产99久久6| 亚洲熟女少妇一区二区| 欧美日韩成人激情| 国产精品久久麻豆| 91午夜理伦私人影院| 午夜亚洲福利| 黄页网站在线看| 亚洲综合色成人| 十八禁一区二区三区| 91国产精品91| 九九热爱视频精品视频| 黄色国产小视频| 国产精品久久夜| 97人妻精品一区二区三区软件| 久久综合电影一区| 婷婷视频一区二区三区| 久无码久无码av无码| 99免费精品视频| 天天爽夜夜爽人人爽| 在线看日韩欧美| 在线免费成人| 日本香蕉视频在线观看| 99re成人精品视频| 国产日韩在线免费观看| 久久精品亚洲一区| 一区二区亚洲视频| 黄色免费观看视频网站| 国产精品午夜在线观看| 国产成人精品无码高潮| 8x拔播拔播x8国产精品| 日本a口亚洲| 中文字幕第10页| 欧美性猛交视频| 日本最黄一级片免费在线| 粉嫩精品一区二区三区在线观看 | 欧美亚洲成人网| 日韩1区2区| 亚洲最大视频网| 日本高清成人免费播放| 日韩黄色影院| 精品欧美一区二区三区久久久 | 91精品国产综合久久香蕉922| 综合精品久久| 草草地址线路①屁屁影院成人| 欧美日韩中文另类| 后进极品白嫩翘臀在线播放| 日韩不卡av| 丁香婷婷综合五月| 中文字幕永久在线观看| 欧美日本亚洲视频| 欧美理论电影大全| 特级特黄刘亦菲aaa级| 欧美性大战久久久| 99色在线观看| 大地资源第二页在线观看高清版| a级高清视频欧美日韩| 国产精品国产一区二区三区四区| 国语对白做受69|