gpt4 book ai didi

sql - 备份特定架构的最佳方法?

转载 作者:行者123 更新时间:2023-12-03 00:12:05 24 4
gpt4 key购买 nike

我有一个 Multi-Tenancy 数据库,每个用户都有自己的架构。

备份单个租户(表架构)的最佳方法是什么?据我所知SQL Server不支持单个模式的备份(仅支持完整数据库)。

我需要备份结构和数据。它还需要自动化(理想情况下我也应该能够从 SSMS 调用它)。

我正在考虑将 ddl 和数据导出为 sql 语句。如果有某种方法可以将“生成和发布脚本”向导作为存储过程调用,我认为它会起作用吗?

我目前使用的是 Sql Server 2008 R2,但可以升级。

最佳答案

一些想法。

使用文件组

将每个租户拥有的表放入自己的文件组中。 SQL Server 能够 backup and restore individual file groups 。您还可以执行一些其他操作,例如根据需要使单个租户离线。例如:

CREATE TABLE tenant1.Table1 
(Column1 INT, Column2, INT)
ON Tenant1FileGroup

View 和单独的数据库

可能不是正确的方法,但它会起作用。将每个租户的表放在自己的数据库中,并使用租户模式中的 View 从“主”数据库引用它们。例如:

Tenant1DB
dbo.Table1
dbo.Table2

Tenant2DB
dbo.Table1
dbo.Table2

MasterDB
tenant1.Table1
tenant1.Table2
tenant2.Table1
tenant2.Table2

上面提到的 MasterDB 数据库中的对象是诸如以下的 View :

CREATE VIEW tenant1.Table1
AS
SELECT * FROM Tenant1DB.dbo.Table1

这样您就可以轻松备份/恢复单个租户数据库。此策略的一些其他好处:

  • 无需将主数据库置于单用户模式即可恢复单个租户。
  • 系统可以很好地扩展,因为租户数据库可以移动到其他服务器。

关于sql - 备份特定架构的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com