提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本章将介绍有关达梦数据库逻辑备份工具dexp内容的使用,由于还原工具dimp使用方法与dexp极度类似,相信大家掌握了dexp用法后自然而然也就掌握了dimp的用法。
一、逻辑备份工具dexp
dexp是一款逻辑备份工具,需要注意的是,该工具仅支持联机备份,也就是需要保证数据库的正常运行,利用该工具我们可以完成平日里一些备份内容,如果你已经安装了达梦数据库,且是默认安装路径,那么该工具默认存放在/opt/dmdbms/bin/下
1.基础备份
file用来指定备份文件存放的路径,log用来查看当前备份结果的日志信息,是否有出错内容,默认不指定备份级别就是全备,需要注意的是不指定的话默认是全备当前模式下的内容
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full.log
dexp V8
正在导出 第1 个SCHEMA :SYSDBA
开始导出模式[SYSDBA].....
----- 共导出 0 个SEQUENCE -----
导出第 1 个VIEW: CUST
导出第 2 个VIEW: CUST1
导出第 3 个VIEW: CUST2
----- 共导出 3 个VIEW -----
----- 共导出 0 个TRIGGER -----
----- 共导出 0 个COMMENT VIEW -----
----- 共导出 0 个COMMENT COL -----
----- 共导出 0 个PROCEDURE -----
----- 共导出 0 个SYNONYM -----
----- 共导出 0 个DBLINK -----
导出第 1 个TRIGGER: TIMER2
----- 共导出 1 个TRIGGER -----
----- 共导出 0 个PACKAGE -----
----- 共导出 0 个PKG_BODY -----
----- 共导出 0 个OBJECT of NO REFER OTHER CLASS -----
----- 共导出 0 个OBJECT of REFER OTHER CLASS -----
----- 共导出 0 个JCLASS -----
----- 共导出 0 个CLASS_BODY -----
----- 共导出 0 个DOMAIN -----
----- 共导出 0 个PARTITION GROUP -----
导出模式下的对象权限...
----- [2022-04-14 10:54:41]导出表:TEST -----
导出模式下的对象权限...
表TEST导出结束,共导出 0 行数据
[警告]Error Code:-7086,对象不存在
----- [2022-04-14 10:54:41]导出表:CALLINFO -----
导出模式下的对象权限...
表CALLINFO导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:PERSON -----
导出索引:INDEX_PERSON
导出索引:INDEX_UNIQUE_EMAIL
导出索引:INDEX_PHONE
导出索引:T100
导出模式下的对象权限...
表PERSON导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T5 -----
导出模式下的对象权限...
表T5导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T6 -----
导出触发器: DELL_CZK
导出触发器: INSERT_CZK1
导出模式下的对象权限...
表T6导出结束,共导出 1 行数据
----- [2022-04-14 10:54:41]导出表:T7 -----
导出模式下的对象权限...
表T7导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T8 -----
导出模式下的对象权限...
表T8导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T10 -----
导出模式下的对象权限...
表T10导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:TMP_CZK -----
导出模式下的对象权限...
表TMP_CZK导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:IDENT_TABLE -----
导出模式下的对象权限...
表IDENT_TABLE导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T11 -----
导出索引:INDEX_HANSHU
导出索引:INDEX_BIT
导出模式下的对象权限...
表T11导出结束,共导出 1 行数据
----- [2022-04-14 10:54:41]导出表:T_CON -----
导出模式下的对象权限...
表T_CON导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:CALLCZK -----
导出模式下的对象权限...
表CALLCZK导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:SALES_CZK -----
导出模式下的对象权限...
表SALES_CZK导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:SALES01 -----
导出模式下的对象权限...
表SALES01导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:CALLBAK -----
导出模式下的对象权限...
表CALLBAK导出结束,共导出 0 行数据
[警告]Error Code:-7086,对象不存在
[警告]Error Code:-7086,对象不存在
[警告]Error Code:-7086,对象不存在
[警告]Error Code:-7086,对象不存在
[警告]Error Code:-7086,对象不存在
----- [2022-04-14 10:54:41]导出表:T20 -----
导出模式下的对象权限...
表T20导出结束,共导出 1000 行数据
----- [2022-04-14 10:54:41]导出表:T21 -----
导出模式下的对象权限...
表T21导出结束,共导出 1000 行数据
模式[SYSDBA]导出结束.....
成功导出 第1 个SCHEMA :SYSDBA
共导出 1 个SCHEMA
整个导出过程共花费 1.213 s
成功终止导出, 但出现警告
1.2 查看日志输出
[dmdba@czk dexplog]$ cat full.log
dexp V8
开始导出模式[SYSDBA].....
----- 共导出 0 个SEQUENCE -----
导出第 1 个VIEW: CUST
导出第 2 个VIEW: CUST1
导出第 3 个VIEW: CUST2
----- 共导出 3 个VIEW -----
----- 共导出 0 个TRIGGER -----
----- 共导出 0 个COMMENT VIEW -----
----- 共导出 0 个COMMENT COL -----
----- 共导出 0 个PROCEDURE -----
----- 共导出 0 个SYNONYM -----
----- 共导出 0 个DBLINK -----
导出第 1 个TRIGGER: TIMER2
----- 共导出 1 个TRIGGER -----
----- 共导出 0 个PACKAGE -----
----- 共导出 0 个PKG_BODY -----
----- 共导出 0 个OBJECT of NO REFER OTHER CLASS -----
----- 共导出 0 个OBJECT of REFER OTHER CLASS -----
----- 共导出 0 个JCLASS -----
----- 共导出 0 个CLASS_BODY -----
----- 共导出 0 个DOMAIN -----
----- 共导出 0 个PARTITION GROUP -----
导出模式下的对象权限...
----- [2022-04-14 10:54:41]导出表:TEST -----
导出模式下的对象权限...
表TEST导出结束,共导出 0 行数据
[警告]Error Code:-7086,对象不存在
----- [2022-04-14 10:54:41]导出表:CALLINFO -----
导出模式下的对象权限...
表CALLINFO导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:PERSON -----
导出索引:INDEX_PERSON
导出索引:INDEX_UNIQUE_EMAIL
导出索引:INDEX_PHONE
导出索引:T100
导出模式下的对象权限...
表PERSON导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T5 -----
导出模式下的对象权限...
表T5导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T6 -----
导出触发器: DELL_CZK
导出触发器: INSERT_CZK1
导出模式下的对象权限...
表T6导出结束,共导出 1 行数据
----- [2022-04-14 10:54:41]导出表:T7 -----
导出模式下的对象权限...
表T7导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T8 -----
导出模式下的对象权限...
表T8导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T10 -----
导出模式下的对象权限...
表T10导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:TMP_CZK -----
导出模式下的对象权限...
表TMP_CZK导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:IDENT_TABLE -----
导出模式下的对象权限...
表IDENT_TABLE导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:T11 -----
导出索引:INDEX_HANSHU
导出索引:INDEX_BIT
导出模式下的对象权限...
表T11导出结束,共导出 1 行数据
----- [2022-04-14 10:54:41]导出表:T_CON -----
导出模式下的对象权限...
表T_CON导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:CALLCZK -----
导出模式下的对象权限...
表CALLCZK导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:SALES_CZK -----
导出模式下的对象权限...
表SALES_CZK导出结束,共导出 0 行数据
----- [2022-04-14 10:54:41]导出表:SALES01 -----
导出模式下的对象权限...
表SALES01导出结束,共导出 0 行数据
共导出 1 个SCHEMA
整个导出过程共花费 1.213 s
成功终止导出, 但出现警告
1.3 full参数
加上参数full=y代表备份内容为全备,即所有模式下的内容。但是也可以不加,不加的话就默认全备当前模式下的
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full.log full=y
1.4 owner参数
owner参数用来导出指定用户所包含的模式内容
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full.log owner=CZKTEST;
dexp V8
正在导出 第1 个SCHEMA :CZKTEST
开始导出模式[CZKTEST].....
----- 共导出 0 个SEQUENCE -----
----- 共导出 0 个VIEW -----
----- 共导出 0 个TRIGGER -----
----- 共导出 0 个COMMENT VIEW -----
----- 共导出 0 个COMMENT COL -----
----- 共导出 0 个PROCEDURE -----
----- 共导出 0 个SYNONYM -----
----- 共导出 0 个DBLINK -----
----- 共导出 0 个TRIGGER -----
----- 共导出 0 个PACKAGE -----
----- 共导出 0 个PKG_BODY -----
----- 共导出 0 个OBJECT of NO REFER OTHER CLASS -----
----- 共导出 0 个OBJECT of REFER OTHER CLASS -----
----- 共导出 0 个JCLASS -----
----- 共导出 0 个CLASS_BODY -----
----- 共导出 0 个DOMAIN -----
----- 共导出 0 个PARTITION GROUP -----
导出模式下的对象权限...
模式[CZKTEST]导出结束.....
成功导出 第1 个SCHEMA :CZKTEST
共导出 1 个SCHEMA
整个导出过程共花费 0.120 s
成功终止导出, 没有出现警告
1.5 tables 参数
tables参数用来导出指定表的数据
需要注意的是dexp工具默认会把命令行的内容转换成大写,如果你的表是小写的,一定要加上转义符进行转义,例如我的test01模式下的t1表就是小写的。导出会提示不存在
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full.log tables=test01.t1;
dexp V8
[警告]表 TEST01.T1 不存在或者为系统内部对象,请核对后再进行输入
整个导出过程共花费 0.003 s
成功终止导出, 但出现警告
成功终止导出, 没有出现警告
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full.log tables="\"test01\""."\"t1\"";
dexp V8
----- [2022-04-14 11:21:23]导出表:t1 -----
导出模式下的对象权限...
表t1导出结束,共导出 3 行数据
整个导出过程共花费 0.033 s
成功终止导出, 没有出现警告
1.6 directory参数
当你未指定file和log的位置路径时候,可以通过directory来指定具体存放的路径
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=full1.dexp log=full1.log directory=/opt/dmdbms/directory;
dexp V8
正在导出 第1 个SCHEMA :SYSDBA
开始导出模式[SYSDBA].....
----- 共导出 0 个SEQUENCE -----
导出第 1 个VIEW: CUST
导出第 2 个VIEW: CUST1
导出第 3 个VIEW: CUST2
-------后续输出内容省略
[dmdba@czk dmdbms]$ cd directory/
[dmdba@czk directory]$ ll
总用量 1012
-rw-r--r--. 1 dmdba dinstall 1025303 4月 14 11:26 full1.dexp
-rw-r--r--. 1 dmdba dinstall 5474 4月 14 11:26 full1.log
1.7 fuzzy_match参数
该参数用来控制对模糊表进行导出的功能,如果你不记得表名但记得开头,可以使用该参数进行导出
开启参数前
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=full1.dexp log=full1.log directory=/opt/dmdbms/directory tables=SYSDBA.T%;
dexp V8
[警告]表 SYSDBA.T% 不存在或者为系统内部对象,请核对后再进行输入
整个导出过程共花费 0.002 s
成功终止导出, 但出现警告
开启参数后
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=full1.dexp log=full1.log directory=/opt/dmdbms/directory tables=SYSDBA.T% fuzzy_match=y;
dexp V8
----- [2022-04-14 11:32:50]导出表:T1 -----
导出索引:T1I1
导出模式下的对象权限...
表T1导出结束,共导出 2 行数据
----- [2022-04-14 11:32:50]导出表:T10 -----
导出模式下的对象权限...
------内容省略
1.8 query参数
该参数用来过滤指定语句,然后导出具体表数据
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=full1.dexp log=full1.log directory=/opt/dmdbms/directory tables=SYSDBA.T% fuzzy_match=y query="where c1=1";
dexp V8
----- [2022-04-14 11:36:46]导出表:T1 -----
导出索引:T1I1
导出模式下的对象权限...
表T1导出结束,共导出 1 行数据
----- [2022-04-14 11:36:46]导出表:T10 -----
导出模式下的对象权限...
1.9 rows参数
该参数用来导出表中的行,如果指定为n,就是不导出数据
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=full1.dexp log=full1.log directory=/opt/dmdbms/directory tables=SYSDBA.T% fuzzy_match=y rows=n;
dexp V8
----- [2022-04-14 11:43:07]导出表:T1 -----
导出索引:T1I1
导出模式下的对象权限...
----- [2022-04-14 11:43:07]导出表:T10 -----
导出模式下的对象权限...
----- [2022-04-14 11:43:07]导出表:T11 -----
导出索引:INDEX_HANSHU
导出索引:INDEX_BIT
导出模式下的对象权限...
1.10 nolog参数
代表不在命令行界面输出日志内容
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=full1.dexp log=full1.log directory=/opt/dmdbms/directory tables=SYSDBA.T% fuzzy_match=y rows=n nolog=y;
dexp V8
[dmdba@czk bin]$
1.11 parfile参数
该参数可以引用文件里的内容
[dmdba@czk dmdbms]$ cat parfile.txt
file=/opt/dmdbms/dexp/full2.dexp
log=/opt/dmdbms/dexplog/full2.log
tables=T1
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 parfile=/opt/dmdbms/parfile.txt;
dexp V8
----- [2022-04-14 11:48:35]导出表:T1 -----
导出索引:T1I1
导出模式下的对象权限...
表T1导出结束,共导出 2 行数据
整个导出过程共花费 0.035 s
成功终止导出, 没有出现警告
1.12 feedback参数
用来指定每隔多少行输出一下内容
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 parfile=/opt/dmdbms/parfile.txt feedback=10000;
dexp V8
----- [2022-04-14 11:50:35]导出表:C1 -----
导出模式下的对象权限...
导出表 C1 的数据 10000 行
导出表 C1 的数据 20000 行
导出表 C1 的数据 30000 行
导出表 C1 的数据 40000 行
导出表 C1 的数据 50000 行
导出表 C1 的数据 60000 行
导出表 C1 的数据 70000 行
导出表 C1 的数据 80000 行
导出表 C1 的数据 90000 行
导出表 C1 的数据 100000 行
表C1导出结束,共导出 100000 行数据
整个导出过程共花费 0.082 s
成功终止导出, 没有出现警告
二、实例演示1
接下来演示实际的导入导出的一个内容
2.1.导出我当前库中的所有内容
[dmdba@czk bin]$ ./dexp SYSDBA/SYSDBA@localhost:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full.log nolog=y;
dexp V8
[dmdba@czk bin]$
2.1.导入指定目标库
这里我选择导入指定模式sysdba、sales、以及dmhr模式下的所有对象
[dmdba@czk bin]$ ./dimp SYSDBA/SYSDBA@192.168.0.132:5236 file=/opt/dmdbms/dexp/full.dexp log=/opt/dmdbms/dexplog/full4.log schemas=sysdba,dmhr,sales;
dimp V8
本地编码:PG_UTF8, 导入文件编码:PG_GB18030
开始导入模式[SYSDBA]......
导入模式中的 NECESSARY GLOBAL 对象……
模式中的 NECESSARY GLOBAL 对象导入完成……
----- [2022-04-14 12:14:21]导入表:TEST -----
总结
简单的介绍了下dexp这款工具,dexp是一款比较好用的工具,大家熟悉下就可以轻松的掌握了,适用于比较小型的数据架构,或者是数据量比较少的情况下使用,如果是大型架构,大量数据的话,还是推荐使用物理备份去操作。
如果还有其他问题,欢迎到达梦社区来提问~
社区地址:https://eco.dameng.com