浅谈dm7数据库物理备份文件恢复时容易出现的几个问题


数据库备份、还原是经常遇到的场景,结合实际工作,主要分享以下两点:
1、高版本数据库备份的数据,在低版本数据库恢复时,虽然恢复过程都是成功的,但是恢复之后的数据库服务无法正常启动;
2、备份与还原的数据库数据文件路径不一样的数据恢复操作。

1. 高版本数据在低版本数据库中恢复

1.1. 问题现象

(1)数据库版本
低版本数据库
在这里插入图片描述
高版本数据库
在这里插入图片描述

(2)备份高版本数据库数据
使用backup命令备份高版本数据库数据。

// An highlighted block
backup database full to "DB_DAMENG_FULL_BAK_HIGH_VERSION" backupset '/home/dmdba/dm/backup/DB_DAMENG_FULL_BAK_HIGH_VERSION';

(3)在低版本数据库中进行数据恢复
停止低版本数据库服务,通过dmrman工具进行数据还原。数据恢复过程都是成功的,但是启动的时候就会出现问题。
在这里插入图片描述

(4)启动低版本数据库
此时启动数据库是无法正常启动的,启动脚本前台会提示错误
在这里插入图片描述

也可以查看数据库日志,也有类似错误的提示
在这里插入图片描述

1.2.解决方案

此时我们可以修改数据库配置文件dm.ini中 CHECK_SVR_VERSION参数为0,然后启动数据库。该值在数据库中默认为1。
CHECK_SVR_VERSION:数据库记录的执行码版本比当前SERVER版本高时,是否报错。
0:不报错;
1:报错,服务器不能启动成功。
修改前
在这里插入图片描述
修改后
在这里插入图片描述

修改后启动数据库成功
在这里插入图片描述
在这里插入图片描述

2. 数据文件路径不一致的备份和恢复

2.1. 问题现象

实际工作中原数据库的数据文件路径和恢复数据的数据库的文件路径不一致,是经常会遇到的场景。逻辑备份文件恢复还原时不会遇到该问题,但是物理备份文件直接进行还原时会出错,如原数据库数据文件是分开存放的,分别存放在/dbdata和/dbdata_new两个分区下,但是还原后的数据文件都存放在/dbdata分区中,还原时会提示无效文件路径,因为新环境中没有/dbdata_new这个分区了,如下图所示。
在这里插入图片描述

2.2. 解决方案

这个时候我们可以通过映射文件(mappedfile)来实现,可以将数据文件生成到特定的路径。
映射文件(mappedfile)是用于存放还原目标路径,即备份集里面的数据文件的路径。可以手动修改自动生成的映射文件。当参数BACKUPSET和MAPPED FILE指定的路径不一致时,以MAPPED FILE中指定的路径为主。
(1)使用dmrman工具根据备份集生成映射文件,示例为使用DB_DAMENG_FULL_2022_12_22_16_49_25备份集生成了名为map_file_01.txt的映射文件

// An highlighted block
RMAN> DUMP BACKUPSET '/dbbak/DB_DAMENG_FULL_2022_12_22_16_49_25' MAPPED FILE '/home/dmdba/dm/map_file_01.txt';

映射文件的内容如下图所示
在这里插入图片描述
(2)vi map_file_01.txt修改TEST01.dbf和TEST02.dbf两个数据文件的路径为/dbdata/DAMENG,所有不一致的数据路径都要修改。
(3)指定修改后的映射文件进行数据库还原,还原前进行备份文件校验,还原后进行数据恢复。

// An highlighted block
RMAN> RESTORE DATABASE '/dbdata/DAMENG/dm.ini' FROM BACKUPSET '/dbbak/DB_DAMENG_FULL_2022_12_22_16_49_25' MAPPED FILE '/home/dmdba/dm/map_file_01.txt';

(4)启动数据库服务成功,查看数据文件也已成功还原。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值