自我反省系列——粗心导致GG同步失效

简介:

自我反省系列

粗心导致GG同步失效

熊熊最近刚刚加入了一家新公司,与一个同样有着OCM水平的哥们一起搭档DBA,由于对GoldenGate操作不是很熟悉,因此在昨天的操作中有了一个小错误,特写此文用以警示自己~

昨天一共收到了3封开发部发过来的数据变更的需求单,由于已经审核通过,因此由熊熊来一一操作。

每次收到邮件以后,一定首先要仔细的查阅发来的SQLPL/SQL是否合理,检查每个对象,每个表是否有主键,有索引,索引是否合适等等,确定无误才可以进行操作。

前不久一个开发人员发来一个存储过程的PL/SQL,简单的一个主键问题,居然改了四五回,我都替他觉得他回复的邮件不好看了,所以说,在日常工作中,技术能力只占一小部分,更多的是态度问题,和谨慎操作~

说别人容易,到自己这里又马虎了,唉~

第一个请求所涉及的用户无需同步到查询库,因此直接在核心库里审核SQL没有问题后,进行操作即可,对线上业务没有影响。很快就搞定了

第二个请求涉及GG同步,因为安全性考虑,我们的GG没有开启DDL自动变更同步,因此每次涉及数据架构变更的时候,需要先关闭GG上相应的模块,查看两边同步的对象是否存在,然后分别对主库和查询库进行数据变更操作,确定无误后重新开启GG相应的模块。

第三个请求有两个步骤,都分别涉及了GG同步,第一个请求需要停止GG上相应的模块,然后由开发人员在页面上做好表的数据变更后,通知熊熊,收到通知后,熊熊desc两边的表,将增加的对象在查询库相应表下用命令一一增加(alter table table_name add column column_name type),严格注意增加列的顺序,操作确认无误后,重新开启两边的GG模块。

一直到这里都没有问题,第二个请求同样涉及GG同步,由于是新对象,需要在相应模块里增加表,并且需要执行(add trandata user.table)来进行确定表传递(此步骤需要dblogin),在配置相应模块里增加该表名称的时候,熊熊一开始少增加了标点符号(MAP USER.TABLE_NAME, TARGET USER.TABLE_NAME),结果熊熊少增加了逗号和分号,导致查询库模块启动时候报错,修改以后OK了,但是主库的相关模块同样少了分号(TABLE USER.TABLE_NAME;),但是GG启动并不会报错在此时,因此熊熊就没在意。

一直到下班的时候,开发查看同步的表,发现数据没有同步,给那个DBA哥们打电话,此时GG对这张表的同步已经失效了一个小时。那兄弟很快远程登录服务器解决了该问题,并重新抽取了数据,熊熊上线后看到了他的留言,感觉特别不好意思,唉~

所以,DBA是个非常谨慎的工作,每一步操作都要特别的仔细,这次仅仅是因为一个标点符号,就导致了一张表一个小时的数据没有同步,幸亏发现的早,熊熊一直认为在这行做这么久了,结果还是粗心马虎了,实在是不该,特做此文,警示自己,也是提醒各位DBA朋友~

















本文转自bear_cat51CTO博客,原文链接:http://blog.51cto.com/bearlovecat/1180370 ,如需转载请自行联系原作者




相关文章
|
9月前
|
数据库
机房重构上下机时间记录问题
机房重构上下机时间记录问题
54 0
|
11月前
|
安全 Java Linux
正确认识及掌握时间的用法
时间是一个相对地区而言的概念,因此有一个基准地区,就是本初子午线穿过的地区。了解世界时间相关的概念可以更好地协调全球人们的活动,便于跨越不同地区的时差。比如按照UTC时区划分算,洛杉矶和北京 之间的时间差异是16个小时, 但是一旦洛杉矶启用了夏令时两者之间的时间差异只有15个小时,神奇吗?
179 0
正确认识及掌握时间的用法
|
测试技术
字符串a和他许久未见面的同父异母的b(模拟)(思维)
字符串a和他许久未见面的同父异母的b(模拟)(思维)
60 0
关于同步自我札记
Synchronization 线程通信主要是指共享访问字段和对象引用字段。这个通信形式是十分高效的,但是也可能有2种错误:线程冲突和内存一致错误。防止错误的工具就是 synchronization
关于同步自我札记
|
消息中间件 缓存 安全
缓存一致性问题,这么回答肯定没毛病!
方案分析更新缓存策略方式常见的有下面几种:先更新缓存,再更新数据库先更新数据库,再更新缓存先删除缓存,再更新数据库先更新数据库,再删除缓存下面一一介绍!方案一:更新缓存,更新数据库这种方式可轻易排除,因为如果先更新缓存成功,但是数据库更新失败,则肯定会造成数据不一致。方案二:更新数据库,更新缓存这种缓存更新策略俗称双写,存在问题是:并发更新数据库场景下,会将脏数据刷到缓存updateDB();updateRedis();复制代码举例:如果在两个操作之间数据库和缓存又被后面请求修改,此时再去更新缓存已经是过期数据了。方案三:删除缓存,更新数据库存在问题:更新数据库之前,若有查询请求,会将举例
|
SQL XML 关系型数据库
mysql索引失效的问题,差点我的工作凉了
下面分享的是我在工作中遇到的一个问题。有关 mysql 索引失效的问题。 处于保密考虑,我拿一个类似的场景举例子。
mysql索引失效的问题,差点我的工作凉了
疫情过后,我们的工作模式可能会产生哪些变化?
目前企业和个人的雇佣关系是1vs1的,个人的工作环境完全受限于企业,企业通过付出一定成本来达到固定办公场所内的人员管理,有的企业为了能让员工老老实实的在自己办公位上开开心心的工作,不惜购买昂贵的人体工学椅和升降办公桌,日常也有各种花里胡哨的下午茶和补贴,简直是“爱的供养”,当然,这肯定是优质企业,值得尊敬,但这不是重点,重点是:他们为什么要这么做呢?又不是搞慈善的...
868 0
疫情过后,我们的工作模式可能会产生哪些变化?
|
Web App开发 SQL Java
艾伟:一次挂死(hang)的处理过程及经验
前言:        CPU占用率低,内存还有许多空余,但网站无法响应,这就是网站挂死,通常也叫做hang。这种情况对于我这样既是CEO,又是CTO,还兼职扫地洗碗的个人站长来说根本就是家常便饭。以下是一次处理hang的经验及总结,前后用了一个月,不仅涉及程序排查,数据库优化,还有硬件升级的苦恼。
1587 0
|
Web App开发 SQL Java
艾伟_转载:一次挂死(hang)的处理过程及经验
前言:        CPU占用率低,内存还有许多空余,但网站无法响应,这就是网站挂死,通常也叫做hang。这种情况对于我这样既是CEO,又是CTO,还兼职扫地洗碗的个人站长来说根本就是家常便饭。以下是一次处理hang的经验及总结,前后用了一个月,不仅涉及程序排查,数据库优化,还有硬件升级的苦恼。
1577 0
|
弹性计算 容灾 大数据
黑科技揭秘:阿里云如何做到从业务宕机到恢复业务运行只用一分半钟时间
企业关键业务宕机会带来非常大的损失,而传统的自建容灾方案成本高昂运维复杂,因此高性能的云容灾服务正在成为企业业务持续性保障的优先选择。混合云容灾服务(HDR)-关键业务型的演示完整呈现了将本地服务器上运行的报账系统实时容灾复制到阿里云,并在出现宕机后在云上快速拉起恢复业务的全过程。
3199 0

热门文章

最新文章