`
mikixiyou
  • 浏览: 1098688 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353056
社区版块
存档分类
最新评论

逻辑备库之ORA-01403解决方法

阅读更多

Oracle 的Data Guard环境中, 逻辑备库应用进程停止,日志显示错误为ORA-01403 not data found

它具体信息如下:

Mon May 21 10:39:31 2012

LOGSTDBY status: ORA-01403: no data found

LOGSTDBY Apply process P004 pid=143 OS id=13936 stopped

Mon May 21 10:39:32 2012

Errors in file /u01/app/oracle/admin/db/bdump/rdb_lsp0_13922.trc:

ORA-12801: error signaled in parallel query server P004

ORA-01403: no data found

LOGSTDBY Analyzer process P003 pid=38 OS id=13932 stopped

这种错误在logical standby 环境中很常见。

通过dba_logstdby_events 视图查询失败的事务信息。

查询SQL 如下所示:

select event_time,

       xidusn,

       xidslt,

       xidsqn,

       status,

       status_code,

       event,

       'exec dbms_logstdby.skip_transaction(' || xidusn || ',' || xidslt || ',' ||

       xidsqn || ');' as exec_sql,

       a.*

  from dba_logstdby_events a

 where event_time = (select max(event_time) from dba_logstdby_events);

 

 event 列中我们查询出失败的具体信息,是更新一张表失败。

 

解决方法

 

这类问题的解决方法有两种:

第一种,可以使用skip_transaction 方法忽略掉该事务。

 exec dbms_logstdby.skip_transaction(487,12,951001);

但这个方法有后遗症,接下来的同步过程中会有不断的麻烦,数据没找到的问题会层出不穷。

 

第二种,使用skip 方法忽略掉该表的所有的操作。

alter database stop logical standby apply;

execute dbms_logstdby.skip('DML','username','T_ZHUSHOU_ORDER');

execute dbms_logstdby.skip('SCHEMA_DDL','username','T_ZHUSHOU_ORDER');

alter database start logical standby apply immediate;

忽略掉出问题的表的DML 操作和SCHEMA_DDL 操作。

 

 

数据复制停止的问题是解决了,但这里造成了一张表事实上不能同步了。

 

新问题:如何将已skip 的表再加入logical standby 中?

 

解决这个新问题主要是靠DBMS_LOGSTDBY.INSTANTIATE_TABLE 方法。

 

官方对它的使用说明:

This procedure creates and populates a table in the standby database from a corresponding table in the primary database. The table requires the name of the database link (dblink) as an input parameter. If the table already exists in the logical standby database, it will be dropped and re-created based on the table definition at the primary database. This procedure only brings over the data associated with the table, and not the associated indexes and constraints.

 

操作步骤如下:

1 、在逻辑备库创建指向主库的数据库链路

2 、在逻辑备库上unskip 掉该表。

unskip 之前需停止逻辑备库应用日志

alter database stop logical standby apply;

execute dbms_logstdby.unskip('DML','username','T_ZHUSHOU_ORDER');

execute dbms_logstdby.unskip('SCHEMA_DDL','username','T_ZHUSHOU_ORDER');

3 、使用INSTANTIATE_TABLE 重新实例化一张表。

EXECUTE DBMS_LOGSTDBY.INSTANTIATE_TABLE('username', 'T_ZHUSHOU_ORDER', 'DB_RAC');

注意,源库上的用户必须有  SELECT_CATALOG_ROLE 权限,否则会报错ORA-16276

SQL> EXECUTE DBMS_LOGSTDBY.INSTANTIATE_TABLE('username', 'T_ZHUSHOU_ORDER', 'DB_RAC');

 

begin DBMS_LOGSTDBY.INSTANTIATE_TABLE('username', 'T_ZHUSHOU_ORDER', 'DB_RAC'); end;

 

ORA-16276: specified database link does not correspond to primary database

ORA-06512: at "SYS.DBMS_INTERNAL_LOGSTDBY", line 5361

ORA-02019: connection description for remote database not found

ORA-06512: at "SYS.DBMS_LOGSTDBY", line 636

ORA-06512: at line 2

0
0
分享到:
评论

相关推荐

    【DATAGUARD】物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误

    通过使用DataGuardBroker,管理员可以轻松地设置和维护Data Guard环境中的各种组件,包括主库、物理备库以及逻辑备库等。此工具支持多种操作,如创建、删除和修改保护组、角色转换以及故障切换等。 #### 2. Fast-...

    oracle数据库的datagard搭建配置物理备库-详细笔记文档总结

    * 逻辑备库:只复制主库的数据,但不包括控制文件、数据文件、日志文件等。 搭建 Dataguard 物理备库 本文档将详细介绍如何搭建 Dataguard 物理备库。 首先,需要创建备库的主机和主库的主机,分别为 192.168....

    dg的奇怪问题终结和分区问题答疑

    它通过实时同步或异步的方式复制主数据库的数据,确保在主数据库发生故障时,备库能够接管并继续服务。 2. 异构平台支持:11g版本开始,Oracle Dataguard支持在不同的操作系统之间创建备库,但并不意味着所有版本...

    oracle数据库datagard搭建物理备库(主动切换)-详细笔记文档总结

    Oracle Data Guard 是 Oracle 数据库的一种高可用性和灾难恢复解决方案,它允许您在多个数据库之间创建物理或逻辑备用库,以保护数据免受意外损失或计划外停机的影响。在这个场景中,我们关注的是如何搭建一个物理备...

    ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册

    2. **调整业务逻辑**:如果应用程序逻辑允许重复键值的插入,则需要修改应用程序逻辑来避免这种情况发生。 3. **使用唯一约束或唯一索引**:确保表中的字段上已经定义了适当的唯一约束或索引。 #### ORA-7445错误 ...

    Solaris 8內存管理.pdf

    本文旨在探讨Solaris 8操作系统中的内存管理机制,并基于此提供一种方法来识别和解决系统内存瓶颈问题。通过对Solaris 8内存管理机制的深入研究,本文揭示了在特定场景下内存表现异常的原因及其背后的原理。 #### ...

    oracle dataguard restore

    Oracle DataGuard 是Oracle数据库的一种高可用性和灾难恢复解决方案,它通过创建物理或逻辑备用数据库来保护数据。在本文中,我们将讨论如何进行基于备库的还原操作,这通常是在主库发生故障或需要恢复特定时间点的...

    Oracle 11g R2 to DataGuard实施方案.doc

    在listener.ora文件中添加主库和备库的监听器条目,以便监听器能够处理数据库实例间的连接请求。 2.4 配置 tnsnames.ora 文件(主备库配置) 在tnsnames.ora文件中定义主库和备库的服务名,方便客户端应用程序连接。 ...

    Oracle Data Guard配置部署(oracle 12c)

    配置tnsnames.ora文件和listener.ora文件,定义网络服务名,使主库和备库能够相互通信。 **2.10. 配置主库和备库的网络服务名** 确保主库和备库的网络服务名正确,便于RMAN操作和数据库间的切换。 **2.11. 创建备...

    Oracle DBA必备技能详解

    11. **故障诊断与问题解决**:学习如何使用Oracle的错误代码和文档来诊断和解决常见问题,理解ORA-错误的含义。 通过阅读《Oracle DBA必备技能详解》,读者可以系统地学习和掌握Oracle 10g数据库的管理和维护技能,...

    oracle9i 1z0-031题库

    考生需要熟悉全备、增量备和逻辑备份的区别,并能执行灾难恢复计划。 5. **网络配置**:理解Oracle的网络架构,如Net8和TNS(Transparent Network Substrate),以及如何配置和诊断网络问题。熟悉listener.ora和sql...

    Oracle DBA 笔试题

    2. ORA-01555错误表明回滚段不足,解决方案包括增大回滚段、调整归档策略、优化SQL语句等。 3. Oracle11g的新特性包括Automatic Memory Management、Automatic Workload Repository、Real Application Clusters ...

    WIN200X下ORACLE安装DATAGUARD文档.txt

    Data Guard支持多种配置模式,包括物理备用库、逻辑备用库以及快照备用库等。本例中我们将重点介绍物理备用库的安装与配置过程。 #### 二、环境准备 - **操作系统**: Windows Server 2003 (Service Pack 1) - **...

    (完整版)Oracle-DataGuard建立维护恢复V1.2.doc

    - **修改 TNSNAMES.ORA**:更新网络配置文件,定义主库和备库的服务名。 在完成上述步骤后,DataGuard 配置基本完成,可以通过测试和监控来验证其功能和性能。 请注意,DataGuard 的维护和恢复还包括定期检查...

    RAC+ASM+DataGuard

    DataGuard支持多种复制模式,包括物理备库、逻辑备库以及快照备库,每种模式都有其特定的应用场景。 ### 四、实现细节 #### 1. 配置网络 为了确保RAC集群和DataGuard的正常运行,需要精心配置网络环境。文件中...

    大数据开发oracle试题

    将用户lock,以防产生新的连接**:虽然不是解决问题的根本方法,但在某些情况下可以暂时缓解压力。 **13. 对于一个ORA错误,我可以从哪些途径获得这个错误的解释** **正确答案:ABD** **解析:** - **A. Oracle ...

    oracle 11g DG搭建

    它支持多种部署模式,例如物理备库、逻辑备库以及快照备库等。在Oracle 11g版本中,Data Guard功能得到了进一步增强,使得其能够更好地满足企业级应用的需求。 #### 三、Oracle 11g Data Guard搭建流程 ##### 1. ...

    oracle 多网卡dataguard

    在实施多NIC的Data Guard环境中,需要为每个数据库实例(主库和备库)分配一个独立的网络接口。这些接口应配置为不同的子网,以避免网络冲突。此外,网络配置应确保即使在一个网络出现问题时,redo日志的传输和监控...

Global site tag (gtag.js) - Google Analytics