Replication的犄角旮旯(二)--寻找订阅端丢失的记录

时间:2022-09-24 02:54:21

《Replication的犄角旮旯》系列导读

Replication的犄角旮旯(一)--变更订阅端表名的应用场景

Replication的犄角旮旯(二)--寻找订阅端丢失的记录

Replication的犄角旮旯(三)--聊聊@bitmap

Replication的犄角旮旯(四)--关于事务复制的监控

Replication的犄角旮旯(五)--关于复制identity列

Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)

Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)

Replication的犄角旮旯(八)-- 订阅与发布异构的问题

Replication的犄角旮旯(九)-- sp_setsubscriptionxactseqno,赋予订阅活力的工具

---------------------------------------华丽丽的分割线--------------------------------------------

接触Replication时间长了,遇到“应用复制的命令时在订阅服务器上找不到该行。”这样错误的几率大大增加,而如何定位并手动填补数据成了DBA的必修课;本文将介绍一种暴力方法来追踪已丢失的热点数据,尤其是对于同表多条记录丢失的问题,提高DBA的工作效率;

本文设计思路由陈璟童鞋提供,本人只是加以整理,如有侵权,烤鸭伺候……

本方法虽多次经受验证无误,但多次被MS supporter们建议不要尝试使用此方法,还望各位DBA三思!

一般来说,定位“订阅端丢失的记录”分成以下几步:

1、通过xact_seqno、command_id定位到具体命令

2、解析commands,确定命令类型(insert、update、delete)、对象名称、主键

3、根据上述获取的条件补数(insert或DTS),这是我们的关键,也是我们需要简化的步骤

关于定位失败的命令,可以参考微软官方博客

http://blogs.msdn.com/b/apgcdsd/archive/2012/01/10/10254809.aspx

没错,我也是这样操作,但如果你发现,刚刚补过一条记录后,msrepl_errors又出现新的记录,咋办?再1、2、3的执行一遍?关键的问题是我们也不知道到底丢失了多少命令。如果这是发生在夜里,几分钟报一次警,持续1、2个小时,相信所有的DBA们都会疯掉……so,自己动手丰衣足食吧;

先来分析一下可能造成“找不到行”的复制命令的类型;

1、insert

  这类操作对DBA绝对是个blackhole;试想一下,如果一个insert操作丢失了,如果这个丢失的记录后续没有通过复制进行过update、delete,你是绝对发现不了的;没办法,这样的工作只能交给验证订阅或者定期进行tablediff这类第三方工具搞定了,不过我相信大部分DBA都是在业务方发现数据不一致以后才后知后觉的……

2、update

  update是三个DML操作里面比较复杂的,一个update命令传到订阅端但发现没有这条记录的时候就会报错,由于在发现命令丢失时发布端已经完成更新,所以直接手动从发布库里导入这条记录到订阅端即可;

3、delete

  delete是最简单的无需关心的操作,如果一个delete的复制命令传到订阅端发现没有记录,你会像处理update那样重新从发布库导入这条记录到订阅端?那你一定是大脑掉线了……帅锅,这时候发布库已经没有这条记录了,然后你会疯了一样的问自己肿木办,肿木办么?

  有人说,在订阅端insert一条只有主键的伪记录,然后delete就可以正常下去了。没错,这确实是个办法,但不是个好办法,毕竟一个insert你也是要敲上十几个甚至几十个字符的……其实处理方法很简单,已经删了的记录就没必要再找回来了,关掉监控就行了;当然我指的是MS errors的报警监控。

处理方法:

1、定位具体命令

  你还在通过复制监视器查看出错信息?那补上一条数估计要几分钟(等待出错信息刷新的时间),要是丢了几十条记录,那你这一天就不用干别的事情了;

  直接从distribution.dbo.msrepl_errors里查吧;  

SELECT * FROM distribution.dbo.MSrepl_errors
ORDER BY time DESC

2、解析commands

  根据上面查询的结果,取出xact_seqno(出错的命令的事务号)、command_id(命令id),在根据下面的系统存储过程定位到具体的语句

USE distribution
go
sp_browsereplcmds '0x00026BBC000A3DDE000400000000','0x00026BBC000A3DDE000400000000' --两个字符串均是上一步获取的xact_seqno

  在结果集中使用上一步的command_id定位到具体的行,取出command,就是出错的命令

3、分析命令

  [sp_MSupd_dbotest4]  这是调用订阅端的存储过程名,upd说明是update操作,test4是订阅端的对象名;

  ‘abc’  这个是update操作的value,具体对应的哪一个column,那就数数逗号吧(自己测试一下就会发现规律);实际上我们并不需要知道要更新哪一列;

  10002   这个是主键的value,复制命令到订阅端执行都是按照主键去操作的,这个看一下订阅端的存储过程就清楚了;

  0x02   这个是8进制的bitmap,简单说就是这一类操作的位图值,在这一章不会用到这个,后续的文章里会涉及到;

aaarticlea/png;base64,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" alt="" />

  至此,distribution的任务完成了,下面就是本文的关键——修改订阅端存储过程

