暂无图片
oracle 11g搭建dg时,恢复控制文件报错:RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
我来答
分享
张凯
6天前
oracle 11g搭建dg时,恢复控制文件报错:RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece

我准备搭建一套oracle 11g 的dg。主库是AIX上的双节点RAC,备库是虚拟机上的linux单实例。

主库上使用rman备份了全库、归档、控制文件,命令如下:

全库备份:backup as compressed backupset database format='/backup/rmanbak/bak/${ORACLE_SID}_%Y-%M-%D_%U.full';

归档备份:backup as compressed backupset archivelog all format='/backup/rmanbak/bak/${ORACLE_SID}_%Y-%M-%D_%U.arc';

控制文件备份:backup device type disk format '/backup/rmanbak/standby_%U.ctl' current controlfile for standby;

查看主库上备份的控制文件的权限:

# ls -l /backup/rmanbak

-rw-r----- 1 oracle asmadmin 24903680 Mar 24 15:43 standby_ff3l5kkb_1_1.ctl

使用sftp传输备份到备库,赋权

chown -R oracle:oinstall /data/rmanbak

查看备库上的备份的权限:

[root@mdmdb rmanbak]# ls -l /data/rmanbak/
-rw-r--r-- 1 oracle oinstall 24903680 Mar 24 15:43 standby_ff3l5kkb_1_1.ctl

备库使用rman恢复控制文件:

[oracle@mdmdb rmanbak]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Tue Mar 25 17:55:10 2025

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

connected to target database (not started)

RMAN> startup nomount

Oracle instance started

Total System Global Area 4275781632 bytes

Fixed Size 2260088 bytes
Variable Size 1157628808 bytes
Database Buffers 3103784960 bytes
Redo Buffers 12107776 bytes

RMAN> restore standby controlfile from '/data/rmanbak/standby_ff3l5kkb_1_1.ctl';

Starting restore at 2025-03-25 17:55:31
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=385 device type=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/25/2025 17:55:31
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece


在主库上备份的文件都是 asmadmin组的,备库上没有这个组,我在备库新建了这个组并把oracle用户加入进去,然后授权控制文件的备份为oracle:asmadmin,再恢复依然报RMAN-06172: 


不知道到底是哪里的问题,希望能得到大神的指点

我来答
添加附件
收藏
分享
问题补充
7条回答
默认
最新
手机用户5715

aix到linux的字节序不一样,不能直接搭建dg,最好用操作系统的

暂无图片 评论
暂无图片 有用 0
打赏 1
暂无图片
张凯
题主
5天前
应该就是这个字节序的原因,我从主库备份过来的密码文件也不能用,换了一个从其他linux操作系统上传过来的密码文件就可以远程登录了。目前在使用rman的duplicate方式搭建,可以正常连接target和auxilirary。但是报错: RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER 2> ; Starting Duplicate Db at 2025-03-26 15:23:13 using target database control file instead of recovery catalog allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=1149 device type=DISK contents of Memory Script: { backup as copy reuse targetfile '/db/oracle/product/11.2.0/db/dbs/orapwmdmdb2' auxiliary format '/u01/app/oracle/product/11.2.0/db_1/dbs/orapwmdmdb' ; } executing Memory Script Starting backup at 2025-03-26 15:23:40 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1182 instance=mdmdb2 device type=DISK RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of Duplicate Db command at 03/26/2025 15:23:42 RMAN-05501: aborting duplication of target database RMAN-03015: error occurred in stored script Memory Script RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/26/2025 15:23:41 ORA-17629: Cannot connect to the remote database server ORA-17627: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor ORA-17629: Cannot connect to the remote database server 怀疑是tnsnames.ora没能被识别,因为oracle只在启动的时候加载一次tnsnames.ora,我的备库tns信息是新加入的,数据库识别不到。 我先重启一下主库试试,后续明天再说。
伟鹏

你没有把备份文件集加载到catalog里面
可以使用catalog start with ‘/data/rmanbak/’;

暂无图片 评论
暂无图片 有用 0
打赏 0
张凯
题主
5天前
没有控制文件,rman只能启动到nomount,没法catalog
hapi

看看pfile是怎么写的,db_name必须是主库的,db_unique_name才是备库的,然后再看看bash_profile里oracle _sid是不是备库的

