PostgreSQL에서 PostgreSQL용 AlloyDB로의 동종 마이그레이션을 간소화하려면 Database Migration Service의 빠른 시작 마이그레이션을 사용하여 네트워크 연결, 연결 프로필, 연속 복제 작업을 자동으로 프로비저닝하면 됩니다.
개요
빠른 시작 마이그레이션은 동종 PostgreSQL 시나리오를 위한 가벼운 연속 마이그레이션 흐름입니다. 빠른 시작 마이그레이션을 사용하면 Database Migration Service에서 데이터베이스를 마이그레이션하는 데 필요한 모든 항목(네트워킹 구성요소(네트워크 연결, 서브넷, 비공개 연결 구성), 연결 프로필, 마이그레이션 작업)을 자동으로 설정할 수 있습니다.
빠른 시작 마이그레이션을 사용하면 데이터를 기존 PostgreSQL용 AlloyDB 클러스터로 이동하거나 마이그레이션을 구성할 때 새 클러스터를 만들 수 있습니다. 빠른 시작 마이그레이션은 다음과 같은 경우에 가장 적합합니다.
- 데이터 덤프 동시 로드 설정을 정밀하게 제어할 필요가 없는 기본 마이그레이션
- 한 Google Cloud 프로젝트에서 다른 프로젝트로 데이터베이스 마이그레이션 빠른 시작 마이그레이션을 구성할 때 소스와 다른 프로젝트에 대상 클러스터를 만들고 Database Migration Service가 다른 프로젝트의 가상 프라이빗 클라우드 (VPC) 네트워크에 네트워크 연결 및 서브넷을 만들도록 설정할 수 있습니다.
-
Compute Engine의 자체 관리형 데이터베이스 또는 비공개 네트워킹에 사용 설정된 PostgreSQL용 Cloud SQL 인스턴스와 같이 Google Cloud가상 프라이빗 클라우드 (VPC) 네트워크에 비공개 IP 주소가 있는 소스에서 마이그레이션합니다.
Google Cloud 외부에 호스팅된 소스는 VPC 네트워크 내의 비공개 IP 주소에서 연결할 수 있도록 추가 네트워크 구성요소(예: Cloud VPN 연결)가 필요할 수 있습니다.
- 소스 데이터베이스에는 VPC 네트워크에 할당된 비공개 IP 주소가 있어야 합니다. Database Migration Service는 Private Service Connect 인터페이스 (네트워크 연결)를 사용하여 소스 데이터베이스에 연결합니다. 빠른 시작 마이그레이션에는 공개 IP 연결이 지원되지 않습니다.
빠른 시작 마이그레이션에 대한 자세한 내용은 Database Migration Service 문서의 빠른 시작 마이그레이션을 참조하세요.
시작하기 전에
- 빠른 시작 마이그레이션이 시나리오를 완전히 지원할 수 있는지 확인합니다. Database Migration Service 문서의 빠른 시작 마이그레이션 제한사항을 참조하세요.
-
Google 계정에
로그인합니다.
아직 계정이 없으면 새 계정을 등록하세요.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Database Migration Service, Compute Engine, Network Connectivity Center, PostgreSQL용 AlloyDB Admin API를 사용 설정합니다.
필요한 역할
Database Migration Service를 사용하여 PostgreSQL용 AlloyDB로 빠른 시작 마이그레이션을 실행하는 데 필요한 권한을 얻으려면 관리자에게 관련 프로젝트의 마이그레이션에 관련된 계정에 필요한 Identity and Access Management (IAM) 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 IAM 문서의 액세스 관리를 참조하세요.
원본 프로젝트의 역할 및 권한
소스 데이터베이스가 있는 Google Cloud 프로젝트의 특정 계정에 다음 역할을 부여합니다.
- 마이그레이션을 수행하는 사용자 계정의 경우: Compute 네트워크 관리자(
roles/compute.networkAdmin) - 대상 프로젝트의 Database Migration Service 서비스 계정:
Compute 네트워크 뷰어 (
roles/compute.networkViewer)Database Migration Service 서비스 계정은 Database Migration Service API를 사용 설정할 때 생성됩니다. 이 계정과 연결된 이메일 주소가 자동으로 생성되며 변경할 수 없습니다. 이 이메일 주소는 다음 형식을 사용합니다.
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com
이러한 사전 정의된 역할에는 Database Migration Service를 사용한 빠른 시작 마이그레이션의 일부로 소스 데이터베이스 프로젝트에서 연결을 설정하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 (소스) 섹션을 펼치세요.
필수 권한 (소스)
Database Migration Service를 사용하여 동종 빠른 시작 마이그레이션을 수행하려면 다음 권한이 필요합니다.
이전을 수행하는 사용자 계정의 경우:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
대상 프로젝트의 Database Migration Service 서비스 계정: compute.networkAttachments.get
대상 프로젝트의 역할 및 권한
대상 데이터베이스가 있는 Google Cloud 프로젝트에서 마이그레이션을 수행하는 사용자 계정에 다음 역할을 부여합니다.
-
데이터베이스 마이그레이션 관리자(
roles/datamigration.admin) -
AlloyDB 관리자
(
roles/alloydb.admin)
이러한 사전 정의된 역할에는 Database Migration Service를 사용한 빠른 시작 마이그레이션의 일부로 대상 데이터베이스 프로젝트에 필요한 마이그레이션 구성요소를 설정하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 (대상) 섹션을 펼치세요.
필요한 권한 (대상)
Database Migration Service를 사용하여 동종 빠른 시작 마이그레이션을 수행하려면 다음 권한이 필요합니다.
datamigration.*alloydb.clusters.createalloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.clusters.deletealloydb.instances.createalloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.instances.deletealloydb.instances.executeSqlalloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.updatealloydb.users.delete
소스 데이터베이스 구성
소스 PostgreSQL 데이터베이스를 구성하려면 다음을 수행합니다.
- 인스턴스에 전용 마이그레이션 사용자 계정을 만듭니다.
- PostgreSQL용 Cloud SQL 소스의 경우 Cloud SQL 문서의 사용자 만들기를 참조하세요.
- 다른 소스의 경우 데이터베이스 제공업체 문서 또는 PostgreSQL 문서의 사용자 만들기 및 관리를 참조하세요.
- 전용 마이그레이션 사용자 계정에 필요한 권한을 할당합니다.
마이그레이션하려는 각 데이터베이스에 대해 다음 명령어를 실행합니다.
-- Grant the REPLICATION attribute ALTER ROLE MIGRATION_USER REPLICATION; -- Grant database-level permissions. -- Repeat for each database you want to migrate. GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER; -- Grant schema-level usage. -- Repeat for each schema in each database you want to migrate. GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;
다음을 바꿉니다.
- MIGRATION_USER을 이전 사용자 계정의 이름으로 바꿉니다.
- DATABASE_NAME을 마이그레이션할 데이터베이스의 이름으로 바꿉니다.
- SCHEMA_NAME: 마이그레이션할 데이터베이스의 스키마 이름
- 마이그레이션 사용자 계정에는 마이그레이션하는 테이블에 대한 소유권 액세스 권한이 있어야 합니다. 이 수준의 액세스 권한을 부여하려면 다음 중 하나를 수행합니다.
- PostgreSQL용 Cloud SQL 이외의 소스만 해당: 마이그레이션 계정에
SUPERUSERPostgreSQL 역할을 할당합니다. - 모든 소스: 테이블을 소유한 사용자 그룹에 마이그레이션 사용자 계정을 추가합니다.
다음 명령어를 실행합니다.
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
다음을 바꿉니다.
- TABLE_OWNER_GROUP_NAME: 이전하려는 각 테이블을 소유한 사용자 그룹의 이름
- MIGRATION_USER을 이전 사용자 계정의 이름으로 바꿉니다.
- PostgreSQL용 Cloud SQL 이외의 소스만 해당: 마이그레이션 계정에
- 기본 키가 없는 테이블의 경우: 기본적으로 변경 데이터 캡처 (CDC) 단계에서 기본 키가 없는 테이블에 대해
INSERT작업만 복제됩니다.UPDATE및DELETE작업을 복제하려면 테이블의REPLICA IDENTITY를FULL또는USING INDEX로 설정해야 합니다.ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL; ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;
다음을 바꿉니다.
- TABLE_NAME는 기본 키가 없는 테이블의 이름입니다.
- INDEX_NAME는 기본 키가 없는 테이블의 행을 추적할 수 있는 고유 색인입니다.
- 데이터베이스 플래그를 사용하여 복제 설정을 구성합니다.
자체 관리형 소스
데이터베이스 플래그의 변경사항을 저장하려면 데이터베이스를 완전히 다시 시작해야 합니다. 다음 예시에서는 SQL 쿼리를 사용하여 플래그 값을 변경합니다. SQL 쿼리를 직접 실행할 수 없는 경우 제공업체 문서에서 이러한 플래그를 변경하는 단계를 참조하세요.
wal_level매개변수를logical로 설정합니다. 다음 명령어를 실행합니다.ALTER SYSTEM SET wal_level = 'logical';
wal_sender_timeout매개변수를0로 설정합니다. 이 값은 비활성 복제 연결을 종료하는 데 사용되는 제한 시간 메커니즘을 중지합니다. 다음 명령어를 실행합니다.ALTER SYSTEM SET wal_sender_timeout = 0;
max_replication_slots매개변수를 사용하여 최대 복제 슬롯 수를 구성합니다. 이 매개변수는 최소한 마이그레이션 작업당 마이그레이션하는 데이터베이스 수와 테이블 동기화를 위한 약간의 비축분을 더한 값으로 설정해야 합니다.예를 들어 5개의 데이터베이스를 마이그레이션하고 소스 인스턴스에 대해 2개의 마이그레이션 작업이 생성된 경우 복제 슬롯 수는 최소
5 * 2 = 10개에 이미 사용 중인 복제 슬롯 수를 더한 값이어야 합니다.이 매개변수를 설정하려면 다음 명령어를 실행합니다.
여기서 NUMBER_OF_SLOTS는 최대 복제 슬롯 수를 나타냅니다.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
max_wal_senders파라미터를 최소한max_replication_slots와 동일한 값에 인스턴스에서 이미 사용한 발신자 수를 더한 값으로 구성합니다.예를 들어
max_replication_slots파라미터가10으로 설정되어 있고 이미 발신자 2개를 사용 중인 경우 동시에 실행되는 WAL 발신자 프로세스 수는10 + 2 = 12개입니다.이 매개변수를 설정하려면 다음 명령어를 실행합니다.
여기서 NUMBER_OF_SENDERS는 동시에 실행되는 WAL 발신자 프로세스 수를 나타냅니다.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
max_worker_processes를 마이그레이션하려는 데이터베이스 수에 인스턴스에서 이미 사용한max_worker_processes수를 더한 값 이상으로 설정합니다. 이 매개변수를 설정하려면 다음 명령어를 실행합니다. 여기서 NUMBER_OF_PROCESSES는 마이그레이션할 데이터베이스 수를 나타냅니다.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
PostgreSQL용 Cloud SQL 소스
Cloud SQL 소스의 경우 Google Cloud 콘솔에서 데이터베이스 플래그를 구성합니다. 설정을 적용하려면 데이터베이스 플래그를 수정한 후 인스턴스를 다시 시작해야 합니다. Cloud SQL에서 데이터베이스 플래그를 설정하는 방법에 대한 자세한 내용은 Cloud SQL 문서의 데이터베이스 플래그 구성을 참조하세요.
cloudsql.logical_decoding플래그를on로 설정합니다.wal_sender_timeout매개변수를0로 설정합니다. 이 값은 비활성 복제 연결을 종료하는 데 사용되는 제한 시간 메커니즘을 중지합니다.max_replication_slots매개변수를 사용하여 최대 복제 슬롯 수를 구성합니다. 이 매개변수는 최소한 마이그레이션 작업당 마이그레이션하는 데이터베이스 수와 테이블 동기화를 위한 약간의 비축분을 더한 값으로 설정해야 합니다.예를 들어 5개의 데이터베이스를 마이그레이션하고 소스 인스턴스에 대해 2개의 마이그레이션 작업이 생성된 경우 복제 슬롯 수는 최소
5 * 2 = 10개에 이미 사용 중인 복제 슬롯 수를 더한 값이어야 합니다.max_wal_senders매개변수를 최소한max_replication_slots와 동일한 값에 인스턴스에서 이미 사용한 발신자 수를 더한 값으로 구성합니다.예를 들어
max_replication_slots파라미터가10으로 설정되어 있고 이미 발신자 2개를 사용 중인 경우 동시에 실행되는 WAL 발신자 프로세스 수는10 + 2 = 12개입니다.max_worker_processes매개변수를 마이그레이션하려는 데이터베이스 수에 인스턴스에서 이미 사용한max_worker_processes수를 더한 값 이상으로 설정합니다.
빠른 시작 마이그레이션 만들기 및 실행
빠른 시작 마이그레이션을 사용하면 새 PostgreSQL용 AlloyDB 클러스터를 만들고 데이터베이스를 마이그레이션하거나 데이터베이스를 기존 클러스터로 마이그레이션할 수 있습니다.
새 클러스터의 빠른 시작 마이그레이션
새 PostgreSQL용 AlloyDB 클러스터를 만들고 데이터베이스를 즉시 마이그레이션하려면 다음 단계를 따르세요.
콘솔
- 클러스터 페이지로 이동합니다.
- 클러스터 만들기 > 기존 데이터베이스에서를 클릭합니다.
Database Migration Service 빠른 시작 마이그레이션 양식이 열립니다.
- 마이그레이션 구성 섹션에서 다음을 수행합니다.
- 대상 리전 메뉴에서 대상 PostgreSQL용 AlloyDB 클러스터의 리전을 선택합니다.
- 마이그레이션 프리픽스 상자에 빠른 시작 마이그레이션을 위해 생성된 모든 마이그레이션 항목(연결 프로필, 비공개 연결 구성, 네트워크 연결 및 서브넷, 마이그레이션 작업)의 이름에 추가할 문자열을 입력합니다.
- 구성 유형 메뉴에서 다음 중 하나를 선택합니다.
- 기존 연결 구성: Private Service Connect 인터페이스 메서드를 사용하는 네트워크 연결 및 비공개 연결 구성이 이미 있는 경우 이 옵션을 선택합니다. 이 옵션은 이전에 빠른 시작 마이그레이션을 사용했고 동일한 네트워킹 리소스를 다시 사용하려는 경우에 가장 적합합니다.
- 새 연결 구성: 이 옵션을 선택하여 소스 데이터베이스 VPC 네트워크에 새 네트워크 연결 및 네트워크 연결 서브넷을 만듭니다. 비공개 연결 구성은 대상 클러스터와 동일한 프로젝트에 생성됩니다.
- 계속을 클릭합니다.
- 소스 연결 섹션에서 다음을 수행합니다.
- 소스 데이터베이스의 호스트 이름 또는 비공개 IP 주소를 입력합니다. 소스 데이터베이스 주소는 소스 VPC 네트워크에서 연결할 수 있어야 합니다.
- 호스트에 액세스하는 데 사용되는 포트를 입력합니다. 기본 PostgreSQL 포트 번호는
5432입니다. - 소스 데이터베이스에서 전용 마이그레이션 계정의 사용자 이름과 비밀번호를 입력합니다.
- 암호화 유형 메뉴에서 다음 중 하나를 선택합니다.
- 없음: 소스 데이터베이스에 SSL/TLS 암호화 연결이 필요하지 않은 경우
- 필수: 소스 데이터베이스에 SSL/TLS로 암호화된 연결이 필요한 경우 이 옵션은 인증서 확인이 필요하지 않습니다.
- 마이그레이션할 데이터베이스 메뉴에서 맞춤설정을 클릭합니다. 측면 패널을 사용하여 PostgreSQL용 AlloyDB로 마이그레이션할 데이터베이스만 선택합니다.
- 계속을 클릭합니다.
- 대상 구성 섹션에서 다음을 수행합니다.
- 대상 인스턴스 유형 메뉴에서 새 클러스터를 선택합니다.
Database Migration Service는 새 클러스터에 기본 PostgreSQL용 AlloyDB 구성을 사용합니다. 맞춤설정을 클릭하여 머신 유형, 영역 가용성, 데이터 보호 설정과 같은 클러스터 기능을 조정합니다. 클러스터 구성에 대한 자세한 내용은 클러스터 및 클러스터의 기본 인스턴스 만들기를 참조하세요.
- 비밀번호 필드에 기본
postgresql관리자 사용자의 비밀번호를 입력합니다. Database Migration Service는 이 사용자로 연결하여 데이터를 마이그레이션합니다.
- 대상 인스턴스 유형 메뉴에서 새 클러스터를 선택합니다.
- 이전 시작을 클릭합니다.
Database Migration Service가 마이그레이션 작업을 만들고 마이그레이션 프로세스를 시작합니다. PostgreSQL용 AlloyDB에서 마이그레이션 진행 상황과 대상 클러스터 상태를 모니터링할 수 있습니다. 자세한 내용은 클러스터 정보 보기를 참조하세요.
gcloud
gcloud CLI를 사용하여 새 PostgreSQL용 AlloyDB 클러스터로 마이그레이션하려면 다음 단계를 수행합니다.
-
네트워크 연결 리소스를 만듭니다.
소스 데이터베이스가 있는 프로젝트 및 가상 프라이빗 클라우드 네트워크에 네트워크 연결을 만듭니다.gcloud compute network-attachments create NETWORK_ATTACHMENT \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ --producer-accept-list=DEST_PROJECT_ID \ --subnets=default \ --project=SOURCE_PROJECT_ID
다음을 바꿉니다.
NETWORK_ATTACHMENT: 만들 네트워크 연결의 이름입니다.REGION: 네트워크 연결의 리전입니다.DEST_PROJECT_ID: 대상 프로젝트의 프로젝트 ID입니다.SOURCE_PROJECT_ID: 소스 네트워크가 있는 프로젝트 ID입니다.
-
Database Migration Service 테넌트 프로젝트가 네트워크 연결에 액세스하도록 허용합니다.
검증 검사를 실행하여 테넌트 프로젝트 ID를 가져온 다음 네트워크 연결 허용 목록을 업데이트하여 포함합니다.-
검증 검사를 수행하여 테넌트 프로젝트 ID를 가져옵니다.
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN \ --format="value(metadata.metadata.tenant_project_id)" \ --validate-only
다음을 바꿉니다.
PRIVATE_CONN: 비공개 연결 리소스의 이름입니다.REGION: 비공개 연결의 리전입니다.NETWORK_ATTACHMENT_URI: 이전 단계에서 만든 네트워크 연결의 URI입니다. 예를 들면projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT입니다.
-
검색된
DMS_TENANT_ID로 네트워크 연결을 업데이트합니다.gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
다음을 바꿉니다.
NETWORK_ATTACHMENT: 네트워크 연결의 이름입니다.REGION: 리전입니다.DEST_PROJECT_ID: 대상 프로젝트의 프로젝트 ID입니다.DMS_TENANT_ID: 검색된 Database Migration Service 테넌트 프로젝트 ID입니다.SOURCE_PROJECT_ID: 소스 네트워크가 있는 프로젝트 ID입니다.
-
-
비공개 연결 구성을 만듭니다.
대상 프로젝트에서 비공개 연결을 만듭니다.gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
다음을 바꿉니다.
PRIVATE_CONN: 비공개 연결 리소스의 이름입니다.REGION: 비공개 연결의 리전입니다.NETWORK_ATTACHMENT_URI: 네트워크 연결의 URI입니다.
-
소스 연결 프로필을 만듭니다.
소스 PostgreSQL 데이터베이스의 연결 프로필을 만듭니다.gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \ --region=REGION \ --role=SOURCE \ --host=SOURCE_PRIVATE_IP \ --port=SOURCE_PORT \ --username=SOURCE_USER \ --password=SOURCE_PASSWORD \ --private-connection=PRIVATE_CONN \ --no-async
다음을 바꿉니다.
SOURCE_CONN_ID: 소스 연결 프로필의 식별자입니다.REGION: 연결 프로필을 저장하려는 리전입니다.SOURCE_PRIVATE_IP: 소스 데이터베이스의 비공개 IP 주소입니다.SOURCE_PORT: 소스 데이터베이스의 포트입니다 (기본값은 5432).SOURCE_USER: 소스 데이터베이스에 있는 마이그레이션 사용자의 사용자 이름입니다.SOURCE_PASSWORD: 소스 데이터베이스에 있는 마이그레이션 사용자의 비밀번호입니다.PRIVATE_CONN: 비공개 연결 리소스의 이름입니다.
-
대상 PostgreSQL용 AlloyDB 클러스터를 만듭니다.
대상 클러스터와 클러스터의 기본 인스턴스를 만듭니다. 자세한 안내는 클러스터 및 클러스터의 기본 인스턴스 만들기 페이지를 참조하세요. -
대상 연결 프로필을 만듭니다.
새로 만든 PostgreSQL용 AlloyDB 클러스터를 가리키는 대상 연결 프로필을 만듭니다.gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --alloydb-cluster=DEST_CLUSTER \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
다음을 바꿉니다.
DEST_CONN_ID: 대상 연결 프로필의 식별자입니다.REGION: 연결 프로필을 저장하려는 리전입니다. 이 리전은 대상 클러스터 리전과 동일해야 합니다.DEST_CLUSTER: 대상 PostgreSQL용 AlloyDB 클러스터의 ID 또는 전체 리소스 경로입니다.DEST_USER: 대상 데이터베이스에 있는 마이그레이션 사용자의 사용자 이름입니다.DEST_PASSWORD: 대상 데이터베이스의 마이그레이션 사용자의 비밀번호입니다.
-
마이그레이션 작업을 만듭니다.
기본 복제가 사용 설정된 연속 마이그레이션 작업을 만듭니다.gcloud database-migration migration-jobs create MIGRATION_JOB_ID \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONN_ID \ --destination=DEST_CONN_ID \ --use-postgres-native \ --postgres-max-additional-subscriptions=10 \ --databases-filter=DATABASES_LIST \ --no-async
다음을 바꿉니다.
MIGRATION_JOB_ID: 마이그레이션 작업 식별자입니다.REGION: 마이그레이션 작업을 저장할 리전입니다.SOURCE_CONN_ID: 소스 연결 프로필 식별자입니다.DEST_CONN_ID: 대상 연결 프로필 식별자입니다.DATABASES_LIST: 마이그레이션할 데이터베이스의 쉼표로 구분된 목록입니다.
-
마이그레이션 작업을 시작합니다.
마이그레이션 작업을 시작하여 복제 흐름을 시작합니다.gcloud database-migration migration-jobs start MIGRATION_JOB_ID \ --region=REGION
다음을 바꿉니다.
MIGRATION_JOB_ID: 마이그레이션 작업의 식별자입니다.REGION: 마이그레이션 작업이 있는 리전입니다.
기존 클러스터의 빠른 시작 마이그레이션
데이터베이스를 기존 PostgreSQL용 AlloyDB 클러스터로 마이그레이션하려면 다음 단계를 따르세요.
콘솔
- 클러스터 페이지로 이동합니다.
- 데이터베이스를 마이그레이션할 PostgreSQL용 AlloyDB 클러스터를 선택합니다.
- 클러스터 세부정보 페이지에서 데이터 마이그레이션을 클릭합니다.
- 데이터 마이그레이션 패널에서 데이터베이스 마이그레이션을 클릭합니다.
Database Migration Service 빠른 시작 마이그레이션 양식이 열립니다.
- 마이그레이션 구성 섹션에서 다음을 수행합니다.
- 대상 리전 메뉴에서 대상 PostgreSQL용 AlloyDB 클러스터의 리전을 선택합니다.
- 마이그레이션 프리픽스 상자에 빠른 시작 마이그레이션을 위해 생성된 모든 마이그레이션 항목(연결 프로필, 비공개 연결 구성, 네트워크 연결 및 서브넷, 마이그레이션 작업)의 이름에 추가할 문자열을 입력합니다.
- 구성 유형 메뉴에서 다음 중 하나를 선택합니다.
- 기존 연결 구성: 소스 데이터베이스 VPC 네트워크에 Private Service Connect 인터페이스를 사용하는 네트워크 연결과 비공개 연결 구성이 이미 있는 경우 이 옵션을 선택합니다. 이 옵션은 이전에 빠른 시작 마이그레이션을 사용했고 동일한 네트워킹 리소스를 다시 사용하려는 경우에 가장 적합합니다.
- 새 연결 구성: 이 옵션을 선택하여 소스 데이터베이스 VPC 네트워크에 새 네트워크 연결, 네트워크 연결 서브넷, 비공개 연결 구성을 만듭니다.
- 소스 연결 섹션에서 다음을 수행합니다.
- 소스 데이터베이스의 호스트 이름 또는 비공개 IP 주소를 입력합니다. 소스 데이터베이스 주소는 소스 VPC 네트워크에서 연결할 수 있어야 합니다.
- 호스트에 액세스하는 데 사용되는 포트를 입력합니다. 기본 PostgreSQL 포트는
5432입니다. - 소스 데이터베이스에서 전용 마이그레이션 계정의 사용자 이름과 비밀번호를 입력합니다.
- 암호화 유형 메뉴에서 다음 중 하나를 선택합니다.
- 없음: 소스 데이터베이스에 SSL/TLS 암호화 연결이 필요하지 않은 경우
- 필수: 소스 데이터베이스에 SSL/TLS로 암호화된 연결이 필요한 경우 이 옵션은 인증서 확인이 필요하지 않습니다.
- 마이그레이션할 데이터베이스 메뉴에서 맞춤설정을 클릭합니다. 측면 패널을 사용하여 PostgreSQL용 AlloyDB로 마이그레이션할 데이터베이스만 선택합니다.
- 이전 시작을 클릭합니다.
Database Migration Service가 마이그레이션 작업을 만들고 마이그레이션 프로세스를 시작합니다. PostgreSQL용 AlloyDB에서 마이그레이션 진행 상황과 대상 클러스터 상태를 모니터링할 수 있습니다. 자세한 내용은 클러스터 정보 보기를 참조하세요.
gcloud
gcloud CLI를 사용하여 기존 PostgreSQL용 AlloyDB 클러스터로 마이그레이션하려면 다음 단계를 수행합니다.
-
네트워크 연결 리소스를 만듭니다.
소스 데이터베이스가 있는 프로젝트 및 VPC 네트워크에서 네트워크 연결을 만듭니다.gcloud compute network-attachments create NETWORK_ATTACHMENT \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ --producer-accept-list=DEST_PROJECT_ID \ --subnets=default \ --project=SOURCE_PROJECT_ID
다음을 바꿉니다.
NETWORK_ATTACHMENT: 만들 네트워크 연결의 이름입니다.REGION: 네트워크 연결의 리전입니다.DEST_PROJECT_ID: 대상 프로젝트의 프로젝트 ID입니다.SOURCE_PROJECT_ID: 소스 네트워크가 있는 프로젝트 ID입니다.
-
Database Migration Service 테넌트 프로젝트가 네트워크 연결에 액세스하도록 허용합니다.
검증 검사를 실행하여 테넌트 프로젝트 ID를 가져온 다음 네트워크 연결 허용 목록을 업데이트하여 포함합니다.-
검증 검사를 수행하여 테넌트 프로젝트 ID를 가져옵니다.
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN \ --format="value(metadata.metadata.tenant_project_id)" \ --validate-only
다음을 바꿉니다.
PRIVATE_CONN: 비공개 연결 리소스의 이름입니다.REGION: 비공개 연결의 리전입니다.NETWORK_ATTACHMENT_URI: 이전 단계에서 만든 네트워크 연결의 URI입니다. 예를 들면projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT입니다.
-
검색된
DMS_TENANT_ID로 네트워크 연결을 업데이트합니다.gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
다음을 바꿉니다.
NETWORK_ATTACHMENT: 네트워크 연결의 이름입니다.REGION: 리전입니다.DEST_PROJECT_ID: 대상 프로젝트의 프로젝트 ID입니다.DMS_TENANT_ID: 검색된 Database Migration Service 테넌트 프로젝트 ID입니다.SOURCE_PROJECT_ID: 소스 네트워크가 있는 프로젝트 ID입니다.
-
-
비공개 연결 구성을 만듭니다.
대상 프로젝트에서 비공개 연결을 만듭니다.gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
다음을 바꿉니다.
PRIVATE_CONN: 비공개 연결 리소스의 이름입니다.REGION: 비공개 연결의 리전입니다.NETWORK_ATTACHMENT_URI: 네트워크 연결의 URI입니다.
-
소스 연결 프로필을 만듭니다.
소스 PostgreSQL 데이터베이스의 연결 프로필을 만듭니다.gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \ --region=REGION \ --role=SOURCE \ --host=SOURCE_PRIVATE_IP \ --port=SOURCE_PORT \ --username=SOURCE_USER \ --password=SOURCE_PASSWORD \ --private-connection=PRIVATE_CONN \ --no-async
다음을 바꿉니다.
SOURCE_CONN_ID: 소스 연결 프로필의 식별자입니다.REGION: 연결 프로필을 저장하려는 리전입니다.SOURCE_PRIVATE_IP: 소스 데이터베이스의 비공개 IP 주소입니다.SOURCE_PORT: 소스 데이터베이스의 포트입니다 (기본값은 5432).SOURCE_USER: 소스 데이터베이스에 있는 마이그레이션 사용자의 사용자 이름입니다.SOURCE_PASSWORD: 소스 데이터베이스에 있는 마이그레이션 사용자의 비밀번호입니다.PRIVATE_CONN: 비공개 연결 리소스의 이름입니다.
-
대상 연결 프로필을 만듭니다.
사전 생성된 대상 PostgreSQL용 AlloyDB 클러스터를 가리키는 대상 연결 프로필을 만듭니다.gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --alloydb-cluster=DEST_CLUSTER \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
다음을 바꿉니다.
DEST_CONN_ID: 대상 연결 프로필의 식별자입니다.REGION: 연결 프로필을 저장하려는 리전입니다. 이 리전은 대상 클러스터 리전과 동일해야 합니다.DEST_CLUSTER: 대상 PostgreSQL용 AlloyDB 클러스터의 ID 또는 전체 리소스 경로입니다.DEST_USER: 대상 데이터베이스에 있는 마이그레이션 사용자의 사용자 이름입니다.DEST_PASSWORD: 대상 데이터베이스의 마이그레이션 사용자의 비밀번호입니다.
-
마이그레이션 작업을 만듭니다.
기본 복제가 사용 설정된 연속 마이그레이션 작업을 만듭니다.gcloud database-migration migration-jobs create MIGRATION_JOB_ID \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONN_ID \ --destination=DEST_CONN_ID \ --use-postgres-native \ --postgres-max-additional-subscriptions=10 \ --databases-filter=DATABASES_LIST \ --no-async
다음을 바꿉니다.
MIGRATION_JOB_ID: 마이그레이션 작업 식별자입니다.REGION: 마이그레이션 작업을 저장할 리전입니다.SOURCE_CONN_ID: 소스 연결 프로필 식별자입니다.DEST_CONN_ID: 대상 연결 프로필 식별자입니다.DATABASES_LIST: 마이그레이션할 데이터베이스의 쉼표로 구분된 목록입니다.
-
마이그레이션 작업을 시작합니다.
마이그레이션 작업을 시작하여 복제 흐름을 시작합니다.gcloud database-migration migration-jobs start MIGRATION_JOB_ID \ --region=REGION
다음을 바꿉니다.
MIGRATION_JOB_ID: 마이그레이션 작업의 식별자입니다.REGION: 마이그레이션 작업이 있는 리전입니다.
마이그레이션 완료
애플리케이션을 새 PostgreSQL용 AlloyDB 인스턴스로 전환하기로 결정한 경우 다음 단계에 따라 마이그레이션을 완료합니다.
- 소스 데이터베이스에서 모든 쓰기 작업을 중지합니다. 읽기 전용 모드로 전환하여 운영 기능을 유지할 수 있습니다.
- 마이그레이션 작업 승격
- (선택사항) 이전 데이터의 완전성을 확인합니다.