我有一个使用完整恢复模式的 SQL Server 2005 数据库。如果我执行以下命令:
ALTER DATABASE test SET RECOVERY SIMPLE;
ALTER DATABASE test SET RECOVERY FULL;
或者
BACKUP LOG test WITH truncate_only;
然后尝试运行日志备份:
BACKUP LOG test TO DISK = 'backupfile.bak'
我收到错误消息:
无法执行 BACKUP LOG,因为没有当前数据库备份。
问题:
在不运行备份日志命令的情况下,如何检查是否无法进行日志备份?
last_log_backup_lsn
中将为空sys.database_recovery_status
。在进行日志备份之前,您需要对数据库进行完整备份。
执行下面的T-SQL,看看是否可以进行日志备份:
注意: sys.database_recovery_status是一个未记录的系统视图。如果last_log_backup_lsn的值为 NULL,则表示数据库没有维护日志备份序列并且处于自动截断模式。请参阅以下 Microsoft 知识库文章:
在备份数据库的事务日志之前,您必须执行完整的数据库备份
下面是来自 SQLSkills 的脚本,用于检查您的数据库是否处于“伪简单”模式。