我想使用 Service Broker 为我们的生产数据库在 SQL Server 上设置一堆事件通知。
我在我的测试机器上设置了一个新数据库,一切正常。问题是,我宁愿不必为此通知目的部署整个数据库,而且我不能使用已经存在的用户数据库之一(无论如何,这将是一团糟)。
如果可能,我最好将通知对象部署在 上master
,但首先我想确定这确实是个好主意(如果确实如此)。
来自联机丛书:
不要在 master 中创建用户对象。如果这样做,则必须更频繁地备份 master。
联机丛书建议我不要在 中创建用户对象master
,但在这种情况下,我认为这不是什么大问题,因为我真的不在乎我是否最终会丢失一些通知数据。此外,我们已经master
经常备份我们的数据库。
在这种情况下我应该使用master
数据库还是其他东西?
master
在设置之前,我应该了解有关数据库、Service Broker 或事件通知的信息吗?
在继续之前,我想知道关于此实现的几个问题:
如果微软以某种方式在新版本中创建了一个具有完全相同名称的对象,会发生什么情况?
如果数据库迁移到新服务器,谁会知道 master 中有东西要迁移?
如果您的对象损坏了 master 数据库会怎样?
在 master 中拥有额外数据会对实例产生什么不利影响?
如果在此实例上执行就地升级会发生什么情况?(即,将 2008 升级到 2008 R2)
从备份中恢复整个实例会受到怎样的影响?
其中大部分我不知道答案,但当我考虑将对象放入 master 时,它们是出现的问题。