【达梦数据库】-导入导出过程中get DDL复现过程

在处理问题的过程中,客户反馈在达梦数据库中导入导出分区表,get 表的DDL,不会出现表的所有分区信息,ORACLE数据库却会出现所有分区表,事实真的如此吗?复现过程如下:

1、创建基础表数据

--版本
select id_code;
--结果:1-2-70-21.09.24-147898-10028-SEC  Pack2

--初始化信息
--dminit path=/dmdata page_size=32 extent_size=32 charset=0 case_sensitive=0  log_size=2048 db_name=DAMENG instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123" 

--创建表
CREATE TABLE FUT_BGL_FQB_CJJG_001(SALES_ID NUMBER PRIMARY KEY,
SALEMAN VARCHAR(10),
SALEDATE DATE,
SALECOUNT INT,
CITY VARCHAR(10)) PARTITION BY RANGE(SALEDATE) 
INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
(
PARTITION P1 VALUES  LESS THAN (datetime '2019-09-01 00:00:00'),
PARTITION P2 VALUES  LESS THAN (datetime '2020-09-01 00:00:00')
);


--查询表的分区情况
SELECT table_name, partition_name, high_value  
FROM dba_tab_partitions  
WHERE table_name = 'FUT_BGL_FQB_CJJG_001'  
ORDER BY partition_position;
--结果:p1和p2两个分区


--插入数据触发自动分区
insert into FUT_BGL_FQB_CJJG_001 (SALES_ID,SALEDATE) values(1,'2020-09-02 00:00:00')
insert into FUT_BGL_FQB_CJJG_001 (SALES_ID,SALEDATE) values(2,'2021-09-02 00:00:00')
insert into FUT_BGL_FQB_CJJG_001 (SALES_ID,SALEDATE) values(3,'2022-09-02 00:00:00')
insert into FUT_BGL_FQB_CJJG_001 (SALES_ID,SALEDATE) values(4,'2023-09-02 00:00:00')
commit;
--查询表中数据
select * from FUT_BGL_FQB_CJJG_001;
--结果:已插入
--1	NULL	2020-09-02	NULL	NULL


--查询表的分区情况
SELECT table_name, partition_name, high_value  
FROM dba_tab_partitions  
WHERE table_name = 'FUT_BGL_FQB_CJJG_001'  
ORDER BY partition_position;
--结果:6个分区
--FUT_BGL_FQB_CJJG_001	P1	DATE'2019-09-01'
--FUT_BGL_FQB_CJJG_001	P2	DATE'2020-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1054	DATE'2021-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1056	DATE'2022-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1058	DATE'2023-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1060	DATE'2024-09-01'

2、导出导入

2.1、普通导出导入

普通导出导入只能看到创建两个分区的原始ddl,不能看到插入数据触发系统自动分区的内容

--⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐导出⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
--[dmdba@localhost0 dmdata]$ dexp USERID=SYSDBA/'"Hn@dameng123"'@192.168.56.200:5236 directory=/dmdata file=exptest.dmp log=exptest.log full=y tablespace=Y
--dexp V8

----- [2024-08-08 14:22:37]导出表:FUT_BGL_FQB_CJJG_001 -----

--导出模式下的对象权限...

--FUT_BGL_FQB_CJJG_001导出结束,共导出 4 行数据

--模式[SYSDBA]导出结束.....

--成功导出 第1SCHEMASYSDBA

--共导出 1SCHEMA

--整个导出过程共花费    0.219 s

--成功终止导出, 没有出现警告



--⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐重新初始化库⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
--dminit path=/dmdata page_size=32 extent_size=32 charset=0 case_sensitive=0  log_size=2048 db_name=DAMENG instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123" 



--⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐导入⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
--[dmdba@localhost0 dmdata]$ dimp USERID=SYSDBA/'"Hn@dameng123"'@192.168.56.200:5236 file=/dmdata/exptest.dmp full=y
--dimp V8

----- [2024-08-08 14:26:43]导入表:FUT_BGL_FQB_CJJG_001 -----

--创建表 FUT_BGL_FQB_CJJG_001 ...

--导入表 FUT_BGL_FQB_CJJG_001 的数据:4 行被处理