4、修改订阅端存储过程

  到订阅数据库里找到对应的存储过程“sp_MSupd_dbotest4”,并生成脚本;

  @pkc1  这个就是test4的主键值;看到了吧,复制命令到订阅端都是按照主键操作的,即便你在发布端传入的是update table set a='abc'这样的全表操作;

  而下面的两个if + 一个exec sp_MSreplraiserror 20598,就是判断当更新数量为0时(@@rowcount=0)报一个20598的错误;

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA20AAAGgCAIAAAC2eRjeAAAgAElEQVR4nO2dP2gb2dr/p9ziFi5veQW/Rt0VbJHA2zhwixjeIoYUMaQIJkUwbxFMimDcBJEihC2CcRFMigWnCDjFBW8R0DYL3iIgF4ZJYZALF1O4OIWLU7h4foW82vGcP3NmNBrNSJ8PD2J05pznnJGlma+/Z/5Ecj0kiPZG9956JoY/RgSxGGF+vQmCIBoV0eDPEUG0N8zv9NyP/QRRVcz9CEEQBOEPdCTR7jC/03M/9hMEQRDEkgQ6kmh3oCMJgiAIYl6BjiTaHehIgiAIgphXoCOJdgc6kiAIgiDmFQ3TkX8MD78c93856H84HMfOL4fb7w623xzsvDvcerO38+5w/oMkmhSmjozPhkVDAAAAoDhpHRnfjdAD+fsvKh39z2rnV7X9UW3tJ5u/JBtvk7U3yYPXyf1Xyf1Xyf2XiStPkqjj34dKaRGRG5Eb0TeitWgtgz/jvY+HR9+Gh78Nt97szV27EM0JdCQAAMC8iAZ/jg6/Hh9+ScXno4PPRwefDvc+Hr7fP+j/std/dxvWA/n7L+rwDzn8Qw7+kIPfZe+b7P0m7/8r/S+y81m2f9Xbn/TWR725rzf3de/50CUIjr+dyI2IZEWkUnrn3cHRt2F8oU/O9NYuOpL4OxZeR0Zv+uOY90BmxcJvIADAAhMN/hwdfjkensbD0/hkEt/jwZ/Dwe8nx99Ojr+dHP13cPjl2KMj75iRn26dyPW3ydpu8uBVcv/l39F95tSRB5+PROToD3X0hzr+Uw1O9fCHVlriC7X+dGvzZX9rd29rd2/zNTqS+DuaoCOj6DYyy+m3mbWZar7k8xBY0ws7lzr0lE/THQAAzIXbee3Dz0fD0/jkz+Hgj+Hxt5Pj3wZHvw2Ovh7fWpWfj/rv9lyT3Yf/DTsM38goUb2Hmy5B8H7/MOtEXou6lvhcrT12tiKWPJqgI0XuKMK0iAws9GWuWnIFNq9E2GWSpN96VgEAQFv4+/zIg89HJ6fxWEce/TY4+u/groh0HsgPvp5YU298SB0kb0TfyPEfsUdH9j8c6pu//Mjvf/mR15Ikev35ztz1CtHMaIuOtNYMyoyOBACApnLneu2DX49OvsfHv58c/XdwFCYiB3+ODr4M0hkTHcdXRyeX7zc+RBsforTF6NeRB5+PkyuddiKT03j08TD5sDd8uX30fHvwdTB31UI0LZqsI8WmGv0q05L5rvZKR6aap3Bc7mlu7TdT05/KNYCQ7fLXBACAxpK978/Br0eDP4cTMzJXRA7uzmsnOh7Lx3Fs7kcbH6KxiFTXOTpy8Ofo4POxur61JAf/jeOPh3J6Iv89Urv94eONwfPtwW8ncxcuRKOi4TpSJHseZKGTIyXMj7T6fC7zr4Qf6c9pXevvi/MjAQAWA8v9Iw9+PRr8MTz8GiQiB3fntTc+RPHVkYgk17eCUmtRf/mLuTry8Ovg6L8nYycy+fVQklh9PdRv+smzzeGzzeHTzePn24Nvzit1iCWM5uvITOE0fqSnxGo0TnNFi1+GWo3PkMEXKgQAgIbj0JF/DgPNyMHdee3ji20Znxl5I2MRefRjeywilcrXkeNswx9J/OlQ/hzo7yfJn8Ph862TJ5vqfBR/2BusPjgOGxWxJNFeHRmauaAfmZthvjoy3KEEAIDmU4GO3Pt85/zIsQ05UrHWEl/FGx8ipUQpSa7k6Fu+jhz8OXr/8Sh++16+HuoP7/X3oboY6YtEfRsMn24O/nf9+MX23LUL0Zxoso6s7Xrt2ua1/W9zhxp+uiQAALQCu448+XN4EHCFzTj2fj2epEufHDmOwcVxciXjOPxtGKIjt98exP+3o9/0R483hs82RWsRGT7fGvx8/+Txxt7D9blrF6I50RAdKWI569E8FbKq+0eGXGfjuaSm3HU21iGZl9qYzf2Fns0EAICG49aRv5bRkfKXlDw+f398/n6YxMmVjK4kSWSUaJeO7H84fL9/uP32YPvtwdabva3dvYMnm8PHG6PXO/pKqf8eJ5+P5FrH794fr671/2dt7tqFaE40R0fOiMDLq2uj8pE0bQMBACAci45MPwsx5ED+t4786/4+Gx8idS2JkrGIHCUySmR06dSRO+8OEyXpGH2PT55vjX55r74Nhg/XT+7dT74cjT4dHP3Pg417D+auXYjmxMLryFmT8Qj9U88IPgAASGPRkUVj79fjUaJGF0n8IxmejU5OR4Pvo+M/Rke/jw6/3Q2Hjtx+ezD8oTNx8ttw8Gxr8J+1k0frJ4/Wj1cfHP9nbfs/667H6hDLGehIAACAeVGNjuw93AwPa5Le/6ytP9/efL23+er9xsv3G//XX3/R33i2vfNo8+B/1w8err//z/rGf9Z33h3MXbgQjQp0JAAAwLyoQEcSxBwDHQkAADAv0JFEuwMdCQAAMC/QkUS7Ax0JAAAwL9CRRLujOTrSekvI8OdoAwAAtA50JNHuaIiODH+GDQAAwMIQ9d/0CaKlISJN0JH+B2p76gAAALSa6MHqA4JoY4z1HzoSAABgXnBwg6ZQSPmhIwEAAOYOBzdoCuF6rv+m30wdmb7UBh0JAAALDwc3aApjPRci+xqrI8V9bQ06EgAAFg8ObtAU2qsjheu1AQBgKeH4Bk2h1TpSHLeK5P6RAACwwHCIg6bQdh0JAACwbKAjoSlYdWQURehIAACAZoKOhKZg6sjoL9CRAAAADQQdCU0hoyOju6AjAQAAmgY6EppCWkdGNtCRAAAAjQIdCU3Ben6kNdCRAAAATQAdCU1hYXRk9IafFbSG6E00jrlkq7Z3CIHPfFEp9Lurst8KcwFMw2LoyObvnTOHkNwjSqO2aHIIrGdUk47S/db2gdTTl6uLzLZXknOamiGpzL9XZtU03YU3n+ajmxHmMOr8BU3zOcziGzLHP4p1AK5ReX6bIYXhzV0JAz+rRnzFAQQdWQvpI6tZOKO+ZpGwhvFnktfWo7X3uXRh3fYpc5auGZjNFHAV/uFKbFehHmc0vEIapULq/MmES/zw+vXswTy7NY+88yf3VAusGf5BRW941AY0hrFADIxm6sjAfxPrLPRUKK0SApnpXnimHVmToyMryVm6ZmA2v46cPn/RmnPXkZMPpNq+So9nvn0V+hXPV0daB1Dor1m6sPDvvVBtgNnxYPVBoWi+jkz/5jN7jRoKA4cnqfkL6/+phQrTR3FPTdcIc/H0mztOq8gI3KJM15mPrnTOwJqZYZTr3YX1mGRue/iXwZqzdO+eP7E1m+sDsVYzm4T/4TwDKPHRFfomh39K1m+vq2QWWHtxfUpi+9NYv9iBH51/PJ6fTLk/h79r10j8X9TcJq6SaQqtPyIP6EhoEJOp7ZDXpulI/x5zLoX+EYbsyDxrc5t7PhDPIHOxbrtZx7XsaevfIv9xpXTOaQrDe/dQ7eDD+52yd0+29Gt6VblvctHep8kZ+E0u0TxQecyCkE/erGat428eOBhzeco/h2fwhYZh9hiyx7aO01UeWDO9OUH7kNwaAPVQSEROXtGRnkL/CAOPlObuMtNX+F6sQkrv7s2a/i0qsZnhzcv1XmKLPJRWcuHHv/DeZTplHLl1ZKZ5JZvpSl46Z/hf0/rHLfS5zfTnaVJ6dxG4UYGb4//Smh+y2bzQjyt3DLlDKlrNXz7lh+zCer/nO+SmAKiK9vqRnoNW5qhWW2HuIAOPlLn7lKIHhkooN+bAHWudOrJE79Xqg6bpSH/yJdSRgT26mrtEDzqyxJ97+g+t0A7WpXQDNzz8V1mBjky/MVfnpgCohFb7keE/0ZoLXXXKHcmmPCjKX7vC3HFaqXDM/rWz1pEVqplCh6WQ8c9CR3r+6KV792TL6MgZffL+bZnpX7OElpqLjqxk8DPSkSF5Cu1YSvzWcnsM+UyapSOtNiQ6EuqkpX5kDXvkCjF3edZ/c9NrrZVzCz19TTPyQh2Z+/rAwacr5/ZbNGfR3l2FhXp34d+och2F/9FDvor+76fZS3rMIYMvUdM/hik/utLfZGtzV1+BX49pCN/23L+79Vdg7a7EeFx9WXN6tsjTdUgvhb4h6a+6v6/J28Ca/t7tzcdKMTOFjY6E+mmvH1nDHnmOLPbWQfgBYxbZAsVZFUMLGkw9Hc2Xav/iNdPSYc+IQj+0GQ4jIx9dghKgBlrqRy4krT7YwMIQYhBW8i0tZsBU3TuEwAfeTOyX1HCdDdRPe/1IAACA5cQiHzOrax8SLC/4kQAAAC3C4jgyrw1zAT8SAACgXWSv1zZX1z4kWF7wIwEAAFqEZSIbPxLmAn4kAABAu+B5NtAgWu1HRtHfkXk7KTTLQ9KaXWSWzd7DO8ods2tDzOb+D8S/jYGbCQAAjSJHKaIjoTZa7UdmZFBuYfo1PLPclVz+jqxvXV0E5nTpRX+hfwyuHv2dAgBAE2APDQ2ivX5kuMDKXWVWyxVYU3Y0ax3p79r6Fh0JANAK2ENDU2i1Hyk2ueNRQtPoSE95yKj8vVSlIwt17eoo3LUFAIC5wB4aGkR7/cgxrvP8atCRZu/hHc1IR7qG5GmLjgQAaBfsoaEptN2PnBAy7xyuI01tKl6BVe78SDNnJToytwI6EgCg1dzZQ7uuquFqG6iHtvuRYyo8bdGT02X1ldaRmZxN0JHi3kwAAGgC2T206+aRmduVc28gqJxW+5G5qmsaeWfNmav5SnRUSEeWKMzt3T8kAABoGpEEaMecFOzmoSLa60eap0KmS1znTYYk9KSy9mUdUu4pjC4xl7tFnrGFbGa6csiQAACgUWR15N8rHIWmE4mOhEpotR8JAACwhPw9W51dcdeY9IhFdCRURXv9yFbgsUgBAABKEDqj7To/0loZoAT4kQAAAO3Ccr22f5rblJvoSKgK/EgAAIAW4ZvOtpajI2FG4EcCAAC0izJ+JPPaMCPwIwEAAFpEmfMjXasApgE/EgAAoF2EqkPPJdvoSKiKVvuR1ouguSwaAAAWGN8DadKrrEKTh9lAhbTajwx/uAsAAMDCwPENGkRL/UirTDSNSQAAgAWDgxs0hfb6kehIAABYTji4QYPAjwQAAGgRHNygKSyAH5m+1AYdCQAAC4/9BpD+S7PNW0i6GnIVDhRiAfxI17U1/BQAAGDxuKMjIxvp8km1v9ujI6Ei2utHCtdrAwDAUhJ5RKE4JGOIjuRRN1CClvqRY6y3iuT+kQAAsMDcebahy4+cVP27jVEhncFVB8BDq/1IAACAJcQ5YW2p5FWEGQMSPxJK0Go/EgAAYNkIOj9ystZaLb3WqiYBQsCPBAAAaBcWpehShC5ZabZ11QHwgx8JAADQIv5Wh+kFcehIyfMa/Z4lgAf8SAAAgHaRtQ+t89oub9LUiPiRMA34kQAAAC3CeXajOU8dohHRkVAa/EgAAIB2kXOtDDoS6qTVfuTkoYiT5yJmwqyW+/vI1LHmt9a0dmQdUvhgcnO6qpkD9oyq0ODLbWb4loZ88gAAy0zOrLT1Khzr3Hd4HQArrfYjM5ojtzD9mpvTmsdawVyb6Si8ecjASozT1an1A/G8LVHT0zyDq0nRDwoAYOFhdwgNor1+pFVYeNRGrhAJ12rhiipknIFeXW5zV0euCiEfYPjnOc1mej55dCQAQAZ2h9AUWu1Hik1beGTH3HVkrndYYmzW/LkWqaffkMGH1wyc1/anCjGSAQCWB3aH0CDa60eOiRwn1TVKR5pDmpGOdHU0jY4M/Dxze/eAjgQACIfdITSFtvuRE/yenKvEXwE/0pUzvGbgrDQ6EgAgnPzdof8SmdwLtF3NXTW5OmeZabsfOSZErwTqyCjKCpeqdKSrsHIdaa1peoqFdGS5mpXoSLENHgBgaZm5jswtzEhGz52GYLFptR+Zq6XCJVF4nhLGZ9Hm/oFNM87adGTIn8OVzZWHPRMAwBinWehnUm3ymm6VLnR27BCg6Mhlpr1+ZJR3X8OMIgnUItaankJ/c+uQrCMM2UxPc39HkzqeLcptHjgkT++5UtIzQvZMAABjop2Xm77V3v2lZ27aWjn3xpNmtcDNgAWg1X7kTMEAAwCAZuLTkX5tlymxakSPHHTlgWWmvX7kguExUwEAACZEW8/WnescdmPmbe5MdMicNX4k4EcCAAC0i2jj0Zp9hSHjcmexXfrPNX+d6StXj8LCgx8JAADQIqK11fuW0pRANCesM1owXS1dnsmWWTZ1pGstLAn4kQAAAO0iuv/vrnPdDPxIs9CTBDW5bOBHAgAAtIio+6+Oc12wjvS7iebbXK2JglxC8CMBAADaRdT550/OdVX4kZk6pfuCZaDVfqT10mYudgYAgAUmWvmH8yhnPYXRVUFsfqT1Yhq/3PTUgcWm1X6k9Q7V3LYaAAAWG45v0CBa6kdaZaJpTAIAACwYHNygKbTXj0RHAgDAcsLBDRoEfiQAAECL4OAGTWEB/Mj0pTboSAAAWHgsB7ejz+/TMW0HYTeV9FxP47/UJvCi8pC01mt9PF1D5SyAH+m6toavEgAALB7Zg9vR5/cqORZ1LOpYqyN9uVdUSgbqsGkEn2ettbK/MDNU8ypyqIf2+pHC9doAALCUWHTknfj1/eGn94ef3h9+7B9+7B/u/x35qcNEpPVGP9YbAJnydFI5k8rfu3V46Mgm0FI/coz1VpHcPxIAABYYi46U60EqjkUdiTqUZE8u3svFjvzY1t+39J8bOy83fXmLP2I7JE/uWo+I9OhRsYlRv58KldNqPxIAAGAJyeqkw0/v5XpwO699/ZeCvHwvFztytqVPN/Uf6/r3teHHFY+O9Mg1uesaTkoyC2a51YzMGJBmNY8cdOWBOdJqPxIAAGDZMHTkx/5ER94RkT+29emm/nND/76WfOmd/BJtPVvPz+4WZ7na0Vzlquxv4uqrkGaFGsCPBAAAaBdZnXSw35frwa0TeXVgikj13/vJ5+7gXbTxaM2X12ZDupY9dqMrQ7ok11m0dm0dg6cvqAH8SAAAgBZh05HqWNTRXyKyPzkhciwi1Zde8qlz/OantdX79oxexKb20nLQ+urRmplq6fL0kMxlU0e61kI94EcCAAC0C0NH/rIj6liuDiTZy4rI3x6oL73kc3e0v3K0+9P9f3fzs4fdJDKj4cKbl/AjzUJPEtRkzeBHAgAAtIisTtp7t6PV0d8i8mwsItf/FpEfO/GHnw5erXT/1XEmNVw9qwR0KTkzjyeJBLiJ5ttcrYmCrB/8SMgQvemPYy7Zqu0dQuAzB2gdho58u60vDtXpdvJtbfS1N/rSjX/tnHzsDH7pHL1ZOdpdOdr96eDVyt7Llc4/f7JndJ8HOVnwTDS7mptvzSZWH9ElUj3DDqkPs6DtfmT6WxOlnpGYqZMOs8Ra2DTqGZVLT0ykRgnNUUhHFsrsT5UZ8yT55O003YU3n+ajmxHmMBoyMAAIIXsoeP92u/96a/v/Njefrq//74MHP/d6/6/T+edPK/+IzLCks510aF1rLXFJTGs2a3PXwiSDa9o6bW0ytT0XGutHHn4+dEWmZubLYv3uTGRiukJGgHoKm8McdWR6VSt0pDgEXLqLKbsrsV2FepzR8KxyFh0J0CKad3SCJaaZfqSpF63lGWkoXqUVrjhzU80LdGTRfv06cvr8RWvOXUdOPpBq+wKAOmne0QmWlSb7kSHllehI68y4X7G5ZsAzU+RmfVeSQjXTFazLITmdm2ZTGIHzwq7J4ml0ZKav9NvctK4JZeuwrU38mxk4gBIfXUjvJT4lj5xFRwK0CHQkNIhl9iOtMs6fxJrNKiX9NWdRGN67B1OgmMvhhda3s+jdk83qwHmUZenN9GxLuZx+tTdNc3QkQKtBR0JTaLgfuf54PR1i05FWIWgl0I/MzeNpZW0Ynt9qcxbVkSE5PTRKR4oh+PwdWbO5ZnKl1BbNXUe6jMZcaRiuUAGg4dj35e8/xduf1OZ+srGfrL9N1nbVg13Ve5X0Xow6z+Pus2Hv6aDmgcIy0F4/sqj+K3R+5Lx0ZGBH5XoPoWk60p98CXVkYI+u5tZp8dzMANAo7Pv17f3k6Hc5/CaH32TvN+l/lf5X6X+Rnc+y/atsfZTuY3QkVEzD/Uh/eSGB5X8b0jxDhTqy2nntwHG6qEFH9t/0+wF6sURH1mwZHTnlFjVHR5ZoHpgZABqOfV++uZ9svFMb7/T6bnL/VdJ7nfRejnovhr3no87TQffxUedJjo5M3xu8tlvnWDt13cHHM7BCd/yZy5ZKwUG2hZb6keZ1J9aYYE4WmzWtdVz4ezE1ayWFnk0o2rtzuwLmUl22VqDXVUhHuuZwrR2ZbSc5wwdfoqZ/DFN+dLk1/S6j5w+aKfRsCAA0CoeO/KBEtBbRIvpGtBZ9LUrp5EqPLiU+l+6jg/zUKSVX5ZC9PWYknetulCEDCx920S0t94F47qxZIlsDabIfGXj/yHmxKF+BLCHyaHbZAsVZFUMLGkw9Hc2Xav/iAFAD9uPP+lstIr1HR71HR+pa5Frraz1SMrrS8bkMz6XzKP8I2jQdaa1feq21JjpySprpRzacQg5fa9jdkScb8u797dskaWDJHdHzV52M7Re96U/fV1ZduVvNovf5l/yIBQCaiv3gs/ZGjRe0iLoRpXWSSKL0KJHhhTq5VJ3/vLc2vE16d8q16LRyplVaGvpbeea1/SO0VgvRZyW2tFAdf+bAQbaFxvqRGZpjQy4sSsnLbfkRy4st+eW9XCl506dkeUu0nvc3EgCc2FXIg9fJeEFrrZQkV7cz2sNLdfJDD86ls+rUkaY5F7LgyePJbK2QfrVmCxxPrkQrvaWusfk3cLFF5JhW+JHoyJmj1K10uBjJ0w15siEvtihZ6hIAaCp2IXL/1UhP5rXV7UKc6PhCD8/04Ex37rkvvqtIR4rNpfO38ujI3GFYHUrP2HITesZsNSOL+qNLLiIFPxIAAGDe2LVI7+VI34jWWl1LovToSseJHl3q+FxOztTgVHXuzdyPDElorelSk0WHUb8f6R9DIY3bUvAjAQAAWoRDR76I9c2tDZmJ41M5Pg09P3Ii5qzuml8YmS6dNU+mifnq6d2VPLpLtVvq2nzrYFypwkfYIvAjAQAA2oVdgnSfx1qJ0pIoNUr08FKGF2p4oU/O9cmZOv7u8yNnx8IIJnCBH1kDhW6tUuAuOfP4dY7v/ji+AeRkObfQ2hwAAErg0JHPhr0nw+7j486To+7Dw87DvZWHB53V/spqv/PzTmd1Z+XeXt0DNby3yKCG3hfMAmwU+JE1EP4EFBH7jaOnHUDVP520EDQXXIXmWgAAKAF6CBoEfuRMST+8Lv14lZAmlY0BHQkAsECgI6Ep4EfOmsyj+cRQluWeUBc5HsmYXkhXi/Lumu6fjDYrZ14FHQkAUBfoSGgQ+JEzxaUjPZPdpc+PzChIV7XpQUcCAMwRdCQ0BfzIWROiI61NgpIbOjJ3uRLQkQAAc8S+U3//Kd7+pDb3k439ZP1tsrarHuyq3quk92LUeR53nw17Twc1DxSWAfzImTJRjeaktr9JUPLqdGSJeW1xnCgp6EgAgFli36lv7ydHv8vhNzn8Jnu/Sf+r9L9K/4vsfJbtX2Xro3QfoyOhYvAja8A6bT2jee3c5UoopyNzC9GXAAAh2Hfqm/vJxju18U6v7yb3XyW910nv5aj3Yth7Puo8HXQfH3We5OjIzB2zqx94cKe59/R25Qkc9ly2NN17zT3OFPzIGrBeUuO6yCbk1j/mBTSZi2lcV+FMT8awzIjCzKrwu0uiIwEAAnHoyA9KRGsRLaJvRGvR16KUTq706FLic+k+OshPXeThh5VgSrrM/SZdI3RlC++3UJNyH4h1/IukI/EjoTmgIwEAQrCrkPW3WuT2uYjqWuRa62s9UjK60vG5DM+l8yj/UNo0HWmtX3qttWadOjJkA1sHfiTMHcxIAIBw7Cpk7Y0aL2gRdSNK6ySRROlRIsMLdXIZ+nxt69t0YUiStDT0t/LMa/tHaK0WItFKbGmhOp7Mi6cj8SMBAADahV2FPHidjBe01kpJcnU7oz28VCc/9OBcOqtOHWmacyELnjyezNYKVoFlKrDc8eRKtNJb6hqbfwP9m7AY4EcCAAC0CLsKuf9qpCfz2up2IU50fKGHZ3pwpjv33DcKqUhHis2l87fy6MjcYbgMP//wSiyYmV29e6Swq1WrwY8EAABoF3YJ0ns50jeitVbXkig9utJxokeXOj6XkzM1OFWdezP3I0MSWmu61GTRYdTvR/rHUG6Q7QI/EgAAoEU4dOSLWN/c2pCZOD6V49PQ8yMnYs7qrvlFkum35dpvVh3p6d2VPLpLtVvq2nzrYHJT5Y6wReBHwiwocdEM19kAAARilyDd57FWorQkSo0SPbyU4YUaXuiTc31ypo6/+/zI2bEwgglc4EfWQOBdIQvVrJao0htM3s3s+6/S03D6YfhvWul/hE/Ic30AAOaCQ0c+G/aeDLuPjztPjroPDzsP91YeHnRW+yur/c7PO53VnZV7e3UP1NjXRwY19F5DX0sLfmQNeB5dU7rmLJiFjoxsEyDWQpmBJWm9XzrPbwSAtoMeggaBHzlT0g/UNp+I6KrsrzYjKtGRphlpLrt0pNl8+sGgIwFg8UBHQlPAj5w1ae2Y0ZHWhyVmGtpz5j0OMa3NMjXNJOm2ZrVCOcWmvSbnMWdKzGVr8wz+yWizcuZV0JEA0H7QkdAg8CNniktH+q3HkOdrm8vWQnFIQ2tzM1V4zjFWHWmeHmNdtjafBnQkACwk6EhoCviRsyZER1qb5KR1yDtx2Iee5lXlHNO0eW1BRwLAwmHfAb//FG9/Upv7ycZ+sv42WdtVD3ZV71XSezHqPI+7z4a9p4OaBwrLAH7kTJmoRnNS21M/KHP092umULyi0FriaRKYc8ysdWSJee1JK7MLdCQAtBH7Dnh7Pzn6XQ6/yeE32ftN+l+l/1X6X2Tns2z/KlsfpfsYHQkVgx9ZAxlp6JnXLnRtjakjQ5Y9a4vOlbto1PXak4VwHWRCsDUAACAASURBVJlbiL4EgPli3wFv7icb79TGO72+m9x/lfReJ72Xo96LYe/5qPN00H181HmSoyMnJyHVeZcca6fh9/TOrAoc9hy3dPFuQoQfWQPWS2o8JaE3m7QJxMwFNOb1NJmanrdFc45p4P0jxRCFmVXhd5dERwLA3HHoyA9KRGsRLaJvRGvR16KUTq706FLic+k+OshPbfuPf6aYks4zaZU7sPBhF93Sch+If1sWAPxImAWL/TybFg0VABYSuxxZf6tFbp+LqK5FrrW+1iMloysdn8vwXDqP8g+lTdOR1vql11proiOnBD8SIBDMSABoAnY5svZGjRe0iLoRpXWSSKL0KJHhhTq5DH2+tvVtujAkSVoa+ltZp5itTcxU1hF6hld6SwvVcWUO+TRaB34kAABAu7CrkAevk/GC1lopSa5uZ7SHl+rkhx6cS2fVqSNNcy5kwZPHk9laIf1qzRY4nlyJVnpLXWPzb6B/qxcD/EgAAIAWYZcg91+N9GReW90uxImOL/TwTA/OdOee5/kW1ehIsbl0/lYeHZk7DKtD6RlbbkLPmK1mpNWStHbnGkbbwY8EAABoF3YJ0ns50jeitVbXkig9utJxokeXOj6XkzM1OFWdezP3I0MSWmu61GTRYdTvR/rHELLcdvAjAQAAWoRDR76I9c2tDZmJ41M5Pg09P3Ii5qzuml8MmS6dNU+mifnq6d2VPLpLtVvq2nzrYDypQobXLvAjAQAA2oVdhXSfx1qJ0pIoNUr08FKGF2p4oU/O9cmZOv7u8yNnxyJpJrCCH1kDIbeEDLxnZKZJaM15/I5zb8fofzhNyBNrAACWEIeOfDbsPRl2Hx93nhx1Hx52Hu6tPDzorPZXVvudn3c6qzsr9/bqHqhhv0UGNfS+eC5gc8CPrAHro2tya4akLao783NW/SOz3gmcJxMCAEwDeggaBH7kTEk/89B8IqKrctHkVYGOBABoPuhIaAr4kbMmrR0nr67nH2YqpMutM+OBz06M7j7AMLr7eMNMtcjxtMMJ/slos3LmVdCRAADTgY6EBoEfOVOsOlIck93mgmfZfOsbRpR9m1aQrmrTg44EAKgcdCQ0BfzIWVNCR4aLxWl0ZO5yJaAjAQAqx76rfv8p3v6kNveTjf1k/W2ytqse7Kreq6T3YtR5HnefDXtPBzUPFJYB/MiZkp6qljzHsejk9Vx0ZIl5bXGcKCnoSACA4th31dv7ydHvcvhNDr/J3m/S/yr9r9L/IjufZftX2foo3cfoSKgY/MgasOrCuc9r5y5XQjkdmVuIvgSAZca+q97cTzbeqY13en03uf8q6b1Oei9HvRfD3vNR5+mg+/io8yRHR2ZuzV39wIM7DbmntzVP4LDnsqVScJBtAT+yBswLZTwlk2WzuTVnTtfGBTSZi2lcV+FMT8awzIjCzKrwu0uiIwFgyXHoyA9KRGsRLaJvRGvR16KUTq706FLic+k+OshPXeThh5VgSrrM/SZdI3RlC++3UJNyH4h1WxZJR+JHzovKb9mzVKAjAWCZsauQ9bda5Pa5iOpa5Frraz1SMrrS8bkMz6XzKP9Q2jQdaa1feq21Zv06csHAj6yfQCsRTDAjAQDscmTtjRovaBF1I0rrJJFE6VEiwwt1chn6fG3r23RhSJK0NPS38sxr+0dorRai1UpsaaE6rswhn0brwI8EAABoF3YV8uB1Ml7QWislydXtjPbwUp380INz6aw6daRpzoUsePJ4MlsrpF+t2QLHkyvRSm+pa2z+DXRlWFopiY4EAACYL3YJcv/VSE/mtdXtQpzo+EIPz/TgTHfuuW//UZGOFJtL52/l0ZG5w7A6lJ6x5Sb0jNlqRlotSWt3/mztBT8SAACgXdglSO/lSN+I1lpdS6L06ErHiR5d6vhcTs7U4FR17s3cjwxJaK3pUpNFh1G/H+kfw8LrSMGPBAAAaBUOHfki1je3NmQmjk/l+DT0/MiJmLO6a34xZLp01jyZJuarp3dX8ugu1W6pa/Otg/GkChleu8CPhAYSeG9zAIDlxK5Cus9jrURpSZQaJXp4KcMLNbzQJ+f65Ewdf/f5kbNjkTQTWMGPrAHrrSI9lesaV6pT720j69wNmDLR3AshJQFgmXHoyGfD3pNh9/Fx58lR9+Fh5+HeysODzmp/ZbXf+Xmns7qzcm+v7oEa9ltkUEPvi+cCNgf8yBrwP7qmaIbZ0ZBfWEYjWn/76EgAWGaasbcGEBH8yBljepDmcxHDk8yUJuhIq0C0/g+JlASApaUBe2sAEcGPnD2mdkw/+TD3+YfpatZnKvofluipaRnq3ccnZgozJemFQpUj9xMaBR0JABAAOhIaBH7kTPHoyEwd11tPSSZV7gS6X0pm9J9rldxVkOaCuezJllmFjgQAyAUdCU0BP3LW1KkjJ6sylqQnz52GRXSkZ5VpSbr6MlehIwEAcrHryPef4u1PanM/2dhP1t8ma7vqwa7qvUp6L0ad53H32bD3dFDzQGEZwI+cKelZbJEgm3AaHWnmr1NH5nqTmUJ0JABACew6cns/OfpdDr/J4TfZ+036X6X/VfpfZOezbP8qWx+l+xgdCRWDH1kDVpnY9nltczlXXHq6S8N9fwAA/Nh3n5v7ycY7tfFOr+8m918lvddJ7+Wo92LYez7qPB10Hx91nuToyMytuasfeHCn1pv1VDikuWyppLarth5rAD+yBvzXylirWWerM8sZs9OaoarrbFwXx5jL1srmjyZQR1p/dOhIAFhmHDrygxLRWkSL6BvRWvS1KKWTKz26lPhcuo8O8lOnlFyVQ/b2mJF0M9KOZr+Fuig3Ete2LIyUxI9ceOZyV/Nc/D8gnmcDAODBvgddf6tFbp+LqK5FrrW+1iMloysdn8vwXDqP8g+lTdORM+03sxBYv1wvnuW2gx+5wAQ6kXXisicBACAQ+x507Y0aL2gRdSNK6ySRROlRIsMLdXIZ+nxt69t0YUiStDT0t/LMa3u6dk18h0wcl9jSQnX8mWWJRaTgRwIAAMwbuwp58DoZL2itlZLk6nZGe3ipTn7owbl0Vp060jTnQhY8eTyZrRXSr65srrchAwtp5U9YrvfFFpFj8CMBAABahF2I3H810pN5bXW7ECc6vtDDMz040517zsmpqnSk2Fw6fyuPjpSCSs7s3dVd0QVr7y5D1DV+8+0CgB8JAADQLuxapPdypG9Ea62uJVF6dKXjRI8udXwuJ2dqcKo692buR4YktNZ0qcmiOjJ3hJX7kZ4u/BkWBvxIAACAFuHQkS9ifXNrQ2bi+FSOT0PPj5yIOau75hdGpktnzZNpYr66rD5rWnPMfsVWYktdm28dkitVdBfPCFsEfiQAAEC7sEuQ7vNYK1FaEqVGiR5eyvBCDS/0ybk+OVPH331+5OxYGMEELvAjAQAAWoRDRz4b9p4Mu4+PO0+Oug8POw/3Vh4edFb7K6v9zs87ndWdlXt7dQ/UbSvWYMvV2dfSgh8JAADQLtBD0CDwIwEAAFoEOhKaQtv9yMh2U+vI/Sw+AACAtsPBDRpEe/3ItEycLFsLAQAAFgYObtAU2u5His2SxIkEAIAFxn6Ie/8p3v6kNveTjf1k/W2ytqse7Kreq6T3YtR5HnefDXtPBzUPFJaB9vqR4rAhXSUAAAALgP34tr2fHP0uh9/k8Jvs/Sb9r9L/Kv0vsvNZtn+VrY/SfYyOhIpptR/JvDYAACwh9oPb5n6y8U5tvNPru8n9V0nvddJ7Oeq9GPaejzpPB93HR50nOTrSvLN3DVg7td6sp8IhzWVL073X3ONMabsfmbmqhotsAABgsXHoyA9KRGsRLaJvRGvR16KUTq706FLic+k+OshPXeThh5VgSroZaUez30JdlBuJ2WrB7mTZaj8SAABgCbGrkPW3WuT2uYjqWuRa62s9UjK60vG5DM+l8yj/UNo0HTnTfjMLgfXL9ZJ+u0g6UlruRwIAACwbdhWy9kaNF7SIuhGldZJIovQokeGFOrkMfb629W26MCRJWhr6W3nmtT1duya+c7srt6WF6ngyL56OxI8EAABoF3YV8uB1Ml7QWislydXtjPbwUp380INz6aw6daRpzoUsePJ4MlsrWAVW4NuQgYW08ics17s1wyLpSMGPBAAAaBV2FXL/1UhP5rXV7UKc6PhCD8/04Ex37vWdGSvSkWJz6fytPDpSCio5s3dXd0UXrL27DFHX+F2tWg1+JAAAQLuwS5Dey5G+Ea21upZE6dGVjhM9utTxuZycqcGp6tybuR8ZktBa06Umi+rI3BFW7kd6unBVWxgROQY/EgAAoEU4dOSLWN/c2pCZOD6V49PQ8yMnYs7qrvlFkum35dpvVh3psvqsac0x+4VaiS11bb51SLmpckfYIvAjAQAA2oVdgnSfx1qJ0pIoNUr08FKGF2p4oU/O9cmZOv7u8yNnx8IIJnDRCj/SJKroDpF8wQEAoF04dOSzYe/JsPv4uPPkqPvwsPNwb+XhQWe1v7La7/y801ndWbm3V/dA3bZiiHFYVe819LW0NNaPPPx86IpJHb4RAACwhHD0gwbRTD/SNZGNjgQAgCWHox80hSb7kbnlkeMRiP7CSblZLbr7cEUAAIAGwgEKGsRi+JFpdegpNNWhVW66KgMAAMwdjk7QFBruR64/Xk+HhOlIq/VoNrGWWHMCAAA0B/vR6f2nePuT2txPNvaT9bfJ2q56sKt6r5Lei1Hnedx9Nuw9HdQ8UFgGFtiPTOOaqkZHAgBAu7Afnbb3k6Pf5fCbHH6Tvd+k/1X6X6X/RXY+y/avsvVRuo/RkVAxDfcj/eUl5rVN0JEAANAu7Eenzf1k453aeKfXd5P7r5Le66T3ctR7Mew9H3WeDrqPjzpPcnSkeWfvGrB2ar1ZT4VDmuOWLt5NiFrtRwZeZ2Otac6AWy/EAQAAaBQOHflBiWgtokX0jWgt+lqU0smVHl1KfC7dRwf5qW2PBJwppqSbkXY0+y3URbmR1LMtc6TJfmTu/SPDwWUEAICFwX4cW3+rRW6fi6iuRa61vtYjJaMrHZ/L8Fw6j/KPoE3TkTPtN7MQWL9cL6UzNJ9m+pGVY3UuAQAAWof9ULb2Ro0XtIi6EaV1kkii9CiR4YU6uQx9vrb1bbowJElaGvpbeea1PV27Jr5DZo1LbGmhOq7MgcNrF431IzPwfG0AAIAxdhXy4HUyXtBaKyXJ1e2M9vBSnfzQg3PprDp1ZGSYcyELnjyezNYK6VdXNtfbkIGFtPInLNe7f6sXg1b4kehIAACAMXYJcv/VSE/mtdXtQpzo+EIPz/TgTHfu9Z0ZK9KRYnPp/K08OlIKKjmzd1d3RResvZvmotWz9A+j7eBHAgAAtAu7BOm9HOkb0Vqra0mUHl3pONGjSx2fy8mZGpyqzr2Z+5EhCa01XWqyqI7MHWHlfqSni8DltoMfCQAA0CIcOvJFrG9ubchMHJ/K8Wno+ZETMWd11/xiyHTprHkyTcxXl9VnTWuO2a/SSmypa/OtQ/KkChleu8CPnAXRm/445pKt2t7DmVe/AADLhl2FdJ/HWonSkig1SvTwUoYXanihT871yZk6/u7zI2fHImkmsNIKP7IyItfvr9JOHFpqIrNK6K1COrJQ5mkw+0JHAgDMGoeOfDbsPRl2Hx93nhx1Hx52Hu6tPDzorPZXVvudn3c6qzsr9/bqHqjbVqzBmauzr6WlsX5ktfePvEPu92jqL5pHS01W1akjp9R2ubK4wr4svfC7BwC4C/tFaBDN9CNDnmdTEnRkQazNJ8ZqtX1ZOmJ/CQBwF/aL0BSa7EfmlKdnqCfL0d1IYy2PbHn8zQOwqqvM6YNmSaY8N2dI7+leQjrKVHY196jhwHFG3idVmnVQkwAAE9gjQoNosR+ZUYSVFIrtB+pfa1Y3xJm5HF5ofRvee25Jbu+e5uV0ZEY7egozywAAIOhIaA4N9yPXH6+nQ6rVkZO3pkkpjjphlmQrdKTLaMxtHigxcwZpWIwu9xEdCQCQwb5ffP8p3v6kNveTjf1k/W2ytqse7Kreq6T3YtR5HnefDXtPBzUPFJaB5fUjQyq4Sry0QkeGZwiZpi8xTgnzHdGRAAAZ7PvF7f3k6Hc5/CaH32TvN+l/lf5X6X+Rnc+y/atsfZTuY3QkVEzD/cic8iWe1+6/6ffdl1EXKikxr12oL0sr5rUBAKbAvl/c3E823qmNd3p9N7n/Kum9TnovR70Xw97zUefpoPv4qPMkR0ead/auAWun1pv1VDikuWyppLarth5roMV+pNhmnEOus8m9sGaW19mYl7BYa/pzFtKRk7T+jvwuo2ejcnvPNnRcPeO6pIbrbAAA0jh05AclorWIFtE3orXoa1FKJ1d6dCnxuXQfHeSnLvLww0owJd2MtKPZb6Euyo3Eui2LpCOb7EeWvH9kA/44LjVWT7Zqew9nXv0CACwb9gPd+lstcvtcRHUtcq31tR4pGV3p+FyG59J5lH/nvKbpyJn2m1kIrF+ul9IZmk8z/ciSFHENZ8LujjzZkHd/PXoqSZa35KbkRwgAAH7sR7m1N2q8oEXUjSitk0QSpUeJDC/UyWXo87Wtb9OFIUnS0tDfyjOv7enaNfEdMnFcYksL1XFlDhxeu2isH5mhHc/XVkpebsuPWF5syS/v5UrJm/7yllwm8/57AAAsJnYV8uD17W5Xa62UJFe3M9rDS3XyQw/OpbPq1JGRYc6FLHjyeDJbK6RfXdlcb0MGFtLKn7Bc764MSysl0ZE+lBKtRUQuRvJ0Q55syIut5S05H9XxmQMALB92CXL/1UhP5rXV7UKc6PhCD8/04Ex37rmvmqxIR4rNpfO38uhIKajkzN5d3RVdsPZumotWzzJkW9oLfiQAAEC7sEuQ3suRvhGttbqWROnRlY4TPbrU8bmcnKnBqercm7kfGZLQWtOlJovqyNwRVu5HeroIXG47+JEAAAAtwqEjX8T65taGzMTxqRyfhp4fORFzVnfNL4ZMl86aJ9PEfHVZfda05pj9Kq3Elro23zokT6qQ4bUL/MjaqOFyZq6YbgKu+zEtKsu2vVAh7BVLY1ch3eexVqK0JEqNEj28lOGFGl7ok3N9cqaOv/v8yNmxSJoJrOBH1kNtO7LF22PeIXLtQStKPh197006/cez+f7hwnf1Zs1wKRles/Q/7dHM7jbaxCEFi6Rp5FTkuLHr9LR9rzi7v2x+19bS7rNh78mw+/i48+So+/Cw83Bv5eFBZ7W/strv/LzTWd1ZubdX90DdtmINzlydfS0thZTfg9UH6MjStH2P2SAK7Qnq3W2kdVLuQ4Nyqe87E7yDtdYMVIfjaiGVMwedkOR3mxdtEZKzwJDM9bMWYeFPOi39pUJH2jM3SkcC1E+4nuu/6aMjp2EB9phNoak60ioi008wkqbqSJnOj5QwdYiOrHI8ji+Yv7K/Wk6P6EhrZnQkLDnpCWt/oCOnxHwCYXohsypzkJjmCYom42cqpiNn5LbHGFqnusJrOnqSO3eST09hm8vmBLe1uVnTkz+3mncApo60vnqeSGmWlPsyeGq6qEdHljiZ0jOwyfdq8mp9m6k/KUzXL6QGcodk/RVUOyTXF0wc37FMQ+/W2Xu3lkz1e2/SXtE6eM+fw7rtdYKOhKaAjqwN6/4us8ozE2oeKjyZqxy2cSycvtDRk215ykJx7G5dJ1la9aKrIyNDoI7M1HG99ZSEfBmKWlB1+pGFzpLMq5B9FclKgcxCbs0ph2RNVfmQSnzBrCWekZvKKbdmgd+7bTzz3SuG/zmKbuYsQEdCU0BH1oZnv5b7z7fY9pie/8irHLbnSOawIqx1gv5xtzp/5rJHMppdhOhFV7m/98boyMkq62HYmsdk1joyPakdqCPDFZupIzMVxPFVLKx7wj4lv5lXyZBCvmDWJrkjd/1g/eI4t3nIkOa7Vwz/czRXR77/FG9/Upv7ycZ+sv42WdtVD3ZV71XSezHqPI+7z4a9p4OaBwoLDzqyNgL3mK5/xz3/efs7Mik0r+3aS3osk2l3srnOot9u9GhBf6G/ba5gdejIaSyTcB0Z6OJ4aJqOLKTYAnWkq7mnQokhWVNVPqSQL5hZPxf//4255UV/783ZK0qRP0dzdeT2fnL0uxx+k8Nvsveb9L9K/6v0v8jOZ9n+VbY+SvcxOhIqBh1ZGyF7zNpmcAoMO3g3Ou0ON1wyFjUp/X15ynM7MnBdry3GX9BVIaQk5MtgLfT825ARSeE1pcikdmDlQtfWZESka3nK72eJIblKKhtS8BcsfJ/g6d3ztry/26S94kx2azPD3u3mfrLxTm280+u7yf1XSe910ns56r0Y9p6POk8H3cdHnSc5OnJyR4Y675Jj7XSam/WEtJrLlkpqu2rrcdagI2sjs4+LjNPGM6syEzQZ+8FMYu2ompHnXVIzOZD7a+Z1kwpXeeSu6WouYTU9vWSSeDpy3z/S+ve1VrNO52WWPV+GdB0zoUsdmnu28JrmVruY5AxwwQvc8c00IzPzkv5V1ppTDimk3+mHJHlfJ2u13P2D+YM1f+yZQn9z//hdw57LXjH8z2H9TOrEoSM/KBGtRbSIvhGtRV+LUjq50qNLic+l++ggP3VKyVU5ZG+PGUk35S0bAlsV3dLpRzL9djUQdGRtBO7EG94F5JqdDXm+i+trUPk9wxuyvdBG2CuWxi5B1t9qkdvnIqprkWutr/VIyehKx+cyPJfOo/xDadN0ZOmc4XXQkdOAjqyD3R15siHv/noeVZLUVwKzwO1HNgTrsTP8QulyN+gBKAB7xemw737W3qjxghZRN6K0ThJJlB4lMrxQJ5ehz9e2vk0XhiRJS0N/K1NHmh1ZtaZnhIGDDN/SQnX8mWWBRKSgI2tAKXm5LT9iebElv7yXKyVv+jWV3Mx72wEATNgrTo1dhTx4nYwXtNZKSXJ1O6M9vFQnP/TgXDqrTh1pmnMhC548nszWCulXa7bKR1g0j2ts/k4XW0QKOrIGlBKtRUQuRvJ0Q55syIutmkp+xPPYYAAAL+wVp8YuRO6/GunJvLa6XYgTHV/o4ZkenOnOPfc17RWpNLG5dP5WHh1ZemD16EjTbrR6lp63CwA6EgAAoF3YtUjv5UjfiNZaXUui9OhKx4keXer4XE7O1OBUde7N3I8MSWit6VKTTdaRuV34MywG6EgAAIB24dCRL2J9c2tDZuL4VI5PQ8+PnIg5q7vmF0amS2fNk2livnp6Dxlhbo9Ft9S1+dYtdaWK7uIaXrtAR05J6YsBF/UqQgAAmDV2CdJ9HmslSkui1CjRw0sZXqjhhT451ydn6vi7z4+cHbMTTAsjxVrNgunIqPZbeVmFoEsdWu8OWPl4cuVpCf2K3gUAaA4OHfls2Hsy7D4+7jw56j487DzcW3l40Fntr6z2Oz/vdFZ3Vu7t1T1Qw3uLDKrK7KmzYBZgo1gwHSnSCB0ZXr9afeZ5nIN/GLlp0ZEAAM0BPQRNAR05Jc3Rka6nnoQMIzw5AADMHXQkNIX26sjJFPbk1fo2Uz9dmG5ilgfqUetT7KxP5XI99c6ff3xH6HT4R2I+Lsz15DTraEuPEwAAaqMyHanP96Io4nW+r1X9NedCe3WkSFY4TgrTy5kFc9mUm9ZlFyHnR3qmmyv3I12vme7MhdrGCQAAU1KZ8oii6Kf/t0XMMfR53SetVstC6shMBUlZjKb1aOa01nTRah0ZPhh0JABAc7Afnd5/irc/qc39ZGM/WX+brO2qB7uq9yrpvRh1nsfdZ8Pe00GmiT7fm7uQWvLAj2yLjrRi1ZGFmLWOLDGvndGILh1ZaPIaHQkA0BzsR6rt/eTodzn8JoffZO836X+V/lfpf5Gdz7L9q2x9lO7jrI7Ej5x74EfO9zqbjIh0LedWCFxrGUBj/EhXcua1AQAWDPvRaXM/2XinNt7p9d3k/quk9zrpvRz1Xgx7z0edp4Pu46POkxw/clyYXqghrJ2mB1k6YdFOa4t0j/iRjdKRmfloc9l6PU3uFTkeXNfZeK5fCb87TwnMXjwlk2WzuTVntUMFAIByOHTkByWitYgW0TeitehrUUonV3p0KfG5dB8dZBMZfqSklNy8dGS663LDCGlVdEurGslkM8eBH9m0+/7UTGmNVZs4Q/8BACwYdh25/laL3D4XUV2LXGt9rUdKRlc6PpfhuXQeZQ+l5vmR0jAdWTpnM3WkuYH4kcurI3d35MmGvPvrKVNJMlXJZTKLMWIlAgAsHnblsfZGjRe0iLoRpXWSSKL0KJHhhTq5tDxfO+1HTgqtb61emksUTqpl3gbqSLMjs44rc2535ba0UB1PZjF0JH7kkupIpeTltvyI5cWW/PJerpS86U9Vcj6a9yYBAEA7sOvIB69vDQmttVKSXN3OaA8v1ckPPTiXzmpWR078SDHMuZCFENMut5WkpJUYQs2TZ8oRFs3jGpu/U/8m/IQfWaOOnMRMPoiiKCVai4hcjOTphjzZkBdbU5WMXwEAAPKwK4/7r0Z6Mq+tbhfiRMcXenimB2e6c894SMZffqRUpNImJlwlOrL0wDwjLJ1HDB05wbXtIa3wI5fUjwQAAJgTdh3ZeznSN6K1VteSKD260nGiR5c6PpeTMzU4VZ17M/cjQ+Raro4Um3qraoSl84hXILpWWaulC/Ej0ZEAAAB14tCRL2J9c2tDZuL4VI5PQ8+PlLsnIJp2mkckZZK48uTqSE/vISPM7bHolro237qluanSJfiR6EgAAIA6sevI7vNYK1FaEqVGiR5eyvBCDS/0ybk+OVPH331+5OxCAszLpmWuM/Aj69GRHqx/gdB7QEZ/RW7hchD9xbwHAgAAThw68tmw92TYfXzceXLUfXjYebi38vCgs9pfWe13ft7prO6s3MtaX7N+ns2kI7PEXDVlZk+dKfuaaeBHzkhHpi+syUTuRuU+DvGv1bZla2EzqXp4afmIlAQAaCyV7aB5vvbco+2H2ybrYK8ungAAFrhJREFUyELlaYL+JmnhGN1dyBQ2FnQkAMBSUtkOOooifb43eU3+2FR/bvHKayWvzdeR/kcdBpmRmVdroTi05uStS32aqwKbW3t0ZfNuZv9NPxOeyuhIAIBWMKsdtPpzq8ThnCDMML9LDdSRY0zBU8CPDNSRYlNsnmlxs62rZmBhLdPu6EgAgFYwqx108sfmyffR4M/R9K9z1zHEfKMhfuT64/V0yHx1pDWD2KrltvU3Dyl0pZ0CdCQAQCuw76Dff4q3P6nN/WRjP1l/m6ztqge7qvcq6b0YdZ7H3WfD3tOBP6/6c2vwfXTyfTT969x1DDHfWCI/MldQirFsljRVRzKvDQCweNh30Nv7ydHvcvhNDr/J3m/S/yr9r9L/IjufZftX2foo3cc5OhI/kqgqGuJHhpSX1JHimKd2TV4H6khrnunntXM7rQJ0JABAK7DvoDf3k413auOdXt9N7r9Keq+T3stR78Ww93zUeTroPj7qPMGPJGqKVviR1qtqQq+zua1tu1rFLHRd1OIqlOCansLIPRJxvJ0a7h8JANB8HDrygxLRWkSL6BvRWvS1KKWTKz26lPhcuo8O/Hnr9yOjKAos9JSXWGtWDu90XBLdZS5arcnRBD+y9P0jAQAAFhi7jlx/q0Vun4uorkWutb7WIyWjKx2fy/BcOo9yjqB1+pGmDstoMusqj26bUkfmFprDy+26nCBejJi7HwkAAABW7Dpy7Y0aL2gRdSNK6ySRROlRIsMLdXJpeb72naRRNN/zI3O1nanhTH1plZsTMZpp5erUM6pwHZlWwLFXhi5kzN2PzIANCQAAMMauIx+8TsYLWmulJLm6ndEeXqqTH3pwLp1Vp46Mokhq9yNNyeWRYn5LspAZ6enR1Z2ZyjMY69aZ3S22lGyaH4mOBAAAGGPXkfdfjfRkXlvdLsSJji/08EwPznTnnvOeHWMdWbMf6bIJ/bLSI8hcZmQmrVnNJQc9wwvZtHRDz7AXMvAjAQAAmoldR/ZejvSNaK3VtSRKj650nOjRpY7P5eRMDU5V515T/EiXmIttus1V3yPIrBUim0dobeWp6des1lbLqSPxIwEAAJqJQ0e+iPXNrQ2ZieNTOT5t4vmRpmLziC2X+AuUlbnOorUvUxHmDsm1XUulI/EjAQAAmoldR3afx1qJ0pIoNUr08FKGF2p4oU/O9cmZOv7u8yPHzP16bVNd+f3ITMPwalYlF6gjXWv9qZZNRzbNj6wZ6/0TQ29LGX6rSE+GOVJoqLPovRSuR/VMdib5PRs1M7sjf87aCgEAHDry2bD3ZNh9fNx5ctR9eNh5uLfy8KCz2l9Z7Xd+3ums7qzc2/PnbZQfGRmyMkS0WauZmTNC05PfNZ7MESJ3u0LGuUgxdz+yafePTN/n3FvPtjzLh9BUTBvH/BemlIyCn9BjrWku5NacdSEAgMxur1z/9dqu10wdKy5B5tGRVqnqyZOrNT1aMDN466bljjmwrwbG3P3I8Oci1kOBZ3ZLys+zPoqmyZLAOrYmD/guGSk5pY7MbYuOBIC5MKs9Qm1+pKnkrNrOrxeLajKrleiqkzty/5AKDXghowl+ZKHyqjAnr61PX3Q0tr26Cs1nHoqtRIwm6RIJyxDSl3VI/kJPkkwvnnF62nrGaSb8i7SUNKXYeL8xWQgUbdaSuYhLAABZDD8ydlzIbFWWVqyyzHQQY7f484hXf1/+OkS89H6kedQu4EeG6EjrayaP9a1VovlrhheaXbsKi+YM3CL/W1NKWseWkpJ+feYSahnR5tFwfsWJjgSAGTGrPcJ8n2dDLFI0xI9cf7yeDkFH+sunV3JT6kjTZfTkDOmrkGAVkTw/crLsEYuldWRITnQkAEyPfY/w/lO8/Ult7icb+8n622RtVz3YVb1XSe/FqPM87j4b9p4O/Hlr9iOJBQ78yNwSW7O/XnMFpbnWzON66yn3q7cQ7RioI8U28vBxelZNpyMDz4+chY4M9CbRkQAwPfY9wvZ+cvS7HH6Tw2+y95v0v0r/q/S/yM5n2f5Vtj5K93GOjsSPJKqKhviR4eXVUlJHikMGeQqL6sgSSrGQFKtKR5ZTtP63eYMPvF57ynntXM0XXhMdCQDlsO8RNveTjXdq451e303uv0p6r5Pey1HvxbD3fNR5Oug+Puo8wY8kaoql9SOtV9WEXmdzWzsVrkLTs4yMatbm/l5mVFPcha5t9+fMLfRsu/Vt8P0j028zrmSmZrrcnzNdEpJzykIAAIeO/KBEtBbRIvpGtBZ9LUrp5EqPLiU+l+6jA39e/EiiqmiCH9mo+0cCAAA0BLuOXH+rRW6fi6iuRa61vtYjJaMrHZ/L8Fw6j3KOoPiRRFUxdz8SAAAArNh15NobNV7QIupGlNZJIonSo0SGF+rksonP1yYWNebuR2bAhgQAABhj15EPXifjBa21UpJc3c5oDy/VyQ89OJfOqlNHjk+gwY8kqoqm+ZHoSAAAgDF2HXn/1UhP5rXV7UKc6PhCD8/04Ex37tlPJJe/dCR+JFFV4EcCAAA0E7uO7L0c6RvRWqtrSZQeXek40aNLHZ/LyZkanKrOPfxIoqbAjwQAAGgmDh35ItY3tzZkJo5P5fi0cedHRgHPznbVJxoe+JEAAADNxK4ju89jrURpSZQaJXp4KcMLNbzQJ+f65Ewdf/f5kWPqf752enmCpyQ8YUg5MbvAj1w2+lE0jsxy+m2/ohsZVpKtqsHMlMC7Qk5/+0kAWCocOvLZsPdk2H183Hly1H142Hm4t/LwoLPaX1ntd37e6azurNzb8+et0490mZGm5gvUkeO1E92ZFqC5bYnKAz9yCcnoyElhukK13VWYrYFkFGFgYYnmALBszOrHX6cfOVF7k7cZ5ZepGd91KDM1Tcno0aNEDYEfuYTk6sjKu5tR5oaAjgSAGTGrH39tfmTGNYyMCe5M5TjYs7TWd7UiZhf4kdVifdCiWW4tSRfmKofMHHT6ba5us+pIsQk+T03XhLg1SYmc1hLrtvubiyGXC/Vu1vSTqyOtk9qeZUQkwDKzgH5kunCynHEfPRPcnjz+QmJGgR9ZIRmZ6FrIrZlZNrGKv/CJ6Yk8MmuamslaUqh3jzz158x9m9u7R4aG9F705M5cdegvNPVlpgQAlo3W+5FxgMvoEYvoyOYHfmSFpN1E03rMrVlIMBSSYmZbcejIkFRW97GojnQNzL9d6Wq5Q3J15B9P+MeYISP4ciemTckoeYoTAJYN548/cmCtaS7Py49Mz2XnisUQjYiOnHvgR1aI63Bv1ZHhzT2UE0DT68hCTYpmyG0eMsjAofpTlZjOtpaEq0N0JACkKf+/7KTEfJUG+JFWe9LjWbrK0ZFzD/zICvHPVrumrXMrmMxiXjtcS1Uyrx2SM/dticEX6j1QR4ZbALnz2v7mALBs2H/8gf+5elY1wY80V1nLXQkn2UKUJTG7wI+sFnOqOrp7qY2rpqfQxDWHa50XtraVlI5MLwTmDKzpmgH357QOKbx5uU+p9OcpU98V0jUf5ZmnAoAlIdp5uWkpvWsuZhYmr+a+abI8r/tHpgszctBaP9CVzC0nZhf4kQtDoZP5Fqx3AICFxKcjxRCOmbVy9/K99EL9fmRse25NpkJsE4JIw4YHfuRiEOLwzU7qzTo/AMByEm09W7eUumeuxaYyzZKan69NLHDgRwIAADSTaOPRmqU0wI/01KnZjyQWOxroR06izG8OAABgUYjWVu9bSgPOj8ysylTAjySqCvxIAACAZhLd/3fXUhowr21eZCP4kcQMooF+ZKH6AAAAi0rU/VfHUuq4kiaz1nXljdR7/0hisQM/EgAAoJlEnX/+ZCn1XtXoUZn4kUTlsah+ZMhdGAEAAJpMtPIP+3MO/MhdBWmeN4kfSVQVC+xHoiMBAKDVzOo4hh9JVBWL6kcKOhIAAFrOrI5j+JFEVdEWP9L6vEGxzV9PaqIjAQCg1eBHEk2PVviRmcdSTxbSy56aAAAAbWQR/Ej/Yw9dNUtX8zx00d/cVTNz7ulctFqToxV+ZNpi9EtGdCQAACwMOccxzy3HPYVSrx8ZqCMj22O4rfWn1JG5hZmuQ8ZftHyRonV+pLUQHQkAAIuH8ziWvgTbvBw7U02MS7yb5kfm6q3cS9TTeayKMKQL69vc8ftty4WXkm3xI81ldCQAACw2lfmRmbW1+ZEZJedXWiGSq5AZGRvK0jq23FFZK5g9ujZksaVkK/xIcVxn4zpXkkttAABgAYh2Xm5aSg0yhf63UQP8SI/gK63tMiXWPC456EpeYutcm7ao0Qo/EgAAYAmx68jbdX9pRHH7jq4Kcz8/MjIcuxD5lVtiKrlcyehPFTs0q2vrAjdkkaItfiQAAMCyEW09W7evCHhojdyVj2lq9iPTXqBVflnFVq7WdDXJdRZzpa3ZyqUF8SPxIwEAAJpJtPFozVJq044uHZkpr9mPdKmxol5jWqJFNlzVrMkDdaR/wJ5UuZu2SNFAP3ISBX9uAAAAC0W0tnrfuc5mPZoGZObtXPzI9EK4aRfiUForFPIj/eOMDdnqGVKIbF28aJofCQAAAGOi+//uWkrvMimUvHntSflczo80daTfzJtGR/rdRPNtrtb0aMF0p2aqwDEH9tXAaJofCQAAAGOi7r869hW2C2syIlLcU971+5FWtTQ7HZnuwtpRrlYr5Cm61rZLEZYL/EgAAIBmEnX++ZNz3V2L0eNHRqmLcsbM5f6RfpmVWba2Mut4KsR3BaWnF7/c9NQhYvxIAACAphKt/MN+d/HIPZ0duU+RnNSp048kFjvwIwEAAJrJrB6mUef5kcRiB34kAABAM5mVjsSPJKoK/EgAAIBmgh9JND3wIwEAAJoJfiTR9MCPBAAAaCY5OtK8EDsybv2TqTwGP5KoKvAjAQAAmoldFHouxM4su8CPJKoK/EgAAIBm4vMjQ3Skqy1+JFFV4EcCAAA0k2jn5aZznePZ2ZkK+JHETAM/EgAAoJnYdWTI2ZDi8CPHhfiRRFWBHwkAANBMoq1n6851YX7kpEK6pP7na3tKPOdxjslN6E8e2NxV0z+YkCGF1wmv1pzAjwQAAGgm0cajNfsKt2p0lURzul47Sj3b2qoR068humpKHZlbmJGMkfHQbU8dj9z0DNvaReAGhjecUeBHAgAANJNobfW+fYVhMVp1pIva/Ei/QgrXT55tMfWcVdUV1We5OjL9atXEgWP2dOcZpDVP7jbOIvAjAQAAmkl0/99dS6mhINNkqlnf1uZH5uqqXKXoV3u5az0iMnc81mrWtK7ykJG7NtzcfLM7M63/85lF4EcCAAA0k6j7r45znVsm+itE9fqRVvUTLrNcQsqq7dIlVk1m1Wee5P7tCteRuQmtH0KIjizxMYZ/ziGBHwkAANBMos4/f3KuK6sjpWHnR4YLF6s+M9967DqPIPOINteATW1q1ZGeVSGbY32bq4aniRDJOwn8SAAAgGYSrfwj5zmHVnEmNhGZLpnj+ZFWUWXdioyaMcWNS1Za0/pHZVVpuSrTbDuNjjQrBG6vv6REWD80V+BHAgAANJOc52uXps7zIyfyyKMj/dLKbOWSm2a1XEHm0ZGutRmlZWbz53dtdW5Na8OQOkXDpb+tgR8JAADQTGalI+fyPBuP/vM0KaSZTPFn7cgvyDxJXILV+ho7BKVn5NaR+MtnqiNDKuNHAgAANJPW+5GBqsslMUvrSI+es77N1ZrWt5nxm8uurfNrwcANzB1z6QgXkTF+JAAAQFNpvR+ZViQe387TPPytmdaqtyrs2jWAkISlm5TIUzQKpcKPBAAAaCZBOjLyPmXbylyer211AV01rWszcjBXxpl+pJnBdArTNT11QgaQu8pVWMgRnG/gRwIAADQTn0CMjCfZRLZrtNNM6szl/EhiIQM/EgAAoJnkGI1paWh1JV1acy5+JLGQgR8JAADQTKKdl5uW0jzSNa0L+JFEVYEfCQAA0EzsOvLv1W4/0qUv8SOJagM/EgAAoJlEW8/Wnevyzo/01MGPJKoK/EgAAIBmEm08WrOvcFyjbZ3UNuvjRxJVBX4kAABAM4nWVu/nV/JeYWNdhR9JVBX4kQAAAM0kuv/vrqU0+DqbdJP0W/xIoqrAjwQAAGgmUfdfnZwa3pv+uMCPJKoK/EgAAIBmEnX++ZNznXGLH/9cdvotfiRRVeBHAgAANJNo5R9Oo9HeIHV/nwb6kVHYs/7SQ3VlcKWKvM/FdhX6B+YZD4EfCQAA0EwKPzg7kNr8SL+cje4+qzpEq0XGI7A9FeLgR3X7h50rdAJF7UIGfiQAAEAzmZWOrN+PHCuq9Ku/pj+JVY9aS3Jzhgw7cNMysnjKrtsS+JEAAADNpPV+ZEZLudRVrmHpajW7vop25+9xLgqvnsCPBAAAaCat9yMz+iyznCvdAlOlK/gdyqLd+ZubW2RNu9g6Ej8SAACgmfh0ZOS+OjuX+v1IjyzzGIRpRWgKNetba32XmAtReB4Rae2ikDhegMCPBAAAaCZBOjKjuqyF6VVS+/mRIdIqROdFKZcxtqlJj/pMt/Vr1nR31gG4SpZTR+JHAgAANJNQHekvTJeMXxvlR7oqeIRdWjt6RJtVbroqB47HryzNCp5eFiPwIwEAAJpJtPNy077iLyRPR2YWxq+N8iPDdZ4pH1161MzsGkOuyMsVjv4tDemi1YEfCQAA0EycOlIcAjFQRzbNj3TVydWRZmFGHfpFpLns6cslB/2pFltExviRAAAATSXaerbuXDeFjmzg87WL+pEu9VZ02d9RbsNy5YsU+JEAAADNJNp4tGYpNZCm+pEul9G0G0v7kS7pZm1r5swMIDaEo0diEjF+JAAAQFOJ1lbvO9ctlh9JtDTwIwEAAJpJdP/fXec64/Ias8RcqNmPJBY+8CMBAACaSdT9V8e+wuY+utRkumQMfiRRVeBHAgAANJOo88+f7Cvcc9mmEymGlMSPJKoK/EgAAIBmEq38w3Irco9AzFx2Y20VRRF+JFFV4EcCAAA0k/JP0PaDH0lUFfiRAAAAzWRWOhI/kqgq8CMBAACaCX4k0fTAjwQAAGgm+JFE0wM/EgAAoJnYdaT50JdJeaaa2XC8UIMf2f9w+H7/6P2Hw/f7Rywv6nKMHwkAANBUnDoyvZB+65eSk7f4kURVgR8JAADQTHx+pKSMyUm52GzIdMPxAudHElUFfiQAAEAziXZeblpKA248bk+HH0lUHfiRAAAAzcSpI83zI11vMw3HC/iRRFWBHwkAANBMoq1n677VwRfWZN7iRxJVBX4kAABAM4k2Hq1ZSsOu186UpCfB8SOJqgI/EgAAoJlEa6v3fauL+JFpHVmnHxlFUW5J0QpEcwI/EgAAoJlE9//d9a2+e0KkOJSl+VqnH5n2Ta0lGW/V2sTMWaicmF3gRwIAADSTqPuvjqXUfQ2NWWiWR1FUmx+Z1o7+hbSCNJu7cppaEylZc+BHAgAANJOo88+f7CscRqNrpjujI+d1fqRHF5qv1vrWVUjJOQZ+JAAAQDOJVv5huSWkXz76z5IcU6cf6Sd2K8hcM9IstL4likahDxA/EgAAoJnk3Fe8NE3zI63K0lofHVlDeM5MNQM/EgAAoJnMSkfWfL22x4yMvedHxm6NiI6cXWT+QP7AjwQAAGgmi+BHugSfS0fGd6WnKxs6cnbh+fzNwI8EAABoJgviR2bUSXzXd/SfJenJZha6WhGFAj8SAABgAXDqyCjgYhpxXMQttZ8fmTnxMaNRzMluj46MHcLUXEuUjnARGeNHAgAANJX/D10yD2asNSm9AAAAAElFTkSuQmCC" alt="" />

  改造原则:鉴于可能出现同一个表中多条记录丢失,我们可以先记录那些丢失记录的主键,然后批量的根据主键值去一次性导入到订阅端,这才是简化的关键;

  创建log表;

