当前位置:   article > 正文

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

【达梦数据库】-导入导出过程中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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65

3、ORACLE数据库

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

4、结论

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/1012368
推荐阅读
相关标签
  

闽ICP备14008679号