侧边栏壁纸
博主头像
与晚风述往事博主等级

万般皆下品,唯有读书高。

  • 累计撰写 149 篇文章
  • 累计创建 29 个标签
  • 累计收到 19 条评论

目 录CONTENT

文章目录

达梦数据库 dexp和dimp的使用

与晚风述往事
2021-11-01 / 0 评论 / 0 点赞 / 722 阅读 / 2,363 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-11-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

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

image.png

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

删除表

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

image.png

备份还原模式案例

在本案例中,我创建了一个模式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

image.png

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

删除表

drop table c.d;

删除模式

drop schema c;

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

还原

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

image.png

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

备份还原表案例

在本案例中,我创建了一个表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

image.png

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

删除表e

drop table e

还原

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

image.png

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

0

评论区