CREATE TABLE monitor.dbo.tmp_byxl_ReplLostlog
(
id INT IDENTITY NOT NULL PRIMARY KEY , --记录序列号
tbname VARCHAR(50) , --表名
t_type VARCHAR(10) , --类型
pkey VARCHAR(100) , --主键名称及键值
createdate DATETIME DEFAULT GETDATE() , --创建时间
yn TINYINT DEFAULT 0 --是否手动填补;0未填补,1已填补
)

  对于update命令,我们需要的信息包括表名(test4)、操作类型(U)、主键名及键值(id=@pkc1);参照下图,在存储过程中的相应位置添加insert语句,同时注释掉报警语句;

  aaarticlea/png;base64,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" alt="" />

  再查询一下记录表,我们要的信息就都在这里了。同时,由于关闭了报警,分发代理在下一次重试后可以正常继续执行下面复制命令,如果遇到多个记录丢失的情况,只要去记录表中查询即可;

  aaarticlea/png;base64,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" alt="" />

  对于delete命令,正如之前所说,已经删除的命令就没有必要再找回了,打算留一个日志的童鞋可以参照update的处理方法,修改订阅端对应的del存储过程,insert到记录表中,或者干脆直接注释掉报警语句,忽略掉delete操作即可;

5、手动补数

  根据记录表中的记录,可以查看截止到当前时间点,之前所有的丢失记录情况,拼一下sql,用DTS就可以完成批量导入;

注意:

  1、此方法不建议长期使用,建议手动补数后注释掉insert语句,并打开报警语句;

  2、手动补数后,请将记录表中已操作的记录set yn=1,作为标记,以免重复insert时主键冲突;

  3、对于联合主键,存储过程中默认以@pkc1~@pkcn表示,请注意记录表中pkey字段的长度,以免溢出;

  4、示例中仅列出了int型主键,对于varchar型主键,请自行调整insert语句中pkey列的值;

最后再次强调,修改订阅端存储过程存在风险,请谨慎操作~