MSSQL] 백업 , 복구, 로그자르기 MS_SQL
2006/12/10 19:55
http://blog.naver.com/ronghuan/110011923855
-------------------------------------------------------------------------------------- --1.디바이스 설치 --BACKUP BACKUP DATABASE XERP TO XERP -- WITH INIT 1. RESTORE HEADERONLY FROM '디바이스명(장치명)' 을 하여 복원할 파일의 번호(POSITION)를 알아낸다. 2. RESTORE DATABASE 'DB명' FROM '디바이스(장치)명' WITH FILE = 복원할 파일의 번호(POSITION) , RECOVERY --NORECOVERY(복원해야 할 것이 더 있을때) WITH INIT 을 한 파일을 복원 할때 = RESTORE DATABASE 'DB명' FROM '디바이스(장치)명' --EM을 사용하여 복원하는걸 권장 (IDC에서도 정기적으로 백업을 함) --로그잘라내기 1. BACKUP LOG 'DB명' TO '디바이스명(장치명)' --로그백업 /* 위의 두가지 방법 모두 사용할 수 있으나 로그백업을 권장함(단순복구모델일때는 로그 잘라내기를 함) */ DBCC LOGINFO */ --파일명 알아내기 EXEC SP_HELPFILE [출처] MSSQL] 백업 , 복구, 로그자르기 MS_SQL |작성자 여유
-- 경로를 지정하여 백업하기
BACKUP DATABASE DB이름 TO disk = '파일경로및이름'
-- 백업정보보기
restore headeronly from disk = '파일경로및이름'
-- 백업한 DB 복구하기
RESTORE DATABASE DB이름
FROM disk = '파일경로및이름' WITH REPLACE,
MOVE '논리적장치이름(Data)' TO 'Data파일경로및이름',
MOVE '논리적장치이름(Log)' TO 'Log파일경로및이름'
-- 논리적 장치이름
RESTORE FILELISTONLY from disk = '파일경로및이름'
--attach
EXEC sp_attach_db @dbname = N'디비 이름',
@filename1 = 'Data파일경로및이름',
@filename2 = 'Log파일경로및이름'
--디바이스(장치)
sp_addumpdevice 'disk', '장치명', '경로 및 파일'
----sp_addumpdevice 'disk', 'XERP', 'd:databackup\dbbackup\xerp'
--2.디바이스 삭제
sp_dropdevice '장치명'
--sp_dropdevice 'XERP'
--3.디바이스 정보
sp_helpdevice '장치명'
--sp_helpdevice XERP
1. 전체 BACKUP
BACKUP DATABASE 'DB명' TO '디바이스명'
BACKUP DATABASE 'DB명' TO '디바이스명' WITH INIT--(장치내역 HISTORY 삭제)
2. 차등 BACKUP
BACKUP DATABASE 'DB명' TO '디바이스명' WITH DIFFERENTIAL
3. 로그 BACKUP
BACKUP LOG 'DB명' TO '디바이스명'
RESTORE HEADERONLY FROM XERP
BACKUP DATABASE XERP TO XERP WITH DIFFERENTIAL
BACKUP LOG XERP TO XERP
--RESTORE
RESTORE LOG 'DB명' FROM '디바이스(장치)명' WITH FILE = 복원할 파일의 번호(POSITION) , RECOVERY --NORECOVERY(복원해야 할 것이 더 있을때)
BACKUP LOG 'DB명' WITH TRUNCATE_ONLY --로그 잘라내기
ex)BACKUP LOG XERP TO XERP
BACKUP LOG XERP WITH TRUNCATE_ONLY
2. DBCC SHRINKFILE('로그파일명', 파일크기) --파일크기를 정해주어 파일을 축소하는 방법
DBCC SHRINKFILE('로그파일명', TRUNCATEONLY) --불필요한 로그 파일을 잘라 파일을 축소하는 방법
/*
ex)DBCC SHRINKFILE ('XERP_LOG',500)
DBCC SHRINKFILE ('XERP_LOG',TRUNCATEONLY)
위의 두가지 방법 모두 사용할 수 있으니 TRUNCATEONLY를 더 권장 함
SELECT * FROM SYSFILES