--导入模式中的 GLOBAL 对象……

--模式中的 GLOBAL 对象导入完成……

--模式[SYSDBA]导入完成......

--整个导入过程共花费    4.729 s

--成功终止导入, 没有出现警告


--查询表的分区情况
SELECT table_name, partition_name, high_value  
FROM dba_tab_partitions  
WHERE table_name = 'FUT_BGL_FQB_CJJG_001'  
ORDER BY partition_position;
--结果:6个分区
--FUT_BGL_FQB_CJJG_001	P1	DATE'2019-09-01'
--FUT_BGL_FQB_CJJG_001	P2	DATE'2020-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1054	DATE'2021-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1056	DATE'2022-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1058	DATE'2023-09-01'
--FUT_BGL_FQB_CJJG_001	SYS_P1051_1060	DATE'2024-09-01'

--get表的ddl
select SYS.DBMS_METADATA.GET_DDL('TABLE','FUT_BGL_FQB_CJJG_001')from DUAL;
--结果:创建两个分区的原始ddl

2.2、fast导出导入

fast导出然后导入时会报错:没有找到合适的分区,数据无法导入,因此只能看到创建两个分区的原始ddl

--⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐导出⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
--[dmdba@localhost0 dmdata]$ dexp USERID=SYSDBA/'"Hn@dameng123"'@192.168.56.200:5236 directory=/dmdata file=exptest.dmp log=exptest.log full=y tablespace=Y
--dexp V8

----- [2024-08-09 09:38:48]导出表:FUT_BGL_FQB_CJJG_001 -----

--导出模式下的对象权限...

--FUT_BGL_FQB_CJJG_001导出结束,共导出 4 行数据

--模式[SYSDBA]导出结束.....

--成功导出 第1SCHEMASYSDBA

--共导出 1SCHEMA

--整个导出过程共花费    0.121 s

--成功终止导出, 没有出现警告



--⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐重新初始化库⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
--dminit path=/dmdata page_size=32 extent_size=32 charset=0 case_sensitive=0  log_size=2048 db_name=DAMENG instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123" 




dimp USERID=SYSDBA/'"Hn@dameng123"'@192.168.56.200:5236 FILE=/dmdata/exptest.dmp PARALLEL=8 TABLE_PARALLEL=8 FAST_LOAD=y TASK_THREAD_NUMBER=16 TASK_SEND_NODE_NUMBER=16
--⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐导入⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
--[dmdba@localhost0 dmdata]$ dimp USERID=SYSDBA/'"Hn@dameng123"'@192.168.56.200:5236 FILE=/dmdata/exptest.dmp PARALLEL=8 TABLE_PARALLEL=8 FAST_LOAD=y TASK_THREAD_NUMBER=16 TASK_SEND_NODE_NUMBER=16
--dimp V8

----- [2024-08-09 09:47:14]导入表:FUT_BGL_FQB_CJJG_001 -----

--创建表 FUT_BGL_FQB_CJJG_001 ...
--没有找到合适的分区
--没有找到合适的分区
--没有找到合适的分区
--没有找到合适的分区
--0行记录已提交

--FUT_BGL_FQB_CJJG_001 的数据导入完成,共导入数据:0--[警告]文件中的数据没有全部导入到表中……

--导入模式中的 GLOBAL 对象……

--模式中的 GLOBAL 对象导入完成……

--模式[SYSDBA]导入完成......

--整个导入过程共花费    5.091 s

--成功终止导入, 但出现警告


--查询表的分区情况
SELECT table_name, partition_name, high_value  
FROM dba_tab_partitions  
WHERE table_name = 'FUT_BGL_FQB_CJJG_001'  
ORDER BY partition_position;
--结果:2个分区
--FUT_BGL_FQB_CJJG_001	P1	DATE'2019-09-01'
--FUT_BGL_FQB_CJJG_001	P2	DATE'2020-09-01'

3、ORACLE数据库

【ORACLE数据库】-导入导出过程中get DDL复现过程: https://blog.csdn.net/weixin_47686079/article/details/141350869

4、结论

不论是oracle还是达梦数据库,导入时都只能看到创建两个分区的原始ddl(达梦数据库fast导入报错请忽略,不要用这种方式)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值