备库DUPLICATE后启用同步,开启ADG打开数据库时报错:ORA-10458

备库DUPLICATE后启用同步,开启ADG打开数据库时报错:ORA-10458

SQL> select status from v$instance;
    STATUS
    ------------
    MOUNTED

    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
    SQL> 
    SQL> recover managed standby database cancel;
    Media recovery complete.
    SQL> 
    SQL> alter database open ;
    alter database open
    *
    ERROR at line 1:
    ORA-10458: standby database requires recovery
    ORA-01152: file 1 was not restored from a sufficiently old backup
    ORA-01110: data file 1: '+SDE_DATA/sdedg/datafile/system.283.984230107'
    SQL> 

查看日志,发现所有主库的归档日志都没有被应用,手动恢复日志

    SQL> recover managed standby database

查看告警日志,发现错误

[oracle@sde1 trace]$ tail -f alert_sde1.log 
    FAL[client]: Failed to request gap sequence
     GAP - SCN range: 0x0e57.4d6ec257 - 0x0e57.4d6ec257
     DBID 2155281896 branch 984123832
    FAL[client]: All defined FAL servers have been attempted.
    ------------------------------------------------------------
    Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
    parameter is defined to a value that's sufficiently large
    enough to maintain adequate log switch information to resolve
    archivelog gaps.
    ------------------------------------------------------------
    Wed Aug 15 14:47:10 2018
    Recovery interrupted!
    Media Recovery failed with error 448
    Errors in file /u01/app/oracle/diag/rdbms/sdedg/sde1/trace/sde1_pr00_29797.trc:
    ORA-00283: recovery session canceled due to errors
    ORA-00448: normal completion of background process
    Slave exiting with ORA-283 exception

查看错误文件;

[oracle@sde1 ~]$ tail -fn200 /u01/app/oracle/diag/rdbms/sdedg/sde1/trace/sde1_pr00_29797.trc

里边有错误指示:

*** 2018-08-15 14:34:10.634
    Media Recovery add redo thread 2
    *** 2018-08-15 14:34:10.721 4320 krsh.c
    Media Recovery Waiting for thread 1 sequence 129
    Redo shipping client performing standby login

是日志文件没有被应用,查看备库的日志组文件,发现日志组过多,先删除过多的备库日志组,然后重建备库日志组

SQL> select group#,member,type from v$logfile;
        GROUP# MEMBER                                                       TYPE
    ---------- ------------------------------------------------------------ -------
             6 +SDE_FRA/redo06.log                                          ONLINE
             5 +SDE_FRA/redo05.log                                          ONLINE
             2 +SDE_FRA/redo02.log                                          ONLINE
             1 +SDE_FRA/redo01.log                                          ONLINE
             3 +SDE_DATA/sdedg/onlinelog/group_3.284.984232869              ONLINE
             3 +data                                                        ONLINE
             4 +SDE_DATA/sdedg/onlinelog/group_4.302.984232871              ONLINE
             4 +data                                                        ONLINE
             7 +SDE_DATA/sdedg/onlinelog/group_7.301.984232871              ONLINE
             8 +SDE_DATA/sdedg/onlinelog/group_8.281.984232871              ONLINE
             9 +SDE_DATA/sdedg/onlinelog/group_9.280.984232871              ONLINE

        GROUP# MEMBER                                                       TYPE
    ---------- ------------------------------------------------------------ -------
            10 +SDE_DATA/sdedg/onlinelog/group_10.300.984232873             ONLINE
            11 +SDE_DATA/sdedg/onlinelog/group_11.299.984232873             ONLINE
            12 +SDE_DATA/sdedg/onlinelog/group_12.271.984232873             ONLINE
            13 +SDE_DATA/sdedg/onlinelog/group_13.274.984232873             ONLINE
            14 +SDE_DATA/sdedg/onlinelog/group_14.284.984230143             STANDBY
            15 +SDE_DATA/sdedg/onlinelog/group_15.284.984230145             STANDBY
            16 +SDE_DATA/sdedg/onlinelog/group_16.284.984230147             STANDBY
            17 +SDE_DATA/sdedg/onlinelog/group_17.284.984230149             STANDBY
            18 +SDE_DATA/sdedg/onlinelog/group_18.284.984230151             STANDBY
            19 +SDE_DATA/sdedg/onlinelog/group_19.284.984230153             STANDBY
            20 +SDE_DATA/sdedg/onlinelog/group_20.284.984230155             STANDBY

        GROUP# MEMBER                                                       TYPE
    ---------- ------------------------------------------------------------ -------
            21 +SDE_DATA/sdedg/onlinelog/group_21.284.984230157             STANDBY
            22 +SDE_DATA/sdedg/onlinelog/group_22.284.984230159             STANDBY
            23 +
