将测试和生产数据库分离,还是只使用单独的SQL数据库进行测试和生产?

82次阅读
没有评论

问题描述

一个刚接触SQL Server的用户提出了一个关于测试和生产数据库的管理问题。他正在为一个服务创建测试和生产数据库,并且预计会频繁清空测试数据库。此外,他还需要不同的复制和审计日志策略。他想知道是否将这两个SQL数据库放在同一个SQL Server上是有意义的,因为Azure Portal似乎更容易管理,或者是否创建一个专门的逻辑SQL Server来管理测试和生产数据库更有意义。

解决方案

在选择是将测试和生产数据库放在同一个SQL Server上,还是创建一个专门的逻辑SQL Server来管理它们时,需要考虑不同的因素。以下是两种方案的比较,希望能帮助你做出决策。

方案1:使用相同的SQL Server

将测试和生产数据库放在同一个SQL Server上的优点是简单和便捷。这种方法在以下情况可能更合适:
– 如果你的环境中需要创建大量的数据库,跨多个开发/测试环境,而SQL Server的数量是有限的。
– 如果你有两个需要作为同一个ARM模板的一部分部署的数据库。

方案2:使用独立的逻辑SQL Server

选择将测试和生产数据库放在独立的逻辑SQL Server上可能更具优势,尤其是在生产环境的情况下。以下是选择这种方案的原因:
成本相同:在Azure中,你按数据库的层次(tier)计费,而不是按数据库服务器计费。因此,无论是将它们放在同一个SQL Server上还是不同的SQL Server上,费用都是相同的。
隔离性:通过使用独立的逻辑SQL Server,你可以在测试和生产数据库之间提供隔离,从而保护它们不受彼此影响。
用户隔离:如果你不使用包含用户(contained users),那么在测试和生产数据库之间共享的用户可能会导致问题。例如,如果你在两个数据库中使用相同的用户,那么在生产中更改密码也会要求在测试中进行相同的更改。

此外,独立的逻辑SQL Server可以帮助提高安全性,通过设置防火墙规则,限制只有少数经过验证的机器可以访问生产数据库。这有助于防止意外的测试操作对生产数据库的影响。

补充说明

无论你选择哪种方案,都需要仔细考虑业务需求、安全性和隔离性。对于生产数据库来说,安全性至关重要,因此应该采取适当的措施来保护其数据和访问权限。

请注意:在考虑任何更改之前,务必充分备份你的数据库和相关资源,以避免任何意外的数据丢失。

希望这些信息对你在测试和生产数据库的选择方面提供了一些帮助。根据你的实际需求和业务情况,做出明智的决策,以确保你的数据库管理策略能够满足预期的目标和需求。

正文完