Bagikan melalui


Memigrasikan database PostgreSQL ke server PostgreSQL dengan dukungan Azure Arc

Dokumen ini menjelaskan langkah-langkah untuk mendapatkan database PostgreSQL Yang sudah ada (yang tidak dihosting di Layanan Data dengan dukungan Azure Arc) ke server PostgreSQL dengan dukungan Azure Arc Anda.

Catatan

Sebagai fitur pratinjau, teknologi yang tersaji dalam artikel ini tunduk pada Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Pembaruan terbaru tersedia dalam catatan rilis.

Pertimbangan

Server PostgreSQL dengan dukungan Azure Arc adalah versi komunitas PostgreSQL. Jadi alat apa pun yang berfungsi di PostgreSQL di luar Azure Arc harus berfungsi dengan server PostgreSQL dengan dukungan Azure Arc.

Sehingga, dengan seperangkat alat yang Anda gunakan hari ini untuk Postgres, Anda harus dapat:

  1. Mencadangkan database Postgres Anda dari instans Anda yang dihosting di luar Azure Arc
  2. Memulihkannya di server PostgreSQL dengan dukungan Azure Arc Anda

Sisanya yang harus Anda lakukan adalah:

  • mengatur ulang parameter server
  • mengatur ulang konteks keamanan: membuat ulang pengguna, peran, dan mengatur ulang izin...

Untuk melakukan operasi pencadangan/pemulihan ini, Anda dapat menggunakan alat apa pun yang mampu melakukan pencadangan/pemulihan untuk Postgres. Contohnya:

  • Azure Data Studio dan ekstensi Postgres-nya
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

Contoh

Mari kita ilustrasikan langkah-langkah tersebut menggunakan alat pgAdmin. Pertimbangkan pengaturan berikut:

  • Sumber:
    Server Postgres dijalankan secara lokal di server logam kosong dan bernama JEANYDSRV. Ini adalah versi 14 dan menghosting database bernama MyOnPremPostgresDB yang memiliki satu tabel T1 yang memiliki 1 baris Sumber migrasi

  • Tujuan:
    Server Postgres yang berjalan di lingkungan Azure Arc dan bernama postgres01. Ini adalah versi 14. Ia tidak memiliki database apa pun kecuali database Postgres standar.
    Tujuan-migrasi

Ambil cadangan database sumber lokal

Cadangan-sumber-migrasi

Konfigurasikannya:

  1. Beri nama file: MySourceBackup
  2. Atur format ke KustomMigrate-source-backup-configure

Pencadangan berhasil diselesaikan:
Migrasi-sumber-cadangan-selesai

Membuat database kosong pada sistem tujuan di server PostgreSQL dengan dukungan Azure Arc Anda

Catatan

Untuk mendaftarkan instance Postgres di pgAdmin alat ini, Anda harus menggunakan IP publik instans Anda di kluster Kubernetes dan set konteks port dan keamanan dengan tepat. Anda akan menemukan detail ini pada psql baris titik akhir setelah menjalankan perintah berikut:

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

Yang menghasilkan output seperti:

{
  "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"
}

Mari kita beri nama database tujuan RESTORED_MyOnPremPostgresDB.

Migrasi-tujuan-db-buat

Pulihkan database dalam pengaturan Arc Anda

Migrasi-db-pemulihan

Konfigurasikan pemulihan:

  1. Tunjuk file yang berisi cadangan untuk dipulihkan: MySourceBackup

  2. Pertahankan format diatur ke Kustom atau tarMigrasikan-db-restore-configure

  3. Klik Pulihkan.

    Pemulihan berhasil.
    Migrasi-db-pemulihan-selesai

Verifikasi bahwa database berhasil dipulihkan di server PostgreSQL dengan dukungan Azure Arc Anda

Gunakan salah satu metode berikut:

Dari pgAdmin:

Perluas instans Postgres yang dihosting di pengaturan Azure Arc Anda. Anda akan melihat tabel dalam database yang telah Anda pulihkan dan saat Anda memilih data, tabel memperlihatkan baris yang sama seperti yang ada di instans lokal:

Migrasi-db-pemulihan-verifikasi

Dari psql dalam pengaturan Azure Arc Anda:

Dalam pengaturan Arc Anda, Anda dapat menggunakan psql untuk menyambungkan ke instans Postgres Anda, set konteks database ke RESTORED_MyOnPremPostgresDB dan kueri data:

  1. Buat daftar titik akhir untuk membantu membentuk psql string koneksi Anda:

    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. Dari psql string koneksi Anda, gunakan -d parameter untuk menunjukkan nama database. Dengan perintah di bawah ini, Anda akan dimintai kata sandi:

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

    psql menghubungkan.

    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. Pilih tabel dan Anda akan melihat data yang dipulihkan dari instans Postgres lokal:

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

Catatan

  • Saat ini tidak mungkin untuk "onboard ke Azure Arc" instans Postgres yang ada yang akan dijalankan secara lokal atau di cloud lainnya. Dengan kata lain, tidak mungkin untuk memasang semacam "agen Azure Arc" pada instans Postgres yang ada untuk menjadikannya pengaturan Postgres yang diaktifkan oleh Azure Arc. Sebagai gantinya, Anda perlu membuat instans Postgres baru dan mentransfer data ke dalamnya. Anda dapat menggunakan teknik yang ditunjukkan di atas untuk melakukan ini atau Anda dapat menggunakan alat ETL pilihan Anda.

*Dalam dokumen ini, lewati bagian Masuk ke portal Azure, dan Buat Azure Database for PostgreSQL. Terapkan langkah yang tersisa dalam penyebaran Azure Arc Anda. Bagian-bagian tersebut khusus untuk server Azure Database for PostgreSQL yang ditawarkan sebagai layanan PaaS di cloud Azure tetapi bagian lain dari dokumen secara langsung berlaku untuk server PostgreSQL dengan dukungan Azure Arc Anda.