Bagikan melalui


Memulihkan server Azure PostgreSQL-Flexible sebagai File menggunakan portal Microsoft Azure

Artikel ini menjelaskan cara memulihkan server Azure PostgreSQL-Flexible sebagai File yang dicadangkan menggunakan portal Microsoft Azure.

Prasyarat

Sebelum Anda memulihkan dari cadangan server Fleksibel Azure Database for PostgreSQL, tinjau prasyarat berikut:

  • Pastikan Anda memiliki izin yang diperlukan untuk operasi pemulihan.

  • Data cadangan disimpan dalam Backup vault sebagai blob dalam tenant Microsoft. Selama operasi pemulihan, data cadangan disalin dari satu akun penyimpanan ke akun penyimpanan lainnya di seluruh penyewa. Pastikan bahwa akun penyimpanan target untuk pemulihan memiliki properti AllowCrossTenantReplication yang diatur ke true.

  • Pastikan akun penyimpanan target untuk memulihkan cadangan karena file dapat diakses melalui jaringan publik. Jika akun penyimpanan menggunakan titik akhir privat, perbarui pengaturan akses jaringan publiknya sebelum menjalankan operasi pemulihan.

Mengembalikan cadangan Azure PostgreSQL - Flexible Server dalam bentuk file

Nota

Operasi pemulihan adalah proses dua langkah:

  1. Pulihkan cadangan dari vault Backup ke kontainer penyimpanan.
  2. Pulihkan file cadangan dari kontainer penyimpanan ke server fleksibel baru atau yang sudah ada.

Untuk memulihkan database Azure PostgreSQL-Flexible, Ikuti langkah-langkah berikut:

  1. Pergi ke Backup Vault>Instans Backup. Pilih PostgreSQL - Server fleksibel yang akan dipulihkan dan pilih Pulihkan.

    Atau, buka Pusat cadangan dan pilih Pulihkan.

  2. Pilih titik waktu yang ingin Anda pulihkan dengan menggunakan Pilih titik pemulihan. Ubah rentang tanggal dengan memilih Periode waktu.

  3. Pilih akun penyimpanan target dan kontainer di tab Pulihkan parameter . Pilih Validasi untuk memeriksa izin parameter pemulihan sebelum peninjauan dan pemulihan akhir.

  4. Setelah validasi berhasil, pilih Tinjau + pulihkan.

  5. Setelah peninjauan akhir parameter, pilih Pulihkan untuk memulihkan Cadangan server PostgreSQL - Fleksibel yang dipilih di akun penyimpanan target.

  6. Kirimkan operasi Pemulihan dan lacak pekerjaan yang dipicu di bawah pekerjaan backup.

Setelah pekerjaan pemulihan berhasil diselesaikan, buka kontainer akun penyimpanan untuk melihat database yang dipulihkan sebagai file (.sql file) dari PostgreSQL - Server fleksibel Anda. Azure Backup juga menghasilkan file cadangan berikut:

  • Database.sql file per database: Berisi data dan informasi skema untuk database tertentu.

  • Roles.sql files untuk seluruh instans: Berisi semua informasi peran yang ada di tingkat server.

  • Tablespace.sql file: File ruang tabel.

  • Schema.sql file: Berisi informasi skema untuk semua database di server.

    Nota

    Kami menyarankan Anda untuk tidak menjalankan skrip ini di server PostgreSQL - Fleksibel karena skema sudah menjadi bagian database.sql dari skrip.

Memulihkan file cadangan dari kontainer penyimpanan ke PostgreSQL baru atau yang sudah ada – Server fleksibel

Untuk memulihkan file cadangan dari kontainer penyimpanan ke PostgreSQL baru atau yang sudah ada – Server fleksibel, ikuti langkah-langkah berikut:

  1. Pastikan bahwa semua ekstensi yang diperlukan diaktifkan pada server Fleksibel target baru.

  2. Cocokkan nilai parameter server dari database PostgreSQL sumber ke Azure Database for PostgreSQL dengan mengakses bagian Parameter server di portal Microsoft Azure dan memperbarui nilai secara manual. Simpan perubahan parameter, lalu mulai ulang Azure Database for PostgreSQL - Server fleksibel untuk menerapkan konfigurasi baru.

  3. Jika Microsoft Entra Authentication diperlukan di server baru, aktifkan dan buat admin Microsoft Entra yang relevan.

  4. Buat database baru untuk pemulihan.

    Nota

    Sebelum pemulihan database, Anda harus membuat database baru yang kosong. Pastikan akun pengguna Anda memiliki CREATEDB izin.

    Untuk membuat database, gunakan perintah CREATE DATABASE Database_name.

  5. Pulihkan database menggunakan database.sql file sebagai pengguna admin target.

  6. Setelah database target dibuat, unduh file cadangan dari akun Azure Storage dengan menjalankan perintah berikut:

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file <file-name>
    
  7. Kemudian, pulihkan data dalam database ini dari file cadangan dengan menjalankan perintah berikut:

    pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> --no-owner -v <File Name>
    
    • --account-name: Nama Akun Penyimpanan Sasaran.
    • --container-name: Nama Kontainer Blob.
    • --blob-name: Nama objek blob.
    • --account-key: Kunci Akun Penyimpanan.
    • -Fd: Format direktori.
    • -j: Jumlah pekerjaan.
    • -C: Mulai output dengan perintah untuk membuat database itu sendiri lalu sambungkan kembali ke dalamnya.

    Nota

    Jika perintah tidak dijalankan seperti yang diharapkan, tentukan jalur file lengkap alih-alih hanya menggunakan nama file.

    Atau, Anda dapat mengunduh file cadangan dan menjalankan pemulihan secara langsung.

  8. Pulihkan hanya peran dan hak istimewa yang diperlukan, dan abaikan kesalahan umum. Lewati langkah ini jika Anda melakukan pemulihan untuk persyaratan kepatuhan dan pengambilan data, sebagai admin lokal.

