达梦数据库图形化导入导出表,并实现不同模式下导入表

时间:2024-10-05 17:58:57

达梦数据库提供了图形化界面进行数据表导出导入,下面对这些功能做下演示说明:
打开图形化界面:安装目录–>tool目录–>运行./manager
打开后的界面:
在这里插入图片描述
导出步骤一:
在这里插入图片描述
导出步骤二:
在这里插入图片描述
在这里插入图片描述
选择要存放的目录,填写导出的文件名和日志名,这里可以只选导出数据行。

确定后:
在这里插入图片描述
导入步骤一:
在这里插入图片描述
导入步骤二:
在这里插入图片描述
选择导入目录、导入文件,填写日志文件(不能和旧文件重名),对象名如果是模式则导入数据对应的模式名要和导入所在的模式名一样。如果不一样只能通过命令行导入(下面再说明)。
在这里插入图片描述
导入成功!

manager工具将一些表导成dmp文件,如果这个文件名命名不规范,则无法知道这个表属于哪个模式,这意味着别人或者自己忘记这个模式名,以后使用这个dmp文件导入数据时会出现模式不对导致无法导入的问题,这时可以从命令行导入。

从旧模式导入另一个模式:
./dimp sysdba/123! file=imp_exp.dmp remap_schema=DMHR:MYSCH log=imp_2021_01_26_17_04_59.log directory=/dm8/export full=y IGNORE=y
重点是这一段:remap_schema=DMHR:MYSCH

在网上找了更多的导入导出命令,分享下:

1、使用dexp实现数据库级导出,执行全库导出。
dexp userid=SYSDBA/SYSDBA file=C:\dmdbms\data\backup\db_full.dmp log=db_full.log full=Y
细节说明:此处file参数后面指定了全路径,文件会写入指定路径下;而log参数后面未指定全路径,那么log日志文件将会写入当前执行命令的路径下,此处当前目录为C:\dmdbms\bin,所以日志文件就会写入此目录下。建议生成文件参数后面写全路径来操作导出。如下:
dexp userid=SYSDBA/SYSDBA file=C:\dmdbms\data\backup\db_full.dmp log= C:\dmdbms\data\backup\db_full.log full=Y
2、使用dexp实现用户级导出,导出SYSDBA用户下的所有数据。
dexp userid=SYSDBA/SYSDBA file=C:\dmdbms\data\backup\db_owner.dmp log=C:\dmdbms\data\backup\db_owner.log owner=SYSDBA
细节说明:要导出多个用户时,可以用逗号隔开,语法为OWNER=<用户名>{,<用户名>},如果用户名在数据库中显示为小写,需要用双引号括起来。
3、使用dexp实现模式级导出,导出SALES,test,OTHER模式的所有数据,使用2个线程执行导出(并行度为2)。
dexp userid=SYSDBA/ SYSDBA schemas=sales,“test”,other file=C:\dmdbms\data\backup\db_schema.dmp log=C:\dmdbms\data\backup\db_schema.log PARALLEL=2
细节说明:此处模式test为小写,所以必须要用双引号括起来。一般情况下,owner与schemas导入导出是相同的。但是用户可以包含多个模式,在这种情况下schemas的导入导出时owner导入导出的一个子集。
4、使用dexp实现表级导出,导出模式salse下CUSTOMER、CUSTOMER_ADDRESS表,其中,CUSTOMER表中只需要PERSONID为14的数据。
dexp userid=SYSDBA/SYSDBA file=C:\dmdbms\data\backup\db_tables.dmp log=C:\dmdbms\data\backup\db_tables.log tables=,sales.CUSTOMER_ADDRESS query=” where personid = 14”
细节说明:因为达梦Dexp/dimp工具目前支持的数据库级、用户级、模式级和表级四种级别独立互斥,不能同时存在。所以此处指定表导出tables参数的时候,就不能使用owner或者schemas参数来对表的所属进行限制。如下写法会提示“暂时不支持多种导出模式……”。
dexp userid=SYSDBA/SYSDBA file=C:\dmdbms\data\backup\db_tables.dmp log=C:\dmdbms\data\backup\db_tables.log tables=,sales.CUSTOMER_ADDRESS
5、使用dexp实现排除表导出,导出sales模式下除CUSTOMER表以外的其他数据。
dexp userid=SYSDBA/SYSDBA file=C:\dmdbms\data\backup\exc_tables.dmp log=C:\dmdbms\data\backup\exc_tables.log exclude=tables:CUSTOMER schemas=sales
细节说明:EXCLUDE对象种类名包括 CONSTRAINTS、 INDEXES、 ROWS、 TRIGGERS、 GRANTS。如果导出方式为tables表级或者schemas模式级导出时,EXCLUDE=SCHEMAS:<模式名>{,<模式名>}排除模式不起作用。反之,INCLUDE为包含的对象种类。
6、使用dimp将模式salse的数据导入salse_bak模式中,并行度为2,导入时忽略创建数据库对象出现的错误并继续执行。
dimp userid=SYSDBA/SYSDBA remap_schema=SALES:SALES_BAK file=C:\dmdbms\data\backup\sales_schema.dmp log=C:\dmdbms\data\backup\dimp_sales.log parallel=2 ignore=y
细节说明:remap_schema参数的值最好为大写方式进行对应,小写对应会出现无法正常remap的情况。在做remap_schema时,目标模式不需要提前创建,导入时会自动remap并创建。目前,达梦数据库还不支持tablespace、table等方式的remap。
7、使用dimp将模式salse数据导入数据库中,要求直接替换数据库中salse模式下已存在的表,并且强制先导入表对象,导入时批量提交行数为2000行。
dimp userid=SYSDBA/SYSDBA schemas=sales file=C:\dmdbms\data\backup\sales_schema.dmp log=C:\dmdbms\data\backup\dimp_sales.log table_first=y table_exists_action=replace commit_rows=2000
细节说明:TABLE_EXISTS_ACTION参数有四个选项,分别为SKIP:跳过此表;APPEND:直接向现有表中导入数据;TRUNCATE:先删除现有表中的数据,再向表中导入数据;REPLACE:先删除现有表,再导数据。
Dexp/dimp还有其他很多有用的参数,如dexp的filesize与filenum参数,来限制单个导出文件大小以及导出多少哥模板文件个数;指定drop参数在导出表后删除表;dexp/dimp的加解密相关的参数等等。Dimp是与dexp相对应的逻辑导入工具,主要用法与dexp一样。Dexp/dimp的参数详细介绍可以参照官方文档或者使用dexp/dimp help来获取帮助