数据泵参数partition_options 在对于迁移分区表的使用。

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介:
数据泵参数partition_options 在对于迁移分区表的使用。
1 NONE 象在系统上的分区表一样创建。
2 DEPARTITION 每个分区表和子分区表作为一个独立的表创建,名字使用表和分区(子分区)名字的组合。
3 MERGE 将所有分区合并到一个表
一 创建环境:
yang@rac1>create table yang_part2 (
  2                 id number,
  3                 create_time date,
  4                 value varchar2(20),
  5                 name varchar2(30)
  6      )
  7      partition by range (create_time) (
  8                 partition p2090 values less than (to_date('20100101','yyyymmdd')),
  9                 partition p201001 values less than (to_date('20100401','yyyymmdd')),
 10                partition p201002 values less than (to_date('20100701','yyyymmdd')),
 11                partition p201003 values less than (to_date('20101001','yyyymmdd')),
 12                partition p201004 values less than (MAXVALUE)
 13       );
表已创建。
yang@rac1>insert into yang_part2
  2  select rownum id, sysdate - dbms_random.value(1,400) create_time,
  3  dbms_random.string('s',15) value,
  4  dbms_random.string('d',15) name
  5  from dual
  6  connect by level  <=1e4;

已创建10000行。
yang@rac1>COMMIT;
提交完成。
导出数据:
C:\Users\aaaa>expdp yang/yang tables=yang_part2 directory=dumpdir dumpfile=yangpart2.dmp logfile=yangpart2.log
Export: Release 11.1.0.6.0 - Production on 星期三, 30 3月, 2011 22:25:47
Copyright (c) 2003, 2007, Oracle.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "YANG"."SYS_EXPORT_TABLE_01":  yang/******** tables=yang_part2 directory=dumpdir dumpfile=yangp
art2.dmp logfile=yangpart2.log
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 832 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
. . 导出了 "YANG"."YANG_PART2":"P201004"               219.3 KB    4549 行
. . 导出了 "YANG"."YANG_PART2":"P201002"               111.1 KB    2239 行
. . 导出了 "YANG"."YANG_PART2":"P201003"               114.5 KB    2312 行
. . 导出了 "YANG"."YANG_PART2":"P201001"               48.36 KB     900 行
. . 导出了 "YANG"."YANG_PART2":"P2090"                     0 KB       0 行
已成功加载/卸载了主表 "YANG"."SYS_EXPORT_TABLE_01"

yang@rac1>drop table yang_part2 purge;
******************************************************************************
YANG.SYS_EXPORT_TABLE_01 的转储文件集为:
  D:\DUMP\YANGPART2.DMP
作业 "YANG"."SYS_EXPORT_TABLE_01" 已于 22:26:04 成功完成
二 一下分别使用不同参数对分区表进行导入实验:
1)partition_options=none模式。
C:\Users\aaaa>impdp yang/yang directory=dumpdir dumpfile=yangpart2.dmp partition_options=none logfile=impdpyangpart2.log
Import: Release 11.1.0.6.0 - Production on 星期三, 30 3月, 2011 22:29:00
Copyright (c) 2003, 2007, Oracle.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "YANG"."SYS_IMPORT_FULL_01"
启动 "YANG"."SYS_IMPORT_FULL_01":  yang/******** directory=dumpdir dumpfile=yangpart2.dmp partition_options=none
logfile=impdpyangpart2.log
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "YANG"."YANG_PART2":"P201004"               219.3 KB    4549 行
. . 导入了 "YANG"."YANG_PART2":"P201002"               111.1 KB    2239 行
. . 导入了 "YANG"."YANG_PART2":"P201003"               114.5 KB    2312 行
. . 导入了 "YANG"."YANG_PART2":"P201001"               48.36 KB     900 行
. . 导入了 "YANG"."YANG_PART2":"P2090"                     0 KB       0 行
作业 "YANG"."SYS_IMPORT_FULL_01" 已于 22:29:04 成功完成

yang@rac1>select dbms_metadata.get_ddl('TABLE','YANG_PART2') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','YANG_PART2')
--------------------------------------------------------------------------------

  CREATE TABLE "YANG"."YANG_PART2"
   (    "ID" NUMBER,
        "CREATE_TIME" DATE,
        "VALUE" VARCHAR2(20),
        "NAME" VARCHAR2(30)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(
  BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"
  PARTITION BY RANGE ("CREATE_TIME")
 (PARTITION "P2090"  VALUES LESS THAN (TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI
:SS', 'NLS_CALENDAR=GREGORIAN'))
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS ,
 PARTITION "P201001"  VALUES LESS THAN (TO_DATE(' 2010-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
LS_
CALENDAR=GREGORIAN'))
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS ,
 PARTITION "P201002"  VALUES LESS THAN (TO_DATE(' 2010-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N
LS_CALENDAR=GR
EGORIAN'))
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS ,
 PARTITION "P201003"  VALUES LESS THAN (TO_DATE(' 2010-10-01 00:00:00', 'SYYYY-MM-DD
HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS ,
 PARTITION "P201004"  VALUES LESS THAN (MAXVALUE)
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS )
--导入的表和以前一样。
yang@rac1>select table_name from user_tables;
TABLE_NAME
------------------------------
MLOG$_YANGTAB
YANGTAB2
MV_YANGTAB
MV_YANGTAB2
YANGALL_MV
DA_TEST
RUPD$_YANGTAB
YANG_PART2
YANGTAB
已选择9行。
yang@rac1>select count(1) from yang_part2;
  COUNT(1)
----------
     10000
yang@rac1>drop table yang_part2;
表已删除。
yang@rac1>purge recyclebin;
回收站已清空。
2 partition_options=merge 模式:
C:\Users\aaaa>impdp yang/yang directory=dumpdir dumpfile=yangpart2.dmp partition_options=merge logfile=impdpyangpart3.log
Import: Release 11.1.0.6.0 - Production on 星期三, 30 3月, 2011 22:32:02
Copyright (c) 2003, 2007, Oracle.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "YANG"."SYS_IMPORT_FULL_01"
启动 "YANG"."SYS_IMPORT_FULL_01":  yang/******** directory=dumpdir dumpfile=yangpart2.dmp partition_options=merge
logfile=impdpyangpart3.log
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "YANG"."YANG_PART2":"P201004"               219.3 KB    4549 行
. . 导入了 "YANG"."YANG_PART2":"P201002"               111.1 KB    2239 行
. . 导入了 "YANG"."YANG_PART2":"P201003"               114.5 KB    2312 行
. . 导入了 "YANG"."YANG_PART2":"P201001"               48.36 KB     900 行
. . 导入了 "YANG"."YANG_PART2":"P2090"                     0 KB       0 行
作业 "YANG"."SYS_IMPORT_FULL_01" 已于 22:32:05 成功完成

yang@rac1>select count(1) from yang_part2;
  COUNT(1)
----------
     10000
yang@rac1>select dbms_metadata.get_ddl('TABLE','YANG_PART2') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','YANG_PART2')
--------------------------------------------------------------------------------
  CREATE TABLE "YANG"."YANG_PART2"
   (    "ID" NUMBER,
        "CREATE_TIME" DATE,
        "VALUE" VARCHAR2(20),
        "NAME" VARCHAR2(30)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"
--导入的表被合成一个表了
yang@rac1>drop table yang_part2 purge;
注意:如果导出时使用了TRANSPORTABLE参数,这里就不能使用NONE和MERGE
3) partition_options=departition 模式:
C:\Users\aaaa>impdp yang/yang directory=dumpdir dumpfile=yangpart2.dmp partition_options=departition logfile=impdpyangpart3.log
Import: Release 11.1.0.6.0 - Production on 星期三, 30 3月, 2011 22:33:20
Copyright (c) 2003, 2007, Oracle.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "YANG"."SYS_IMPORT_FULL_01"
启动 "YANG"."SYS_IMPORT_FULL_01":  yang/******** directory=dumpdir dumpfile=yangpart2.dmp partition_options=departition
logfile=impdpyangpart3.log
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "YANG"."YANG_PART2_P201004"                 219.3 KB    4549 行
. . 导入了 "YANG"."YANG_PART2_P201002"                 111.1 KB    2239 行
. . 导入了 "YANG"."YANG_PART2_P201003"                 114.5 KB    2312 行
. . 导入了 "YANG"."YANG_PART2_P201001"                 48.36 KB     900 行
. . 导入了 "YANG"."YANG_PART2_P2090"                       0 KB       0 行
作业 "YANG"."SYS_IMPORT_FULL_01" 已于 22:33:26 成功完成
表已删除。
--在使用DEPARTITION选项导入后,Oracle采用默认命名方法TABLE_NAME + ‘_’ + PARTITION_NAME,将每个分区都创建为一张表。
yang@rac1>select table_name from user_tables;
TABLE_NAME
------------------------------
MLOG$_YANGTAB
YANGTAB2
MV_YANGTAB
MV_YANGTAB2
YANGALL_MV
DA_TEST
YANG_PART2_P201001  
YANG_PART2_P201002
YANG_PART2_P201003
YANG_PART2_P201004
YANG_PART2_P2090
RUPD$_YANGTAB
YANGTAB

已选择13行。
yang@rac1>select count(1) from yang_part2_p2090;
  COUNT(1)
----------
         0
yang@rac1>select count(1) from yang_part2_p201001;
  COUNT(1)
----------
       900
yang@rac1>select count(1) from yang_part2_p201002;
  COUNT(1)
----------
      2239
yang@rac1>select count(1) from yang_part2_p201003;
  COUNT(1)
----------
      2312
yang@rac1>select count(1) from yang_part2_p201004;
  COUNT(1)
----------
      4549
相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
简单易操作 VsCoe离线安装插件【步骤+图片+插件】
这篇文章介绍了在Visual Studio Code (VSCode) 中进行离线安装插件的详细步骤,包括如何下载插件、以SVN插件为例的离线安装过程、通过命令行安装以及一个更加简单的离线安装方式,还提供了操作界面的截图帮助理解。
简单易操作 VsCoe离线安装插件【步骤+图片+插件】
|
SQL Java 数据库连接
【Java】已解决java.sql.SQLRecoverableException异常
【Java】已解决java.sql.SQLRecoverableException异常
1761 0
|
Oracle 关系型数据库 数据库
数据库恢复后打开时遇到 ORA-01152的解决方法
数据库恢复后打开时遇到 ORA-01152
1305 0
|
关系型数据库 MySQL 数据库
Mysql密码忘记恢复
Mysql密码忘记恢复
487 0
|
Oracle 关系型数据库 数据库
Oracle 会话超时设置3:在用户profile文件中设置
Oracle会话超时设置系列的第三篇文章,介绍在用户profile文件中设置会话的超时设置。
724 0
|
SQL 关系型数据库 MySQL
socket=/tmp/mysql.sock是干什么的?底层原理是什么?
socket=/tmp/mysql.sock是干什么的?底层原理是什么?
1999 0
|
Linux 编译器 数据安全/隐私保护
【Linux】下的权限管理/关于root用户和普通用户的区别/不同用户的访问权限有什么不同?/到底什么是粘滞位?
1.Linux下用户的分类 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
|
SQL XML Java
mybatis系列之获取mapper.xml配置文件中的sql
hello~各位读者好,我是鸭血粉丝(大家可以称呼我为「阿粉」)。今天,阿粉带着大家来了解一下获取 mapper.xml 配置文件中的sql
4683 0
mybatis系列之获取mapper.xml配置文件中的sql
|
Python
Python 技术篇-pip安装提示:‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件,问题解决方法
Python 技术篇-pip安装提示:‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件,问题解决方法
1757 0
Python 技术篇-pip安装提示:‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件,问题解决方法
|
SQL Oracle 关系型数据库
实现批量Kill Oracle会话进程
有时业务DML高并发操作会导致表出现很多锁的情况,甚至需要登录服务器kill进程才能完全解锁,此时就需要能够批量Kill Oracle会话进程的脚本,来减轻操作的压力。
1679 0