ITPub博客

首页 > 数据库 > Oracle > ORA-16009: invalid redo transport destination

ORA-16009: invalid redo transport destination

原创 Oracle 作者:拾翠暮忘归 时间:2014-04-25 14:06:25 0 删除 编辑
1.错误:
初学data guard,搭了个简单的物理备库测试环境。。备库开启redo接收之后,主库中插入数据,switch logfile好多次之后,发现备库依然收不到来自主库redo日志。。

2.trace 
查看主库trace文件:
Fri Apr 25 01:11:58 2014
Using STANDBY_ARCHIVE_DEST parameter default value as /u01/archive
RFS[1]: Assigned to RFS process 5602
RFS[1]: Database mount ID mismatch [0x1cae8268:0x1cae2b38] (481198696:481176376)
RFS[1]: Client instance is standby database instead of primary
RFS[1]: Not using real application clusters
Errors in file /u01/diag/rdbms/dg01/dg01/trace/dg01_rfs_5602.trc:
ORA-16009: invalid redo transport destination

备库trace文件:
Fri Apr 25 01:11:46 2014
Errors in file /u01/diag/rdbms/dg02/dg01/trace/dg01_arc1_3619.trc:
ORA-16009: invalid redo transport destination
PING[ARC1]: Heartbeat failed to connect to standby 'dg01'. Error is 16009.

主库上执行:
SQL> select dest_name,error,status,process from v$archive_dest where rownum<3;
DEST_NAME                        ERROR         STATUS    PROCESS
------------------------- ------------------- --------- ----------
LOG_ARCHIVE_DEST_1                             VALID     ARCH
LOG_ARCHIVE_DEST_2                             INACTIVE  ARCH

error列好像并没有什么错误

再看一下备库:
SQL> select dest_name,error,status,process from v$archive_dest where rownum<3;
DEST_NAME                        ERROR                                            STATUS    PROCESS
------------------------- ------------------------------------ -------------- ----------
LOG_ARCHIVE_DEST_1                                                                 VALID     ARCH
LOG_ARCHIVE_DEST_2      ORA-12541: TNS:no listener             ERROR    LGWR

3. 排错
这么看来。意思是没有listener,之前确实是没配置listener,重新配置listener.ora文件:
主库dg01:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = dg01)
      (ORACLE_HOME = /u01/app/oracle)
      (SID_NAME = dg01)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dg01)(PORT = 1521))
    )
  )


备库dg02:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = dg02)
      (ORACLE_HOME = /u01/app/oracle)
      (SID_NAME = dg02)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dg02)(PORT = 1521))
    )
  )

重启监听,确保监听正常;

4.测试一下
备库:
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database disconnect from session; ------开启redo接收模式

再到主库:
SQL> create table dgtest (id int,name varchar2(20));
Table created.
SQL> insert into dgtest values (0,'marry');
1 row created.
SQL> insert into dgtest values (1,'frank');
1 row created.
SQL> commit;
Commit complete.
 
SQL>alter system switch logfile;-----------加速redo日志归档传输,多执行几次

再到备库:
SQL>select sequence#,applied from v$archived_log order by sequence#;
 SEQUENCE# APPLIED
----------    --------------
        53             YES
        54             YES
        55             YES
        56             YES
        57             YES
        58             YES
        59             YES
当备库中最大的 SEQUENCE#号都和主库一样时,且applied处于YES状态,说明备库已经成功接收来自主库的日志文件

停止备库redo接收状态,并且启动为read-only状态,在备库上进行查询:
SQL> alter database recover managed standby database cancel;
SQL> alter database open read only;
SQL> select * from dgtest;

        ID NAME
---------- --------------------
         0   marry
         1   frank





来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29602308/viewspace-1149328/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-04-11

  • 博文量
    24
  • 访问量
    91785