暂无图片 评论
暂无图片 有用 0
打赏 0
张凯
题主
5天前
pfile没问题,您说的这几点都是正确的
hapi
答主
5天前
startup nomount指定pfile启动,怀疑你用的pfile是主库的
张凯
题主
5天前
我已经修改过pfile适配备库,并生成了spfile,pfile没用错的
展开全部评论(1条)
伟鹏

你新起个实例,然后参数文件用你现在的,指向那个控制文件,启动到mount,加载备份,恢复控制文件,然后执行恢复。

暂无图片 评论
暂无图片 有用 0
打赏 0
张凯
题主
5天前
没明白。我没有控制文件,主库的控制文件在ASM里,我直接cp出来,拿到备库上用吗?在备库上新建实例,参数文件用主库的吗?
张凯
题主
5天前
我试过把主库的controlfile直接cp出来拿到备库使用,不行,起不来,报错ORA-27048: skgfifi: file header information is invalid
伟鹏

好吧
backup controlfile to trace 再生产库整一个控制文件生成的文件,在备库执行一下。
或者backup controfile for standby database类似的。

暂无图片 评论
暂无图片 有用 0
打赏 0
张凯
题主
5天前
您似乎有误会,我的备库目前只有oracle软件,没有实例,没有数据文件。我为了恢复主库的备份来搭建dg,需要先恢复主库备份的控制文件到备库。现在恢复控制文件时,报错RMAN-06172:,所以我想找原因。 使用您说的‘backup controlfile to trace’这种方式在备库上新建一个控制文件实现不了,这中方法需要备库存在数据文件。 而这种‘backup controfile for standby database’我在题干里就写了,我在主库备份时就是这么备的控制文件。恢复发生报错时,我又重新备了几个过来尝试,都不行。
书山

对,楼上说得对,你是异构,OS不同,你用rman备份集从不同操作系统之间倒换应该是不行,可以试一下rman的复制功能duplication,需要先配置Oracle net也就是监听什么的,还要看一下rman的官方文档,支持什么样的OS异构

暂无图片 评论
暂无图片 有用 0
打赏 0
Tough
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 单张表查询突然变慢,其他表查询正常
回答 4
给几个方向:表里是不是有lob类型字段表是不是有高水位
ORA-00600: internal error code, arguments: [3716]
回答 4
上传附件:zzdb2ora17214i6109930.trc
oracle临时表全表扫描,一次读几个数据块?
回答 3
那其实还是和bufferpool大小有关系,参数就是这参数。
ORACLE 11G搭建ADG遇到的问题ORA-12170
回答 7
从错误代码是上看,这个应该是你的配置引起的问题。配置包过listener.ora配置文件和tnsnames.ora里面的配置与数据库实际sid或serveicenames不一致,或者是网络问题导致的。
ADG Delay 在Primary端配置跟在Standby端配置有什么区别吗?官方的解释有没有?
回答 1
已采纳
1、如果启用了realtimeapply,那么logarchivedestn设置的delay参数不生效2、如果想要delay,需要使用归档启动mrpALTERDATABASERECOVERMANAGE
oracle 等待事件Data file init write
回答 1
等待事件"Datafileinitwrite"表示正在等待数据文件初始化写入完成。当数据库扩展数据文件时,可能需要进行一些初始化工作,这包括在文件中预分配一些空间,以便在将来的写入操作中使用。这通常是
数据库初始化时的 pfile 文件(init.ora.5152017214527)启动有什么影响
回答 5
init.ora.5152017214527你这个参数文件,应该是某个时间段的备份,建议备份你当前的spfile文件再重启。
手动收集单条sql执行计划报错,ORA-16957: SQL Analyze time limit interrupt
回答 1
已采纳
没人回答,我来补充下我最后的操作:从trace文件中可以看到有这样一句:fatalerroroccurredwhilescanningredo说明程序在查redo中相关记录的时候,这个redo文件已经
修改oracle数据库操作系统时间
回答 6
已采纳
如果操作系统比实际时间慢的话,可以直接用dates修改时间,但是实际时间快的话,需要停机修改
Oracle 审计grant权限
回答 4
已采纳
用了两条命令搞定了。auditallbyabyaccesswheneversuccessful;auditgrantona.tablebyaccess;