多租户和兼职

时间:2009-12-21 14:03:00

标签: sql-server multi-tenant

HI那里,

我必须使我的应用程序符合SAAS。为了实现多租户,我是分区数据的东西,每个分区都是租户。这个分区将动态完成。

有人做过这样的事吗? 您认为更好的方法是什么?

我正在使用SQL 2005

此致 DEE

1 个答案:

答案 0 :(得分:6)

每个分区方案限制为1000个分区,并且您只能在单个字段上进行分区,因此如果您想要超过1000个实例的多租户,您将不得不跳过更多的环节。您可以通过在多个分区表之上使用分区视图来扩展限制,但这会增加管理开销。您可以使用DMV并创建自己的自动化系统,为每个客户/租户生成新的分区并管理问题,但它将特定于您的应用程序而非通用。

目前在SQL Server中没有自动动态分区,在PDC09中提到了与SQL Azure未来路线图相关的内容,但我没有听说过SQL Server。

您的备选选择是每个客户端的数据库或SQL实例,这种方法的好处在于,如果需要,您可以给自己提供更大的扩展机会,如果您开始查看更大的数据中心,则可以开始平衡服务器场中的SQL实例等。如果您自动将所有数据放在一个数据库中。

需要考虑的其他事项:

安全性:虽然您在具有分区的单个数据库中拥有数据,但您没有数据保护。您可能会冒险将一个客户端的数据暴露给另一个客户端,并且代码中的任何一个错误都非常微不足道。

升级:如果所有客户端都访问同一个数据库,那么升级将是一种全有或全无的方法 - 您将无法轻松地将某些用户迁移到新版本,而将其他用户保留原样。

备份:您可以使每个分区占用一个单独的文件组,并尝试管理该情况。开箱即用可以说,每个客户的备份都混合在一起。如果单个客户端要求回滚给定数据,则必须提前仔细计划如何执行该操作而不影响系统的其他用户。