2013-12-18 2 views
1

로컬 환경에서 SQL Server 2012를 사용하고 있습니다. 사실 Windows 7 컴퓨터에서 실행됩니다. 내 문제는 다음과 같습니다. SQL 데이터베이스를 매일 백업합니다. 지금 당장은 기존 데이터베이스를 삭제하여 전체 데이터베이스를 매일 복원하고 있습니다. 이 복원 작업을 완료하는 데는 꽤 시간이 걸립니다. 복원 프로세스에 대한 나의 이해는 이전 데이터베이스를 새 백업으로 겹쳐 쓰는 것입니다. SQL Server 2012에서 새 백업에서 발생한 변경 사항을 사용하여 기존 데이터베이스를 수정하는 방법이 있습니까? 이전 데이터베이스를 업데이트 된 데이터베이스와 비교하고 필요한 경우 필요한 변경 작업을 수행하는 것과 같은 의미입니다.로컬 SQL Server 데이터베이스를 최신 백업으로 업데이트하는 방법은 무엇입니까?

답변

0

나는 그렇게 생각하지 않습니다. 데이터베이스 복제를 사용하면 작업을 수행 할 수 있지만 이는 적절하지 않을 수 있습니다.

변경 사항을 가져 오려면 복구보다 빠를 수 없습니다. 당신은 C#이나 비슷한 개발자입니까? 그렇다면 백업 위치를 모니터링하고 도착했을 때 프로그래밍 방식으로 복원을 시작하는 서비스를 작성하고 싶습니다. 시간을 절약 할 수 있습니다.

1

예, 전체 백업 대신 차등 백업이 필요합니다. 원본 데이터베이스의 "특정 시점"상태로 이동하려면 복원하십시오. 전체/차등 및 로그 백업에 대한 기본적인 연구를 작성하십시오. (짧은 답변에 대한 정보가 너무 많습니다.)

0

"전체 DB를 복원하지 않고 외부 DB의 변경 사항을 현재 DB로 병합 할 수 있습니까? " 그 대답은 "예,하지만 쉽게는 아닙니다"입니다. 로그 전달을 설정할 수는 있지만 자동으로 수행하는 것은 상당히 복잡합니다. 수작업으로하는 것도 상당히 복잡하지만 여러 가지 이유가 있습니다. "Microsoft"로 할 수있는 방법이 없습니다. 직접 로그 전달을 직접 알아 내야합니다.

링크 된 서버를 통해 수동으로 테이블을 복사 할 수 있습니다. 적은 수의 테이블을 업데이트하는 중이라면 잘 작동 할 수 있으며 문제를 줄일 수 있습니다. 귀하의 워크 스테이션에 연결된 서버, 몇 가지 MERGE 진술은. sql 파일에 저장하고, 필요에 따라 DB에 중요한 테이블을 업데이트 할 수 있습니다.


당신 차등 백업을 사용하여 원격 서버의 전체 백업을 실행하는 것을 피하기하지만, 특히 기분이 아니다.

내 생각에 현재 COPY_ONLY 옵션으로 생성 된 전체 백업이 생성됩니다. 따라서 기존 백업을 방해하지 않는 대역 외 백업 복사본을 만들 수 있습니다.

실제로 원하는 것을하려면 서버에서 1 일째 전체 백업을 수행하도록 백업을 설정 한 다음 2-X 일 후에 차등 백업을 수행하십시오. 이제 로컬 시스템에서 1 일에 작성한 DB의 전체 백업을 보존합니다. 그러면 하루 1 이후로 모든 차등 백업이 생깁니다. 하루 전체 DB를 복원 한 다음 후속 차등을 올바른 순서로 복원하십시오.

그러나 차등 백업의 경우 백업 체인이 손상되지 않아야합니다. 차이 백업과 함께 COPY_ONLY을 사용할 수 없습니다. 즉, 백업을 사용하여 실제로 데이터베이스를 백업하는 경우 데이터 백업에 동일한 백업을 사용하거나 철학적으로 잘못된 것으로 보이는 COPY_ONLY을 사용하여 데이터 백업을해야합니다. 귀하의 dev에 데이터베이스 복사본이 귀하의 생산성 백업 절차를 운전해서는 안됩니다.

그래서, 당신은 그것을 할 수 있지만 :

  1. 당신은 여전히 ​​전체 DB 복원해야한다.

  2. DB를 복원하는 작업이 많이 필요합니다.

  3. 원본 DB의 기존 백업 절차가 중단 될 수 있습니다.

관련 문제