【问题标题】:How are Azure BACPAC backup files different than SQL Server BAK files?Azure BACPAC 备份文件与 SQL Server BAK 文件有何不同?
【发布时间】:2017-01-10 03:32:30
【问题描述】:

BACPAC 和 BAK 文件在概念上是否相同?可用于备份/恢复数据库的单个自包含文件?

【问题讨论】:

    标签: sql-server azure-sql-database


    【解决方案1】:

    BACPAC 文件在事务上不一致,这可能导致数据库中的数据在表之间不一致。这就是我的意思:如果您开始创建 BACPAC 的过程,并且在此过程中,源数据库中的一些数据会更新,那么 BACPAC 文件可能包含表 A 中的数据,因为它是在下午 1:00 时的数据,以及来自表 X 与下午 1:03 相同...但如果表 A 也在下午 1:03 更新,则如果导出过程在下午 1:00 导出表 A 的数据,则 BACPAC 文件中可能不存在更改。

    从执行导出时没有写入活动的数据源创建 BACPAC 导出非常重要。

    例如,在 Azure SQL 数据库中,最佳做法是首先创建相关数据库的副本,然后在副本上(而不是在原始源数据库上)运行导出到 BACPAC。创建数据库的副本在事务上是一致的,而导出到 BACPAC 则不是。

    【讨论】:

      【解决方案2】:

      bacpacBak 文件都是当时数据库的快照。

      对于bacpac 文件,我能想到的唯一区别是,它验证架构绑定,如果它们不正确则失败,除了两者相同。一个在天蓝色,一个在本地

      【讨论】:

      • “当时存在的数据库的两个快照”并不完全正确。 BAK 文件是整个数据库在某个时间点存在的快照。但是,Bacpac 文件是在进行备份时数据库在一段时间内如何存在的快照。即:如果备份需要 10 分钟,则每个表都会备份到 bacpac 文件,因为它在这 10 分钟内备份到特定表时存在,而不管其他表可能如何更改。这与使用 BAK 文件的整个 DB 的单个时刻相反
      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2012-01-19
      • 2019-12-07
      相关资源
      最近更新 更多