首页 > 数据库 >达梦数据库自动备份与恢复

达梦数据库自动备份与恢复

时间:2022-11-17 16:23:38浏览次数:39  
标签:备份 备份文件 LENGTH 大小写 还原 数据库 达梦

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

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

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

 

  1. 创建自动备份作业

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

 在作业步骤中点击添加按钮新增一个步骤 全库备份 ,步骤类型选择 备份数据库 备份方式根据需求选择 完全备份/增量备份 并勾选压缩与备份日志。

 然后在作业调度中点击添加按钮,调度类型选择 反复执行 并且定义需要的频率后点击确定。

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

 备份文件会生成在数据目录下的bak文件夹中,文件名是 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)与还原备份文件的数据库的字符集编码属性不一致,必须保证两边数据库的字符集编码属性一致才能正常还原。

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

 

参考资料

https://www.cnblogs.com/binliubiao/p/15515618.html

DM7备份与还原.pdf

标签:备份,备份文件,LENGTH,大小写,还原,数据库,达梦
From: https://www.cnblogs.com/masahiro/p/16899836.html

相关文章

  • FastCopy自动备份
    用bat批处理调用FastCopy;然后用系统自带的“任务计划程序”设置执行计划;bat文件:关键点,bat文件放软件目录下;编码方式为UTF-8;红色文字为需要修改的部分;路径貌似不支持中......
  • 一次分布式锁与数据库事务的纠缠
    有一个需要保证并发安全性的方法,考虑到锁的粒度与分布式要求,选择了基于Redis的分布式锁。需要保证并发安全性的原因是该方法会并发操作数据库某表中的数据。......
  • phpmyadmin 数据库导出数据到excel(图文版)
    查询到想要的数据后,点击上方或下方的“导出”按钮格式选择“CSVforMSExcel” 如果快速导出的数据乱码,可以选择“导出方式”->“自定义-显示所有可用的选项”。......
  • 数据库平滑扩容方案剖析
    1.扩容方案剖析1.1扩容问题在项目初期,我们部署了三个数据库A、B、C,此时数据库的规模可以满足我们的业务需求。为了将数据做到平均分配,我们在Service服务层使用uid%3进......
  • Redis缓存中的数据和数据库不一致
    首先关于两者数据的一致性包含有两种情况:(1)缓存中有数据时,那数据库中的数据要和缓存中的数据相同;(2)缓存中没有数据时,数据库中的数据必须是最新的。如果不符合以上两种......
  • 使用存储过程备份数据库
    数据库备份脚本:CREATEPROCEDURE[dbo].[SP_BackupDB](@BackPathNVARCHAR(200),--备份路径,如:D:\Backup\@BackDbNameNVARCHAR(50),......
  • Command10,Access数据库
    我的按钮名为Command10,Access文档新建在当前目录下,代码如下PrivateSubCommand10_Click() DimcatAsADOX.Catalog Setcat=NewADOX.Cata......
  • 提示‘操作无法完成,应为文件已在SQL Server(MSSQLSERVER)中打开’,移动或删除数据库相
    移动或删除数据库相关文件时出现提示‘操作无法完成,应为文件已在SQLServer(MSSQLSERVER)中打开’ 解决方法:在开始菜单附近的搜索中搜索服务  找到SQLServer(......
  • 数据库查重
    查重语句select*fromteamwhereteamIdin(selectteamIdfromteamgroupbyteamIdhavingcount(teamId)>1)select*fromteamwhereID=2groupbyIDhavin......
  • 数据库表中常用的查询实验
    实验1练习1、请查询表DEPT中所有部门的情况。select*fromdept;练习2、查询表DEPT中的部门号、部门名称两个字段的所有信息。selectdeptno,dnamefromdept;练习3、请从......