在达梦7数据库早期版本中创建自动备份文件后只生产了一个 .bak 文件 此时使用达梦bin目录中的 DMRMAN 工具还原数据库时会提示无效的备份集或者扫描备份集时找不到任何备份,此时这种情况下需要使用 DMRESTORE 工具来进行数据库还原。

.bak 文件 此时使用达梦bin目录中的 DMRMAN 工具还原数据库时会提示无效的备份集或者扫描备份集时找不到任何备份,此时这种情况下需要使用 DMRESTORE

  官方文档中是这样描述的:

1.4.1 版本区别
     V1.0
备份还原 V1.0 指 DM7 早期的备份还原,不是基于备份集组织的备份。V1.0 版本使用
dmbackup 工具执行脱机备份,使用 dmrestore 工具执行脱机还原。
    V2.0
引入备份片、元数据文件、备份集等概念,提供第三方备份(TAPE 类型)接口,支持
RAC 备份。使用 DMRMAN 工具进行脱机备份还原。

 

  1. 创建自动备份作业

在管理工具中连接数据库,在代理中找到作业,右键新建作业 full_back

Java 实现 达梦数据库备份 达梦7数据库备份_Java 实现 达梦数据库备份

全库备份 ,步骤类型选择 备份数据库 备份方式根据需求选择 完全备份/增量备份

Java 实现 达梦数据库备份 达梦7数据库备份_备份文件_02

反复执行

Java 实现 达梦数据库备份 达梦7数据库备份_数据库_03

 检查设置后点击确定即可创建备份作业。

Java 实现 达梦数据库备份 达梦7数据库备份_标识符_04

DB_[数据库名]_[年月日时分秒].bak

 

  2.  使用DMRESTORE工具还原备份

还原备份时需要注意:

  • 目标数据库的  页大小、簇大小、大小写敏感
  • 目标数据库与备份文件的存放路径中不要有中文与空格,否则DMRESTORE工具可能会报错导致无法还原

  还原的命令如下:

DMRESTORE INI_PATH=C:\DamengDB\data\DAMENG\dm.ini FILE=C:\back\DB_DAMENG_FULL_2022_11_05_00_00_06.bak

执行命令后会确认两次是否还原数据库,确认后会将目标数据库还原成备份数据库的配置(包括用户、密码等)

 

  3. 常见错误描述

因LENGTH_IN_CHAR参数不一致引起导数失败
  描述
  利用DEXP、DIMP工具做达梦数据库导入|导出数据时,工具提示[警告]服务器与文件内数据的LENGTH_IN_CHAR参数不匹配【警告】可能会有错误发生。

  原因
  因为源数据库、目的数据库的初始化参数LENGTH_IN_CHAR设置不一致的原因。

 

页大小不匹配,restore error code:-8210
  原因:
  这是因为产生备份文件的数据库的数据文件使用页大小与还原备份文件的数据库的数据文件所使用的页大小不同,必须保证两边的数据文件使用的页大小一致才能正常还原。注:数据文件使用的页大小(page_size),可以为4K、8K、16K 或32K 之一,选择的页大小越大,则DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使8K。

  解决办法:
  使用数据库配置助手dbca重现初始化一个库,在设置参数时注意保证两边的页大小一致;

  在命令行中使用dminit重现初始化一个库,在设置参数时注意保证两边的页大小一致。

 

大小写区分属性不匹配,restore error code:-8212
  这是因为产生备份文件的数据库的标识符大小写(case_sensitive)的敏感程度与还原备份文件的数据库对标识符大小写的敏感程度不同,必须保证两边对标识符大小写敏感程度一致才能正常还原。

  注:标识符大小写敏感,默认值为Y。当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写。

 

LENGTH_IN_CHAR属性不匹配,restore error code:-8266
  解决办法:
  这是因为产生备份文件的数据库的LENGTH_IN_CHAR属性(默认为0)与还原备份文件的数据库的LENGTH_IN_CHAR属性不一致,必须保证两边数据库的LENGTH_IN_CHAR属性一致才能正常还原。

  注:LENGTH_IN_CHAR属性设置为1 时,所有 VARCHAR 类型对象的长度以字符为单位,否则以字节为单位。

 

编码不一致
  解决办法
  这是因为产生备份文件的数据库的字符集编码属性(默认为GB18030)与还原备份文件的数据库的字符集编码属性不一致,必须保证两边数据库的字符集编码属性一致才能正常还原。

  备注:只有初始化实例的时候可以选择以上属性,一经启用无法修改。需要重新初始化实例保持导出和导入的初始化设置一样。