<think>好的,我现在需要帮助用户解决在使用RMAN进行活动数据库复制遇到的RMAN-03009、ORA-17628和ORA-19505错误。首先,我得回忆一下这些错误代码通常代表什么问题。 RMAN-03009通常表示RMAN在执行某个命令遇到了错误,可能是由于脚本错误或权限问题。ORA-17628涉及到Oracle协议错误,可能和网络或访问权限有关。ORA-19505则通常与文件访问问题相关,比如找不到指定的文件或目录,或者权限不足。 用户提到的是在活动数据库复制(Duplicate Active Database)过程中出现这些错误。根据之前的引用内容,Doc ID 1439632.1和BUG:12609412可能提到了解决方法,比如在磁盘组中创建特定目录,或者检查文件路径是否正确。另外,权限问题也是常见的原因,需要确认辅助实例是否有权限访问相关目录。 接下来,我需要整理解决步骤。首先检查目标目录是否存在,尤其是辅助数据库的磁盘组路径。如果使用ASM,可能需要手动创建目录。然后,确认权限是否正确设置,确保Oracle用户有读写权限。接着,检查初始化参数中的文件路径是否正确,特别是控制文件和日志文件的路径。另外,检查网络连接是否正常,确保主和辅助之间的通信没有问题。如果问题依旧,可能需要应用相关的补丁或参考Oracle的文档建议。 最后,生成相关问题的候,需要考虑用户可能遇到的后续问题,比如如何验证目录权限、如何正确配置初始化文件,或者如何应用Oracle的补丁来解决这类错误。确保用户能够一步步排查问题,并找到解决方案。</think>### RMAN-03009、ORA-17628、ORA-19505 错误解决方案 在使用RMAN执行 **Active Database Duplication** ,若遇到以下错误组合: - `RMAN-03009`(RMAN命令执行失败) - `ORA-17628`(Oracle协议错误) - `ORA-19505`(文件访问权限或路径问题) 以下是逐步排查和解决方案: --- #### **1. 检查辅助数据库目录权限** - **问题根源**:辅助实例(Auxiliary Instance)无法在目标存储路径(如ASM磁盘组)创建文件[^2]。 - **解决方案**: 1. 登录到辅助数据库服务器,手动创建目标目录: ```sql -- 若使用ASM: ALTER DISKGROUP <磁盘组名称> ADD DIRECTORY '+<磁盘组名称>/<目录路径>'; ``` 2. 确保Oracle用户对目录有读写权限: ```bash chown -R oracle:oinstall /path/to/target chmod -R 775 /path/to/target ``` --- #### **2. 验证文件路径配置** - **问题根源**:`SPFILE` 或 `PFILE` 中配置的文件路径与目标存储不匹配[^1]。 - **解决方案**: 1. 检查辅助实例的初始化参数文件: ```sql -- 确认以下参数指向有效路径: db_file_name_convert = '+DATA/primary_db/datafile', '+DATA/auxiliary_db/datafile' log_file_name_convert = '+REDO/primary_db/onlinelog', '+REDO/auxiliary_db/onlinelog' ``` 2. 若使用ASM,确保路径格式为 `+<磁盘组名称>/<自定义路径>`。 --- #### **3. 修复网络连接问题** - **问题根源**:主与辅助之间的TNS通信异常。 - **解决方案**: 1. 使用 `tnsping` 测试连接: ```bash tnsping <辅助TNS别名> ``` 2. 检查 `tnsnames.ora` 和 `listener.ora` 配置,确保端口和协议一致。 --- #### **4. 应用补丁(若需)** - **问题根源**:已知的Oracle Bug可能导致此问题(如BUG:12609412)[^2]。 - **解决方案**: 1. 查询Oracle支持文档,确认是否需要应用补丁: ```bash opatch apply <补丁号> ``` --- #### **完整示例命令** ```bash # 主执行RMAN命令: rman TARGET sys@primary DB AUXILIARY sys@auxiliary RUN { ALLOCATE CHANNEL ch1 TYPE DISK; DUPLICATE DATABASE TO auxiliary_db SPFILE SET db_unique_name 'auxiliary_db' NOFILENAMECHECK; } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值