热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

oracle高级复制需要注意的几点问题

高级复制需要注意的几点问题,谈谈自己的看法!高级复制是oracle数据库的高级功能,它的维护比普通数据库复杂,下面是在已有高级复制数据库维护过程中出现过一些问题和解决办法。1、稳定的物理链路:连接服务器的网络由于故障断开,服务器彼此之间数

高级复制需要注意的几点问题,谈谈自己的看法! 高级复制是 oracle 数据库的高级功能,它的维护比普通数据库复杂,下面是在已有高级复制数据库维护过程中出现过一些问题和解决办法。 1、稳定的物理链路:连接 服务器 的网络由于故障断开, 服务器 彼此之间数

高级复制需要注意的几点问题,谈谈自己的看法!

  
  高级复制是
oracle数据库的高级功能,它的维护比普通数据库复杂,下面是在已有高级复制数据库维护过程中出现过一些问题和解决办法。
  
  1、稳定的物理链路:连接
服务器的网络由于故障断开,服务器彼此之间数据就不能访问,数据无法传输;网络不稳定,数据就会发生丢包,不完整。
  
  2、传输速度方面要求较高:否则还不如单级版本。
  
  3、参与的
服务器不能长期不开机:这样会积压大量的延迟任务,导致数据无法进行发布。
  
  4、参与复制的表,不能在它上面直接执行任何DDL语句:因为ORACLE自动在参与复制的表上建立了内部的支持复制的TRIGGER和PACKAGE,在它上面直接执行任何DDL语句都会破坏这些复制支持。应该先SUSPEND要修改表所在的复制组,在REPICATION MANAGER中或调用REPCAT API执行DDL语句,然后重新GENERATE该表的复制支持,最后将复制组状态恢复为NORMAL。注意修改表结构的DDL语句中表名前一定要带上属主,并且最后没有分号。如果不小心直接执行了DDL语句,应该将该表移出复制环境,删掉,重新建立或从其它节点复制过来。
  
  5、修改一张表加一个字段,并设置缺省值,如 ALTER TABLE OWNER.TABLE_NAME ADD(FIELD_NAME VARCHAR2(20) DEFAULT 'AAA');在9i之前不能一次执行,要分成两部分执行:
  1、ALTER TABLE OWNER.TABLE_NAME ADD FIELD_NAME
  2、ALTER TABLE OWNER.TABLE_NAME MODIFY FIELD_NAME DEFAULT 'AAA'
  这是因为执行任何DDL语句,需要SUSPEND复制组,此时复制表只能查询,不能执行其它DML语句。如果直接加上一个字段同时赋予缺省值,此时的处理是加上一个字段,并立刻给该字段赋上给定的缺省值,这后面的DML语句是不能执行的,所以会报错。而分成两部分执行,第一部分先加一个字段,第二部分再修改该字段的定义,不会发生插入缺省值的DML操作,因此可以执行。
  
  6、执行任何ADMIN REQUEST(对复制环境的管理命令)前,都要保证此时没有堆积的DEFERRED TRANS。
  
  7、执行任何ADMIN REQUEST,必须一步一步执行。因为ADMIN REQUEST的工作原理,是用一个REPCATLOG表保存ADMIN REQUEST语句,执行完一条消失一条,后面的再继续执行。如果前面一条没执行完,后面的ADMIN REQUEST就无法执行,而REPCATLOG表如果不为空,复制组就无法恢复为NORMAL。因此每次发出ADMIN REQUEST后,都要检查REPCATLOG表,当所有节点上的REPCATLOG表都为空后,才能发出下一条命令。
  
  8、如果发现REPCATLOG表中有无法执行的命令,可以重新APPLY或PURGE掉再重新发出命令执行。如果只是某一个节点上有遗留命令,可以在该节点上多APPLY几次执行。
  
  9、如果发出命令后一直没有响应,而ADMIN REQUEST又无法PURGE掉,现象类似死锁。可以试着BROKEN掉该ADMIN REQUEST对应的JOB,重新刷新命令。如果命令能继续执行,恢复JOB的状态。如果还不行,从V$SESSION 和V$LOCK中查出死锁,用ALTER SYSTEM KILL SESSION 杀掉死锁的进程,如果还是杀不掉。就需要查出类型为'RQ'的分布式死锁,用SID再从V$PROCESS、V$BGPROCESS查出对应的后台进程,从操作系统级杀掉后台进程的方式来解锁,可能还需要重启数据库。最后再恢复JOB的状态和其他涉及的复制环境状态。
  
  10、可以通过REPLICATION MANAGER或相关系统表查询复制环境情况,以REPADMIN用户登陆:
  查看复制组和复制对象:
  select gname,status from dba_repgroup;
  --其中gname 即为复制组名,status 表示状态
  select gname,oname,status from dba_repobject where type =’TABLE’ and oname =
  ‘table_name’;
  --要查询某张表在哪个复制组中,将table_name 替换成表名,注意表名一定要大写。

