SQLServer 복구 표 급 데이터 상세 설명

최근 며칠 동안 회사 의 기술 관리자 들 은 나 로 하여 금 데이터 베 이 스 를 회복 하 게 했다.왜냐하면 그들 은 항상 where 조건 이 없어 서 update,delete 는 회복 할 수 없 는 결 과 를 초래 했다.게다가 그 라 이브 러 리 는 모두 몇 십 G 이다.회복 하려 면 적어도 십 여 분 은 걸린다.이 를 위해 자료 와 업무 정 리 를 찾 아 몇 가지 방법 을 제시 하여 창고 가 아니 라 빠 른 회복 표 에 사용 하지만 소 잃 고 외양간 고 치 는 것 보다 예방 이 좋다 는 것 을 명심 하 세 요.
생산 환경 이나 개발 환경 에는 왕왕 매우 중요 한 시계 가 있다.이 시계 들 은 핵심 데 이 터 를 저장 했다.이 표 들 이 데이터 가 손상 되 었 을 때 가능 한 한 빨리 복원 해 야 한다.그러나 정식 환경의 데이터 베 이 스 는 매우 크다.통계 데이터 에 따 르 면 1T 의 데이터 베 이 스 는 복원 시간 이 24 시간 에 가 깝 기 때문에 하나의 표 로 인해 하나의 라 이브 러 리 를 복원 하 는 것 은 공간 뿐만 아니 라 시간 적 으로 도 큰 도전 이다.본 고 는 전체 라 이브 러 리 를 복구 하지 않 고 단일 표를 어떻게 복원 하 는 지 를 소개 한다.
지금 시 계 를 가정 합 니 다:TESTTABLE。우 리 는 가능 한 한 빨리 이 표를 회복 하고 회복 과정 에서 다른 표 와 사용자 에 대한 영향 을 최소 화해 야 한다.
SQLServer(특히 2008 이후)는 많은 백업 및 복구 기능 을 가지 고 있 습 니 다.완전,부분,파일,차이 와 사무 백업 입 니 다.복구 모드 의 선택 은 백업 정책 과 백업 유형 에 심각 한 영향 을 미친다.
다음은 참고 할 수 있 는 몇 가지 방안 이지 만 각자 좋 고 나 쁨 이 있 으 므 로 실제 수요 에 따라 선택해 야 한 다 는 것 을 기억 하 세 요.
프로젝트 1:다른 데이터베이스 로 복구:
작은 데이터 베 이 스 는 백업 으로 새로운 라 이브 러 리 를 복원 하고 새 라 이브 러 리 의 표 데 이 터 를 동기 화 하 는 좋 은 방법 이 라 고 할 수 있 습 니 다.너 는 완전한 회복 을 하거나 시간 적 으로 회복 할 수 있다.그러나 큰 데이터 베 이 스 는 디스크 공간 을 많이 소모 하고 소모 한다.이 방법 은 데 이 터 를 복원 하 는 데 만 사 용 됩 니 다.데 이 터 를 복원 할 때 트리거,외부 키 등 요 소 를 고려 해 야 합 니 다.
프로젝트 2:STOPAT 를 사용 하여 로 그 를 복원 합 니 다:
최근 데이터베이스 백업 을 복원 하고 어느 시점,즉 의외 의 사고 가 발생 하기 전 어느 시점 으로 되 돌아 가 고 싶 을 수도 있 습 니 다.이 때 STOPAT 자 구 를 사용 할 수 있 지만 전 제 는 완전 하거나 대 용량 로그 복구 모드 여야 합 니 다.다음은 예 입 니 다.

RESTORE DATABASE          
 FROM       
 WITH FILE=3, NORECOVERY ; 
 
RESTORE LOG         
 FROM      
 WITH FILE=4, NORECOVERY, STOPAT = 'Oct 22, 2012 02:00 AM' ; 
 
