반응형
운영중인 디비일경우 사용자가 남아있어서 복원이 안되는 경우가 있습니다.
혼자서 쓸때도 뭔가[?]에 의해 프로세스가 남아있어서 복원이 잘 안되고
좀 짜증날때가 있죠..
그럴때 유저 킬하는 쿼리입니다...
use master
go
declare @dbname sysname
set @dbname = 'century21korea' -- substitute your database name here
set nocount on
declare Users cursor for
select spid
from master..sysprocesses
where db_name(dbid) = @dbname
declare @spid int, @str varchar(255)
open users
fetch next from users into @spid
while @@fetch_status <> -1
begin
if @@fetch_status = 0
begin
set @str = 'kill ' + convert(varchar, @spid)
exec (@str)
end
fetch next from users into @spid
end
deallocate users
--유저 킬하는 쿼리 디비 복원을 위해서는 디비가 사용중이 아니어야 한다.
RESTORE FILELISTONLY
FROM disk='e:\backup1205\1'
이걸 먼저 하셔서 이름 확인하시고...
RESTORE DATABASE century21korea1
FROM disk='e:\backup1205\1'
WITH RECOVERY,
MOVE 'z_Century21korea_dat' TO 'c:\DbData\century21korea.mdf',
확인한 이름을 이부분에 넣어주고..
MOVE 'z_Century21korea_log' TO 'c:\DbData\century21korea.ldf'
여기다가는 복원되서
만들어질 파일 지점 , 이름..
GO
참고가 되셨길.. 디비 복원의 경우 EM에서 잘안되는 경우가 있기 때문에..
데이타명이 틀리다니.. with move를 쓰라느니.. 사용자가 있다느니.. 하는
에러가..
use century21korea
RESTORE DATABASE century21korea
FROM disk='e:\backup1205\1'
WITH RECOVERY,
MOVE 'z_Century21korea_dat' TO 'c:\Program Files\Microsoft SQL
Server\MSSQL$BIGTRUST\Data\century21korea_Data.mdf',
MOVE 'z_Century21korea_log' TO 'c:\Program Files\Microsoft SQL
Server\MSSQL$BIGTRUST\Data\century21korea_Log.ldf'
반응형