欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

学习笔记:掌握 dexp 和 dimp 使用手册

最编程 2024-01-09 18:58:49
...

1、概述

DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。

      物理备份还原是 对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原;逻辑备份还原是 对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp dimp 进行的备份还原。

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

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

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

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

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

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

2dexp 逻辑导出

作用:dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备 份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供 查看。(dexp 工具名称有两种写法 dexp dexpdp。区别在于, dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。)

使用

dexp 工具需要从命令行启动。在 cmd 命令行工具中找到 dexp 所在安装目录 /dmdbms/bin,输入 dexp 和参数后回车。

语法:dexp PARAMETER= <value> { PARAMETER= <value> }

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

例:将用户名和密码均为 SYSDBAIP 地址为 192.168.0.111,端口号为 8888 的数 据库采用FULL方式完全导出。/user/data为数字证书路径。导出文件名为db_str.dmp 导出的日志文件名为 db_str.log,导出文件的路径为/mnt/dexp/data

./dexp USERID=SYSDBA/SYSDBA@192.168.0.111:8888#/user/data FILE=db_str.dmp DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y

常用参数:

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

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

LOGLOG 用于明确指定导出过程产生的日志文件名称(可以包含路径),可以包含多个文件, 用逗号分隔。可选参数。

DIRECTORYDIRECTORY 用于指定导出文件及日志文件生成的路径。可选参数,缺省为导出到 dexp 所在路径。

导出方式的级别:针对数据库对象,有 FULLOWNERSCHEMASTABLES 四种导出方式可供选择。

3dimp 逻辑导入

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻 辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象 存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日 志等。 dimp 工具名称有两种写法 dimp dimpdp。区别在于, dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。

例:将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBAIP 地址为 192.168.0.248,端口号为 8888 的数据库。导入文件名为 db_str.dmp,导入的日志文 件名为 db_str.log,路径为/mnt/data/dexp ./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y

其余同dexp类似。

DM8_DIsql 使用手册

1、概述

DIsql DM 数据库的一个命令行客户端工具,DM 数据库自带的,用来与 DM 数据库服务器进行交互。

2DIsql入门

DIsql SQL 语句应以分号“;”结束。对于执行语句 块,创建触发器、存储过程、函数、包以及模式等时需要用“/”结束。

3、登录

disql[ [<option>] [<logon> | /NOLOG] [<start>] ]

<option>::=-S|-L

<logon>::=<username>/<password>@<server>?{UDP|TCP}

<start>::=<运行脚本>|<start 运行脚本>|<直接执行语句>|<直接执行 SET 命令>

<运行脚本>::=<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]

<start 运行脚本>::=START <file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]

<直接执行语句>::= -E “<SQL 语句>{;<SQL 语句>}”

(文中语法符号规定:<> 内的内容是必选项; [] 内的内容是可选项;{} 内的内容可以出现一次或多次; | 为或者; ::= 为定义符。后文语法用法与此相同。)

password中特殊字符的书写规范:

  1. DIsql 的要求使用双引号对双引号内的双引号转义。
  2. WINDOWS 命令行,使用双引号或者反斜杠对双引号内的双引号转义。
  3. LINUX 命令行,使用反斜杠对双引号内的双引号转义。

4、切换登录

有两种实现方式:一是 使用 LOGIN 命令;二是使用 CONN 命令。登录到远程数据库,必须在服务名处使用 IP 地址或网络服务名。

LOGIN /LOGOUT

CONN[ECT] /DISCONN[ECT](使用 CONN[ECT] 命令建立新会话时,会自动断开先前会话 。)

CONN[ECT] <logon>

<logon>::={<username>/<password>[@<connect_identifier>]}|{/ AS <SYSDBA|SYSSSO|SYSAUDITOR|AUTO>}

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

<password>:密码。如果密码中有特殊字符,需要特别处理。

5、使用DIsql

只需要输入一条SQL语句,回车即可。DIsqlSQL语句发送给DM数据库服务器并显示服务器返回结果。

6、退出DIsql

使用EXIT/QUIT命令

7DIsql常用命令

HELPDIsql 帮助命令,可以帮助用户查看其他命令的具体用法。

7.1HELP|? [topic]topic:命令名称或者命令名称的首字母,查询某一命令用法或者某一字母开头的所 有命令用法。

7.2SPOOL:将查询结果输出到指定文件。

SPOOL { | OFF }

<file>::= <file_path> [CRE[ATE]|REP[LACE]|APP[END]]

<file_path>:指定文件的绝对路径

CRE[ATE]:创建指定的文件,若指定的文件已存在,则报错,默认方式

REP[LACE]:创建指定的文件,若指定的文件已存在,则替换它

APP[END]]:将输出内容追加到指定文件的末尾

OFF:关闭 SPOOL 输出

7.3HOST:切换到操作系统命令 ,使用 HOST 命令可以不用退出 DIsql 就能执行操作系统命令。

