DBA 이외의 질문 : 백업 / 복원을 통해 SQL Server 인스턴스를 다른 서버로 무통 복사 / 이동하는 방법은 무엇입니까?


11

방금 새 서버를 만들었으므로 기존 SQL Server 2008 인스턴스를 이전 db 상자에서 복사해야합니다.

나는 일반적으로 .mdf와 로그 파일을 복사하고 첨부 하여이 작업을 수행하지만 연중 무휴로 사용되므로 데이터베이스를 오프라인으로 가져갈 수 없으므로 데이터베이스를 백업하고 새로운 파일로 복원했습니다. 기계. 그러나 나는 고아 사용자 와 관련된 몇 가지 문제로 끝났습니다 . 그래서 내가 찾고있는 것은 최소한의 소란 / 형제 / 두통 으로 모든 것을 가로 지르는 페일 세이프 프로세스 입니다. 내 벨트 아래에 상당한 양의 SQL이있는 .Net 개발자이지만 SQL Server의 내부 작업은 크게 미스터리이며 MS 문서가 트롤하기가 어렵다는 것을 알았습니다.

도와주세요.


1
이전 질문 에서 몇 가지 아이디어를 찾을 수 있습니다 . 그러나 이전 답변은 설명이 필요합니다. 가장 좋은 아이디어는 미러링을 설정하고 이후에 중단하거나 모든 DB에 대해 로그 전달 (마법사에서만 수행 할 수 있음)하고 필요한 로그 백업을 추가로 복원하는 것이지만 DBA가 아니라면 백업 방법이 더 좋습니다.
Marian

답변:


10

데이터베이스를 오프라인으로 만들 수 없으면 백업 / 복원을 수행해야합니다. 나는 다음을 제안 할 것이다 :

  1. MDF 및 LDF 파일의 이전 상자와 동일한 파일 구조를 사용하여 새 상자에 SQL 2008을 설치하십시오.
  2. 이전 박스의 모든 데이터베이스를 백업하십시오.
  3. SQL을 단일 사용자 모드에서 시작한 이전 상자에서 새 상자로 마스터를 복원하십시오. 마스터 방법 복원
  4. 차후 Diff 또는 T-log 백업을 적용하려면 NORECOVERY 옵션을 사용하여 이전 데이터베이스에서 새 데이터베이스로 각 데이터베이스를 복원하십시오.
  5. 이전 상자에서 새 상자로 msdb를 복원하십시오.

새 상자를 이전 상자와 똑같이 보이도록 구성하고 구성하면 혼란이 최소화됩니다.

데이터베이스가 얼마나 큰지 잘 모르므로이 방법이 오래 걸릴 수 있습니다. 가장 쉬운 방법은 이전 상자를 종료하고 MDF 및 LDF 파일을 복사 한 다음 (마스터 복원 후) 데이터베이스를 온라인 상태로 만들기 위해 SQL을 다시 시작하면됩니다. 그러나 데이터베이스가 오프라인이 될 수 없으므로 옵션이 아니라고 언급했습니다.


3
백업을 수행 한 후 변경된 데이터를 복사하는 것을 잊지 마십시오. diff 백업 또는 tlog 백업을 수행 한 후 새 서버에 적용한 후 전환하기 전에 적용 할 수 있습니다.
Eric Humphrey-lotsahelp

좋은 지적, 나는 그것을 언급하는 것을 잊었다. 아마도 나중에 미러 될 수있는 DB 미러 구성을 포함해야합니까?
SQLRockstar

1
누군가 다른 서버 마이그레이션 방법에 대한 광범위한 기사를 이미 가지고 있다고 생각합니다. 또한 다음은 새 서버로 로그인을 전송하는 방법에 대한 기사입니다. support.microsoft.com/kb/246133
Eric Humphrey-lotsahelp

8

연중 무휴 운영에 대해 언급 했으므로이 작업을 수행하는 가장 좋은 방법 은 새 시스템에서 데이터베이스 미러 를 만드는 것입니다. 그런 다음 클라이언트를 사용하여 응용 프로그램의 구성 방식에 따라 최소 0으로 전환 할 수 있습니다. 측면 리디렉션. 기본 단계는 다음과 같습니다.

  1. primary database가 FULL 복구 모드 에서 실행 중인지 확인하십시오 .
  2. 기본을 백업하고 미러에서 복원 WITH NORECOVERY
  3. 두 서버에서 "엔드 포인트"를 작성하고 포트 및 IP 주소를 올바르게 설정하여 연결 (예 : 방화벽 규칙)을 확인하십시오. 예 :

    CREATE ENDPOINT endpoint1
    STATE=STARTED AS TCP(LISTENER_PORT = 5222, LISTENER_IP = 192.168.1.5) 
    FOR DATA_MIRRORING(ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM RC4)
  4. 기본을 가리키면서 미러에 미러링을 설정하십시오.

    ALTER DATABASE GaiusMirrorDB SET PARTNER = 'TCP://192.168.1.5:5222'
    go
    EXEC sys.sp_dbmmonitoraddmonitoring
    go
  5. 기본에서 미러를 가리 킵니다 (다른 데이터베이스 이름과 IP 주소 만).

  6. 그런 다음 시간이 오면 기본 미러를 미러로 전환하십시오.

    ALTER DATABASE GaiusDB SET PARTNER FAILOVER
    GO

참고 :이 두 서버가 동일한 네트워크에 있다고 가정하므로 동기 모드로 작동해도 괜찮습니다. 이것이 WAN 링크를 통해 이루어지면 비동기 모드를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.