고급 마이그레이션은 다운타임을 줄여 대규모 데이터베이스의 데이터를 마이그레이션하는 솔루션입니다. 이 기능은 AlloyDB Omni 및 PostgreSQL에서만 사용할 수 있습니다.
프로젝트 DB 관리자 역할이 있는 사용자가 다음 단계를 수행해야 합니다. GDC 콘솔 또는 Distributed Cloud CLI를 사용하여 이전을 관리합니다.
콘솔
- 기본 메뉴에서 데이터베이스 서비스를 선택합니다.
- 마이그레이션 만들기를 클릭합니다.
- 시작하기 대화상자에서 소스 및 연결 요구사항을 검토합니다.
- 소스 데이터베이스 지정 대화상자에서 소스 데이터베이스 호스트 이름 또는 IP 주소, 사용자 이름, 비밀번호, 암호화 유형, 인증서를 지정합니다.
- 클러스터 구성 대화상자에서 대상 데이터베이스 클러스터의 클러스터 ID, 비밀번호, 데이터베이스 버전, CPU, 메모리, 스토리지 용량을 지정합니다. 가장 큰 테이블을 보관할 만큼 충분한 메모리를 선택해야 합니다.
- 만들기를 클릭합니다. 마이그레이션 및 대상 데이터베이스 클러스터를 만드는 데 몇 분 정도 걸릴 수 있습니다.
클러스터가 준비되면 상태가
Reconciling
에서Ready
로 변경됩니다. 마이그레이션이 성공적으로 설정되면 마이그레이션 상태가Unsynced
로 변경됩니다. 다음 옵션을 사용하여 이전을 관리합니다.- 시작: 마이그레이션을 시작하고 마이그레이션 상태를
Running
로 변경합니다. - 중지: 마이그레이션을 중지하고 마이그레이션 상태를
Stopped
로 변경합니다. - 승격: 대상 데이터베이스 클러스터를 독립형 데이터베이스로 승격합니다.
- 삭제: 이 마이그레이션에 대해 생성된 마이그레이션 및 대상 데이터베이스 클러스터를 삭제합니다.
- 시작: 마이그레이션을 시작하고 마이그레이션 상태를
다음 단계에 따라 소스 데이터베이스 복제 사용자 비밀번호를 주기적으로 순환합니다.
- 소스 데이터베이스로 이동하여 수정 수정을 클릭합니다.
- 복제 사용자 비밀번호를 순환하도록 변경합니다.
- 저장을 클릭하여 변경사항을 적용합니다.
변경사항이 적용되면 이전 백엔드에서 새 비밀번호를 사용합니다.
gdcloud
Distributed Cloud CLI를 사용하기 전에 설치하고 초기화하세요. 그런 다음 조직으로 인증합니다.
마이그레이션을 만듭니다.
gdcloud database connection-profiles create DB_ENGINE_TYPE SOURCE_CONNECTION_PROFILE \ --username REPLICATION_USERNAME \ --password REPLICATION_PASSWORD \ --ca-certificate CA_CERT_FILE_PATH gdcloud database migrations create MIGRATION_NAME \ --source SOURCE_CONNECTION_PROFILE \ --destination DESTINATION_DBCLUSTER gdcloud database clusters create DESTINATION_DBCLUSTER \ --database-version DB_VERSION \ --admin-password ADMIN_PASSWORD
다음 변수를 바꿉니다.
DB_ENGINE_TYPE
: 마이그레이션의 DB 엔진 유형입니다. 지원되는 값은postgresql
또는alloydbomni
입니다.SOURCE_CONNECTION_PROFILE
: 새 연결 프로필의 이름입니다.REPLICATION_USERNAME
: 소스 데이터베이스의 복제 사용자의 이름입니다.REPLICATION_PASSWORD
: 소스 데이터베이스의 복제 사용자의 비밀번호입니다.CA_CERT_FILE_PATH
: 소스 데이터베이스 CA 인증서의 경로입니다.MIGRATION_NAME
: 새 이전의 이름입니다.DESTINATION_DBCLUSTER
: 대상 데이터베이스 클러스터의 이름입니다.DB_VERSION
: 새 클러스터의 버전 문자열입니다. 예를 들면POSTGRESQL_13
입니다.ADMIN_PASSWORD
: 새 클러스터의 관리자 사용자 비밀번호입니다.
마이그레이션 시작:
gdcloud database migrations start MIGRATION_NAME
마이그레이션을 중지하려면 다음 단계를 따르세요.
gdcloud database migrations stop MIGRATION_NAME
마이그레이션을 승격합니다.
gdcloud database migrations promote MIGRATION_NAME
기존 연결 프로필을 나열합니다.
gdcloud database connection-profiles list DB_ENGINE_TYPE
기존 마이그레이션을 나열합니다.
gdcloud database migrations list --destination DESTINATION_DBCLUSTER
API
AlloyDB 또는 PostgreSQL 소스 데이터베이스의 경우:
소스 데이터베이스 CA 인증서를 저장할 보안 비밀을 만듭니다.
apiVersion: v1
data:
ca.crt: SOURCE_DB_CA_CERT
kind: Secret
metadata:
annotations:
propagation.gdch.gke.io/target-namespace: USER_PROJECT
name: es-crt-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
type: Opaque
소스 데이터베이스 마이그레이션 사용자 비밀번호를 저장할 보안 비밀을 만듭니다.
apiVersion: v1
data:
password: SOURCE_DB_USER_PASSWORD
kind: Secret
metadata:
annotations:
propagation.gdch.gke.io/target-namespace: USER_PROJECT
name: es-pw-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
type: Opaque
externalserver를 만듭니다.
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
metadata:
name: EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
spec:
host: SOURCE_DB_HOST
port: 5432
username: SOURCE_DB_USERNAME
password:
name: es-pw-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
certRef:
name: es-crt-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
마이그레이션을 만듭니다.
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: Migration
metadata:
name: MIGRATION_NAME
namespace: USER_PROJECT
spec:
source:
reference:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
name: EXTERNAL_SERVER_NAME
target:
reference:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: DBCluster
name: DBCLUSTER_NAME
control: MIGRATION_CONTROL
다음 변수를 바꿉니다.
EXTERNAL_SERVER_NAME
: 소스 데이터베이스를 나타내는 externalserver의 이름입니다.USER_PROJECT
: externalserver가 생성되는 사용자 프로젝트의 이름입니다.DBENGINE_NAME
: 데이터베이스 엔진의 이름입니다.alloydbomni
또는postgresql
중 하나입니다.SOURCE_DB_CA_CERT
: 소스 데이터베이스의 CA 인증서입니다.SOURCE_DB_USER_PASSWORD
: 소스 데이터베이스의 이전 사용자 비밀번호입니다.SOURCE_DB_USERNAME
: 소스 데이터베이스의 마이그레이션 사용자 이름입니다.SOURCE_DB_HOST
: 소스 데이터베이스의 이전 호스트 주소입니다.MIGRATION_NAME
: 마이그레이션 작업의 이름입니다.DBCLUSTER_NAME
: 마이그레이션 대상 데이터베이스 클러스터의 이름입니다.MIGRATION_CONTROL
: 마이그레이션 작업의 컨트롤입니다. 마이그레이션이 생성될 때start
또는stop
중 하나여야 합니다. 마이그레이션 대상 데이터베이스 클러스터를 승격하려면promote
이어야 합니다.