日志传送:为什么选择无恢复模式?

Pha*_*mer 14 sql-server log-shipping standby

配置LogShipping for SQL Server时,可以选择辅助数据库处于"无恢复"模式或"待机"模式.无恢复意味着您在日志传送过程中无法访问数据库.Standby为您提供只读访问权限,如果您选择在还原即将发生时断开用户连接的选项,则看起来不会干扰日志传送过程.这对我来说就像待机模式的额外好处,但据我所知,该文件没有提到任何不利影响.

我想知道为什么有人会选择使用无恢复模式?我能想到的唯一合理的原因是,待机模式是否会导致显着的性能下降(但是在文档中没有提到类似的内容),或者是否存在某些安全要求以主动阻止任何人看到辅助数据库的内容(这似乎很少/不太可能).

任何人都可以告诉我选择无恢复模式的优势应该是什么?

Joa*_*son 17

使用NORECOVERY模式时,不会访问目标数据库,因此数据库不必关心未提交的事务.日志可以"按原样"恢复并保留在该状态.

使用STANDBY模式时,数据库将还原为NORECOVERY,然后分析并回滚日志中的所有未提交的事务.然后它可以为用户提供只读访问权限.还原下一个日志时,数据库将断开所有用户的连接,并在还原之前再次从上一个日志中转出未提交的事务.

如您所见,STANDBY恢复时可能会产生额外的额外开销,具体取决于您的事务量.

本文在My World of SQL中提供了更多详细信息.