达梦数据库学习笔记-逻辑备份工具dexp、dimp

达梦作为具有完全自主知识产权的高性能的国产数据库,提供自带的命令行工具逻辑导出(dexp)、逻辑导入(dimp)进行数据库的备份、还原。

逻辑备份和还原需要在数据库联机状态(数据库正常运行中)下才可以进行,逻辑备份分为四种级别:数据库级、用户级、模式级、表级。

一、数据库级别:

数据库级别是将整个库导出,使用参数FULL=Y.

库级别导出需要使用SYSDBA用户:

dexp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/exp FILE=FULL_DB.dmp LOG=full_db.log FULL=Y

库级别导出在实际生产过程中并不常用。

二、用户级别:

用户级别逻辑备份指将一个或多个用户所有模式中对象导出。参数OWNER。

示例:
将A库中的用户DAMENG、SCOTT下所有模式中对象导出,然后导入B库中,语句如下。
dexp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/dmp FILE=DAMENG_exp.dmp LOG=user_exp.log OWNER=DAMENG,SCOTT

B库导入导入前需要将用户DAMENG、TEXT创建,并授予RESOURCE用户权限,将user_exp.dmp传至B库执行目录下/data/imp,语句如下:
dimp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/dmp FILE=DAMENG_exp.dmp LOG=user_exp.log  OWNER=DAMENG,SCOTT

需要注意的是在使用过程中:
1.OWNER参数值名称大小写敏感。多个用户导出将用户以逗号隔开。

2.单个用户导出在使用OWNER参数以用户级别导出时,可以使用被导出用户作为USERID的用户进行操作。

3.导入扩展:
导入B库的TMP用户下,需要使用REMAP_SCNEMA参数将DAMENG用户中所有模式做一一映射。

例如:

dimp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/dmp FILE=DAMENG_exp.dmp LOG=user_exp.log REMAP_SCHEMA=DAMENG:TMP,SCOTT:TMP

导入后所有模式对象都会导入用户TMP的默认模式TMP下,如果需要保留原有模式可以将参数修改为:REMAP_SCHEMA=DAMENG:DAMENG,SCOTT:SCOTT,会自动创建对应的模式,所属用户为TMP。

三、模式级别:

模式级别逻辑备份指一个用户下一个或多个模式导出。使用参数SCHEMAS。

示例:

A库中的DAMENG用户下有三个模式DAMENG、CESHI01、CESHI02中,先需要将其中CESHI01、CESHI02模式导出,然后导入B库中。导出两种方式,任选其一即可,语句如下:
(1)DAMENG用户导出:
dexp USERID=DAMENG/DAMENG123456 DIRECTORY=/data/dmp FILE=DAMENG_exp.dmp LOG=DAMENG_exp.log SCHEMAS=CESHI01,CESHI02
(2)SYSDBA用户导出:
dexp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/dmp FILE=DAMENG_exp.dmp LOG=DAMENG_exp.log SCHEMAS=CESHI01,CESHI02

B库导入也分两种方式,但是导入前需要将用户DAMENG创建,并授予RESOURCE用户权限,将DAMENG_exp.dmp传至B库执行目录下/data/imp:
(1)使用DAMENG用户导入,语句如下:
dimp USERID=DAMENG/DAMENG123456 DIRECTORY=/data/imp FILE=DAMENG_exp.dmp LOG=DAMENG_imp.log
(2)使用SYSDBA用户导入,语句如下:
dimp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/imp  FILE=DAMENG_exp.dmp LOG=DAMENG_imp.log

注意事项:

1.使用用户DAMENG做模式级别逻辑备份操作时,一定要使用参数SCHEMAS来指定导出的模式,例如:

dexp USERID=DAMENG/DAMENG123456 DIRECTORY=/data/imp FILE=DAMENG_exp.dmp LOG=DAMENG_imp.log

上面导出没有SCHEMAS参数,只会导出用户同名的默认模式DAMENG,其他所属模式不会导出。如果用户只有一个与用户同名的默认模式则不可以指定SCHEMAS参数。

2.导入扩展:
(1)B库导入时需要将模式CESHI01、CESHI02中对象全部导入默认模式DAMENG中,需要使用参数REMAP_SCHEMA,以DAMENG用户导入为例,语句如下:

