介绍
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
备份完后,我将现有的用户和表给删除掉。
删除表
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
备份还原模式案例
在本案例中,我创建了一个模式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
备份完成后,删除表和模式。
删除表
drop table c.d;
删除模式
drop schema c;
删除表和模式后,直接进行模式的导入。
还原
[dmdba@localhost ~]$ dimp userid=SYSDBA/SYSDBA file=test2.dmp directory=/home/dmdba schemas=c
发现导入成功,就可以使用工具去连接使用了。
备份还原表案例
在本案例中,我创建了一个表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
备份完成后,我们删除现有的表,然后还原它。
删除表e
drop table e
还原
[dmdba@localhost ~]$ dimp userid=SYSDBA/SYSDBA file=test3.dmp directory=/home/dmdba tables=e
至此,表的备份和还原就测试完毕了。
标签:dmdba,备份,导出,dimp,导入,SYSDBA,dexp,达梦 From: https://blog.51cto.com/bxbdba/7175810