본문으로 바로가기

DB 백업 및 복구(DB 이전)

category Development/MsSql 2016.06.16 18:56

A : 현재 DB 서버, B:이전 할 DB 서버


1. A 서버에 있는 계정들을 생성하기 위한 스크립트 실행

select 

 'exec master..sp_addlogin ''' 

+ name +''', '

+ stuff(upper(dbo.fn_varbintohexstr(cast(password as varbinary(255)))),1,2,'0x') +

',  @sid =' + stuff(upper(dbo.fn_varbintohexstr(sid)),1,2,'0x') 

+ ', @encryptopt = ''skip_encryption'''

from syslogins

where name not in ('##MS_PolicyEventProcessingLogin##'

, '##MS_PolicyTsqlExecutionLogin##', 'sa')

order by 1 desc


2.. 실행된 결과 쿼리를 B 서버에서 실행하여 계정을 생성

exec master..sp_addlogin '[계정1]', 0x010..,  @sid =0x8C.., @encryptopt = 'skip_encryption'

exec master..sp_addlogin '[계정2]', 0x010..,  @sid =0x42.., @encryptopt = 'skip_encryption'


3. A서버에 DB를 백업

backup database [데이터베이스명] to disk = 'D:\데이터베이스명.BAK'


4..BAK 파일을 B서버로 이동 후 해당 파일을 이용해 복구

--DataBaseName 확인

RESTORE HEADERONLY FROM DISK='D:\데이터베이스명.BAK'


--LogicalName, PhysicalName 을 참고하여 아래 MOVE 명령어 뒤에 입력.

RESTORE FILELISTONLY FROM DISK='D:\데이터베이스명.BAK'


--SP_HELPDB STAT_FNLAccont


--Restore Database 

Restore Database [DB명]

FROM  DISK='D:\데이터베이스명.BAK'

 with recovery

    , stats =  5

    , MOVE '[DB]' TO 'D:\DATA\DB.MDF'

    , MOVE '[DB_log]'   TO 'D:\DATA\DB_log.LDF'


댓글을 달아 주세요