逻辑导入导出

文章目录

  • 一.dexp 逻辑导出
  • 二.dimp 逻辑导入

DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。其中逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原,使用 dexp 和 dimp 进行的备份还原。

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。

逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:

数据库级(FULL):导出或导入整个数据库中的所有对象。

用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。

模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。

表级(TABLES):导出或导入一个或多个指定的表或表分区。

一.dexp 逻辑导出

dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。

dexp 工具名称有两种写法 dexp dexpdp。两者语法完全相同。唯一的区别在于,dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。 

1.dexp 工具

(1)语法格式

dexp PARAMETER=<value> { PARAMETER=<value> }

dexpdp PARAMETER=<value> { PARAMETER=<value> }

PARAMETER:dexp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。

(2)参数

2.dexp 参数详解

(1)USERID

USERID 用于指定数据库的连接信息。必选参数。

{{<username>[/<password>]} | /}[@<connect_identifier>][<option>] [<os_auth>]

<connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file>

<option>::= #{ <exetend_option>=<value>{,<extend_option>=<value>} } --此行外层{}是为了封装参数之用,书写时需要保留

<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}

PWD 密码中带有特殊字符(/,@.:等),需要外加三层双引号("""""")进行转义。

(2)FILE

FILE 用于明确指定导出的文件(可以包含路径),可以包含多个文件,用逗号分隔。

FILE=<文件>

FILE 指定的文件也可以包含路径。

如果 FILE 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;

如果 FILE 没有指定路径时,使用 DIRECTORY 中指定的路径;

如果 FILE DIRECTORY 都没有指定路径,则使用系统当前路径。

(3)LOG

LOG 用于明确指定导出的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。

LOG=<文件名>

用法与FILE相同。

(4)DIRECTORY

DIRECTORY 用于指定导出文件及日志文件生成的路径。

DIRECTORY=<path>

FILE 和 LOG 中指定的路径,优先级高于 DIRECTORY 中指定的路径。

FILE LOG 不指定路径时,才使用 DIRECTORY 指定的路径。

如果都没有指定路径,则使用系统当前路径。

(5)导出方式

FULL 方式导出数据库的所有对象:FULL=Y

OWNER 方式导出一个或多个用户拥有的所有对象:OWNER=<用户名>{,<用户名>}

SCHEMAS 方式的导出一个或多个模式下的所有对象:SCHEMAS=<模式名>{,<模式名>}

TABLES 方式导出和导入一个或多个指定的表或表分区:TABLES=<表名>{,<表名>}

对于小写的用户名、模式名和表名,为了不转换为大写,需要转义。

第一步,如果想输入小写的名字不被转成大写,dexp 要求将名称使用双引号扩起来。例如:名称为 tab1,要写成"tab1"。第二步,另外,操作系统要求将传入的名称使用双引号括起来作为一个整体,同时要求内层的双引号还需要被转义。所以最终写成"\"tab1\""

如果含有特殊字符(双引号、单引号、空格、逗号等)的用户名、模式名和表名需要转义。

