자습서: 마이그레이션 서비스를 사용하여 Amazon Aurora PostgreSQL에서 Azure Database for PostgreSQL로 온라인 마이그레이션
이 문서에서는 PostgreSQL 데이터베이스를 Amazon Aurora에서 Azure Database for PostgreSQL로 온라인으로 마이그레이션하는 방법을 설명합니다.
Azure Database for PostgreSQL의 마이그레이션 서비스는 Azure Portal 및 Azure CLI에 통합된 완전 관리형 서비스입니다. Azure Database for PostgreSQL로의 마이그레이션 과정을 간소화하도록 설계되었습니다.
이 자습서에서는 다음을 수행합니다.
- 필수 조건 완료
- 마이그레이션 시작
- 마이그레이션 모니터링
- 단독형 시작
- 마이그레이션 확인
필수 조건
Azure Database for PostgreSQL에서 마이그레이션 서비스를 사용하여 마이그레이션을 시작하기 전에 다음 필수 조건을 완료해야 합니다. 이러한 필수 구성 요소는 온라인 마이그레이션 시나리오를 위해 특별히 설계되었습니다.
원본 버전 확인
원본 PostgreSQL 서버 버전은 9.5 이상이어야 합니다. 원본 PostgreSQL 버전이 9.5보다 이전인 경우 마이그레이션을 시작하기 전에 버전을 9.5 이상으로 업그레이드합니다.
원본 설정에 대한 test_decoding 설치
- test_decoding 플러그 인은 논리 디코딩 메커니즘을 통해 WAL(Write-Ahead Logging)을 받습니다. 플러그 인은 WAL을 수행되는 작업의 텍스트 표현으로 디코딩합니다.
- PostgreSQL용 Amazon RDS에는 test_decoding 플러그 인이 사전 설치되어 있으며 논리적 복제가 가능합니다. CDC(변경 데이터 캡처) 또는 외부 시스템에 복제하는 경우와 같이 논리적 복제 슬롯을 쉽게 설정하고 WAL 변경 내용을 스트리밍할 수 있습니다.
test_decoding 플러그 인에 대한 자세한 내용은 PostgreSQL 설명서를 참조 하세요.
대상 설정 구성
마이그레이션을 시작하기 전에 Azure에서 Azure Database for PostgreSQL 인스턴스를 만들어야 합니다. Azure Database for PostgreSQL - 유연한 서버에 대해 프로비전된 SKU는 원본과 일치해야 합니다.
자세한 내용은 Azure Database for PostgreSQL 인스턴스 만들기를 참조 하세요.
원본으로 CDC 사용
test_decoding 논리 디코딩 플러그 인은 원본에서 변경된 레코드를 캡처합니다.
마이그레이션 사용자가 복제 권한에 액세스할 수 있도록 하려면 다음 명령을 실행합니다.
GRANT rds_replication TO <username>;
원본 PostgreSQL 인스턴스에서 새 매개 변수 그룹을 만들어 데이터베이스 클러스터 매개 변수 그룹에서 다음 매개 변수를 수정합니다.
rds.logical_replication
를1
로 설정합니다.- 보다
1
큰 값으로 설정합니다max_replication_slots
. 값은 마이그레이션을 위해 선택한 데이터베이스 수보다 커야 합니다. - 보다
1
큰 값으로 설정합니다max_wal_senders
. 인스턴스에 이미 사용된 보낸 사람 수와 값이 같max_replication_slots
아야 합니다. - 매개 변수는
wal_sender_timeout
지정된 시간(밀리초)보다 긴 비활성 복제 연결을 종료합니다. Amazon Aurora PostgreSQL 인스턴스의 기본값은 .입니다30000 milliseconds (30 seconds)
. 시간 제한 메커니즘을 사용하지 않도록 값을 설정하면0 (zero)
마이그레이션에 유효한 설정이 됩니다.
대상 유연한 서버에서 온라인 마이그레이션이 로그를 저장할 스토리지가 부족하지 않도록 하려면 프로비전된 관리 디스크를 사용하여 테이블스페이스에 충분한 스토리지가 있는지 확인합니다. 마이그레이션 기간 동안 서버 매개 변수
azure.enable_temp_tablespaces_on_local_ssd
를 사용하지 않도록 설정합니다. 마이그레이션 후 매개 변수를 원래 상태로 복원합니다.
네트워크 설정 구성
마이그레이션 서비스가 올바르게 작동하려면 네트워크 설정이 중요합니다. 원본 PostgreSQL 서버가 Azure Database for PostgreSQL의 대상 서버와 통신할 수 있는지 확인합니다.
네트워크 설정에 대한 자세한 내용은 마이그레이션 서비스에 대한 네트워크 시나리오를 참조하세요.
확장 사용
Azure Database for PostgreSQL에서 마이그레이션 서비스를 사용하여 마이그레이션을 성공적으로 수행하려면 원본 PostgreSQL 인스턴스에 대한 확장을 확인해야 할 수 있습니다. 확장은 애플리케이션에 필요할 수 있는 기능과 기능을 제공합니다. 마이그레이션 프로세스를 시작하기 전에 원본 PostgreSQL 인스턴스에서 확장을 확인해야 합니다.
Azure Database for PostgreSQL - 유연한 서버의 대상 인스턴스에서 원본 PostgreSQL 인스턴스에서 식별되는 지원되는 확장을 사용하도록 설정합니다.
자세한 내용은 Azure Database for PostgreSQL의 확장을 참조 하세요.
참고 항목
매개 변수를 변경할 때 다시 시작해야 합니다 shared_preload_libraries
.
서버 매개 변수 확인
서버 매개 변수는 자동으로 대상 환경으로 마이그레이션되지 않으며 수동으로 구성해야 합니다.
원본 PostgreSQL 데이터베이스의 서버 매개 변수 값을 Azure Database for PostgreSQL 인스턴스와 일치합니다. Azure Portal에서 서버 매개 변수로 이동하여 값을 수동으로 업데이트합니다.
매개 변수 변경 내용을 저장하고 필요한 경우 Azure Database for PostgreSQL 인스턴스를 다시 시작하여 새 구성을 적용합니다.
사용자 및 역할 확인
Azure Database for PostgreSQL로 마이그레이션하는 경우 사용자와 역할의 마이그레이션을 별도로 해결해야 합니다. 수동 개입이 필요하기 때문입니다.
사용자 및 역할의 수동 마이그레이션: 사용자 및 해당 관련 역할은 Azure Database for PostgreSQL 인스턴스로 수동으로 마이그레이션해야 합니다. 이 프로세스를 용이하게 하기 위해 플래그와 함께 pg_dumpall 유틸리티를
--globals-only
사용하여 역할 및 사용자 계정과 같은 전역 개체를 내보낼 수 있습니다.다음 명령을 실행합니다. 실제 사용자 이름으로 바꾸고 출력 파일에 사용할 이름으로 바
<filename>
꿉<username>
습니다.pg_dumpall --globals-only -U <username> -f <filename>.sql
슈퍼 사용자 역할에 대한 제한: Azure Database for PostgreSQL은 슈퍼 사용자 역할을 지원하지 않습니다. 마이그레이션 전에 슈퍼 사용자 권한을 제거해야 합니다. 그에 따라 권한과 역할을 조정했는지 확인합니다.
이러한 단계를 완료하면 사용자 계정 및 역할이 슈퍼 사용자 제한과 관련된 문제 없이 Azure Database for PostgreSQL로 올바르게 마이그레이션되도록 할 수 있습니다.
대상에서 고가용성(안정성) 및 읽기 복제본을 사용하지 않도록 설정합니다.
마이그레이션을 시작하기 전에 대상 환경에서 고가용성(안정성)과 읽기 복제본을 사용하지 않도록 설정하는 것이 중요합니다. 이러한 기능은 마이그레이션이 완료된 후에만 사용하도록 설정해야 합니다.
마이그레이션 시작
Azure Portal 또는 Azure CLI를 사용하여 마이그레이션할 수 있습니다.
Azure Portal은 마이그레이션을 안내하는 간단하고 직관적인 마법사 기반 환경을 제공합니다. 이 자습서에 설명된 단계를 완료하면 데이터베이스를 Azure Database for PostgreSQL - 유연한 서버로 원활하게 전송하고 강력한 기능과 확장성을 활용할 수 있습니다.
Azure Portal을 사용하여 마이그레이션하려면 먼저 마이그레이션 작업을 구성합니다. 그런 다음 원본 및 대상에 연결하고 마이그레이션을 시작합니다.
마이그레이션 태스크 구성
Azure Portal에서 마이그레이션 작업을 구성하려면 다음을 수행합니다.
웹 브라우저를 열고 Azure Portal로 이동합니다. 자격 증명을 입력하여 로그인합니다.
Azure Database for PostgreSQL - 유연한 서버의 인스턴스로 이동합니다.
서비스 메뉴에서 마이그레이션을 선택합니다.
만들기를 선택하여 Amazon Aurora에서 유연한 서버로 마이그레이션합니다.
마이그레이션 서비스를 처음 사용하면 첫 번째 마이그레이션을 시작하라는 메시지와 함께 빈 그리드가 나타납니다. 유연한 서버 대상으로의 마이그레이션이 이미 만들어진 경우 그리드에는 마이그레이션 시도에 대한 정보가 포함됩니다.
만들기를 선택하여 일련의 탭을 단계별로 실행하여 마이그레이션을 설정합니다.
설정
다음 정보를 입력하거나 선택합니다.
마이그레이션 이름: 이 유연한 서버 대상으로 마이그레이션할 때마다 고유 식별자를 입력합니다. 마이그레이션 이름에는 영숫자 문자와 하이픈(
-
)만 사용할 수 있습니다. 이름은 하이픈으로 시작할 수 없으며 대상 서버에 대해 고유해야 합니다. 동일한 유연한 서버 대상으로의 두 마이그레이션은 동일한 이름을 가질 수 없습니다.원본 서버 유형: 클라우드 기반 PostgreSQL 서비스, 온-프레미스 설정 또는 가상 머신과 같이 PostgreSQL 원본에 해당하는 원본 유형을 선택합니다.
마이그레이션 옵션: 미리 배포 유효성 검사에 대해 다음 옵션 중 하나를 선택합니다.
- 유효성 검사 대상 원본으로 마이그레이션할 서버 및 데이터베이스 준비 상태를 확인합니다.
- 마이그레이션합니다. 유효성 검사를 건너뛰고 마이그레이션을 시작합니다.
- 유효성을 검사하고 마이그레이션합니다. 마이그레이션을 트리거하기 전에 유효성 검사를 수행합니다. 유효성 검사 실패가 없으면 마이그레이션이 트리거됩니다.
우선 유효성 검사에 대해 유효성 검사 또는 유효성 검사 및 마이그레이션 옵션을 선택하는 것이 좋습니다.
자세한 내용은 미리 배포 유효성 검사를 참조 하세요.
마이그레이션 모드: 마이그레이션 모드를 선택합니다. 기본 옵션은 오프라인입니다.
다음을 선택합니다 . 원본에 연결합니다.
런타임 서버 선택
마이그레이션 런타임 서버는 마이그레이션 서비스의 특수한 기능입니다. 런타임 서버는 마이그레이션 중에 중간 서버 역할을 합니다. 대상 서버가 아닌 Azure Database for PostgreSQL - 유연한 서버의 별도 인스턴스입니다. 런타임 서버는 프라이빗 네트워크를 통해서만 액세스할 수 있는 원본 환경에서 데이터베이스를 쉽게 마이그레이션할 수 있습니다.
자세한 내용은 마이그레이션 런타임 서버를 참조 하세요.
원본에 연결
원본에 연결 탭에서 데이터베이스 원본 에 대해 다음 정보를 입력하거나 선택합니다.
- 서버 이름: 원본 PostgreSQL 인스턴스의 호스트 이름 또는 IP 주소를 입력합니다.
- 포트: 원본 서버의 포트 번호를 입력합니다.
- 서버 관리자 로그인 이름: 원본 PostgreSQL 서버의 사용자 이름을 입력합니다.
- 암호: 원본 PostgreSQL 서버의 암호를 입력합니다.
- SSL 모드: 지원되는 값은 Prefer 및 Require입니다. 원본 PostgreSQL 서버의 SSL(Secure Sockets Layer)이 꺼져 있으면 [선호]를 선택합니다. 원본 서버의 SSL이 켜진 경우 [필요]를 선택합니다. SSL 값은 postgresql.conf 파일에 설정됩니다.
- 연결 테스트: 대상과 원본 간의 연결 테스트를 시작합니다. 연결에 성공하면 다음 단계로 이동하여 대상과 원본 간의 네트워킹 문제를 식별하고 원본의 사용자 이름과 암호를 확인합니다. 연결 테스트를 설정하는 데 몇 분 정도 걸립니다.
테스트 연결이 성공하면 다음을 선택합니다 . 마이그레이션 대상을 선택합니다.
마이그레이션 대상 선택
마이그레이션 대상 선택 탭에서 구독, 리소스 그룹 및 서버 이름 외에도 유연한 서버 대상에 대해 다음 정보를 입력하거나 선택합니다.
- 관리자 사용자 이름: 대상 PostgreSQL 서버의 관리자 사용자 이름입니다.
- 암호: 대상 PostgreSQL 서버의 암호입니다.
- 사용자 지정 FQDN/IP(선택 사항): 사용자 지정 FQDN/IP 필드는 선택 사항이며 대상이 사용자 지정 DNS 서버 뒤에 있거나 사용자 지정 DNS 네임스페이스가 있는 경우 사용할 수 있으므로 특정 FQDN 또는 IP 주소를 통해서만 액세스할 수 있습니다. 예를 들어 사용자 지정 DNS 서버에 DNS 영역이 포함되어 있거나 이 영역에
168.63.129.16
대한 쿼리를 전달하여 Azure 공용 또는 프라이빗 DNS 영역에서postgres.database.azure.com
FQDN이 확인되는 경우와 같은 PostgreSQL FQDN과 같은flexibleserver.postgres.database.azure.com
flexibleserver.example.com
198.1.0.2
항목이 포함될 수 있습니다. - 연결 테스트: 대상과 원본 간의 연결 테스트를 시작합니다. 연결에 성공하면 다음 단계로 이동하여 대상과 원본 간의 네트워킹 문제를 식별하고 대상 서버의 사용자 이름과 암호를 확인합니다. 연결 테스트를 설정하는 데 몇 분 정도 걸립니다.
테스트 연결이 성공하면 다음을 선택합니다 . 마이그레이션할 데이터베이스를 선택합니다.
마이그레이션할 데이터베이스 선택
마이그레이션할 데이터베이스 선택 탭에서 원본 PostgreSQL 서버에서 마이그레이션할 사용자 데이터베이스 목록에서 선택합니다.
데이터베이스를 선택한 후 다음: 요약을 선택합니다.
요약
요약 탭에는 유효성 검사 또는 마이그레이션 만들기에 대한 모든 원본 및 대상 세부 정보가 요약되어 있습니다. 세부 정보를 검토한 다음 유효성 검사 및 마이그레이션 시작을 선택합니다.
마이그레이션 모니터링
유효성 검사 및 마이그레이션 시작을 선택한 후 몇 초 이내에 유효성 검사 또는 마이그레이션 만들기가 성공했음을 알리는 알림이 나타납니다. 유연한 서버 인스턴스 마이그레이션 창으로 리디렉션됩니다. 상태 항목은 InProgress이고 하위 상태는 PerformingPreRequisiteSteps입니다. 이 워크플로는 마이그레이션 인프라를 설정하고 네트워크 연결을 확인하는 데 2~3분이 걸립니다.
마이그레이션을 표시하는 표에는 다음과 같은 열이 있습니다.
- 이름
- 상태
- 마이그레이션 모드
- 마이그레이션 유형
- 원본 서버
- 원본 서버 유형
- 데이터베이스
- 기간
- 시작 시간
항목은 시작 시간의 내림차순으로 표시되며 가장 최근 항목이 맨 위에 표시됩니다. 메뉴 모음에서 새로 고침을 선택하여 유효성 검사 또는 마이그레이션 실행의 상태를 새로 고칠 수 있습니다.
마이그레이션 세부 정보
마이그레이션 목록에서 마이그레이션 이름을 선택하여 관련 세부 정보를 확인합니다.
설치 탭에서 마이그레이션 옵션 유효성 검사 및 마이그레이션을 선택합니다. 이 시나리오에서는 마이그레이션이 시작되기 전에 유효성 검사가 완료됩니다. PerformingPreRequisiteSteps 하위 상태가 완료되면 워크플로가 진행률 하위 상태의 유효성 검사로 이동합니다.
유효성 검사에 오류가 있으면 마이그레이션이 실패 상태로 전환됩니다.
오류 없이 유효성 검사가 완료되면 마이그레이션이 시작되고 워크플로가 하위 상태 마이그레이션 데이터로 이동합니다.
인스턴스 수준 및 데이터베이스 수준에서 유효성 검사 세부 정보를 확인할 수 있습니다.
인스턴스 수준에서 유효성 검사:
- Azure Database for PostgreSQL - 유연한 서버 인스턴스의 서버 매개 변수에서 확장이 사용하도록 설정되어 있는지 원본 버전(
PostgreSQL version >= 9.5
서버 매개 변수 확인)에 대한 연결 검사와 관련된 유효성 검사를 확인합니다.
- Azure Database for PostgreSQL - 유연한 서버 인스턴스의 서버 매개 변수에서 확장이 사용하도록 설정되어 있는지 원본 버전(
데이터베이스 수준에서 유효성 검사:
- Azure Database for PostgreSQL - 유연한 서버에서 확장 및 데이터 정렬 지원과 관련된 개별 데이터베이스의 유효성 검사를 확인합니다.
마이그레이션 세부 정보 창에서 마이그레이션 및 유효성 검사의 현재 상태를 볼 수 있습니다.
다음 표에서는 몇 가지 가능한 마이그레이션 상태 및 하위 상태를 설명합니다.
마이그레이션 상태
시스템 상태 | 설명 |
---|---|
InProgress | 마이그레이션 인프라 구축이 진행 중이거나, 실제 데이터 마이그레이션이 진행 중입니다. |
취소됨 | 마이그레이션이 취소되거나 삭제되었습니다. |
실패함 | 마이그레이션에 실패했습니다. |
유효성 검사 실패 | 유효성 검사에 실패했습니다. |
성공함 | 마이그레이션이 성공하고 완료되었습니다. |
WaitingForUserAction | 온라인 마이그레이션에만 적용됩니다. 사용자가 단독형 작업을 수행할 때까지 대기합니다. |
마이그레이션 하위 상태
하위 상태 | 설명 |
---|---|
PerformingPreRequisiteSteps | 데이터 마이그레이션을 위한 인프라 설정이 진행 중입니다. |
유효성 검사 진행 중 | 유효성 검사가 진행 중입니다. |
MigratingData | 데이터 마이그레이션이 진행 중입니다. |
CompletingMigration | 마이그레이션이 최종 완료 단계에 있습니다. |
완료됨 | 마이그레이션이 완료되었습니다. |
실패함 | 마이그레이션이 실패했습니다. |
유효성 검사 하위 상태
하위 상태 | 설명 |
---|---|
실패함 | 유효성 검사에 실패했습니다. |
성공함 | 유효성 검사에 성공했습니다. |
경고 | 유효성 검사에서 경고를 표시합니다. |
단독형 시작
마이그레이션 및 유효성 검사 및 마이그레이션이 모두 표시되면 온라인 마이그레이션을 완료하려면 단독형을 시작하는 추가 단계가 필요합니다. 기본 데이터의 복사 및 복제가 완료되면 마이그레이션이 WaitingForUserAction 상태 및 WaitingForCutoverTrigger 하위 상태로 이동합니다. 이 상태에서 사용자는 마이그레이션을 선택하여 포털에서 컷오버를 트리거할 수 있습니다.
단독형을 시작하기 전에 다음을 확인하는 것이 중요합니다.
- 원본에 대한 쓰기가 중지됩니다.
- 값이
latency
0으로 감소하거나 0에 가깝습니다.
마이그레이션 세부 정보 창에서 값을 가져올 latency
수 있습니다.
latency
값은 대상이 원본과 마지막으로 동기화된 시간을 나타냅니다. 이 시점에서 원본에 쓰기를 중지할 수 있으며 단독형을 시작할 수 있습니다. 원본 서버에 트래픽이 많은 경우 0에 근접할 수 있도록 먼저 쓰기를 중지하는 latency
것이 좋습니다. 그런 다음, 단독형을 시작합니다.
컷오버 작업은 원본에서 대상으로 보류 중인 모든 변경 내용을 적용하고 마이그레이션을 완료합니다. 0이 아닌 값 latency
이 있더라도 단독형을 트리거하면 해당 시점에 복제가 중지됩니다. 컷오버 지점이 대상에 적용될 때까지 모든 데이터는 원본에 있습니다. 예를 들어 중단 지점에서 대기 시간이 15분인 경우 지난 15분 동안 변경된 모든 데이터가 대상에 적용됩니다. 컷오버가 완료되는 데 걸리는 시간은 해당 15분 동안 발생한 변경 내용의 백로그에 따라 달라집니다. 따라서 중단을 트리거하기 전에 대기 시간이 0 또는 0에 가깝게 이동하는 것이 좋습니다.
마이그레이션은 데이터 마이그레이션 하위 상태 또는 단독형(온라인 마이그레이션)이 성공적으로 완료되면 성공 상태로 이동합니다. 데이터 마이그레이션 하위 상태에 문제가 있는 경우 마이그레이션이 실패 상태로 이동합니다.
마이그레이션 확인
데이터베이스 마이그레이션이 완료되면 원본과 대상 간의 데이터의 유효성을 수동으로 검사합니다. 대상 데이터베이스의 모든 개체가 성공적으로 생성되었는지 확인합니다.
마이그레이션 후 다음 작업을 완료할 수 있습니다.
- 유연한 서버에서 데이터를 확인하고 원본 인스턴스의 정확한 복사본인지 확인합니다.
- 확인 후 필요에 따라 유연한 서버에서 고가용성 옵션을 사용하도록 설정합니다.
- 애플리케이션의 요구 사항에 맞게 유연한 서버의 SKU(버전)를 변경합니다. 이 변경을 수행하려면 데이터베이스 서버를 다시 시작해야 합니다.
- 원본 인스턴스의 기본값에서 서버 매개 변수를 변경하는 경우 해당 서버 매개 변수 값을 유연한 서버에 복사합니다.
- 태그, 경고, 방화벽 규칙(해당되는 경우)과 같은 기타 서버 설정을 원본 인스턴스에서 유연한 서버로 복사합니다.
- 연결 문자열이 유연한 서버를 가리키도록 애플리케이션을 변경합니다.
- 데이터베이스 성능을 면밀히 모니터링하여 성능 튜닝이 필요한지 확인합니다.