RESTORE DATABASE          WITH RECOVERY ; 
주의:이 방법의 주요 단점 은 stopat 가 지정 한 시간 이후 에 수 정 된 모든 데 이 터 를 덮어 쓰 는 것 입 니 다.그 러 니 득실 을 잘 따 져 야 한다.
프로젝트 3:데이터베이스 스냅 샷:
데이터베이스 스냅 샷 만 들 기.의외 의 일이 발생 했 을 때 스냅 샷 에서 원래 의 데 이 터 를 직접 얻 을 수 있다.하지만 의외 의 사고 가 발생 하기 전에 만 든 스냅 샷 이 어야 합 니 다.이 는 핵심 표 가 자주 업데이트 되 지 않 으 며,특히 규칙 적 으로 업데이트 할 때 유용 하 다.그러나 표 가 자주,비정 기적 으로 업데이트 되 거나 많은 사용자 가 방문 할 때 이런 방법 은 바람 직 하지 않다.이 방법 을 사용 해 야 할 때 는 업데이트 할 때마다 스냅 샷 을 만 드 는 것 을 기억 하 세 요.
프로젝트 4:보기 사용:
새로운 데이터 베 이 스 를 만 들 고 TEST 를TABLE 이 이 라 이브 러 리 로 이동 합 니 다.복구 가 필요 할 때 는 아주 작은 데이터 베 이 스 를 복구 하면 된다.원본 데이터 베 이 스 를 방문 할 때 가장 쉬 운 방법 은 보 기 를 만 들 고 TEST 를 선택 하 는 것 입 니 다.TABLE 표 의 모든 열 에 있 는 모든 데이터 입 니 다.그러나 이 방법 은 보 기 를 만 들 기 전에 원본 데이터 베 이 스 를 바 꾸 거나 삭제 해 야 합 니 다.

USE          ; 
GO 
CREATE VIEW TEST_TABLE 
AS 
  SELECT * 
  FROM       .   .TEST_TABLE ; 
GO 
이 방법 을 사용 하면 보기 에 SELECT/INSERT/UPDATE/DELETE 문 구 를 사용 할 수 있 습 니 다.마치 실체 표를 직접 조작 하 는 것 과 같 습 니 다.TESTTABLE 변경 시 SP 사용REFRESHOVIEW 메모리 프로 세 스 로 메타 데 이 터 를 업데이트 합 니 다.
프로젝트 5:동의어 만 들 기(Synonym):
프로젝트 4 와 유사 합 니 다.시 계 를 다른 데이터베이스 로 옮 긴 다음 원본 데이터 뱅 크 의 이 표 에 동의 어 를 만 듭 니 다.

USE          ; 
GO 
CREATE SYNONYM TEST_TABLE 
FOR     .   .TEST_TABLE ; 
GO 
프로젝트 6:BCP 로 데 이 터 를 저장 합 니 다:
BCP 를 사용 하여 정기 적 으로 데 이 터 를 내 보 내 는 작업 을 만 들 수 있 습 니 다.그러나 이 방법의 단점 은 방안 1 과 유사 하 다.어느 날 의 파일 을 찾 아 안내 해 야 하 는 지,트리거 와 외 키 문 제 를 고려 해 야 한다.
여러 가지 방법의 대비:이 방법 은 메타 데이터 업데이트 로 인 한 구조 변경 이 제때에 이 루어 지지 않 을 까 봐 걱정 할 필요 가 없다 는 것 이다.그러나 이 방법의 문 제 는 DDL 구문 에서 동의어 가 인용 되 지 않 거나 링크 서버 에서 찾 을 수 없다 는 것 이다.
방법.
장점.
결점.
데이터베이스 복원
빠 르 고 쉽다
작은 라 이브 러 리 에 적용 되 며 트리거 와 외부 키 등에 주의해 야 한다.
복원 로그
시간 을 지정 할 수 있 습 니 다.
모든 시간 후의 새 데 이 터 는 덮어 씁 니 다.
데이터베이스 스냅 샷
시계 가 자주 업데이트 되 지 않 을 때 유용 합 니 다.
시계 가 동시에 업 데 이 트 될 때 스냅 샷 에 문제 가 생기 기 쉽다.
보기
표 의 데 이 터 를 라 이브 러 리 에 분리 하여 데이터 손실 이 없다.
메타 데 이 터 는 주기 적 으로 업데이트 되 어야 하 며,정기 적 으로 새로운 데이터 베 이 스 를 유지 해 야 한다.
동의어
표 의 데 이 터 를 라 이브 러 리 에 분리 하여 데이터 손실 이 없다.
링크 서버 에 서 는 사용 할 수 없 으 며,정기 적 으로 새 데이터 베 이 스 를 유지 해 야 합 니 다.
BCP
테이블 전용 백업
추가 공간 이 필요 하고 트리거,외부 키 등 문제 가 발생 할 수 있 습 니 다.
요약:
좋 은 프로 그래 밍 습관 과 좋 은 백업 메커니즘 이 야 말로 문 제 를 해결 하 는 근본 이 고 상기 조 치 는 모두 소 잃 고 외양간 고 치 는 방법 일 뿐이다.SQLServer 새 버 전이 일부 복원 되 지 않 았 나 요?온라인 총서 의 설명 을 살 펴 보 자.

다른 방법 으로 는 시 계 를 복원 하기 어렵 지만 창고 가 어 렸 을 때 는 해 볼 수 있다.

좋은 웹페이지 즐겨찾기