第一步, dexp 要求对含有特殊字符的对象名称需要使用双引号括起来,同时特殊字符需要被转义(使用双引号")。例如:表名为 tab1",需写成"tab1""";第二步,另外,操作系统要求将传入的名称使用双引号括起来作为一个整体,同时要求内层的双引号和特殊字符还需要被转义。所以最终写成:"\"tab1\"\"\""。

3.测试

(1)导出整个数据库

将用户名和密码均为 SYSDBA,IP 地址为 192.168.235.158,端口号为 5236 的数据库采用FULL方式完全导出。导出文件名为db_str.dmp,导出的日志文件名为 db_str.log,导出文件的路径为/dexp

./dexp USERID=SYSDBA/SYSDBA@192.168.235.158:5236 FILE=db_str.dmp DIRECTORY=/dexp LOG=db_str.log FULL=Y

(2)导出一个或多个用户所拥有的所有对象

将用户名和密码均为 SYSDBA,IP 地址为 192.168.235.158,端口号为 5236 的数据库采用OWNER方式导出一个或多个用户拥有的所有对象。导出文件名为db_str.dmp,导出的日志文件名为 db_str.log,导出文件的路径为/dexp,导出用户名为SYSDBA。

./dexp USERID=SYSDBA/SYSDBA@192.168.235.158:5236 FILE=db_str.dmp DIRECTORY=/dexp LOG=db_str.log OWNER=SYSDBA

(3)导出一个或多个模式下的所有对象

将用户名和密码均为 SYSDBA,IP 地址为 192.168.235.158,端口号为 5236 的数据库采用SCHEMAS方式导出一个或多个模式下的所有对象。导出文件名为db_str.dmp,导出的日志文件名为 db_str.log,导出文件的路径为/dexp,导出模式名为SYSDBA。

./dexp USERID=SYSDBA/SYSDBA@192.168.235.158:5236 FILE=db_str.dmp DIRECTORY=/dexp LOG=db_str.log SCHEMAS=SYSDBA

(4)导出一个或多个指定的表或表分区

将用户名和密码均为 SYSDBA,IP 地址为 192.168.235.158,端口号为 5236 的数据库采用TABLES 方式导出和导入一个或多个指定的表或表分区。导出文件名为db_str.dmp,导出的日志文件名为 db_str.log,导出文件的路径为/dexp,导出表名为T1。

./dexp USERID=SYSDBA/SYSDBA@192.168.235.158:5236 FILE=db_str.dmp DIRECTORY=/dexp LOG=db_str.log TABLES=T1

二.dimp 逻辑导入

1.dimp 工具

(1)语法格式

dimp PARAMETER=value { PARAMETER=value }

dimpdp PARAMETER=value { PARAMETER=value }

PARAMETER:dexp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。

(2)参数

 

 dimp参数与dexp参数对应

 2.测试

导出库:环境为 linux,服务器为 192.168.235.158,用户名和密码均为 SYSDBA。导出的库即为上面所导出的。

导入库:环境为 linux,服务器为 192.168.235.158,用户名和密码均为 SYSDBA。准备一个空数据库作为导入库,端口号为 5234。

(1)导入整个数据库

./dimp USERID=SYSDBA/SYSDBA@192.168.235.158:5234 FILE=/dexp/db_str.dmp LOG=dimp02.log DIRECTORY=/dimp FULL=Y

(2)导入一个或多个用户所拥有的所有对象

./dimp USERID=SYSDBA/SYSDBA@192.168.235.158:5234 FILE=/dexp/db_str.dmp LOG=dimp02.log DIRECTORY=/dimp OWNER=SYSDBA

(3)导入一个或多个模式下的所有对象

./dimp USERID=SYSDBA/SYSDBA@192.168.235.158:5234 FILE=/dexp/db_str.dmp LOG=dimp02.log DIRECTORY=/dimp SCHEMAS=SYSDBA

(4)导入一个或多个指定的表或表分区

./dimp USERID=SYSDBA/SYSDBA@192.168.235.158:5234 FILE=/dexp/db_str.dmp LOG=dimp02.log DIRECTORY=/dimp TABLES=T1

(5)将源模式中的数据导入到目标模式中

语法:

<SOURCE_SCHEMA><TARGET_SCHEMA>

<SOURCE_SCHEMA>:源模式。如果指定的源模式不存在,则导入到对象原来所在的模式。

<TARGET_SCHEMA>:目标模式。如果目标模式不存在,先创建目标模式,再继续导入。

将 SYSDBA 模式中的数据导入到 B 模式中。

./dimp USERID=SYSDBA/SYSDBA@192.168.235.158:5236 FILE=/dexp/db_str.dmp DIRECTORY=/dimp FULL=Y REMAP_SCHEMA=SYSDBA:B

3.查看LOG日志

cat db_str.log(导出的日志文件)

cat dimp02.log(导入的日志文件) 


更多资讯请上达梦技术社区了解: https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值