SQLServer发布订阅进阶之表分组同步

 

  1. 表分组后的发布

    当数据量过大查询太慢时,开发会对表进行分组,如下:

    这时数据库会产生多个数据文件,如何同步这种状态下的数据库呢?

    1. 发布和订阅参照以上方法进行,完成后订阅库发现只有一个数据库文件和一个数据库日志。

    2. 手动选择:打开SMSS—复制—本地发布—发布数据库—右键—发布属性

    3. 手动把以下几项选择改为:True

    4. 重新生成此DB的快照,在订阅端DB上手动生成一遍相关表的文件组,重新同步完成即可。

     

     

     

  2. 发布/订阅的检查、排错和快照初始化:
    1. 快照初始化:

      有时候发现数据不同步或同步有故障时,需要手动重新生成新的快照同步,这时就需要如下操作:

      SSMS中找到复制-右键-启动复制监视器:

      选中要重新生成快照的发布项目,这里右键后有2种生成快照的方式,如下图:

      推荐第1种, 1是完全初始化订阅库重新同步数据,2是单纯只生成新快照。

      选择"重新初始化所有订阅"后, 选择"使用新快照"并勾选"立即生成新快照", 点击"标记为要重新初始化"按钮, 开始初始化快照:

      此时点开"代理"标签页, 应该能看到生成快照的完成度百分比, 等待它100%时表示快照生成完毕.

       

       

    2. 发布/订阅的检查:

      再点开"所有订阅"双击当前订阅, 弹出详细的发布/订阅项目记录, 在这里可以很清晰的看到所有的同步记录, 仔细查看有没有错误:

      1. "分发服务器到订阅服务器的历史记录": 可以查看传递过去多少表和记录等.

      2. "发布服务器到分发服务器的历史记录": 查看发布服务器生成快递和日志错误.

      3. "未分发的命令": 查看当前还有多少条事务没有同步到订阅服务器上.

      4. 使用"跟踪令牌"查看发布/订阅库的实际延迟:

      1. 确认发布/订阅中数据库的所有表的发布状态:

        有时候创建好发布/订阅, 有的表缺少一些属性会导致发布自动过滤掉一些表, 所以每当创建好新的发布/订阅后, 我们都应该再确认一次数据库中所有表都正常发布出去了.

        确认方式如下, 打开-ssms实例-复制-发布项目-右键-属性:

        找到项目-表, 这里一点要双击展开, 因为有时是折叠的, 不展开看不到未正常发布的表, 如下:

        以后有新加表或存储过程等, 也可以来这里勾选上增加发布的新表, 然后重新初始化生成快照.

      2. 生产日常使用中经常会创建新表, 新表是不会自动发布的, 需要手动勾选再重新生成快照, 如下:

        勾选新表确定发布, 然后去生成新快照:

        以上二种操作方式生成快照都可以.

posted @   天海沙  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2022-12-02 windows server的应用软件限流QoS
点击右上角即可分享
微信分享提示