跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

如何注册数据库到恢复目录_REGISTER DATABASE同步本地库信息

REGISTER DATABASE报ORA-19554的根本原因是目标数据库未启用ARCHIVELOG模式,恢复目录强制要求归档模式才能注册;需先确认并开启归档,再执行RESYNC CATALOG同步元数据,且恢复目录版本不得低于目标库版本。 为什么
REGISTER DATABASE
总报 ORA-19554 错误 根本原因不是权限或网络,而是目标数据库没开归档(
archivelog
模式)。恢复目录只接受归档模式下的数据库注册——这是硬性前提,不满足就直接失败。 实操建议: 先连上目标库执行
SELECT log_mode FROM v$database;
,确认返回
ARCHIVELOG
若为
NOARCHIVELOG
,必须停库后用
SHUTDOWN IMMEDIATE
→
STARTUP MOUNT
→
ALTER DATABASE ARCHIVELOG
→
ALTER DATABASE OPEN
别跳过
ALTER SYSTEM ARCHIVE LOG CURRENT
手动归档一次,否则 RMAN 可能因无可用归档日志拒绝注册 RMAN 连接恢复目录时
CONNECT CATALOG
失败的常见路径陷阱 错误常出现在 catalog 用户密码含特殊字符(如
@
、
/
)、TNS 名称解析失败,或恢复目录库本身未启动。 实操建议: 用完整连接串绕过 tnsnames.ora:比如
CONNECT CATALOG rman_user/pass@//host:1521/rcat
(注意双斜杠) 密码含
@
时,整个密码用单引号包裹:
rman_user/'p@ssw0rd'
检查恢复目录库状态:
SELECT status FROM v$instance;
必须是
OPEN
;再查
SELECT * FROM rc_database;
确认表空间未满
REGISTER DATABASE
后本地控制文件没更新?同步靠的是
RESYNC CATALOG
注册只是把数据库基本信息写进恢复目录(
RC_DATABASE
、
RC_TABLESPACE
等),不会自动把本地控制文件里的备份记录、归档日志位置等“推”过去。 实操建议: 注册完立刻执行
RESYNC CATALOG
,否则后续
LIST BACKUP
会看不到任何记录 如果控制文件里已有旧备份,但恢复目录为空,
RESYNC
会把那些备份元数据同步进去;反之,若恢复目录里有备份而控制文件已重建,则需
RESTORE CONTROLFILE
或用
CATALOG START WITH
手动登记 日常维护中,
RESYNC CATALOG
应作为备份脚本末尾固定步骤,避免元数据漂移 跨版本注册的风险:19c 恢复目录不能直接注册 11g 数据库 恢复目录版本必须等于或高于目标数据库版本。19c 的 catalog schema 不兼容 11g 的结构定义,强行注册会触发
ORA-19557
(device allocation failed)这类底层报错,实际是版本校验拦截。 实操建议: 查目标库版本:
SELECT * FROM v$version WHERE rownum = 1;
查恢复目录版本:
SELECT COMP_NAME, VERSION FROM DBA_REGISTRY WHERE COMP_NAME = 'Oracle Recovery Manager';
若不匹配,要么升级目标库(不现实),要么降级恢复目录(用低版本 DB 创建 catalog),或者改用独立的、版本匹配的恢复目录实例 最易被忽略的一点:即使注册成功,如果之后用高版本 RMAN 客户端连接低版本目标库做备份,某些新特性(如
SECTION SIZE
)仍会失效或报错——版本兼容性要通盘考虑,不能只看注册这一步。

相关文章