查看分布式状态:
  select job,what,next_sec,this_sec,last_sec,failures,broken from dba_jobs;
  failures 小于16,broken 为N 表示分布式状态正常
  
  查看数据库连接
  select * from dba_db_links;
  
  恢复传播复制任务
  当连接复制环境中数据库的网络出现问题,可能会造成复制任务的停止。具体现象
  表现为本地数据库的更新操作没有发布到远地数据库中。当出现这种情况时,请参考
  前面提到的查看分布式状态的方法,检查复制任务是否正常。如果failures 大于等于16,
  broken 为Y 表示分布式状态不正常,需要恢复传播复制任务。
  exec dbms_job.run(jobno);
  -- jobno 为在dba_jobs 表中ailures 大于等于16,broken 为Y 的job。
  
  查看执行出错的事务
  当分布式数据库出现不正常时,请执行下列语句,并根据查询的error_msg 来解决
  问题。
  select distinct origin_tran_db,destination,error_msg from deferror;
  
  尝试执行出错的事务
  根据查询的error_msg 解决了网络无法连接等问题后,请执行下列语句,并拷贝生
  成的拼接exec 语句在客户端执行。
  select ' exec dbms_defer_sys.execute_error ( ' ' ' || DEFERRED_TRAN_ID || ' ' ' , ' ' ' ||
  DESTINATION || ' ' ' )' from deferror;
  
  删除执行出错的事务
  可能会遇到这样一种状况,尝试执行出错的事务,该事务依旧执行不成功。如果此
  时deferror 表中的error_msg 都是“NO DATA FOUND”的错误,那么可以考虑删除执
  行出错的事务。请特别注意,必须确认已经解决了出错原因,并在每个分布式节点都
  尝试执行出错的事务后,才可以删除再次执行出错的事务,否则会造成分布式数据库
  的数据不一致。
  select ' exec dbms_defer_sys.delete_error ( ' ' ' || DEFERRED_TRAN_ID || ' ' ' , ' ' ' ||
  DESTINATION || ' ' ' )' from deferror;

推荐阅读
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 利用CSV Data Set Config实现JMeter参数化测试的详细指南
    本文详细介绍了如何使用JMeter中的CSV Data Set Config元素来实现参数化测试。通过该配置元件,用户可以轻松地从外部CSV文件中读取数据,从而提高测试的灵活性和可扩展性。文章不仅提供了具体的配置步骤,还结合实际案例,展示了如何在不同的测试场景中应用这一功能,帮助读者更好地理解和掌握JMeter参数化测试的技巧。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
  • 美团优选推荐系统架构师 L7/L8:算法与工程深度融合 ... [详细]
  • 免费赠送《Python Selenium WebDriver 3.0 自动化测试框架实战指南》电子书资源
    免费赠送《Python Selenium WebDriver 3.0 自动化测试框架实战指南》电子书资源 ... [详细]
  • MongoDB核心概念与基础知识解析
    MongoDB 是一种基于分布式文件存储的非关系型数据库系统,主要采用 C++ 语言开发。本文将详细介绍 MongoDB 的核心概念和基础知识,包括其与传统 SQL 数据库的区别,数据库及集合的基本操作,如数据的插入、更新、删除和查询等。通过本文,读者可以全面了解 MongoDB 的基本功能及其应用场景。 ... [详细]
  • 本文详细解析了高性能通信库 NanoMsg 的框架及其应用场景。其中,BUS模式支持多对多的简单通信方式,消息会传递给所有直接连接的节点。REQREP模式则适用于构建无状态的服务集群,用于处理用户的请求,每个请求都需要一个相应的响应。 ... [详细]
  • 【漫画解析】数据已删,存储空间为何未减?揭秘背后真相
    在数据迁移过程中,即使删除了原有数据,存储空间却未必会相应减少。本文通过漫画形式解析了这一现象背后的真相。具体来说,使用 `mysqldump` 命令进行数据导出时,该工具作为 MySQL 的逻辑备份工具,通过连接数据库并查询所需数据,将其转换为 SQL 语句。然而,这种操作并不会立即释放存储空间,因为数据库系统可能保留了已删除数据的碎片信息。文章进一步探讨了如何优化存储管理,以确保数据删除后能够有效回收存储空间。 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 下篇:APP端登录流程详解——前置知识与技术准备 ... [详细]
author-avatar
闺蜜好我会明白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有