0
点赞
收藏
分享

微信扫一扫

达梦数据库 dexp和dimp的使用

妖妖妈 2023-08-21 阅读 22

介绍

Oracle中备份还原数据有exp和imp,而达梦数据库也有dexp和dimp命令,用来备份还原达梦的数据。

操作类型

  • 逻辑

使用场景

dexp和dimp既可以用于服务端中,又能够在客户端使用。

备注,此备份还原方案是逻辑操作,在少量数据的情况下,性能足够,一旦数据量过大,则备份时间极长。

同步方式

达梦数据库支持4种数据同步方式,这些方式可以根据特定的场景去使用。

  • FULL(全库)
  • OWNER(用户)
  • SCHEMAS(模式)
  • TABLES(表)

参数说明

参数

dexp说明

dimp说明

备注

USERID

USERID在作为导出和导入时,都是指定一个链接串。格式为:用户名/密码@库名:端口号#证书路径

FILE

file作为导出参数时,指定导出的文件名。可选参数,默认值为dexp.dmp

fiel作为导入参数时,指定导入使用的文件名,也就是dexp导出的文件。作为导入时,它是必选参数。

DIRECTORY

directory参数指定导出和导入的目录,简单点说就是指定dmp(转储文件)的位置。

FULL

full参数指定导出和导入基于整个数据库,也就是导出整个数据库或导入整个数据库。

四种方式之一,不建议使用。

OWNER

owner参数指定导出和导入基于用户,也就是导出或导入用户中的所有对象,多个用户使用英文逗号分割。

四种方式之一,根据需要使用,用户与模式基本一致。

SCHEMAS

schemas参数指定导出和导入基于模式,也就是导出或导入模式下的所有对象,多个模式使用英文逗号分割

四种方式之一,根据需要使用,模式与用户基本一致。

TABLES

tables参数指定导出和导入基于表,也就是导出或导入表的结构和数据,多个表使用英文逗号分割。

四种方式之一,根据需要使用

PARALLEL

parallel参数指定导出和导入过程中使用的线程数。

COMPRESS

compress参数指定导出的数据是否压缩,默认值N(不压缩),可选值Y|N。


LOG

log作为导出参数时,指定导出日志的文件名。可选参数,默认值为dexp.log。

log作为导入参数时,指定导入日志的文件名。可选参数,默认值为dimp.log。

使用案例

备份还原用户案例

在本案例中,我创建了一个用户a,在用户a中创建了一个表b。在成功创建好本次案例使用的对象后,开始进行用户的备份和还原。

创建用户a

create user a identified by "Test12345";

创建表b

create table b(
id number,
name varchar2(100),
sex varchar2(4)
);

创建完用户和表后,插入一条测试数据。

插入测试数据

insert into a.b(id,name,sex)values(1,'张三','男');

commit;

在做完这些后,我们的测试数据就已经足够了,解下来,开始备份数据。

备份用户

[dmdba@localhost ~]$ dexp userid=SYSDBA/SYSDBA directory=/home/dmdba owner=a

达梦数据库 dexp和dimp的使用_dimp

备份完后,我将现有的用户和表给删除掉。

删除表

drop table a.b;

删除用户

drop user a;

删除全部的数据后,我们使用dimp命令进行还原。在还原前,需要手动去创建用户a才能导入数据。

创建用户

create user a identified by "Test12345";

还原

[dmdba@localhost ~]$ dimp userid=SYSDBA/SYSDBA file=dexp.dmp directory=/home/dmdba owner=a

达梦数据库 dexp和dimp的使用_dexp_02

备份还原模式案例

在本案例中,我创建了一个模式c,在模式c中创建了一个表d。在创建好这两个对象后,开始进行模式的备份和还原。

创建模式c

create schema c;

创建表d

create table c.d(
id number,
name varchar2(100),
sex varchar2(4)
);

在创建完表后,插入测试数据。

插入数据

insert into c.d(id,name,sex)values(1,'张三','男');

commit;

在做完测试数据后,开始进行模式的备份。

备份

[dmdba@localhost ~]$ dexp userid=SYSDBA/SYSDBA file=test2.dmp directory=/home/dmdba schemas=c

达梦数据库 dexp和dimp的使用_dimp_03

备份完成后,删除表和模式。

删除表

drop table c.d;

删除模式

drop schema c;

删除表和模式后,直接进行模式的导入。

还原

[dmdba@localhost ~]$ dimp userid=SYSDBA/SYSDBA file=test2.dmp directory=/home/dmdba schemas=c

达梦数据库 dexp和dimp的使用_dimp_04

发现导入成功,就可以使用工具去连接使用了。

备份还原表案例

在本案例中,我创建了一个表E,在创建好表后,开始进行表的备份和还原。

创建表E

create table e(
id number,
name varchar2(100),
sex varchar2(4)
);

插入数据

insert into e(id,name,sex)values(1,'张三','男');

commit;

做完这些后,开始备份表。

备份

[dmdba@localhost ~]$ dexp userid=SYSDBA/SYSDBA file=test3.dmp directory=/home/dmdba tables=e

达梦数据库 dexp和dimp的使用_dimp_05

备份完成后,我们删除现有的表,然后还原它。

删除表e

drop table e

还原

[dmdba@localhost ~]$ dimp userid=SYSDBA/SYSDBA file=test3.dmp directory=/home/dmdba tables=e

达梦数据库 dexp和dimp的使用_dimp_06

至此,表的备份和还原就测试完毕了。

举报

相关推荐

0 条评论