공부/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를 생성함.