HOST[<command>]

<command>:操作系统命令。

7.4DESCRIBE:获取对象结构信息,具体指获取表或视图、存储过程、函数、包、记录、类的结构描述。

DESC[RIBE] <table>|<view>|<proc>|<fun>|<pkg>|<record>|<class> ;

desc是用于查询出结果时对结果进行排序,是降序排序;

设置describe的显示方式中的depthlinenumindent可显示列的结构信息。linenum ON 时,显示行号 IDPID 信息;反之,行号 IDPID 信息不显示;indent ON 时,name 的显示方式发生了缩进;反之,不发生缩进。

table/view:表或者视图名,可以查看其列名、列数据类型、列表是否可以取空值。

proc/fun/class:获取的内容为:1、存储函数/过程名、函数/过程类型,函数返回值类型;2、参数名、参数数据类型、参数输入输出属性、参数缺省值。

pkg:获取内容为:1、包内存储函数/过程名,函数/过程类型,函数返回值类型;2、包内参数名,参数数据类型、参数输入输出属性、参数缺省值。

record:获取的内容为:参数名、参数数据类型,参数是否可以取空值。

7.5、定义本地变量 define column

definedefine DEF[INE] [<VARIABLE=text>|< VARIABLE >]

定义一个本地变量的替代变量,并重新赋值;或者输出该变量的值和类型。

def varlable = text ;申明一个变量,如果该变量存在则重新赋值,否则生成一个新的变量,并进行赋值。

DEF[INE] VARLABLE ;若该变量存在,则输出该变量的值和类型,否则报错。

DEF[INE] :输出DIsql中所有变量的值和类型。

当使用该命令定义变量时,如果变量值包含空格或区分大小写,则用引号引注。另外,使用“DEFINE 变量名可以检查变量是否已经定义。DEFINE 定义的变量会保存在环境 DIsql 环境中,可以在 SQL 语句中使用。默认的变量前缀是&

关闭变量替换:set define off

打开变量替换:set define on

column:定义一个本地列或者表达式。

用法:COL[UMN] [<column | expr> [<option>]]

COL[UMN]:列举出所有的 COLUMN 变量信息。

COL[UMN] column | expr:列举出某个 column expr,如果存在,则输出信息,否则报错。

COL[UMN] column | expr optionoption 目前仅支持 NEW_VALUE,表示该column|expr 值,同时作为变量存在。但如果该变量未赋值,通过 DEFINE 查询时,不会显示该变量。

COL[UMN] column <OFF|ON(默认值)>

将变量 VARIABLE 与列名 column 之间的关联,默认值为 ON,表示已关联。

7.6EXPLAIN:用EXPLAIN命令来查看查询语句的执行计划。

用法:EXPLAIN <sql_clause>

7.7WHENEVER:用 WHENEVER 命令可以设置异常处理方式,继续执行或退出 DIsql

WHENEVER SQLERROR

CONTINUE [ COMMIT | ROLLBACK | NONE ] |

EXIT [ SUCCESS | FAILURE | WARNING | n | <variable> | : <bindvariable> ]

[ COMMIT | ROLLBACK ]

7.8MORE:当结果过多,屏幕只能显示一个时,用户可以使用MORE命令切换到下一个结果集。

用法:MORE | MR

7.9LIST:显示最近执行的SQL语句或者PL/SQL块信息。不显示DISQL命令。

用法:L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST] 或者;

nm:数值SQL行号

*:当前行号

LAST:最后一行

7.10@,当插入语句中包含大对象数据文件时使用@

用法:@'path'

7.11CLEAR:清理指定操作本地缓存。

COL[UMNS]:清理所有的 COLUMN 变量信息。

SQL:清理本地 SQL 缓存信息。

SCR[EEN]:清理 DIsql 终端屏幕信息。

BUFF[ER]:同 SQL 功能一样,清理本地 SQL 缓存信息。

8、使用脚本

用户不必在每次使用数据库的时候都编写常用的 SQL 语句和 PL/SQL 程序块,而是可以将它们保存到称为脚本的文件中。

1、编写脚本

2、使用start命令运行脚本:

<start>::=<`运行脚本>|<start 运行脚本>|<直接执行语句>

<运行脚本>::=<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]

<start 运行脚本>::=START <file_path> [<PARAMETER_VALUE> {<PARAMETER_VALUE>}]

<直接执行语句>::= -E “<SQL 语句>{;<SQL 语句>}”

脚本可以在启动 DIsql 时就运行,或者在进入 DIsql 之后再运行。如果在启动时运行,只能使用<运行脚本>;如果在进入DISQL之后,使用<运行脚本>或者<start 运行脚本>来运行脚本都都可以。在linux环境下运行脚本的话,特殊符号记得用反斜杠\或者进行转义。

3DIsql 中使用 EDIT 命令来编辑指定的脚本文件。用法:EDIT [file_name]

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

推荐阅读