프로덕션에서 개발자 인스턴스로 500GB SQL Server 데이터베이스 복사


12

PRODUCTION 서버에서 DEV 서버로 500GB 데이터베이스를 복사해야합니다. 우리는 단지 5 시간의 창을 가지고 있습니다.

이것을 달성하는 가장 빠른 방법은 무엇입니까?


7
1. "5 시간의 창"이란 무엇입니까? 생산이 5 시간 동안 중단됩니까? 2. 프로덕션 데이터베이스의 절대 최신 버전이 필요합니까? 아니면 최근 백업으로 충분합니까? 3. 운영 데이터베이스는 어떤 복구 모드에 있습니까?
Nick Chammas

답변:


15

프로덕션 환경에 다운 타임을 유발하지 않는 두 가지 옵션이 있습니다.

1) 데이터베이스 구조 자체 만 가져 오려면 (데이터가 필요하지 않음) 프로덕션 데이터베이스를 스크립팅하면됩니다. 그런 다음 dev 서버에서 간단히 실행하여 데이터베이스를 만듭니다.

2) 데이터베이스와 데이터가 필요한 경우 해당 데이터베이스의 최신 백업을 가져 와서 dev 서버로 복원하십시오. 이것이 개발 서버를 프로덕션 데이터와 일치시키는 데 가장 일반적으로 사용되는 방법이라는 것을 알게 될 것입니다.


9

당신이 가지고 있다면

  • 백업 압축?
  • 빠른 서버-서버 네트워크 (진입 지점은 1GB 임)

... 그냥 복사하고 복원하십시오. 이것은 powershell, perl, cmd.exe 등에서 스크립팅 할 수 있습니다.

"창"이라고 말하면 생산 시간이 5 시간이라고 가정합니다. 로드 개발에 그렇게 중요 할 수는 없습니다.


5

로컬로 연결된 하드 디스크에 복사하십시오.

왜 한정된 창입니까? 복사하지 마십시오-백업을 개발자에게로드하십시오.


동의했다. 실제로 백업을 복원 할 때 분리 할 필요가 없습니다 (중단 시간 필요).
p.campbell

2
두 번째로 백업을 복사하겠습니다. 프로덕션 데이터베이스를 중단하여 어디에서나 복사 할 필요는 없습니다. 특정 시점이 필요한 경우 copy_only 백업 (SQL 2005+)을 작성하거나 일부 트랜 로그 백업도 복사하십시오.
벤 툴

2

어쩌면 내 대답은 사용 사례에 맞지 않을 수도 있지만 dev 서버에서 로그 전달과 같은 기술을 사용하여 대기 데이터베이스를 설정하는 것을 고려한 적이 있습니까? 이전 에이 사본을 귀하의 제품과 동기화하십시오 ...

이 도움을 바랍니다


0

백업 시퀀스 파일을 작성하십시오. 전체 백업 크기가 500GB라고 가정합니다. 필요에 따라이를 분할하고 각 50GB 크기의 10 개의 백업 파일로 구성된 10 개의 시퀀스 백업을 만든 다음 백업 파일을 하나씩 복원하거나 이동해보십시오. 네트워크 트래픽과 복원 시간이 줄어 듭니다.


3
Subir 안녕하세요 DBA.SE에 오신 것을 환영합니다. 명확성을 높이고 가이드 라인 에 따라 맨 아래에서 서명을 제거하기 위해 답변을 편집했습니다 . 답변 주셔서 감사합니다.
Nick Chammas 2016

파일을 10 개의 개별 파일로 분할하면 네트워크를 통해 해당 파일을 전송하는 데 필요한 시간이 어떻게 달라지는 지 알 수 없습니다.
Max Vernon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.