Oracle
的Data Guard环境中,
逻辑备库应用进程停止,日志显示错误为ORA-01403 not data found
。
LOGSTDBY status: ORA-01403: no data found
LOGSTDBY Apply process P004 pid=143 OS id=13936 stopped
Errors in file /u01/app/oracle/admin/db/bdump/rdb_lsp0_13922.trc:
ORA-12801: error signaled in parallel query server P004
LOGSTDBY Analyzer process P003 pid=38 OS id=13932 stopped
这种错误在logical standby
环境中很常见。
通过dba_logstdby_events
视图查询失败的事务信息。
'exec dbms_logstdby.skip_transaction(' || xidusn || ',' || xidslt || ',' ||
xidsqn || ');' as exec_sql,
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.
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
分享到:
相关推荐
通过使用DataGuardBroker,管理员可以轻松地设置和维护Data Guard环境中的各种组件,包括主库、物理备库以及逻辑备库等。此工具支持多种操作,如创建、删除和修改保护组、角色转换以及故障切换等。 #### 2. Fast-...
* 逻辑备库:只复制主库的数据,但不包括控制文件、数据文件、日志文件等。 搭建 Dataguard 物理备库 本文档将详细介绍如何搭建 Dataguard 物理备库。 首先,需要创建备库的主机和主库的主机,分别为 192.168....
它通过实时同步或异步的方式复制主数据库的数据,确保在主数据库发生故障时,备库能够接管并继续服务。 2. 异构平台支持:11g版本开始,Oracle Dataguard支持在不同的操作系统之间创建备库,但并不意味着所有版本...
Oracle Data Guard 是 Oracle 数据库的一种高可用性和灾难恢复解决方案,它允许您在多个数据库之间创建物理或逻辑备用库,以保护数据免受意外损失或计划外停机的影响。在这个场景中,我们关注的是如何搭建一个物理备...
2. **调整业务逻辑**:如果应用程序逻辑允许重复键值的插入,则需要修改应用程序逻辑来避免这种情况发生。 3. **使用唯一约束或唯一索引**:确保表中的字段上已经定义了适当的唯一约束或索引。 #### ORA-7445错误 ...
本文旨在探讨Solaris 8操作系统中的内存管理机制,并基于此提供一种方法来识别和解决系统内存瓶颈问题。通过对Solaris 8内存管理机制的深入研究,本文揭示了在特定场景下内存表现异常的原因及其背后的原理。 #### ...
Oracle DataGuard 是Oracle数据库的一种高可用性和灾难恢复解决方案,它通过创建物理或逻辑备用数据库来保护数据。在本文中,我们将讨论如何进行基于备库的还原操作,这通常是在主库发生故障或需要恢复特定时间点的...
在listener.ora文件中添加主库和备库的监听器条目,以便监听器能够处理数据库实例间的连接请求。 2.4 配置 tnsnames.ora 文件(主备库配置) 在tnsnames.ora文件中定义主库和备库的服务名,方便客户端应用程序连接。 ...
配置tnsnames.ora文件和listener.ora文件,定义网络服务名,使主库和备库能够相互通信。 **2.10. 配置主库和备库的网络服务名** 确保主库和备库的网络服务名正确,便于RMAN操作和数据库间的切换。 **2.11. 创建备...
11. **故障诊断与问题解决**:学习如何使用Oracle的错误代码和文档来诊断和解决常见问题,理解ORA-错误的含义。 通过阅读《Oracle DBA必备技能详解》,读者可以系统地学习和掌握Oracle 10g数据库的管理和维护技能,...
考生需要熟悉全备、增量备和逻辑备份的区别,并能执行灾难恢复计划。 5. **网络配置**:理解Oracle的网络架构,如Net8和TNS(Transparent Network Substrate),以及如何配置和诊断网络问题。熟悉listener.ora和sql...
2. ORA-01555错误表明回滚段不足,解决方案包括增大回滚段、调整归档策略、优化SQL语句等。 3. Oracle11g的新特性包括Automatic Memory Management、Automatic Workload Repository、Real Application Clusters ...
Data Guard支持多种配置模式,包括物理备用库、逻辑备用库以及快照备用库等。本例中我们将重点介绍物理备用库的安装与配置过程。 #### 二、环境准备 - **操作系统**: Windows Server 2003 (Service Pack 1) - **...
- **修改 TNSNAMES.ORA**:更新网络配置文件,定义主库和备库的服务名。 在完成上述步骤后,DataGuard 配置基本完成,可以通过测试和监控来验证其功能和性能。 请注意,DataGuard 的维护和恢复还包括定期检查...
DataGuard支持多种复制模式,包括物理备库、逻辑备库以及快照备库,每种模式都有其特定的应用场景。 ### 四、实现细节 #### 1. 配置网络 为了确保RAC集群和DataGuard的正常运行,需要精心配置网络环境。文件中...
- **共享池** (Shared Pool): 包括库高速缓存和数据字典高速缓存。 - 调整共享池大小: ```sql ALTER SYSTEM SET SHARED_POOL_SIZE = '32M'; ``` - **数据库高速缓冲区** (DB Buffer Cache): - 调整数据库高速...
将用户lock,以防产生新的连接**:虽然不是解决问题的根本方法,但在某些情况下可以暂时缓解压力。 **13. 对于一个ORA错误,我可以从哪些途径获得这个错误的解释** **正确答案:ABD** **解析:** - **A. Oracle ...
它支持多种部署模式,例如物理备库、逻辑备库以及快照备库等。在Oracle 11g版本中,Data Guard功能得到了进一步增强,使得其能够更好地满足企业级应用的需求。 #### 三、Oracle 11g Data Guard搭建流程 ##### 1. ...
在实施多NIC的Data Guard环境中,需要为每个数据库实例(主库和备库)分配一个独立的网络接口。这些接口应配置为不同的子网,以避免网络冲突。此外,网络配置应确保即使在一个网络出现问题时,redo日志的传输和监控...