达梦数据库的备份还原之逻辑备份与还原

基础概念

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

  1. 逻辑备份还原是 对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原,使用 dexp 和 dimp 进行的备份还原。逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。

  2. 物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。物理备份分为完全备份、增量备份;物理备份级别:全库备份、表空间级备份、表级备份、归档备份。

  • 完全备份是指一个备份包含指定数据库或表空间的所有有效数据页;

  • 增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的数据页;增量备份包含差异增量备份和累积增量备份,默认是差异增量备份。

    • 差异增量备份的基础备份集可以是全量备份,也可以是增量备份;

    • 累计增量备份的基备份集只能是全量备份。

  • 联机备份(热备):指数据库启动状态下的备份。

  • 脱机备份(冷备):指数据库关闭状态下的备份。

  • 物理还原是备份的逆过程;

  • 恢复是使用归档将数据库恢复到最新状态或指定时间点;或使用备份集中的 redo 信息将数据库恢复至一致性状态。

逻辑备份还原(dxep/dimp)

具体用法请参考官方文档:功能简介

1、概念介绍:

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录的bin目录中找到。

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

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

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

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

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

1、dexp

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

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

查看帮助信息: ./dexp help

具体语法使用:

dexp PARAMETER=<value>...
# PARAMETER 是dexp参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。 
# <value>:参数取值。 

例子:

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

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

2、dimp

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。

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

查看帮助信息: ./dimp help

具体语法使用:

dimp PARAMETER=value...
# PARAMETER 是dimp参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。 
# <value>:参数取值。 

例子:

将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为192.168.58.30,端口号为 5236的数据库。导入文件名为 db_str.dmp,导入的日志文件名为 db_str.log,路径为/dm8/dmbak/dexp。

 ./dimp USERID=SYSDBA/SYSDBA@192.168.58.30:5236 FILE=db_str.dmp DIRECTORY=/dm8/dmbak/dexp LOG=db_str.log FULL=Y 

2、案例操作

1、环境准备 :

导出库:环境为 linux,服务器为 192.168.58.30,用户名和密码均为 SYSDBA。端口号 5236。

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

验证方式:在导出库中创建用户、表空间、表等对象信息,然后在导入的库中查看是否有对应的信息。

2、FULL方式导出/导入整个数据库

1、dexp导出数据:

导出数据库的所有对象(FULL=Y),导出文件为 dexpFULL.dmp,导出日志为 dexpFULL.log,导出文件和日志文件都存放在/dm8/dmbak/dexp 目录中。

./dexp USERID=SYSDBA/SYSDBA@192.168.58.5236 FULL=Y FILE=dexpFULL.dmp LOG=dexpFULL.log DIRECTORY=/dm8/dmbak/dexp

2、dimp导入数据

采用 FULL 方式完全导入整个数据库。导入文件名为 /dm8/dmbak/dexp/dexpFULL.dmp,导入的日志文件名为 dimpFULL.log,路径为/dm8/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA@192.168.58.30:6236 FULL=Y FILE=/dm8/dmbak/dexp/dexpFULL.dmp LOG=dimpFULL.log DIRECTORY=/dm8/dmbak/dimp

3、OWNER方式导出/导入一个或多个用户拥有的所有对象

1、dexp导出数据:

导出数据库中TEST用户的所有对象(OWNER=TEST),导出文件为 dexpOWNER.dmp,导出日志为 dexpOWNER.log,导出文件和日志文件都存放在/dm8/dmbak/dexp 目录中。

./dexp USERID=SYSDBA/SYSDBA@192.168.58.5236 OWNER=TEST FILE=dexpOWNER.dmp LOG=dexpOWNER.log DIRECTORY=/dm8/dmbak/dexp

2、dimp导入数据

采用 OWNER方式导入TEST用户的所有对象。导入文件名为 /dm8/dmbak/dexp/dexpOWNER.dmp,导入的日志文件名为 dimpOWNER.log,路径为/dm8/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA@192.168.58.30:6236 OWNER=TEST FILE=/dm8/dmbak/dexp/dexpOWNER.dmp LOG=dimpOWNER.log DIRECTORY=/dm8/dmbak/dimp

注意:确保目标数据库(SYSDBA/SYSDBA@192.168.58.30:6236)上已经存在这个用户(TEST)才行,要不然导入会失败;

4、SCHEMAS方式的导出/导入一个或多个模式下的所有对象

1、dexp导出数据:

导出数据库中DMHR、OTHER、PERSON模式下的所有对象(SCHEMAS=DMHR,OTHER,PERSON),导出文件为 dexpSCHEMAS.dmp,导出日志为 dexpSCHEMAS.log,导出文件和日志文件都存放在/dm8/dmbak/dexp 目录中。

./dexp USERID=SYSDBA/SYSDBA@192.168.58.5236 SCHEMAS=DMHR,OTHER,PERSON FILE=dexpSCHEMAS.dmp LOG=dexpSCHEMAS.log DIRECTORY=/dm8/dmbak/dexp

2、dimp导入数据

采用 SCHEMAS方式导入DMHR、OTHER、PERSON模式下的所有对象。导入文件名为 /dm8/dmbak/dexp/dexpSCHEMAS.dmp,导入的日志文件名为 dimpSCHEMAS.log,路径为/dm8/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA@192.168.58.30:6236 SCHEMAS=DMHR,OTHER,PERSON FILE=/dm8/dmbak/dexp/dexpSCHEMAS.dmp LOG=dimpSCHEMAS.log DIRECTORY=/dm8/dmbak/dimp

5、TABLES方式导出/导入一个或多个指定的表或表分区。

1、dexp导出数据:

导出数据库中TEST模式下DEXP,DIMP表(TABLES=TEST.DEXP,TEST.DIMP),导出文件为 dexpTABLES.dmp,导出日志为 dexpTABLES.log,导出文件和日志文件都存放在/dm8/dmbak/dexp 目录中。

./dexp USERID=SYSDBA/SYSDBA@192.168.58.5236 TABLES=TEST.DEXP,TEST.DIMP FILE=dexpTABLES.dmp LOG=dexpTABLES.log DIRECTORY=/dm8/dmbak/dexp

2、dimp导入数据

采用 TABLES方式导入TEST模式下的DEXP,DIMP表。导入文件名为 /dm8/dmbak/dexp/dexpTABLES.dmp,导入的日志文件名为 dimpTABLES.log,路径为/dm8/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA@192.168.58.30:6236 TABLES=TEST.DEXP,TEST.DIMP FILE=/dm8/dmbak/dexp/dexpTABLES.dmp LOG=dimpTABLES.log DIRECTORY=/dm8/dmbak/dimp

大家想学习达梦数据库或者解决报错问题,可以去达梦数据库社区地址(https://eco.dameng.com

制作不易,各位看官如果觉得还可以,请给小弟一键三连鼓励一下 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值