MSSQL] 백업 , 복구, 로그자르기 MS_SQL

2006/12/10 19:55

http://blog.naver.com/ronghuan/110011923855


-- 경로를 지정하여 백업하기
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파일경로및이름'

--------------------------------------------------------------------------------------
--디바이스(장치)

 --1.디바이스 설치
 sp_addumpdevice 'disk', '장치명', '경로 및 파일'
 
  ----sp_addumpdevice 'disk', 'XERP', 'd:databackup\dbbackup\xerp'
 
 --2.디바이스 삭제
 sp_dropdevice '장치명'
 
  --sp_dropdevice 'XERP'
 
 --3.디바이스 정보
 sp_helpdevice '장치명'
 
  --sp_helpdevice XERP


--BACKUP


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 INIT
  BACKUP DATABASE XERP TO XERP WITH DIFFERENTIAL
  BACKUP LOG XERP TO XERP




--RESTORE

1. RESTORE HEADERONLY FROM '디바이스명(장치명)' 을 하여 복원할 파일의 번호(POSITION)를 알아낸다.

2. RESTORE DATABASE 'DB명' FROM '디바이스(장치)명' WITH FILE = 복원할 파일의 번호(POSITION) , RECOVERY --NORECOVERY(복원해야 할 것이 더 있을때)
   RESTORE LOG 'DB명' FROM '디바이스(장치)명' WITH FILE = 복원할 파일의 번호(POSITION) , RECOVERY --NORECOVERY(복원해야 할 것이 더 있을때)

   WITH INIT 을 한 파일을 복원 할때 = RESTORE DATABASE 'DB명' FROM '디바이스(장치)명'

 --EM을 사용하여 복원하는걸 권장 (IDC에서도 정기적으로 백업을 함)


--로그잘라내기

1. BACKUP LOG 'DB명' TO '디바이스명(장치명)'   --로그백업  
   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)

       DBCC LOGINFO


 위의 두가지 방법 모두 사용할 수 있으니 TRUNCATEONLY를 더 권장 함

*/

--파일명 알아내기

 EXEC SP_HELPFILE
    SELECT * FROM SYSFILES

Posted by 아로스

아로스

달력