초급 SQLER에게 도움이 되고자 정리한 백업 & 복원에 대한 스크립트를 정리해서 올립니다. 설명은 충분히 한것 같습
니다. 초급자분 들만 확인하십시요. 제가 부족한 부분에 대해서 충분히 조언 해 주십시요.
-- FULL BACKUP MODE
-- 전체 백업과 로그 백업 & 복원
-- DB 생성
create database FREDDIE
Go
USE FREDDIE
Go
-- 테이블 생성
Create table STORE
( BrandCd char(2), StoreCd char(5), StoreName varchar(20) )
Go
Alter table STORE
Alter Column BrandCd varchar(2) NULL
sp_helpdb Freddie
sp_help STORE
-- 1차 데이터 입력
insert into STORE
values ( '25', '25001', '청담')
GO
insert into STORE
values ( '25', '25002', '갤러리아')
Go
select * from STORE
-- 전체 풀백업
BACKUP DATABASE FREDDIE TO DISK = 'c:\FREDDIEBAK.dat' with NOINIT -- NOINIT는 덮어쓰기 금지
-- 백업 현황 확인
Restore HEADERONLY FROM DISK = 'C:\FREDDIEBAK.dat'
-- 2차 데이터 입력
USE FREDDIE
Go
insert into STORE
values ( '25', '25003', '코엑스')
Go
insert into STORE
values ( '25', '25004', '신세계')
-- 1차 로그 백업
BACKUP LOG FREDDIE TO DISK = 'C:\FREDDIEBAKLOG.log'
-- 2차 데이터 입력
USE FREDDIE
Go
insert into STORE
values ( '35', '35001', '코엑스')
Go
insert into STORE
values ( '35', '35002', '신세계')
-- 2차 로그 백업
BACKUP LOG FREDDIE TO DISK = 'C:\FREDDIEBAKLOG.log'
-- 백업 로그 확인
Restore HEADERONLY FROM DISK = 'C:\FREDDIEBAKLOG.log'
-- 3차 데이터 입력
USE FREDDIE
Go
insert into STORE
values ( '65', '65001', '코엑스')
Go
insert into STORE
values ( '65', '65002', '신세계')
-- 3차 로그 백업
BACKUP LOG FREDDIE TO DISK = 'C:\FREDDIEBAKLOG.log'
--Restore HEADERONLY FROM DISK = 'C:\FREDDIEBAKLOG.log'
-- 데이터베이스 삭제
USE master
Go
DROP DATABASE FREDDIE
Restore HEADERONLY FROM DISK = 'C:\FREDDIEBAK.dat'
-- 복원 작업
USE Master
Go
-- 전체 백업 복원 - 1차 데이터 입력만 살아난다.
RESTORE DATABASE FREDDIE
FROM DISK = 'C:\FREDDIEBAK.dat'
WITH FILE = 1, NORECOVERY -- 다음 로그 백업이 남아 있으므로 NORECOVERY를 사용해야 한다.
Go
-- 1차 로그 백업 복원
RESTORE LOG FREDDIE
FROM DISK = 'C:\FREDDIEBAKLOG.log'
WITH FILE = 1, NORECOVERY
Go
-- 2차 로그 백업 복원 - 테스트를 위해 RECOVERY를 사용했다.
RESTORE LOG FREDDIE
FROM DISK = 'C:\FREDDIEBAKLOG.log'
WITH FILE = 2, RECOVERY
-- 2차 데이터 입력까지 복원
use FREDDIE
select * from STORE
-- 2차 로그 복원시 RECOVERY 를 사용했으므로 3차 로그 백업 복원은 에러가 발생한다.
RESTORE LOG FREDDIE
FROM DISK = 'C:\FREDDIEBAKLOG.log'
WITH FILE = 3, RECOVERY
--서버: 메시지 4306, 수준 16, 상태 1, 줄 1
--이전 복원 작업에서 WITH NORECOVERY 또는 WITH STANDBY를 지정하지 않았습니다. 마지막 단계를 제외한 모
든 단계에 WITH NORECOVERY 또는 WITH STANDBY를 지정하여 복원 순서를 다시 시작하십시오.
--서버: 메시지 3013, 수준 16, 상태 1, 줄 1
--RESTORE LOG이(가) 비정상적으로 종료되는 중입니다.
[이 게시물은 최고관리자님에 의해 2007-08-07 16:28:35 홈페이지에서 이동 됨]

최고관리자
07-06-11 08:02
0개
519회
MSSQL
간단한 백업과 복원에 대한 스크립트
추천
0
비추천
0
댓글목록
등록된 댓글이 없습니다.