达梦数据库dimp和dexp工具的使用

一、dexp和dimp工具的介绍

1、达梦数据库的数据备份与还原分为物理备份还原与逻辑备份还原两种,dexp(逻辑导出)和dimp(逻辑导入)是达梦的逻辑备份还原工具,工具存放位置在/dmdbms/bin下。

2、逻辑备份还原均需要在数据库正常运行下方可进行。

3、逻辑导入导出的对象分为四种级别(四种级别互斥),分别为:
(1)数据库级:导入或导出整个数据库中所有对象,对应语法为:
FULL=Y
(2)用户级:导入或导出一个或多个用户所拥有的对象,对应语法为:
OWNER=<用户名> //单用户
OWNER=<用户名1>,<用户名2>… //多用户
(3)模式级:导入或导出一个或多个模式下的所有对象,对应语法为:
SCHEMAS=<模式名> //单模式
SCHEMAS=<模式名1>,<模式名2>… //多模式
(4)表级:导入或导出一个或多个指定的表或表分区,对应语法为:
TABLES=<表名> //单表
TABLES=<表名1>,<表名2>… //多表
TABLES=模式名.表名1,模式名.表名2 //导出指定模式下的表

4、对输入的用户名、模式名、表名,都会被默认转换为大写的字符,如果不想被转换,dexp要求将名称用双引号括起来。如需要对表table1进行导出,转义如下:
(1)”table1” //用双引号
(2)\”table\” //操作系统要求将双引号进行转义
(3)“\”table\”” //加双引号,作为一个整体
对含有特殊字符(如双引号、单引号、空格、逗号等)的表名,对特殊字符需要使用双引号“”来进行转义,如对表名table1”进行转义,操作如下:
(1) table1”
(2) “table1”” //加双引号,不被转为大写(达梦规则)
(3) “table1”””” //对表名的”进行转义(达梦规则)
(4) \”table\”\”\” //对内层的”均进行转义,(OS要求)
(5) “\”table\”\”\”” //加双引号作为整体(OS要求)
规则总结:先对特殊字符进行转义,再到外层加上作为整体的双引号;

5、通过过滤参数(QUERY、EXCLUDE、INCLUDE)进行表级导出
(1)QUERY:指定过滤条件来导出表数据,语法如下:
QUERY=”条件语句”
如,导出表里面score=90的数据,语句如下:
QUERY=”where score=90”
(2)EXCLUDE:批量设置导出时忽略的对象
TABLES=t1,t2 EXCLUDE=/(CONSTRAINTS/) //导出t1,t2时去掉约束
(3)INCLUDE:批量设置导出时包含的对象种类,如
TABLES=t1 INCLUDE=/( CONSTRAINTS,INDEX/) //导出t1时含约束和索引

6、其他参数:
(1)COMPRESS:是否压缩导出文件,COMPRESS=Y/N
(2)ENCRYPT:是否加密导出文件,ENCRYPT=Y,则COMPRESS=Y
(3)ENCRYPT_PASSWORD:设置加密密钥
(4)ENCRYPT_NAME:设置加密算法,缺省为RC4
注:dimp就是dexp的相反过程,在此不赘述;

二、dexp导入操作

在达梦8数据库里面,新建一个模式,并在模式下导入表,进行dexp和dimp的操作。
1、dexp导出操作:

./dexp USERID=SYSDBA/SYSDBA123@192.168.152.132:5236 FILE=db_full.dmp DIRECTORY=/opt/dmdbms/dexp LOG=db_full.log FULL=Y  //库级导出

./dexp USERID=SYSDBA/SYSDBA123@192.168.152.132:5236 FILE=db_schema.dmp DIRECTORY=/opt/dmdbms/dexp LOG=db_schema.log SCHEMAS=db_conf  //模式级导出

./dexp USERID=SYSDBA/SYSDBA123@192.168.152.132:5236 FILE=db_user.dmp DIRECTORY=/opt/dmdbms/dexp LOG=db_user.log OWNER=SYSDBA  //用户级导出

