暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

投机取巧,遭遇 ORA-19602: 无法按 NOARCHIVELOG 模式备份或复制活动文件

原创 ByteHouse 2024-05-28
649

1.故障现象

使用 rman duplicate 来进行standby database的创建:

FQ 1:

C:\Users\Administrator> rman target sys/admin123@primary auxiliary sys/admin123@standby nocatalog

恢复管理器: Release 19.0.0.0.0 - Production on 星期二 5月 28 17:20:48 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: ORCL (DBID=1696997271)
使用目标数据库控制文件替代恢复目录
已连接到辅助数据库: ORCL (未装载)

RMAN> duplicate target database for standby from active database nofilenamecheck;

从位于 28-5月 -24 的 Duplicate Db 开始
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=379 设备类型=DISK

内存脚本的内容:
{
   backup as copy reuse
   passwordfile auxiliary format  'D:\app\Administrator\oracle\product\19.3.0\db_home\DATABASE\PWDorcl.ORA'   ;
}
正在执行内存脚本

从位于 28-5月 -24 的 backup 开始
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=267 设备类型=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: 位于 05/28/2024 17:21:45 的 Duplicate Db 命令失败
RMAN-05501: 终止复制目标数据库
RMAN-03015: 在存储的脚本Memory Script中出现错误
RMAN-03009: 位于 05/28/2024 17:21:45 的 ORA_DISK_1 通道上的 backup 命令失败
ORA-17627: ORA-01017: 用户名/口令无效; 登录被拒绝
ORA-17629: 无法连接到远程数据库服务器

RMAN> exit

FQ 2:

RMAN> duplicate target database for standby from active database nofilenamecheck;

从位于 28-5月 -24 的 Duplicate Db 开始
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=135 设备类型=DISK

内存脚本的内容:
{
   backup as copy reuse
   passwordfile auxiliary format  'D:\app\Administrator\oracle\product\19.3.0\db_home\DATABASE\PWDorcl.ORA'   ;
}
正在执行内存脚本

从位于 28-5月 -24 的 backup 开始
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=267 设备类型=DISK
在 28-5月 -24 完成了 backup
RMAN-05159: 正在将 Online logs 复制到 Oracle Managed File (OMF) 位置

内存脚本的内容:
{
   restore clone from service  'primary' standby controlfile;
}
正在执行内存脚本

从位于 28-5月 -24 的 restore 开始
使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_1: 正在使用来自服务 primary 的网络备份集
通道 ORA_AUX_DISK_1: 正在还原控制文件
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:03
输出文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\ORCL\CONTROL02.CTL
在 28-5月 -24 完成了 restore

内存脚本的内容:
{
   sql clone 'alter database mount standby database';
}
正在执行内存脚本

sql 语句: alter database mount standby database
RMAN-05158: 警告:辅助 (datafile) 文件名 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF 与目标数据库使用的文件冲突
RMAN-05158: 警告:辅助 (datafile) 文件名 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF 与目标数据库使用的文件冲突
RMAN-05158: 警告:辅助 (datafile) 文件名 D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF 与目标数据库使用的文件冲突
RMAN-05158: 警告:辅助 (datafile) 文件名 D:\TCT_ORADATA\ATS\ATS.DBF 与目标数据库使用的文件冲突
RMAN-05158: 警告:辅助 (datafile) 文件名 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 与目标数据库使用的文件冲突
RMAN-05158: 警告:辅助 (tempfile) 文件名 D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF 与目标数据库使用的文件冲突

内存脚本的内容:
{
   set newname for tempfile  1 to
 "D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF";
   switch clone tempfile all;
   set newname for datafile  1 to
 "D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF";
   set newname for datafile  3 to
 "D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF";
   set newname for datafile  4 to
 "D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF";
   set newname for datafile  5 to
 "D:\TCT_ORADATA\ATS\ATS.DBF";
   set newname for datafile  7 to
 "D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF";
   restore
   from  nonsparse   from service
 'primary'   clone database
   ;
   sql 'alter system archive log current';
}
正在执行内存脚本

正在执行命令: SET NEWNAME

控制文件中的临时文件 1 已重命名为 D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

从位于 28-5月 -24 的 restore 开始
使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_1: 正在使用来自服务 primary 的网络备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_AUX_DISK_1: 将数据文件 00001 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: 位于 05/28/2024 17:24:33 的 Duplicate Db 命令失败
RMAN-05501: 终止复制目标数据库
RMAN-03015: 在存储的脚本Memory Script中出现错误
ORA-19845: 与远程数据库服务器通信时 backupDataFile 中出错
ORA-17628: 远程 Oracle 服务器返回了 Oracle 错误 19602
ORA-19602: 无法按 NOARCHIVELOG 模式备份或复制活动文件
ORA-19660: 无法验证备份集中的某些文件
ORA-19661: 无法验证数据文件 1
ORA-19845: 与远程数据库服务器通信时 backupDataFile 中出错
ORA-17628: 远程 Oracle 服务器返回了 Oracle 错误 19602
ORA-19602: 无法按 NOARCHIVELOG 模式备份或复制活动文件

RMAN>

2.问题分析

FQ 1:

sys 用户的用户名密码错误。

FQ 2:

使用非存档模式在RMAN下备份数据文件,遇到ORA-19602错误。

3.解决方法

  1. mount状态下备份
  2. 归档模式下备份

4.解决过程

FQ 2 解决方法:
When shutdown the Oracle, it was not shutdown properly,

SQL> shutdown immediate;

Here it hanged, I guess it write someting to the datafile, as it was not shutdown properly, some of the writing to datafile operation was not properly recorded.

Solution: Completedly shutdown the Oracle properly and startup Oracle properly.
Here I was using startup mount, as I was doing backup under non archive mode.

under non archive mode.

SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     15
当前日志序列           17
SQL>

Stop the Oracle normally and startup as mount,

SQL> startup mount;

Successful result was as below:

$ rman target /

RMAN> backup database;

5.参考文档

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论