搬迁达梦8dexp和dimp逻辑的解决方案
使用 dexp 和dimp 进行的备份还原属于逻辑备份还原。
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具。逻辑备份和逻辑还原都是在联机方式下完成。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。
四种级别所提供的功能:
数据库级(FULL):导出或导入整个数据库中的所有对象。
用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
表级(TABLES):导出或导入一个或多个指定的表或表分区。
一、数据准备
准备两套数据库,端口分别是5237和5239。
我是在windows上测试的,linux上和windows上方法一样。
我数据库管理系统安装在E盘,先进入到E:\dmdbms\bin,打开cmd
二、FULL 方式导入/导出整个数据库
用户(账号、密码)、角色、表、数据、索引、视图、约束等都能导入进来,但是表空间不能导入进来,所以正常是应该先在目的库创建表空间,在导出的时候加TABLESPACE=Y,默认是N,只有设置导出的对象定义中包含表空间,导入进去的时候,表、视图等才会存储在对应的表空间下。
1、 导出
5237库整库导出。
dexp USERID=SYSDBA/SYSDBA:5237 FILE=full_dexp.dmp LOG=full_dexp.log FULL=Y DIRECTORY=E:\dmdbms\test TABLESPACE=Y
导出效果如下
2、 导入
导入到5239。
在目的库创建表空间:
create tablespace "GRC" datafile 'E:\dmdbms\data\DAMENG4\GRC' size 32 autoextend on maxsize 16777215 CACHE = NORMAL;
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\full_dexp.dmp LOG=full_dimp.log FULL=Y DIRECTORY=E:\dmdbms\test
注意:一定要提前创建表空间。
2021年九月的数据库版本支持case_sensitive不同的库之间的FULL迁移,但是我现在没有这么高版本的安装包,所以暂时先不测这种情况。
三、OWNER 方式导入/导出一个或多个用户拥有的所有对象
1、同名模式同表空间
必须先创建好表空间和用户,创建好用户后会自动创建和用户同名的模式。
1.1、导出
导出5237库的GRC用户的所有对象。
dexp USERID=GRC/888888888:5237 FILE=user_dexp.dmp LOG=user_dexp.log OWNER=GRC DIRECTORY=E:\dmdbms\test TABLESPACE=Y
2.2、导入
导入到5239,先清空5239之前的测试数据。
在目的库创建表空间:
create tablespace "GRC" datafile 'E:\dmdbms\data\DAMENG4\GRC' size 32 autoextend on maxsize 16777215 CACHE = NORMAL;
在目的库创建用户:
create user "GRC" identified by "******" default tablespace "GRC";
grant "PUBLIC","VTI","SOI" to "GRC";
grant CREATE SESSION to "GRC";
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\user_dexp.dmp LOG=user_dimp.log OWNER=GRC DIRECTORY=E:\dmdbms\test
注意:如果是在管理工具中导入,需要在【模式】上右键导入,并加模式映射。
2、不同模式
1.1导出
导出5237库的GRC用户的所有对象。
dexp USERID=GRC/888888888:5237 FILE=user_dexp.dmp LOG=user_dexp.log OWNER=GRC DIRECTORY=E:\dmdbms\test
1.2导入
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\user_dexp.dmp LOG=user_dimp.log OWNER=GRC DIRECTORY=E:\dmdbms\test REMAP_SCHEMA="GRC":"DMHR"
注意:DMHR模式一定要存在。
导入到不同模式,发现导入的部分视图好像会有问题,这种操作慎用。
四、SCHEMAS 方式的导入/导出一个或多个模式下的所有对象
1、同名模式同表空间
1.1导出
导出5237库GRC模式下的所有对象。
dexp USERID=GRC/888888888:5237 FILE=schemas_dexp.dmp LOG=schemas_dexp.log SCHEMAS=GRC DIRECTORY=E:\dmdbms\test TABLESPACE=Y
2.2、导入
导入到5239,先清空5239之前的测试数据。
在目的库创建表空间:
create tablespace "GRC" datafile 'E:\dmdbms\data\DAMENG4\GRC' size 32 autoextend on maxsize 16777215 CACHE = NORMAL;
在目的库创建用户:
create user "GRC" identified by "******" default tablespace "GRC";
grant "PUBLIC","VTI","SOI" to "GRC";
grant CREATE SESSION to "GRC";
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\schemas_dexp.dmp LOG=schemas_dimp.log SCHEMAS=GRC DIRECTORY=E:\dmdbms\test
注意:如果是在管理工具中导入,需要在【模式】上右键导入,并加模式映射。
2、不同模式
1.1导出
导出5237库GRC模式下的所有对象。
dexp USERID=GRC/888888888:5237 FILE=schemas_dexp.dmp LOG=schemas_dexp.log SCHEMAS=GRC DIRECTORY=E:\dmdbms\test TABLESPACE=Y
1.2导入
导入到5239库的DMHR模式下
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\schemas_dexp.dmp LOG=schemas_dimp.log SCHEMAS=GRC DIRECTORY=E:\dmdbms\test REMAP_SCHEMA="GRC":"DMHR"
注意:DMHR模式一定要存在。
五、TABLES 方式导入一个或多个指定的表或表分区
导入所有数据行、约束、索引等信息。
1、同名模式同表空间
1.1导出
dexp userid=GRC/888888888:5237 directory=E:\dmdbms\test file=table_dexp.dmp log=table_dexp.log tables=DM_TEST TABLESPACE=Y
1.2、导入
在目的库创建表空间:
create tablespace "GRC" datafile 'E:\dmdbms\data\DAMENG4\GRC' size 32 autoextend on maxsize 16777215 CACHE = NORMAL;
在目的库创建用户:
create user "GRC" identified by "******" default tablespace "GRC";
grant "PUBLIC","VTI","SOI" to "GRC";
grant CREATE SESSION to "GRC";
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\table_dexp.dmp LOG=table_dimp.log DIRECTORY=E:\dmdbms\test
注意:不能加tables=DM_TEST,不然会报错,因为导出用户和导入用户不是同一个。
2、不同模式
1.1导出
dexp userid=GRC/888888888:5237 directory=E:\dmdbms\test file=table_dexp.dmp log=table_dexp.log tables=DM_TEST
1.2、导入
dimp USERID=SYSDBA/SYSDBA:5239 FILE=E:\dmdbms\test\table_dexp.dmp LOG=table_dimp.log DIRECTORY=E:\dmdbms\test REMAP_SCHEMA="GRC":"DMHR"
注意:不能加tables=DM_TEST,不然会报错,因为导出用户和导入用户不是同一个。
更多资讯请上达梦技术社区了解: https://eco.dameng.com
上一篇: 达梦dexpdp和dimpdp
推荐阅读
-
搬迁达梦8dexp和dimp逻辑的解决方案
-
达梦dexp和dimp:保持原意的标题再思考
-
演示Linux中如何使用DM达梦数据库导入导出dmp文件:详细说明dexp和dimp命令的使用
-
DM达梦数据库导入导出命令dexp和dimp的详细使用方法解析
-
使用达梦V8的dexpdp和dimpdp实现逻辑备份和恢复法的应用
-
Linux下DM达梦数据库实操演示:dmp文件的导入和导出技巧解析,全面掌握dexp和dimp命令的使用步骤
-
达梦数据库dexp逻辑导出和dimp逻辑导入-三、dimp逻辑导入
-
导出和导入达梦8逻辑备份的dexp/dimp
-
达梦数据库命令行工具dexp和dimp实现逻辑导入与导出
-
达梦数据库逻辑备份Dexp和Dimp详解-3.Dexp和Dimp应用实例