./dexp USERID=SYSDBA/SYSDBA123@192.168.152.132:5236 FILE=db_table.dmp DIRECTORY=/opt/dmdbms/dexp LOG=db_table.log  //表级导出

2、dexp导出操作结果:
在这里插入图片描述

三、dimp导入操作:

基于1、2步导出的数据,进行数据导入操作

./dimp USERID=SYSDBA/SYSDBA123@192.168.152.132:5238 FILE=db_full.dmp DIRECTORY=/opt/dmdbms/dimp LOG=db_full_dimp.log FULL=Y  //导入库

./dimp USERID=SYSDBA/SYSDBA123@192.168.152.132:5238 FILE=db_schema.dmp DIRECTORY=/opt/dmdbms/dimp LOG=db_schema_dimp.log SCHEMAS=DB_CONF  //导入模式

./dimp USERID=SYSDBA/SYSDBA123@192.168.152.132:5238 FILE=db_user.dmp DIRECTORY=/opt/dmdbms/dimp LOG=db_user_dimp.log OWNER=SYSDBA //导入用户所属数据

./dimp USERID=SYSDBA/SYSDBA123@192.168.152.132:5238 FILE=db_table.dmp DIRECTORY=/opt/dmdbms/dimp LOG=db_table_dimp.log TABLES=DB_CONF.T_ATY_CODE,DB_CONF.T_ATY_DEPT  //导入表

4、dimp导入操作结果
在这里插入图片描述
需要注意的是,对于模式级、用户级、表级的导入,在导入前,需要先创建好同名的模式名,否则导入的过程中会警告出错,而对于数据库级的导入,则没有这个要求。

四、加密导出导入

./dexp USERID=SYSDBA/SYSDBA123@192.168.152.132:5236 FILE=db_full.dmp DIRECTORY=/opt/dmdbms/dexp/encrypt LOG=db_full.log ENCRYPT=Y ENCRYPT_PASSWORD=123qweasd ENCRYPT_NAME=RC4 FULL=Y

./dimp USERID=SYSDBA/SYSDBA123@192.168.152.132:5238 FILE=db_full.dmp DIRECTORY=/opt/dmdbms/dexp/encrypt LOG=db_full_dimp.log ENCRYPT_PASSWORD=123qweasd FULL=Y

可以看出,加密导出的时候,不需要手动去添加COMPRESS=Y这个参数,因为如果ENCRYPT=Y,则默认COMPRESS=Y;
另外,在导入的过程中,只需要添加加密的密码即可,那是因为缺省加解密算法都是RC4,所以在导入的时候不需要再次声明该参数值,如果导出的时候指定了别的加密算法,则导入的时候该参数需要特别指出;

五、在学习中遇见的问题

初始化一个新实例以后,通过命令无法启动,status查看状态,展示如下:
在这里插入图片描述1、尝试的启动方法有以下:
(1) 进入/home/dmdba/dmdbms/bin/service_template,执行:
./DmService start
结果显示启动过程出错。

(2) 将服务注册到/rc.d/init.d里面,执行:
Service DmServiceDMSERVER start
结果显示启动过程仍然报错。
(3) 将服务注册到systemd里面启动,执行:
systemctl start DmServiceDMSERVER start
结果显示启动过程还是报错。
2、分析过程:
(1) 安装完数据库后初始化的第一个实例,启动是正常的,说明数据库安装没有问题。
(2) 整个报错过程,一直提示文件权限不够,检查了对应文件的读写权限,均正常,说明不是文件读写权限的问题。
(3) 最后检查发现,数据库安装的用户是dmdba,安装后初始化的第一个实例也是用dmdba进行的,但是此时在进行初始化操作的用户为root,说明是用户角色权限的问题,因为是使用dmdba进行安装的,所以整个数据库文件属主均为dmdba:dminstall,所以有些文件,对root来说,不具备执行权限,切换到dmdba重新初始化实例后,该问题解决。
因此,如果不是使用root用户安装的数据库,则在初始化实例的时候,就要使用安装用户进行操作(谁安装,谁初始)

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值