某Oracle 11.2.0.4 数据库,用户 CJC01 下有多个分区表,一共包含2837 个分区。使用 expdp CONTENT=METADATA_ONLY 仅导出表结构,导出文件只有204 KB。但通过 impdp 导入到新用户 CJC02 后,目标表空间瞬间占用 20 多 GB,而实际并未导入任何业务数据。
检查数据库参数:
SQL> show parameter deferred_segment_creation; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ deferred_segment_creation boolean TRUE
延迟段创建明明是 TRUE,为什么导入空分区还会占用这么大空间?
根本原因:
源库中已经分配了段的分区,其 DDL 中携带了 STORAGE(INITIAL 8388608) 和 SEGMENT CREATION IMMEDIATE 子句。
Data Pump 导出元数据时将这些存储属性原样写入 dump 文件,导入时 Oracle 会为这些分区立即重建段并分配 8MB 初始区。
具体逻辑:
在 DEFERRED_SEGMENT_CREATION=TRUE 时,创建分区表默认所有分区延迟创建段。
一旦向某个分区插入数据,该分区立即分配段,也就是从SEGMENT CREATION DEFERRED变为SEGMENT CREATION IMMEDIATE,默认初始区为 8MB(由隐藏参数 _partition_large_extents=TRUE 控制)。
expdp CONTENT=METADATA_ONLY 导出时,有数据的分区在 DDL 中会带上 STORAGE(INITIAL 8388608) 子句。
impdp 默认带有这些存储属性,导致目标库中这些分区立即分配 8MB,与目标库的 DEFERRED_SEGMENT_CREATION 参数无关。
环境 2837 个分区中大部分有数据,因此总占用 ≈ 有数据的分区数 × 8MB ≈ 20 多 GB。
下面通过一个完整的实验复现并解决该问题。
-- 使用 sysdba 连接 sqlplus / as sysdba -- 确认延迟段创建参数 SHOW PARAMETER DEFERRED_SEGMENT_CREATION; -- 应返回 TRUE -- 创建表空间 CREATE TABLESPACE TBS_CJC01 DATAFILE '/u01/app/oracle/oradata/cjc/cjc01_data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; CREATE TABLESPACE TBS_CJC02 DATAFILE '/u01/app/oracle/oradata/cjc/cjc02_data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; -- 创建用户,密码均为 1 CREATE USER CJC01 IDENTIFIED BY 1 DEFAULT TABLESPACE TBS_CJC01 QUOTA UNLIMITED ON TBS_CJC01; CREATE USER CJC02 IDENTIFIED BY 1 DEFAULT TABLESPACE TBS_CJC02 QUOTA UNLIMITED ON TBS_CJC02; GRANT CONNECT, RESOURCE, DBA TO CJC01, CJC02; -- 创建目录对象 CREATE OR REPLACE DIRECTORY cjc_dir AS '/home/oracle/dump'; GRANT READ, WRITE ON DIRECTORY cjc_dir TO CJC01, CJC02;
CONN CJC01/1
CREATE TABLE CJC01.PART_TAB (
id NUMBER,
created_date DATE,
data VARCHAR2(100)
)
PARTITION BY RANGE (created_date) (
PARTITION p_000 VALUES LESS THAN (TO_DATE('2023-01-01','YYYY-MM-DD')),
PARTITION p_001 VALUES LESS THAN (TO_DATE('2023-02-01','YYYY-MM-DD')),
PARTITION p_002 VALUES LESS THAN (TO_DATE('2023-03-01','YYYY-MM-DD')),
PARTITION p_003 VALUES LESS THAN (TO_DATE('2023-04-01','YYYY-MM-DD')),
PARTITION p_004 VALUES LESS THAN (TO_DATE('2023-05-01','YYYY-MM-DD')),
PARTITION p_005 VALUES LESS THAN (TO_DATE('2023-06-01','YYYY-MM-DD')),
PARTITION p_006 VALUES LESS THAN (TO_DATE('2023-07-01','YYYY-MM-DD')),
PARTITION p_007 VALUES LESS THAN (TO_DATE('2023-08-01','YYYY-MM-DD')),
PARTITION p_008 VALUES LESS THAN (TO_DATE('2023-09-01','YYYY-MM-DD')),
PARTITION p_009 VALUES LESS THAN (MAXVALUE)
);
确认所有分区均为延迟创建:
SELECT partition_name, segment_created FROM dba_tab_partitions WHERE table_owner = 'CJC01' AND table_name = 'PART_TAB' ORDER BY partition_name; PARTITION_NAME SEGM ------------------------------ ---- P_000 NO P_001 NO P_002 NO P_003 NO P_004 NO P_005 NO P_006 NO P_007 NO P_008 NO P_009 NO 10 rows selected.
INSERT INTO CJC01.PART_TAB VALUES (1, TO_DATE('2023-01-15','YYYY-MM-DD'), 'data1');
INSERT INTO CJC01.PART_TAB VALUES (2, TO_DATE('2023-04-15','YYYY-MM-DD'), 'data2');
INSERT INTO CJC01.PART_TAB VALUES (3, TO_DATE('2023-07-15','YYYY-MM-DD'), 'data3');
COMMIT;
再次查看分区段状态:
SELECT partition_name, segment_created, initial_extent/1024/1024 AS initial_mb FROM dba_tab_partitions WHERE table_owner = 'CJC01' AND table_name = 'PART_TAB' ORDER BY partition_name; -- 预期:p_001、p_004、p_007 的 SEGMENT_CREATED='YES',INITIAL_MB=8;其余为 'NO' PARTITION_NAME SEGM INITIAL_MB ------------------------------ ---- ---------- P_000 NO P_001 YES 8 P_002 NO P_003 NO P_004 YES 8 P_005 NO P_006 NO P_007 YES 8 P_008 NO P_009 NO 10 rows selected.
SET LONG 1000000
SET PAGESIZE 0
SELECT DBMS_METADATA.GET_DDL('TABLE', 'PART_TAB', 'CJC01') FROM dual;
在输出中可以看到:
CREATE TABLE "CJC01"."PART_TAB"
( "ID" NUMBER,
"CREATED_DATE" DATE,
"DATA" VARCHAR2(100)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01"
PARTITION BY RANGE ("CREATED_DATE")
(PARTITION "P_000" VALUES LESS THAN (TO_DATE(' 2023-01-01 00:00:00', 'SYYYY-MM
-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_001" VALUES LESS THAN (TO_DATE(' 2023-02-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_002" VALUES LESS THAN (TO_DATE(' 2023-03-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_003" VALUES LESS THAN (TO_DATE(' 2023-04-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_004" VALUES LESS THAN (TO_DATE(' 2023-05-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_005" VALUES LESS THAN (TO_DATE(' 2023-06-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_006" VALUES LESS THAN (TO_DATE(' 2023-07-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_007" VALUES LESS THAN (TO_DATE(' 2023-08-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_008" VALUES LESS THAN (TO_DATE(' 2023-09-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" ,
PARTITION "P_009" VALUES LESS THAN (MAXVALUE) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC01" )
分区定义P_001、P_004、P_007末尾出现 SEGMENT CREATION IMMEDIATE
分区 P_001、P_004、P_007 的定义中包含 STORAGE (INITIAL 8388608 NEXT 1048576 …)
这证明:有数据的分区会在 DDL 中携带 8MB 初始区存储子句,导出时被完整写入 dump 文件。
expdp CJC01/1 DIRECTORY=cjc_dir \ DUMPFILE=cjc01_metadata.dmp \ CONTENT=METADATA_ONLY \ LOGFILE=expdp_metadata.log
[oracle@cjc-db-02 dump]$ expdp CJC01/1 DIRECTORY=cjc_dir \ > DUMPFILE=cjc01_metadata.dmp \ > CONTENT=METADATA_ONLY \ > LOGFILE=expdp_metadata.log Export: Release 11.2.0.4.0 - Production on Fri Sep 11 17:33:00 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "CJC01"."SYS_EXPORT_SCHEMA_01": CJC01/******** DIRECTORY=cjc_dir DUMPFILE=cjc01_metadata.dmp CONTENT=METADATA_ONLY LOGFILE=expdp_metadata.log Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Master table "CJC01"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for CJC01.SYS_EXPORT_SCHEMA_01 is: /home/oracle/dump/cjc01_metadata.dmp Job "CJC01"."SYS_EXPORT_SCHEMA_01" successfully completed at Fri Sep 11 17:33:07 2026 elapsed 0 00:00:07
[oracle@cjc-db-02 dump]$ ls -lrth total 208K -rw-r----- 1 oracle oinstall 204K Sep 11 17:33 cjc01_metadata.dmp -rw-r--r-- 1 oracle oinstall 1.4K Sep 11 17:33 expdp_metadata.log
– 确认 CJC02 表空间初始占用
CONN / as sysdba SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024,2) AS used_mb FROM dba_segments WHERE tablespace_name = 'TBS_CJC02' GROUP BY tablespace_name; no rows selected
impdp CJC02/1 DIRECTORY=cjc_dir \ DUMPFILE=cjc01_metadata.dmp \ REMAP_SCHEMA=CJC01:CJC02 \ REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 \ LOGFILE=impdp_bad.log
[oracle@cjc-db-02 dump]$ impdp CJC02/1 DIRECTORY=cjc_dir \ > DUMPFILE=cjc01_metadata.dmp \ > REMAP_SCHEMA=CJC01:CJC02 \ > REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 \ > LOGFILE=impdp_bad.log Import: Release 11.2.0.4.0 - Production on Fri Sep 11 17:34:14 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Master table "CJC02"."SYS_IMPORT_FULL_01" successfully loaded/unloaded Starting "CJC02"."SYS_IMPORT_FULL_01": CJC02/******** DIRECTORY=cjc_dir DUMPFILE=cjc01_metadata.dmp REMAP_SCHEMA=CJC01:CJC02 REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 LOGFILE=impdp_bad.log Processing object type SCHEMA_EXPORT/USER ORA-31684: Object type USER:"CJC02" already exists Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Job "CJC02"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Fri Sep 11 17:34:15 2026 elapsed 0 00:00:01
验证膨胀:
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024,2) AS used_mb FROM dba_segments WHERE tablespace_name = 'TBS_CJC02' GROUP BY tablespace_name; -- 预期:约 24MB(3 个有数据的分区 × 8MB) TABLESPACE_NAME USED_MB ------------------------------ ---------- TBS_CJC02 24
SELECT partition_name, segment_created, initial_extent/1024/1024 AS initial_mb FROM dba_tab_partitions WHERE table_owner = 'CJC02' AND table_name = 'PART_TAB' ORDER BY partition_name; PARTITION_NAME SEGM INITIAL_MB ------------------------------ ---- ---------- P_000 NO P_001 YES 8 P_002 NO P_003 NO P_004 YES 8 P_005 NO P_006 NO P_007 YES 8 P_008 NO P_009 NO 10 rows selected.
– 预期:p_001、p_004、p_007 的 SEGMENT_CREATED=‘YES’,INITIAL_MB=8;其余为 ‘NO’
结论:
即使目标库 DEFERRED_SEGMENT_CREATION=TRUE,源库中已有段的分区在导入时仍会立即创建段并分配 8MB 初始区。生产环境 2837 个分区中大部分有数据,因此总膨胀 ≈ 有数据的分区数 × 8MB,达到 20 多 GB。
CONN / as sysdba DROP USER CJC02 CASCADE; DROP TABLESPACE TBS_CJC02 INCLUDING CONTENTS AND DATAFILES; CREATE TABLESPACE TBS_CJC02 DATAFILE '/u01/app/oracle/oradata/cjc/cjc02_data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; CREATE USER CJC02 IDENTIFIED BY 1 DEFAULT TABLESPACE TBS_CJC02 QUOTA UNLIMITED ON TBS_CJC02; GRANT CONNECT, RESOURCE, DBA TO CJC02; GRANT READ, WRITE ON DIRECTORY cjc_dir TO CJC02;
impdp CJC02/1 DIRECTORY=cjc_dir \ DUMPFILE=cjc01_metadata.dmp \ REMAP_SCHEMA=CJC01:CJC02 \ REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 \ TRANSFORM=SEGMENT_ATTRIBUTES:N:TABLE \ TRANSFORM=STORAGE:N:TABLE \ LOGFILE=impdp_good.log
[oracle@cjc-db-02 dump]$ impdp CJC02/1 DIRECTORY=cjc_dir \ > DUMPFILE=cjc01_metadata.dmp \ > REMAP_SCHEMA=CJC01:CJC02 \ > REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 \ > TRANSFORM=SEGMENT_ATTRIBUTES:N:TABLE \ > TRANSFORM=STORAGE:N:TABLE \ > LOGFILE=impdp_good.log Import: Release 11.2.0.4.0 - Production on Fri Sep 11 17:35:41 2026 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Master table "CJC02"."SYS_IMPORT_FULL_01" successfully loaded/unloaded Starting "CJC02"."SYS_IMPORT_FULL_01": CJC02/******** DIRECTORY=cjc_dir DUMPFILE=cjc01_metadata.dmp REMAP_SCHEMA=CJC01:CJC02 REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 TRANSFORM=SEGMENT_ATTRIBUTES:N:TABLE TRANSFORM=STORAGE:N:TABLE LOGFILE=impdp_good.log Processing object type SCHEMA_EXPORT/USER ORA-31684: Object type USER:"CJC02" already exists Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Job "CJC02"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Fri Sep 11 17:35:42 2026 elapsed 0 00:00:01
验证空间正常:
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024,2) AS used_mb FROM dba_segments WHERE tablespace_name = 'TBS_CJC02' GROUP BY tablespace_name; no rows selected
SELECT partition_name, segment_created FROM dba_tab_partitions WHERE table_owner = 'CJC02' AND table_name = 'PART_TAB' ORDER BY partition_name; -- 预期:所有分区 SEGMENT_CREATED='NO'(延迟段创建重新生效) PARTITION_NAME SEGM ------------------------------ ---- P_000 NO P_001 NO P_002 NO P_003 NO P_004 NO P_005 NO P_006 NO P_007 NO P_008 NO P_009 NO 10 rows selected.
查看目标表 DDL:
CONN CJC02/1
SET LONG 1000000
SET PAGESIZE 0
SELECT DBMS_METADATA.GET_DDL('TABLE', 'PART_TAB', 'CJC02') FROM dual;
CREATE TABLE "CJC02"."PART_TAB"
( "ID" NUMBER,
"CREATED_DATE" DATE,
"DATA" VARCHAR2(100)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02"
PARTITION BY RANGE ("CREATED_DATE")
(PARTITION "P_000" VALUES LESS THAN (TO_DATE(' 2023-01-01 00:00:00', 'SYYYY-MM
-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_001" VALUES LESS THAN (TO_DATE(' 2023-02-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_002" VALUES LESS THAN (TO_DATE(' 2023-03-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_003" VALUES LESS THAN (TO_DATE(' 2023-04-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_004" VALUES LESS THAN (TO_DATE(' 2023-05-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_005" VALUES LESS THAN (TO_DATE(' 2023-06-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_006" VALUES LESS THAN (TO_DATE(' 2023-07-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_007" VALUES LESS THAN (TO_DATE(' 2023-08-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_008" VALUES LESS THAN (TO_DATE(' 2023-09-01 00:00:00', 'SYYYY-MM-
DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" ,
PARTITION "P_009" VALUES LESS THAN (MAXVALUE) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_CJC02" )
输出中不再包含 SEGMENT CREATION IMMEDIATE 和 STORAGE(INITIAL 8388608) 子句。

推荐的生产导入命令
impdp CJC02/1 DIRECTORY=cjc_dir \ DUMPFILE=cjc01_metadata.dmp \ REMAP_SCHEMA=CJC01:CJC02 \ REMAP_TABLESPACE=TBS_CJC01:TBS_CJC02 \ TRANSFORM=SEGMENT_ATTRIBUTES:N:TABLE \ TRANSFORM=STORAGE:N:TABLE \ LOGFILE=impdp_good.log
验证语句汇总
– 查看表空间使用量
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024,2) AS used_mb FROM dba_segments WHERE tablespace_name = 'TBS_CJC02' GROUP BY tablespace_name;
– 查看分区段创建情况
SELECT partition_name, segment_created, initial_extent/1024/1024 AS initial_mb FROM dba_tab_partitions WHERE table_owner = 'CJC02' AND table_name = 'PART_TAB' ORDER BY partition_name;
– 查看源表 DDL(确认存储子句)
SET LONG 1000000
SET PAGESIZE 0
SELECT DBMS_METADATA.GET_DDL('TABLE', 'PART_TAB', 'CJC01') FROM dual;
一句话总结: 迁移表结构时,务必加上 TRANSFORM=SEGMENT_ATTRIBUTES:N:TABLE 和 TRANSFORM=STORAGE:N:TABLE,否则源库中有数据的分区会将其 8MB 初始区属性带到目标库,导致空间暴涨。
欢迎关注我的公众号《 IT小Chen》
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29785807/viewspace-3182998/ ,如需转载,请注明出处,否则将追究法律责任。