![SQL Server“主”数据库中的表会导致问题吗?](https://linux22.com/image/613951/SQL%20Server%E2%80%9C%E4%B8%BB%E2%80%9D%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E7%9A%84%E8%A1%A8%E4%BC%9A%E5%AF%BC%E8%87%B4%E9%97%AE%E9%A2%98%E5%90%97%EF%BC%9F.png)
大家,请对我好一点...由于我们的 DBA 辞职了,所以我只是一个“偶然”的 DBA,所以我完全是 DBA 新手...
您看,我有这个应用程序“ESET 远程管理服务器”(ERAS),它将其日志和分析存储在(最初)本地 Access 数据库上。
决定将其数据库迁移到 SQL Server 2008 R2 机器。
ESET(该软件的制造商)提供了非常有用的工具来执行此类迁移;不幸的是,作为 DBA 新手,我没有意识到我必须首先创建自己的数据库(在 SQL Server 端)并将该数据库指定为 ERAS ODBC 连接的“默认”数据库。
现在,迁移工具已经成功在“主”数据库中创建了一大堆表。
我的问题:
我应该保持现状不变,还是应该将 ERAS 数据库重新迁移到其他数据库?
如果您建议我执行重新迁移,我的计划是(1)创建一个新实例,(2)在新实例中创建一个新数据库,(3)在 ERAS 服务器上创建一个指向步骤 2 中新数据库的新 ODBC 系统 DSN,(4)使用 ESET 的迁移工具从当前 DSN 迁移到新 DSN。
您认为我漏掉了哪一步吗?
提前感谢任何指导。
答案1
我建议将其迁移到专用数据库。以下是几个原因:
- 如果您想将此数据库迁移到 SQL Server 的其他实例,则无论如何都需要执行此操作。您无法迁移主数据库。
- 主数据库不适用于用户数据。它旨在成为保持实例正常运行所需的数据和代码的中心点。在主数据库中添加内容会使情况变得混乱。
- 将内容添加到 master 时需要不必要地更改 master 中的安全性。
在您的环境下,这些可能不是什么大问题,但我始终提倡最佳做法,除非有确凿的商业案例可以采取其他做法。
关于您的重新迁移计划,我认为您不需要创建新的 SQL Server 实例。只需为 ERAS 创建新数据库并重新进行迁移即可。然后,您可以清除 ERAS 在其中创建的对象。在您的 ODBC 连接中,您可以指定连接要使用的数据库,因此您应该能够将其更改为指向新数据库。
因此,我建议采取以下步骤:
- 创建新的数据库(称为 ERAS 或其他名称)
- 如果尚未创建新的 SQL 登录名(在服务器级别),请创建它
- 将新的 SQL 登录名添加为新数据库中的用户(最有可能是作为 dbo 角色的成员)
- 更改 ODBC 连接以指向新数据库(如有必要,使用刚刚创建的新登录凭据)
- 执行迁移步骤,现在应该在新数据库中创建所有必需的架构对象和数据
- 清理主服务器。此时,您最好手动删除 ERAS 对象,而不是从备份中恢复。恢复主服务器并非易事,如果出现问题,可能会导致整个 SQL Server 实例无法使用
- 利润!