【问题标题】:Best way to backup SQL server schema备份 SQL Server 架构的最佳方法
【发布时间】:2018-02-26 02:53:12
【问题描述】:

备份 SQL Server 架构的最佳方法是什么? 我的架构包含(文件组、文件流、表、表之间的关系、约束、用户...)

我想备份架构及其相关对象,以便稍后将其还原到同一数据库或具有其他架构和对象的不同数据库。

我尝试使用文件组备份,因为它有一些限制(数据库必须是 FULL 恢复模式,必须备份主文件组和日志),但我想一次只备份一个架构。

有任何想法将架构备份到文件(访问或任何格式)或任何方式。

【问题讨论】:

  • 文件组备份无济于事,因为架构存储在主文件组中。您是否打算仅备份模式或模式和数据?当您说架构时,您是指所有数据库对象的元数据吗?
  • 我要备份架构和该架构拥有的所有对象(数据和元数据)
  • 您可以备份整个实例,只需从MSQLDATA 目录复制数据即可。

标签: sql-server schema backup


【解决方案1】:

您可能想查看此document,从 Microsoft 将架构引入 SQL Server 时开始。

最简单的回答是数据库是备份和恢复的单位。 架构是安全单位。

您应该备份整个数据库,而不仅仅是一个架构。

【讨论】:

  • 来自链接“用户模式分离,在 SQL Server 2005 中引入,意味着该表不再由任何用户拥有;它属于一个模式。反过来,该模式由一个用户。”,我想备份特定架构拥有的所有对象
【解决方案2】:

除非您有一个非常大的架构,否则您只需编写脚本即可。 在 SSMS 中右键单击您的数据库,然后选择任务 - 生成脚本... 有一些对话窗口要通过,如果你愿意,你可以只选择某些 db 对象。我不确定这是否涵盖文件组或文件流,但您提到的所有其他 db 对象都已涵盖。你可以只用一张桌子试试看会发生什么。

请注意,在“设置脚本选项”对话框中,单击“高级”并在模式窗口中向下滚动到“要脚本的数据类型”,并确保选中“仅模式”。 您可以为模式、数据或两者编写脚本。如果您的数据库包含大量数据并且您尝试编写脚本,它几乎肯定会导致 SSMS 崩溃。您在评论中说过您还想备份数据。这是我知道在不备份数据库中所有其他模式的情况下实现此目的的唯一方法。

大多数其他选项都是不言自明的。该工具将生成一个 SQL 脚本。您可以在一个空数据库上运行它来构建您编写脚本的数据结构(或者如果您愿意,也可以只使用一个模式)

我希望这会有所帮助。

【讨论】:

    【解决方案3】:

    在 SSMS 中右键单击您的数据库,然后选择任务 - 备份... 选择保存整个架构的目标位置。我通常保存到一个 .bak 文件并保存在项目存档中。

    【讨论】:

    • 它用于备份类型(完整、差异、日志、文件组),但不用于架构
    猜你喜欢
    • 2010-11-17
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2010-09-05
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多