为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: V8
【操作系统】:银河麒麟V10 (1.05)
【CPU】:ARM
【问题描述】*:使用华为备份一体机,异机(主机名db02),还原恢复达梦数据库,提示如下错误:
restore完成,数据文件已还原。
进入操作系统recover,多次尝试,报错如下:
recover database; => 报错[-8301]:第[1]行,第[16]列[;]附近出现错误[-2007]:语法分析出错
recover database ‘/dmdata/DAMENG/dm.ini’ with archivedir ‘/dmdata/dmarch’; => 报错 EP[0]'s cur_lsn[185591747], file_lsn[185591747] [611]:恢复操作未完成
recover database ‘/dmdata/DAMENG/dm.ini’ with archivedir ‘/dmdata/dmarch’ until lsn 185591747;=> 报错 [600]:恢复过程指定UNTIL LSN[185591747]小于备份结束LSN[185592007]
recover database ‘/dmdata/DAMENG/dm.ini’ with archivedir ‘/dmdata/dmarch’ until lsn 185592007;=> 报错 EP[0]'s cur_lsn[185591747],file_lsn[185591747][611]:恢复操作未完成
其中/dmdata/dmarch为新建目录,里面没有日志,现场也不需要恢复归档日志,直接不完全恢复。
异机(主机名db02)之前是有数据库实例的,实例也正常,因为要异机还原,所以关闭了
直接update magic提示下面的错误
RMAN> recover database ‘/dmdata/DAMENG/dm.ini’ update db_magic;
recover database ‘/dmdata/DAMENG/dm.ini’ update db_magic;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[185591747], file_lsn[185591747]
[-8308]:需要先执行RECOVER DATABASE操作,再执行RECOVER DATABASE UPDATE DB_MAGIC操作
用归档recover的时候报错:恢复操作未完成 这应该不是归档不连续导致的,不信可以用dmrachk校验一下归档的连续性。
这种报错要检查一下备份集的db_magic和要还原的归档文件的db_magic是否相同。看备份集的dbmagic show backupset ‘bak1’ dmrachk会显示归档的db_magic
RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ WITH ARCHIVEDIR’/home/dm_arch/arch’ USE DB_MAGIC 1447060265;
–recover的时候指定USE DB_MAGIC就行 只有主备集群这种,是主备库关系的才能用这种方式!要不然,就要把备份集和归档都拷贝到其他服务器去还原!
RECOVER DATABASE ‘ini文件路径’ FROM BACKUPSET ‘备份集文件’;
具体可参考:
https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup-restore.html