关于在系统数据库上创建用户对象的建议

iva*_*nmp 1 sql-server-2005 sql-server sql-server-2008-r2 service-broker event-notification

我想在 SQL Server 上使用 Service Broker 为我们的生产数据库设置一堆事件通知。

我在我的测试机器上设置了一个新数据库,一切正常。问题是我宁愿不必为此通知目的部署整个数据库,而且我不能使用一个已经到位的用户数据库(无论如何,这将是一团糟)。

如果可能,我最好将通知对象部署在 上master,但首先我想确定这实际上是一个好主意(如果确实如此)。

网上书籍

不要在 master 中创建用户对象。如果这样做,必须更频繁地备份 master。

Books Online建议我不要在master. 此外,我们已经master经常备份我们的数据库。

master在这种情况下,我应该使用数据库还是其他东西?

master在设置之前,我应该了解数据库、服务代理或事件通知吗?

DFo*_*k42 5

在继续之前,我可以想到一些关于此实现的问题,我想知道这些问题:

  1. 如果微软以某种方式在新版本中创建了一个完全相同名称的对象,会发生什么?

  2. 如果将数据库迁移到新服务器,怎么会有人知道 master 中有一些东西要迁移?

  3. 如果您的对象损坏了 master 数据库,会发生什么?

  4. master 中的额外数据会对实例产生什么不利影响?

  5. 如果在此实例上执行就地升级,会发生什么情况?(即,将 2008 升级到 2008 R2)

  6. 从备份中恢复整个实例会受到什么影响?

其中大部分我不知道答案,但它们是当我考虑将对象放入 master 时出现的问题。