공부, 기록

[MSSQL/SQL SERVER] DB 이관(Migration) 본문

공부/DATABASE

[MSSQL/SQL SERVER] DB 이관(Migration)

무는빼주세요 2021. 5. 2. 09:52

AS-IS DB에서 TO-BE DB로 장비를 이관할 때의 절차입니다.

고려 사항으로는 DATA, LOGIN, AGENT 등입니다.

절차 설명 참고
OS 호환성 확인 SQL 버전 간 호환성을 확인. docs.microsoft.com/ko-kr/sql/database-engine/install-windows/supported-version-and-edition-upgrades-version-15?view=sql-server-ver15
DATA 백업 이전 DB 백업 전 복제가 있다면 끊어야 합니다. 스크립트 생성을 통하여 복제를 백업합니다.
DATA 백업 AS-IS DB에서 백업을 진행합니다. 

FULL백업과 필요시 로그, 차등백업을 진행합니다.
 
LOGIN 정보 추출 AS-IS DB의 계정 정보를 추출합니다.

sp_help_revlogin 프로시저의 결과값을 통해 이관합니다.
참고 :
docs.microsoft.com/ko-kr/troubleshoot/sql/security/transfer-logins-passwords-between-instances
AGENT 백업 AS-IS DB의 Agent의 JOB을 추출합니다.

시스템 데이터베이스의 msdb를 추출하는 방법과

Agent를 CREATE 스크립트로 추출하는 방법 등이 있습니다.

SSMS의 개체탐색기 정보(F7) 탭을 이용하여 쉽게 스크립트 추출이 가능
DATA 복원 TO-BE DB에서 AS-IS DB의 데이터를 복원합니다.  
LOGIN 복원 AS-IS DB에서 추출한 sp_help_revlogin 쿼리를 실행합니다. AS-IS 서버와 TO-BE 서버가 동일한 도메인일 경우 SID(보안ID)가 동일하게 설정되지만

도메인이 다를 경우 USER와 매핑과정이 필요합니다.

해결 방법은

exec sp_change_users_login 'Update_One', 'DB 사용자', 'Login 사용자' 프로시저를 사용 또는 

SSMS로 설정 가능합니다
참고:
docs.microsoft.com/ko-kr/troubleshoot/sql/security/transfer-logins-passwords-between-instances
AGENT 복원 AS-IS DB에서 추출한 Agent job을 복원합니다. Create Script 또는 msdb를 복원합니다.
복제 연결 끊었던 복제를 다시 연결 합니다. 생성했던 스크립트를 통하여 복제를 복원합니다.

 

※정해진 시간동안 새 장비로 이관할 DB의 사이즈가 클 경우

특정시점에 FULL BACKUP 을 받고 그 이후 주기적으로 LOG 백업을 진행한다.

복원 시점 직전에 FULL BACKUP을 진행 할 경우 백업이 실패할 시 이관에 큰 영향을 미칠 수 있으므로 여유 있는 기간을 두고 진행.

그 후 주기적으로 LOG 백업을 진행하면 LOG 데이터를 저장하는 디스크의 용량부족 이슈를 방지할 수 있다.
새 장비로 복원하는 경우 전체 복원 시점은 작업 전 이어도 상관없으므로 백업 후 미리 이상 확인을 하는 것 필요.
점검 시에는 로그파일 2~3개 정도만 옮길 수 있도록 준비.


※에이전트 복원 스크립트 중 

@schedule_uid 는 중복될 경우가 있으므로 제거한 뒤 복원하면 DB가 스스로 uid를 생성함.

'공부 > DATABASE' 카테고리의 다른 글

데이터 웨어하우스 // 데이터 파이프라인  (0) 2021.05.23
DBCP  (0) 2021.05.16
[MSSQL/SQL SERVER] 복제 (Replication)  (0) 2021.04.25
[MSSQL/SQL SERVER] 병렬처리  (0) 2021.04.18
[MSSQL/SQL SERVER] 파티션  (0) 2021.04.11