출처 : http://korea.internet.com

마지막 활성 트랜잭션 로그를 백업할 수 있다면 데이터베이스의 복원이 가능한데 이번 기사에서는 마스터 및 데이터베이스 파일이 손상되었을 때 마지막 트랜잭션 로그를 백업해 이후 복원에 활용하는 방법에 대해서 Microsoft 고객기술지원부의 내용을 알아보자.

데이터베이스 파일이 손상되었어도 트랜잭션 로그 파일을 액세스할 수 있으면 현재의 활성 트랜잭션 로그를 백업할 수 있다. Microsoft SQL Server 7.0에서는 주 데이터 파일과 트랜잭션 로그 파일을 모두 액세스할 수 있어야 마지막 활성 트랜잭션 로그를 백업할 수 있다. 마스터 데이터베이스도 손상된 경우 데이터 파일과 마스터 장치가 둘 다 손상된 미디어에 있으면 먼저 마스터 데이터베이스를 다시 생성하고 복원한 다음 액세스할 수 없는 데이터베이스의 마지막 활성 트랜잭션 로그를 백업할 수도 있다. 그러나, 마스터 데이터베이스 백업을 사용할 수 없는 경우에도 SQL Server 7.0에서 주 데이터 파일과 트랜잭션 로그 파일을 액세스할 수 있으면 아래 방법을 사용하여 데이터베이스의 마지막 활성 트랜잭션 로그를 백업할 수도 있다.

Microsoft SQL Server 2000에서는 트랜잭션 로그 파일만 액세스할 수 있으면 마지막 활성 트랜잭션 로그를 백업할 수 있다.

SQL Server 2000 에서는

마스터 데이터베이스와 사용자 데이터베이스의 데이터 파일이 손상되었으나 데이터베이스의 트랜잭션 로그 파일에 여전히 액세스할 수 있으면 아래 단계를 수행하여 데이터베이스의 마지막 활성 트랜잭션 로그를 백업함으로써 데이터 손실을 줄일 수 있다.
트랜잭션 로그 파일의 이름을 변경한다.
마스터 데이터베이스를 다시 만든다.
유사한 데이터베이스를 만든다. 새 데이터베이스는 크기가 같을 필요는 없지만 포함하는 데이터 파일 및 로그 파일의 수는 같아야 한다.
SQL Server를 중지한다.
새로 만든 데이터베이스의 데이터 파일을 모두 삭제하여 복구되지 않게 한다. 트랜잭션 로그를 백업할 수 있도록 새 데이터베이스의 로그 파일을 원래의 로그 파일로 바꾼다.

Microsoft SQL Server 7.0 에서는

주 데이터 파일과 트랜잭션 로그 파일의 이름을 변경한다.
마스터 데이터베이스를 다시 만든다.
유사한 데이터베이스를 만든다. 새 데이터베이스는 크기가 같을 필요는 없지만 포함하는 데이터 파일 및 로그 파일의 수는 같아야 한다.
SQL Server를 중지한다.
새로 만든 데이터베이스의 데이터 파일을 모두 삭제하여 복구되지 않게 한다. 트랜잭션 로그를 백업할 수 있도록 새 데이터베이스의 주 데이터 파일과 로그 파일을 원래의 파일로 바꾼다.
SQL Server를 다시 시작한다.
아래 명령을 실행하여 로그의 마지막 부분을 복원한다.
Backup Log to Disk = With NO_TRUNCATE
sp_dbremove 저장 프로시저를 사용하여 데이터베이스를 제거한다. 모든 로그 파일과 함께 데이터베이스를 복원한다.
2005/06/15 14:33 2005/06/15 14:33

트랙백 주소 :: http://thinkit.or.kr/database/trackback/218