Ste*_*eam 93 sql sql-server sql-server-2008
我实际上是在尝试创建一个脚本(在Sql Server 2008中)从一个备份文件中恢复一个数据库.我做了以下代码,我收到一个错误 -
Msg 3101, Level 16, State 1, Line 3
Exclusive access could not be obtained because
the database is in use.
Msg 3013, Level 16, State 1, Line 3
RESTORE DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
IF DB_ID('AdventureWorksDW') IS NOT NULL
BEGIN
RESTORE DATABASE [AdventureWorksDW]
FILE = N'AdventureWorksDW_Data'
FROM
DISK = N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\Backup\AdventureWorksDW.bak'
WITH FILE = 1,
MOVE N'AdventureWorksDW_Data'
TO N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\DATA\AdventureWorksDW.mdf',
MOVE N'AdventureWorksDW_Log'
TO N'C:\Program Files\Microsoft SQL Server\
MSSQL10_50.SS2008\MSSQL\DATA\AdventureWorksDW_0.LDF',
NOUNLOAD, STATS = 10
END
Run Code Online (Sandbox Code Playgroud)
小智 183
希望这会奏效.
Dav*_*son 87
我假设如果您正在恢复数据库,则不关心该数据库上的任何现有事务.对?如果是这样,这应该对你有用:
USE master
GO
ALTER DATABASE AdventureWorksDW
SET SINGLE_USER
--This rolls back all uncommitted transactions in the db.
WITH ROLLBACK IMMEDIATE
GO
RESTORE DATABASE AdventureWorksDW
FROM ...
...
GO
Run Code Online (Sandbox Code Playgroud)
现在,还要注意一个额外的项目.将数据库设置为单用户模式后,其他人可能会尝试连接到数据库.如果成功,您将无法继续还原.这是一场比赛!我的建议是一次运行所有三个语句.
And*_*ski 39
在恢复数据库之前执行此查询:
alter database [YourDBName]
set offline with rollback immediate
Run Code Online (Sandbox Code Playgroud)
恢复后这一个:
alter database [YourDBName]
set online
Run Code Online (Sandbox Code Playgroud)
在还原数据库之前,请使用以下脚本查找并终止所有已打开的数据库连接.
declare @sql as varchar(20), @spid as int
select @spid = min(spid) from master..sysprocesses where dbid = db_id('<database_name>')
and spid != @@spid
while (@spid is not null)
begin
print 'Killing process ' + cast(@spid as varchar) + ' ...'
set @sql = 'kill ' + cast(@spid as varchar)
exec (@sql)
select
@spid = min(spid)
from
master..sysprocesses
where
dbid = db_id('<database_name>')
and spid != @@spid
end
print 'Process completed...'
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助......
归档时间: |
|
查看次数: |
182849 次 |
最近记录: |