다음을 통해 공유


PostgreSQL 데이터베이스를 Azure Arc 지원 PostgreSQL 서버로 마이그레이션

이 문서에서는 기존 PostgreSQL 데이터베이스(Azure Arc 지원 Data Services에서 호스트되지 않은 데이터베이스)를 Azure Arc 지원 PostgreSQL 서버로 가져오는 단계를 설명합니다.

참고 항목

미리 보기 기능으로, 이 문서에 제시된 기술에는 Microsoft Azure 미리 보기에 대한 보충 사용 약관이 적용됩니다.

최신 업데이트는 릴리스 정보에서 확인할 수 있습니다.

고려 사항

Azure Arc 지원 PostgreSQL 서버는 PostgreSQL의 커뮤니티 버전입니다. Azure Arc 외부 PostgreSQL에서 작동하는 모든 도구는 Azure Arc 지원 PostgreSQL 서버에서 작동합니다.

따라서 Postgres에 대해 지금 사용하는 도구 세트로 다음을 수행할 수 있습니다.

  1. Azure Arc 외부에 호스트된 인스턴스에서 Postgres 데이터베이스를 백업합니다.
  2. Azure Arc 지원 PostgreSQL 서버에서 복원

사용자가 수행할 수 있는 작업은 다음과 같습니다.

  • 서버 매개 변수 재설정
  • 보안 컨텍스트 재설정: 사용자, 역할 재생성 및 권한 재설정...

이 백업/복원 작업을 수행하기 위해 Postgres에 대해 백업/복원을 수행할 수 있는 모든 도구를 사용할 수 있습니다. 예시:

  • Azure Data Studio 및 해당 Postgres 확장
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

예시

pgAdmin 도구를 사용하여 단계를 설명해 보겠습니다. 다음 설정을 고려하세요.

  • 원본:
    운영 체제 미설치 서버에서 온-프레미스로 실행되고 이름이 JEANYDSRV인 Postgres 서버 버전 14이고 1개의 행 Migrate-source을 포함한 T1 테이블이 있는 MyOnPremPostgresDB라는 데이터베이스를 호스트합니다.

  • 대상:
    Azure Arc 환경에서 실행되고 이름이 postgres01인 Postgres 서버 버전 14입니다. 표준 Postgres 데이터베이스를 제외한 데이터베이스는 없습니다.
    Migrate-destination

원본 데이터베이스의 백업을 온-프레미스로 가져오기

마이그레이션-원본-백업

구성하려면:

  1. 파일 이름 지정: MySourceBackup
  2. 형식을 사용자 지정Migrate-source-backup-configure으로 설정합니다.

백업이 성공적으로 완료됩니다.
Migrate-source-backup-completed

Azure Arc 지원 PostgreSQL 서버의 대상 시스템에서 빈 데이터베이스 만들기

참고 항목

pgAdmin 도구에 Postgres 인스턴스를 등록하려면 Kubernetes 클러스터에서 인스턴스의 공용 IP를 사용하고 포트 및 보안 컨텍스트를 적절하게 설정해야 합니다. 다음 명령을 실행한 후 psql 엔드포인트 줄에서 해당 세부 정보를 찾을 수 있습니다.

az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s

다음과 같은 출력을 반환합니다.

{
  "instances": [
    {
      "endpoints": [
    "Description": "PostgreSQL Instance",
    "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
  },
  {
    "Description": "Log Search Dashboard",
    "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
  },
  {
    "Description": "Metrics Dashboard",
    "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
  }
],
"engine": "PostgreSql",
"name": "postgres01"
}
  ],
  "namespace": "arc"
}

대상 데이터베이스의 이름을 RESTORED_MyOnPremPostgresDB로 지정합니다.

마이그레이션-대상-데이터베이스-만들기

Arc 설정에서 데이터베이스 복원

Migratre-db-restore

복원 구성:

  1. MySourceBackup라는 복원할 백업이 포함된 파일을 가리킵니다.

  2. 형식을 사용자 지정 또는 tarMigrate-db-restore-configure로 설정합니다.

  3. 복원을 클릭합니다.

    복원에 성공했습니다.
    마이그레이션-데이터베이스-복원-완료됨

데이터베이스가 Azure Arc 지원 PostgreSQL 서버에서 성공적으로 복원되었는지 확인

다음 방법 중 하나를 사용할 수 있습니다.

pgAdmin에서:

Azure Arc 설정에서 호스트되는 Postgres 인스턴스를 확장합니다. 복원된 데이터베이스의 테이블이 표시되고 데이터를 선택하면 온-프레미스 인스턴스에 있는 것과 동일한 행이 표시됩니다.

Migrate-db-restore-verification

Azure Arc 설정 내 psql에서:

Arc 설정 내에서 psql를 사용하여 Postgres 인스턴스에 연결하고 데이터베이스 컨텍스트를 RESTORED_MyOnPremPostgresDB로 설정하고 데이터를 쿼리할 수 있습니다.

  1. psql 연결 문자열에서 도움을 주는 엔드포인트를 나열합니다.

    az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
    
    {
      "instances": [
        {
          "endpoints": [
        "Description": "PostgreSQL Instance",
        "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
      },
      {
        "Description": "Log Search Dashboard",
        "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
      },
      {
        "Description": "Metrics Dashboard",
        "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
      }
    ],
    "engine": "PostgreSql",
    "name": "postgres01"
    }
      ],
      "namespace": "arc"
    }
    
  2. psql 연결 문자열에서 -d 매개 변수를 사용하여 데이터베이스 이름을 표시합니다. 아래의 명령을 사용하여 암호를 입력하라는 메시지가 표시됩니다.

    psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
    

    psql 연결

    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1), server 12.3 (Debian 12.3-1.pgdg100+1))
    WARNING: psql major version 10, server major version 12.
          Some psql features might not work.
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    RESTORED_MyOnPremPostgresDB=#   
    
  3. 테이블을 선택하면 온-프레미스 Postgres 인스턴스에서 복원한 데이터가 표시됩니다.

    RESTORED_MyOnPremPostgresDB=# select * from t1;
    
     col1 |    col2
    ------+-------------
        1 | BobbyIsADog
    (1 row)
    

참고 항목

  • 현재 온-프레미스 또는 기타 클라우드에서 실행되는 기존 Postgres 인스턴스를 “Azure Arc에 온보딩”할 수 없습니다. 즉, 기존 Postgres 인스턴스에 일종의 "Azure Arc 에이전트"를 설치하여 Azure Arc에서 사용할 수 있는 Postgres 설정으로 만들 수 없습니다. 대신 새 Postgres 인스턴스를 만들고 여기에 데이터를 전송해야 합니다. 위에 표시된 방법을 사용하여 이 작업을 수행하거나 원하는 ETL 도구를 사용할 수 있습니다.

*이 문서에서는 Azure Portal에 로그인 섹션을 건너뛰고 Azure Database for PostgreSQL을 만듭니다. Azure Arc 배포의 나머지 단계를 구현합니다. 이러한 섹션은 Azure 클라우드에서 PaaS 서비스로 제공되는 Azure Database for PostgreSQL 서버에 한정되지만, 문서의 다른 부분은 Azure Arc 지원 PostgreSQL 서버에 직접 적용할 수 있습니다.