dimp USERID=DAMENG/DAMENG123456 DIRECTORY=/data/imp FILE=DAMENG_exp.dmp LOG=DAMENG_imp.log REMAP_SCHEMA=CESHI01:DAMENG,CESHI02:DAMENG

REMAP_SCHEMA参数是将CESHI01、CESHI02模式映射到默认模式DAMENG下,导入时CESHI01、CESHI02模式中的对象则会导入DAMENG模式下,而不会再创建CESHI01、CESHI02模式。已有的DAMENG模式则不需要指定。
(2)B库导入用户为SCOTT用户,模式CESHI01、CESHI02下对象全部导入SCOTT用户的默认模式SCOTT下,语句如下:

dimp USERID=SCOTT/SCOTT123456 DIRECTORY=/data/imp FILE=DAMENG_exp.dmp LOG=DAMENG_imp.log REMAP_SCHEMA=CESHI01:SCOTT,CESHI02:SCOTT,DAMENG:SCOTT

(3)B库导入用户为SCOTT用户,模式CESHI01、CESHI02下对象全部导入SCOTT用户下的其中一个TMP模式下,语句如下:

dimp USERID=SCOTT/SCOTT123456 DIRECTORY=/data/imp FILE=DAMENG_exp.dmp LOG=DAMENG_imp.log REMAP_SCHEMA=CESHI01:TMP,CESHI02:TMP,DAMENG:TMP

其中TMP模式不需要手动创建,使用REMAP_SCHEMA参数导入时会自动创建TMP模式,模式所属用户是SCOTT。但是需要注意的是在此不能使用SYSDBA用户进行导入,因为导入成功后模式SCOTT所属用户会是SYSDBA,用户SCOTT没有再次授权是没有访问权限的。

四、表级别逻辑备份

表级别逻辑备份指一个或多个指定表导出,使用参数TABLES。
示例:
将A库下DAMENG用户下的模式CESHI01中的ADDRESS、PERSON两表导出,语句如下:

dexp USERID=DAMENG/DAMENG123456 DIRECTORY=/data/dmp FILE=CESHI_tables.dmp LOG=CESHI_tables.log TABLES=CESHI01.ADDRESS、CESHI01.PERSON

B库导入前创建DAMENG用户,授予RESOURCE权限,dmp文件位置/data/imp。语句如下:

dimp USERID=DAMENG/DAMENG123456 DIRECTORY=/data/imp FILE=CESHI_tables.dmp LOG=CESHI_tables.log TABLES=CESHI01.ADDRESS、CESHI01.PERSON

注意事项:

1.使用参数TABLES导出指定名称的表,如果是默认模式下的表,参数TABLES后直接输入表名作为参数值,如果是用户非模式下的表,则每个表名需要加模式名做前缀。

2.表级别逻辑备份可以使用SYSDBA用户进行操作。

3.表级别逻辑备份扩展:
(1)导入不同名用户下,例如导入B库TMP用户下,语句如下:

dimp USERID=TMP/TMP123456 DIRECTORY=/data/imp FILE=CESHI_tables.dmp LOG=CESHI_tables.log REMAP_SCHEMA=CESHI01:TMP

如果要保留CESHI01模式,则参数REMAP_SCHEMA=CESHI01:CESHI01,CESHI01自动创建。

(2)表级别逻辑备份可以备份不同用户下不同模式的指定表,例如导出A库中DAMENG用户下CESHI02模式中的PERSON表、DNHR用户下HR模式中的EMPLOYEE表,语句如下:

dimp USERID=SYSDBA/SYSDBA123456 DIRECTORY=/data/dmp FILE=sys_tables.dmp LOG=sys_tables.log TABLAS=CESHI02.PERSON,DMHR.HR.EMPLOYEE  

导入B库中的TMP用户,可以使用SYSDBA用户导入,也可以使用TMP用户导入,使用REMAP_SCHEMA参数,例如TMP用户导入,语句如下:

dimp userid=TMP/TMP123456 DIRECTORY=/data/imp FILE=sys_tables.dmp LOG=sys_tables.log REMAP_SCHEMA=DMHR:DAMENG,SALES:DAMENG
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Major_ZYH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值