Memulihkan peran dan pengguna untuk database yang dipulihkan

Cadangan vault terutama dipulihkan untuk memenuhi kebutuhan kepatuhan seperti pengujian dan audit. Anda dapat masuk sebagai admin lokal dan memulihkan menggunakan database.sql file; tidak ada peran lain yang diperlukan untuk pengambilan data.

Untuk penggunaan lain seperti perlindungan penghapusan yang tidak disengaja atau pemulihan bencana, pastikan peran yang diperlukan dibuat sesuai kebutuhan organisasi Anda. Hindari duplikasi antara roles.sql dan database.sql.

  • Pulihkan server Fleksibel yang sama: Pemulihan peran mungkin tidak diperlukan.
  • Pulihkan ke server Fleksibel yang berbeda: Gunakan roles.sql file untuk membuat ulang peran yang diperlukan.

Saat Anda memulihkan dari roles.sql, beberapa peran atau atribut mungkin tidak valid untuk server target baru.

Untuk lingkungan dengan akses superuser (lokal atau VM), Anda dapat menjalankan semua perintah dengan mulus.

Pertimbangan utama untuk skenario server Fleksibel

Berikut adalah pertimbangan utama:

  • Hapus atribut Superuser-Only: Di server Fleksibel, tidak ada hak istimewa superuser. Jadi, hapus atribut, seperti NOSUPERUSER dan NOBYPASSRLS dari dump peran.
  • Mengecualikan pengguna Service-Specific: Mengecualikan pengguna khusus untuk layanan Server Fleksibel ( azure_su, , azure_pg_admin, replicationlocaladmin, Entra Admin). Peran layanan khusus ini secara otomatis dibuat ulang ketika administrator ditambahkan ke server Fleksibel baru.

Sebelum Anda memulihkan objek database, pastikan Anda menghapus dan membersihkan peran dengan benar. Untuk melakukan tindakan ini, unduh roles.sqlskrip dari kontainer penyimpanan Anda dan buat semua login yang diperlukan.

  • Membuat Peran Non-Entra: Gunakan akun administrator lokal untuk menjalankan skrip pembuatan peran.
  • Buat Peran Microsoft Entra: Jika Anda perlu membuat peran untuk pengguna Microsoft Entra, gunakan akun administrator Microsoft Entra untuk menjalankan skrip yang diperlukan.

Anda dapat mengunduh skrip peran dari akun penyimpanan Seperti yang ditunjukkan pada cuplikan layar berikut:

Saat Anda memigrasikan file output, roles.sql mungkin menyertakan peran dan atribut tertentu yang tidak berlaku di lingkungan baru. Anda harus mempertimbangkan hal-hal berikut:

  • Menghapus atribut yang hanya dapat diatur oleh superuser: Jika Anda bermigrasi ke lingkungan di mana Anda tidak memiliki hak istimewa superuser, hapus atribut seperti NOSUPERUSER dan NOBYPASSRLS dari dump peran.
  • Tidak termasuk pengguna khusus layanan: Kecualikan Pengguna layanan server tunggal, seperti azure_superuser atau azure_pg_admin. Ini khusus untuk layanan dan dibuat secara otomatis di lingkungan baru.

Gunakan perintah sed berikut untuk membersihkan cadangan peran Anda:

sed -i '/azure_superuser/d; /azure_pg_admin/d; /azuresu/d; /^CREATE ROLE replication/d; /^ALTER ROLE replication/d; /^ALTER ROLE/ {s/NOSUPERUSER//; s/NOBYPASSRLS//;}' roles.sql

Perintah ini menghapus baris yang berisi azure_superuser, azure_pg_admin, azuresu, baris yang dimulai dengan replikasi CREATE ROLE dan ALTER ROLE replikasi, serta menghilangkan atribut NOSUPERUSER dan NOBYPASSRLS dari pernyataan ALTER ROLE.

Langkah berikutnya

Mengelola cadangan Azure PostgreSQL - Server Fleksibel menggunakan portal Microsoft Azure.