sql-server - SQL Server 恢复状态

标签 sql-server backup

恢复 SQL Server 数据库时,我注意到有 3 种不同的恢复状态可供选择:

  • 恢复恢复
  • 恢复但不恢复
  • 待机状态下恢复

我总是将其保留为默认值,但它们都意味着什么?

(最好是通俗易懂的)

最佳答案

门 killer ,

简单来说(而不是从 SQLBOL 中复制粘贴),这样您就可以理解这些概念:

RESTORE WITH RECOVERY 使用备份媒体文件(例如 fulldata.bak)将数据库恢复到创建备份文件时的状态。如果您想及时返回以将数据库恢复到较早的状态(例如开发系统时),这非常有用。

如果您想将数据库恢复到最新的数据(即,如果您进行系统灾难恢复并且不能丢失任何数据),那么您需要恢复该备份,然后恢复自该备份以来创建的所有事务日志。这是当您使用 RESTORE NORECOVERY 时。它将允许您将以后的事务日志恢复到故障点(只要您拥有它们)。

RECOVERY WITH STANDBY 能够将数据库恢复到部分日期(如上面的 NORECOVERY),但允许数据库仍以只读方式使用。新的事务日志仍然可以应用于数据库以使其保持最新(备用服务器)。当恢复完整数据库以恢复系统操作需要很长时间时,请使用此选项。 (即,如果您有一个多 TB 数据库,需要 16 小时才能恢复,但可以每 15 分钟收到事务日志更新)。

这有点像镜像服务器 - 但没有“每笔交易”实时发送到备份服务器。

关于sql-server - SQL Server 恢复状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954/

相关文章:

android - ADB 备份/恢复多用户应用程序?

.net - 每 4 分钟完整备份运行的 SQL Server 数据库的影响

database - 当我运行批处理文件以在 Windows 中自动备份 postgresql 数据库时,如何自动设置 PGPASSWORD

postgresql - pg_basebackup(复制)后无法启动 Postgresql 12

svn - 如何将 SVN 存储库热复制到现有位置?

sql-server - 在Sql Reporting Services 2005中优化大型报表的PDF导出

SQL Server 返回字段更改的行

sql-server - 使用 ADO.NET TransactionScope 与 NOLOCK 上的 ExecuteCommand 的高容量站点,直接读取未提交的内容?

sql-server - SQL 中的触发器问题

sql - 更新 MS SQL 列中的部分字符串