事务日志备份失败,并显示“由于正在使用数据库而无法获得独占访问权限”

问题描述 投票:1回答:1

我正在尝试日志传送故障转移测试,并且旨在使数据库进入还原模式的步骤失败,并出现错误“由于正在使用数据库而无法获得独占访问”。

[此操作是通过SSMS选择“事务日志”,然后在“媒体选项”下选择“备份日志的尾部”来执行的,该操作应使数据库处于“恢复模式”。

失败后,我尝试先将数据库置于单用户模式,然后使数据库脱机,但两个命令均无效(或失败)。

我已经针对测试数据库重复了该操作,并且没有问题。 T-SQL如下:

BACKUP LOG [TESTDB] TO  DISK = N'U:\MSSQL\Backup\TESTDB.bak' WITH  NO_TRUNCATE , NOFORMAT, NOINIT,  NAME = N'TESTDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 10, CHECKSUM
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'TESTDB' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'TESTDB' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''TESTDB'' not found.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'U:\MSSQL\Backup\TESTDB.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

我还检查了是否有任何阻塞或正在运行的事务,但未显示任何内容。

有任何想法吗?

sql-server backup transaction-log log-shipping
1个回答
0
投票
use testdb go alter database testdb set single_user with rollback immediate go use master BACKUP LOG [TESTDB] TO DISK = N'c:\temp\TESTDB.bak' WITH NO_TRUNCATE , NOFORMAT, NOINIT, NAME = N'TESTDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, NORECOVERY , STATS = 10, CHECKSUM GO
© www.soinside.com 2019 - 2024. All rights reserved.