로 그 를 통 해 MSSQL 데이터 복구

그 동안 SQL server 에서 로그 와 시간 을 통 해 데 이 터 를 복원 하 는 것 을 보 았 습 니 다.로 그 를 통 해 데 이 터 를 복구 하 는 방법 도 인터넷 의 예 를 봤 다.
전제 조건:
데이터베이스 고장 복구 가 간단 하지 않 은 모드 로 바 뀌 었 습 니 다.자동 닫 기와 자동 수축 두 옵션 을 제거 합 니 다.    
간단 한 모드 라면 다음 과 같은 구문 작업 데 이 터 는 로그 에 기록 되 지 않 습 니 다.  select*into t from[표 명]
이 때 데이터 의 완전 성 을 확보 하기 위해 데이터베이스 복구 모드 를'완전'으로 바 꿔 야 합 니 다.
테스트 환경:   
1.데이터베이스 와 테스트 테이블 만 들 기        

create database zp

create table [zping.com](
 id int,
 name varchar(20)
)

2.테스트 데이터 삽입

insert into [zping.com](id,name)
values(1,'zping.com1')
insert into [zping.com](id,name)
values(2,'zping.com2')
insert into [zping.com](id,name)
values(3,'zping.com3')
insert into [zping.com](id,name)
values(4,'zping.com4')
데이터 베 이 스 를 백업 합 니 다.sql server 의 시각 화 작업 을 통 해 생 성 된 코드 입 니 다.
[code]BACKUP DATABASE [zp] TO  DISK = N'C:\k.bak' WITH NOFORMAT, NOINIT, 
NAME=N'zp-전체 데이터베이스 백업',SKIP,NOREWIND,NOUNLOAD,  STATS = 10
GO[code]
데이터 보기:

주의:이때 우 리 는 전체 백업 을 합 니 다.
이 때 실수 로 데 이 터 를 삭 제 했 을 수도 있 습 니 다.우 리 는 시 뮬 레이 션 을 해 보 겠 습 니 다.(1,2 의 데 이 터 를 삭제 했다 고 가정 합 니 다)
deletefrom[zping.com]where(id=1orid=2)
메모:대체 삭제 시간 을 기억 하 십시오.
이때 삭제 가 잘못 되 었 다 는 것 을 발 견 했 는데 어떻게 데 이 터 를 되 찾 습 니까?방법 은 두 가지 가 있다.
1.Log Explorer 를 통 해 복구 데 이 터 를 찾 습 니 다(우리 사이트 에 이 도구 가 있 습 니 다)
2.다른 방법 은 복구 로그(지정 한 시간 복구)를 통 해 데 이 터 를 복원 합 니 다.
설명:첫 번 째 방법 은 온라인 으로 조작 할 수 있 습 니 다.
두 번 째 방법 은 데이터 베 이 스 를 중단 하거나 다른 데이터 베 이 스 를 복원 해 야 합 니 다.(전 제 는 완전 백업 과 로그 백업 이 있어 야 합 니 다)
여기 서 우 리 는 두 번 째 방법 으로 지정 한 시간 에 회복 하 는 것 을 토론 합 니 다.
1.이때 데이터베이스 트 랜 잭 션 로 그 를 백업 합 니 다(데이터베이스 전체 백업 을 하지 않 으 면 트 랜 잭 션 로그 백업 을 할 수 없습니다)
이 때 데이터베이스 zp 를 새로 만 들 고 데이터 베 이 스 를 복원 합 니 다.

이때 우 리 는 두 개의 복원 데이터베이스 백업 이 있 는 것 을 보 았 다.왜냐하면 나 는 zp 데이터 베 이 스 를 두 번 백업 했 고 두 번 의 백업 데이터 파일 은 모두 같 기 때문이다.여기 서 우 리 는 최근 시간의 백업 을 선택 합 니 다.
기본 데이터베이스 설정 은 다음 과 같 습 니 다.백업 집합 에 추가 되 기 때문에 두 개의 백업 이 있 습 니 다.다음 그림:

동시에'옵션'에'스크롤 백 하지 않 기'사 무 를 설정 합 니 다.
메모:트 랜 잭 션 로 그 를 통 해 데이터 베 이 스 를 복원 하려 면'스크롤 백 하지 않 음'을 선택해 야 합 니 다.
확인 후 다음 상황 이 발생:

이 때 데이터 베 이 스 는'복원 중'이 었 습 니 다.이 때 데이터 베 이 스 를 복원 합 니 다.
1."일반"에서 시간 을 선택 합 니 다.(방금 삭 제 된 시간)
2.'옵션'에서 복구 상 태 를'스크롤 백 미 제출'사무 로 설정 합 니 다.

확인 후 데이터 베 이 스 를 조회 한 결과 데이터 가 돌 아 왔 습 니 다.
요약:
1.이것 은 일반 대형 사이트 데이터 안전 의 한 방법 입 니 다.데이터 베 이 스 는 비교적 크 고(수백 G 가 있 을 수 있 음)데이터 가 있 기 때문에 전체 백업 시간 이 길 며 데이터 베이스 서버 의 성능 에 영향 을 주 고 데이터 안전 을 확보 하기 위해 대부분 완전한 백업+사무 로그 준 비 를 통 해 데이터 안전 을 확보 합 니 다.예 를 들 어 하루 에 한 번 씩 하거나 이틀 에 한 번 씩 전체 백업 을 하고 몇 시간 안에 로그 백업 을 합 니 다.(물론 하나의 job 를 써 서 실현 할 수 있다)
2.예 를 들 어 SQL server 2005 의 미 러 는 이러한 트 랜 잭 션 로그 동기 화 방법 으로 데이터 의 동기 화 를 확보 하 는 것 입 니 다.
3.복 구 된 로그 데이터 가 나타 나 면'LSN'은 트 랜 잭 션 로그 간 의 불 연속 을 설명 합 니 다.이 때 는 백업 시간 과 순서 에 주의해 야 한다.
이상 은 본문의 전체 내용 이 므 로 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기