数据库备份和数据层应用程序导出的区别

vai*_*dil 7 sql-server

我不知道这是否是一个糟糕的问题,但我不明白 SQL Server 中普通数据库备份和数据层应用程序之间的区别。我知道备份不能从 SQL Server 导入到旧版本的 SQL Server,但是数据层应用程序确实可以用于此目的,我一直在使用它在服务器之间移动我们的一些数据库。从备份的角度来看有什么区别?

Spö*_*rri 10

备份是所有数据库页面的完整副本,或者是数据库的转储(如果您愿意),从第 0 页开始并按顺序写入备份设备。

数据层应用程序是一组脚本,它们将创建数据库对象以及随后将数据插入表对象的插入语句。

从备份的角度来看,数据层应用程序是数据库在某种状态下的快照,您可以在该状态下安装应用程序,但您不能恢复其他数据,而必须从另一个源复制数据。备份是数据库的一致状态,您可以进行日志或差异备份,用于将数据库恢复到某个时间点。

  • 有一个重要的警告:_“要使导出在事务上保持一致,您必须确保在导出期间没有发生写入活动,或者从 Azure SQL 数据库的事务一致副本导出。”_ ([azure docs](https://docs.microsoft.com/en-us/azure/sql-database/sql-database-export))。这意味着如果您从实时数据库导出数据层应用程序,您可以获得一组不一致的数据(至少对于 Azure Sql,不确定常规 Sql Server)。 (2认同)