SQLServer发布订阅进阶之表分组同步
- 表分组后的发布
当数据量过大查询太慢时,开发会对表进行分组,如下:
这时数据库会产生多个数据文件,如何同步这种状态下的数据库呢?
- 发布和订阅参照以上方法进行,完成后订阅库发现只有一个数据库文件和一个数据库日志。
- 手动选择:打开SMSS—复制—本地发布—发布数据库—右键—发布属性
- 手动把以下几项选择改为:True
- 重新生成此DB的快照,在订阅端DB上手动生成一遍相关表的文件组,重新同步完成即可。
- 发布/订阅的检查、排错和快照初始化:
- 快照初始化:
有时候发现数据不同步或同步有故障时,需要手动重新生成新的快照同步,这时就需要如下操作:
SSMS中找到复制-右键-启动复制监视器:
选中要重新生成快照的发布项目,这里右键后有2种生成快照的方式,如下图:
推荐第1种, 1是完全初始化订阅库重新同步数据,2是单纯只生成新快照。
选择"重新初始化所有订阅"后, 选择"使用新快照"并勾选"立即生成新快照", 点击"标记为要重新初始化"按钮, 开始初始化快照:
此时点开"代理"标签页, 应该能看到生成快照的完成度百分比, 等待它100%时表示快照生成完毕.
- 发布/订阅的检查:
再点开"所有订阅"双击当前订阅, 弹出详细的发布/订阅项目记录, 在这里可以很清晰的看到所有的同步记录, 仔细查看有没有错误:
- "分发服务器到订阅服务器的历史记录": 可以查看传递过去多少表和记录等.
- "发布服务器到分发服务器的历史记录": 查看发布服务器生成快递和日志错误.
- "未分发的命令": 查看当前还有多少条事务没有同步到订阅服务器上.
- 使用"跟踪令牌"查看发布/订阅库的实际延迟:
- 确认发布/订阅中数据库的所有表的发布状态:
有时候创建好发布/订阅, 有的表缺少一些属性会导致发布自动过滤掉一些表, 所以每当创建好新的发布/订阅后, 我们都应该再确认一次数据库中所有表都正常发布出去了.
确认方式如下, 打开-ssms实例-复制-发布项目-右键-属性:
找到项目-表, 这里一点要双击展开, 因为有时是折叠的, 不展开看不到未正常发布的表, 如下:
以后有新加表或存储过程等, 也可以来这里勾选上增加发布的新表, 然后重新初始化生成快照.
- 生产日常使用中经常会创建新表, 新表是不会自动发布的, 需要手动勾选再重新生成快照, 如下:
勾选新表确定发布, 然后去生成新快照:
以上二种操作方式生成快照都可以.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2022-12-02 windows server的应用软件限流QoS