데이터베이스 파일 이동
데이터베이스 복원 작업 중 가장 기본적인 단계 중 하나는 데이터베이스 파일을 이동하는 것입니다. 다음은 데이터베이스 파일을 이동하는 예제입니다.
RESTORE DATABASE 데이터베이스이름 FROM 백업장치
WITH MOVE 'AdventureWorks_data' TO 'D:\Data\PDT.mdf',
MOVE 'AdventureWorks_log' TO 'D:\Data\PDT.ldf'
이 구문은 백업 파일로부터 데이터베이스를 복원하면서 데이터 파일과 로그 파일의 위치를 새로 지정합니다. 이는 서버의 디스크 구조 변경이나 성능 향상을 위해 자주 사용됩니다.
미러백업 및 복원
미러백업은 백업된 파일이 손상될 경우를 대비해 동일한 백업 복사본을 생성하는 안전 대책입니다. 다음은 미러 백업을 생성하고 이를 복원하는 예제입니다.
미러 백업 생성
BACKUP DATABASE AdventureWorks
TO DISK= 'C:\PDT.bak'
MIRROR TO DISK= 'D:\PDT.bak'
WITH FORMAT
위의 구문은 AdventureWorks 데이터베이스를 두 개의 다른 디스크에 백업하여 데이터 손실 위험을 최소화합니다.
미러 백업을 이용한 복구
RESTORE DATABASE AdventureWorks
FROM DISK='D:\PDT.bak'
WITH MOVE 'AdventureWorks_data' TO 'C:\Data\PDT.mdf',
MOVE 'AdventureWorks_log' TO 'C:\Data\PDT.ldf'
이 구문은 미러 백업을 이용해 데이터베이스를 복원하며, 데이터 파일과 로그 파일의 위치도 변경합니다.
오류 발생 시 계속 복원하기
데이터베이스 복원 중 오류가 발생해도 계속 복원 작업을 진행하려면 WITH CONTINUE_AFTER_ERROR 옵션을 사용합니다.
RESTORE DATABASE AdventureWorks
FROM DISK='D:\PDT.bak'
WITH CONTINUE_AFTER_ERROR
이 옵션은 복원 중에 발생할 수 있는 오류를 무시하고 가능한 부분까지 복원을 시도합니다.
파일 덮어쓰기 복원
복원하려는 파일이 이미 존재하는 경우, 기존 파일을 덮어쓰려면 WITH REPLACE 옵션을 사용합니다.
RESTORE DATABASE AdventureWorks
FROM DISK='D:\PDT.bak'
WITH REPLACE
이 구문은 기존 데이터베이스 파일을 덮어쓰고 새로 복원합니다.
데이터베이스 복원 시 주의사항
데이터베이스 복원 작업은 매우 중요한 작업으로, 주의사항을 충분히 이해하고 진행해야 합니다.
복원 전 백업 검증
백업 파일이 손상되었는지 확인하기 위해 복원 전에 백업 파일을 검증하는 것이 좋습니다.
RESTORE VERIFYONLY FROM DISK='D:\PDT.bak'
이 구문은 지정된 백업 파일이 복원 가능한 상태인지 확인합니다.
로그 파일 복원
로그 파일도 백업 및 복원할 수 있습니다. 이는 데이터베이스의 일관성을 유지하는 데 중요합니다.
BACKUP LOG AdventureWorks
TO DISK='D:\PDT_log.bak'
이 구문은 AdventureWorks 데이터베이스의 로그 파일을 백업합니다.
RESTORE LOG AdventureWorks
FROM DISK='D:\PDT_log.bak'
WITH NORECOVERY
이 구문은 로그 파일을 복원하며, 데이터베이스를 복구하지 않고 추가 로그를 더 복원할 수 있도록 합니다.
결론
MSSQL 데이터베이스의 백업 및 복원은 데이터의 안전성과 일관성을 유지하는 데 필수적인 작업입니다. 다양한 옵션과 구문을 활용하여 데이터베이스를 효율적으로 관리하고, 주기적인 백업과 복원 테스트를 통해 데이터 손실 위험을 최소화해야 합니다. 위에서 설명한 복원 구문별 예제를 통해 데이터베이스 복원 작업을 성공적으로 수행할 수 있습니다.
'DB(sql)' 카테고리의 다른 글
다중 컬럼 IN 연산자를 활용한 SQL 쿼리 최적화 (0) | 2024.08.08 |
---|---|
MSSQL 서버에서 msmdctr90.DLL 엑세스 거부 오류 해결 방법 (0) | 2024.08.07 |
MSSQL Temp 또는 Model db 등 시스템 DB 오류로 SQL서버가 시작되지 못할 때 (0) | 2024.08.03 |
MSSQL 외래키 등 제약조건으로 인해 삽입 안 될때 처리하는 방법 (1) | 2024.08.01 |
데이터베이스별 결과 제한 쿼리(SQL 최적화 전략) (0) | 2024.07.31 |