每个月我都必须生成一个新的快照以进行复制并重新初始化 SQL 2005 中的订阅。我真的很想自动化和安排这个过程,但是我还没有找到方法。
我不是 DBA,我只是在那里盲目探索,我绝对不想搞砸任何事情。有什么想法吗?
答案1
如果我们知道这是什么类型的复制以及它是推送订阅还是拉取订阅,那将会很有帮助。我将在这里做出一些重大假设,并假设您使用以下内容,我认为这是最常见的复制设置:
- 事务复制
- 推送订阅
- 发行商处运行的分销商
1. 创建数据库快照的计划1. Create a schedule to create the database snapper
如果你查看分销商处的 SQL 代理作业,你应该会看到一个名为这样的作业:
服务器名称-数据库名称-出版物名称-1
此外,它将被归入名为 REPEL-Snapshot 的类别。
设置复制时,您将获得按计划运行快照的选项。如果您选择这样做,您应该会在计划下看到它,否则您可能会看到一个一次性计划,该计划自上次运行快照以来未启用。保留此计划并根据您的喜好创建另一个计划。
2. 重新初始化订阅
这将为所有订阅者重新初始化发布。您可以创建一个 SQL 代理作业来随时运行它。有关更多详细信息检查 msdn。
exec sp_reinitsubscription @publication = 'publication_name', @subscriber = 'all'
答案2
我不熟悉复制,所以请记住这一点,但如果您在对话框左上角看到一个脚本按钮,您可以保存该脚本然后安排作业。
如果脚本功能不可用,您可以采取跟踪 SSMS 的活动来查看其正在执行的操作 - 然后根据该操作和文档来创建脚本。