All Products
Search
Document Center

ApsaraDB RDS:Tingkatkan versi utama menggunakan penyebaran biru-hijau

Last Updated:Mar 29, 2026

Penyebaran biru-hijau meningkatkan versi mesin utama ApsaraDB RDS for PostgreSQL dengan memulihkan instans sumber ke instans baru, lalu menjalankan pg_upgrade untuk membawa instans baru ke versi target. Jika Anda melakukan cutover, titik akhir instans sumber secara otomatis beralih ke instans baru — tidak diperlukan perubahan string koneksi pada aplikasi Anda.

Untuk perbandingan semua mode peningkatan yang tersedia, lihat Pengenalan solusi peningkatan versi utama.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Instans menjalankan ApsaraDB RDS for PostgreSQL 16 atau versi sebelumnya.

  • Instans bukan read-only instance atau instans klaster khusus.

  • Babelfish tidak diaktifkan pada instans (nomor versi mesin minor tidak diakhiri dengan babelfish).

Penagihan

Saat Anda memulai peningkatan penyebaran biru-hijau, sistem membuat instans baru berdasarkan instans sumber. Kedua instans ditagih secara terpisah hingga Anda melepas instans sumber.

Metode penagihan instans sumberMetode penagihan instans baru
Subscription atau pay-as-you-goPay-as-you-go
ServerlessServerless

Setelah memastikan layanan Anda berjalan stabil pada instans baru, ubah metode penagihan instans baru menjadi subscription dan lepas atau batalkan langganan instans sumber.

Penting

Perhatikan hal berikut sebelum melepas instans sumber:

  • Jika instans sumber Anda adalah instans subscription yang belum kedaluwarsa, instans baru tidak dapat mewarisi durasi subscription yang tersisa. Melepas instans sumber lebih awal dapat menyebabkan kerugian finansial. Untuk informasi lebih lanjut tentang aturan pengembalian dana, lihat Kebijakan pengembalian dana.

  • Instans baru tidak mewarisi diskon apa pun yang diterapkan pada instans sumber. Periksa jumlah pengembalian dana spesifik pada halaman pembatalan langganan instans sebelum memutuskan untuk melanjutkan.

  • Pengembalian dana untuk instans subscription tidak diproses secara real time. Jumlah dan waktu pengembalian dana mengikuti tagihan pembatalan langganan aktual.

Dampak potensial

Tinjau hal berikut sebelum memulai peningkatan.

Gangguan layanan

Saat Anda melakukan penyebaran biru-hijau dengan cutover, instans sumber menjadi read-only selama proses cutover, menyebabkan gangguan koneksi sementara. Lakukan peningkatan selama jam sepi. Jika Anda tidak melakukan cutover, layanan Anda tidak terpengaruh.

  • Durasi read-only: Bergantung pada jumlah objek database. Jalankan SELECT count(1) FROM pg_class; untuk memeriksa jumlahnya. Dengan jutaan objek, periode read-only dapat berlangsung puluhan menit atau lebih lama.

  • Durasi gangguan koneksi: Ditentukan oleh waktu refresh cache DNS di sisi client. Gunakan pergantian vSwitch untuk memperkirakan nilai ini sebelumnya.

  • Durasi total peningkatan: Bergantung pada jumlah objek database. Pantau progres di Task Hub.

Setelah cutover, instans sumber tetap dalam status read-only secara default. Untuk mengizinkan penulisan kembali pada instans sumber, atur parameter rds_force_trans_ro_non_sup ke nilai off. Lihat Atur parameter instans.

Jalur peningkatan lintas versi

Instans PostgreSQL 9.4 dan 10 yang menggunakan disk lokal berkinerja-tinggi hanya dapat ditingkatkan ke disk cloud, dengan PostgreSQL 14 sebagai target langsung maksimum. Untuk mencapai PostgreSQL 15 atau versi lebih baru, tingkatkan terlebih dahulu ke versi antara:

  • PostgreSQL 9.4: dapat ditingkatkan ke 10, 11, 12, 13, atau 14 sebagai langkah antara.

  • PostgreSQL 10: dapat ditingkatkan ke 11, 12, 13, atau 14 sebagai langkah antara.

Slot replikasi

  • Jika instans sumber adalah publisher dengan slot replikasi, slot replikasi tersebut hilang setelah peningkatan.

  • Jika instans sumber adalah subscriber slot replikasi, peningkatan dapat menyebabkan masalah sinkronisasi data akibat preemption slot replikasi. Lihat FAQ untuk cara mencegah hal ini.

Perubahan IP virtual

Setelah cutover, alamat IP virtual instans baru berubah. Periksa konfigurasi firewall dan konfigurasi aplikasi apa pun yang mereferensikan IP virtual secara langsung. Untuk menghindari kompleksitas ini, konfigurasikan aplikasi Anda menggunakan alamat koneksi instans alih-alih IP virtual.

Perubahan parameter

  • Parameter yang tidak didukung di versi target secara otomatis dihapus.

  • Parameter dengan nilai di luar rentang valid untuk versi target diatur ulang ke nilai template default versi target.

  • Selama peningkatan, statement_timeout sementara diatur ke 0 dan dikembalikan ke nilai aslinya setelah peningkatan selesai.

Tugas DTS

Jika instans merupakan sumber atau tujuan Data Transmission Service (DTS), buat ulang tugas DTS setelah peningkatan.

Kompatibilitas plugin

Peningkatan secara otomatis memperbarui instans ke versi mesin minor terbaru. Verifikasi kompatibilitas plugin sebelum dan sesudah peningkatan.

Pengaturan yang tidak diwariskan oleh instans baru

Instans baru tidak mewarisi nama instans sumber, tag, aturan alert CloudMonitor, atau data backup.

Langkah 1: Jalankan pemeriksaan pra-peningkatan

  1. Masuk ke Konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah tempat instans berada. Temukan instans dan klik ID-nya.

  2. (Opsional) Jika terdapat instans read-only untuk instans sumber, ubah titik akhir instans read-only di aplikasi Anda ke titik akhir instans primary selama jam sepi, lalu hapus instans read-only tersebut.

    Menghapus instans read-only sebelum peningkatan diperlukan karena node read-only dan slot replikasi tidak secara otomatis ditransfer ke instans baru. Setelah peningkatan, buat instans read-only baru pada instans baru.
  3. Di panel navigasi kiri, klik Major Version Upgrade.

    Jika Major Version Upgrade tidak terlihat, verifikasi bahwa instans Anda memenuhi prasyarat yang tercantum di atas.
  4. Di tab Upgrade Check, klik Create upgrade check report.

  5. Pilih versi target, atur Upgrade Mode ke Blue-green Deployment, lalu klik OK. Status instans berubah menjadi Maintaining Instance. Setelah pemeriksaan selesai, status kembali menjadi Running.

  6. Tinjau hasil laporan pemeriksaan:

    • Success atau Warning: lanjutkan ke Langkah 2.

    • Failed: klik View Information, perbaiki masalah yang teridentifikasi, lalu jalankan ulang pemeriksaan.

    Penting

    - Untuk hasil Warning, perbaiki semua item yang ditandai dan jalankan ulang pemeriksaan hingga hasilnya Success. - Jika Anda membuat plugin pada instans primary setelah pemeriksaan berhasil, jalankan ulang pemeriksaan sebelum melanjutkan.

Langkah 2: Tingkatkan versi utama

  1. Klik tab Upgrade Instance, baca peringatan, pilih versi di bawah Select upgrade version, lalu klik Create Upgrade Task.

  2. Di kotak dialog, klik OK.

  3. Di bagian Create Major Engine Version Upgrade Task, pastikan Upgrade Mode diatur ke Blue-green Deployment, lalu konfigurasikan parameter berikut:Contoh perhitungan ruang penyimpanan:

    • Instans sumber: total 100 GB, terpakai 70 GB, ESSD PL1 dipilih. Perhitungan: 70 × 120% = 84 GB → dibulatkan ke atas menjadi 85 GB. Minimum yang dapat dipilih: 85 GB.

    • Instans sumber: total 700 GB, terpakai 350 GB, ESSD PL2 dipilih. Perhitungan: 350 × 120% = 420 GB, yang lebih kecil dari minimum PL2 yaitu 500 GB. Minimum yang dapat dipilih: 500 GB.

    ParameterDeskripsi
    Storage typeInstans baru hanya mendukung Enhanced SSD (ESSD) dan disk premium performance. Kelas penyimpanan harus sesuai dengan instans sumber. Jika instans sumber menggunakan disk lokal berkinerja-tinggi, instans baru hanya dapat menggunakan ESSD. Saat mengubah tingkat performa ESSD (PL), kapasitas penyimpanan minimum menyesuaikan secara otomatis berdasarkan PL yang dipilih.
    Available zone, Primary instance switch, Standby instance switchKonfigurasikan instans primary dan standby di zona berbeda sesuai kebutuhan.
    Cutover configurationPilih cara traffic dialihkan setelah peningkatan:No cutting — traffic tidak dialihkan secara otomatis; biasanya digunakan untuk menguji kompatibilitas layanan sebelum peningkatan resmi.Cutover — traffic dialihkan secara otomatis; biasanya digunakan untuk peningkatan resmi setelah kompatibilitas dikonfirmasi. Cutover tidak dapat dikembalikan. Selama cutover, instans sumber diatur menjadi read-only. Untuk meminimalkan risiko, pilih No cutting pada percobaan pertama Anda. Setelah pengujian, lepas instans baru, ulangi peningkatan, lalu pilih Cutover untuk peningkatan resmi.
    Storage spacePilih kapasitas penyimpanan untuk instans baru. Kapasitas minimum yang dapat dipilih adalah nilai terkecil antara: penyimpanan terpakai instans sumber × 120% (dibulatkan ke atas ke kelipatan 5 GB terdekat), atau kapasitas penyimpanan total instans sumber — mana yang lebih kecil. Nilai ini juga harus memenuhi kapasitas penyimpanan minimum yang dapat dibeli untuk PL ESSD yang dipilih: PL1 = 20 GB, PL2 = 500 GB, PL3 = 1.500 GB. Untuk memeriksa penyimpanan terpakai, lihat metrik Disk Storage (MB) di Monitoring and Alarms.
    Instance specificationPilih tipe instans untuk instans baru. Untuk tipe yang tersedia, lihat Daftar tipe instans primary.
  4. Klik Create now. Status instans berubah menjadi Migration in Progress saat tugas peningkatan dimulai. Pantau progres di Task Hub.

    Penting

    - Setelah dibuat, tugas peningkatan tidak dapat diubah atau dihapus. - Selama instans sumber berstatus Migration in Progress, operasi pemeliharaan (O&M) seperti mengubah parameter, me-restart, atau melepas instans tidak tersedia. - Jika muncul error Insufficient Resources, ganti Target Primary Zone dan coba lagi.

  5. Verifikasi hasil peningkatan. Saat kedua instans (sumber dan baru) menunjukkan status Running, peningkatan selesai.

    - Penyebaran biru-hijau dengan cutover: traffic secara otomatis beralih ke instans baru setelah peningkatan. - Penyebaran biru-hijau tanpa cutover: traffic tetap berada di instans sumber setelah peningkatan. - Setelah peningkatan, buka tab Upgrade History dan klik View Information di kolom Upgrade Log untuk melihat durasi read-only dan proses peningkatan terperinci. Durasi read-only diukur dari Cutover End Time hingga Cutover End Time, tidak termasuk periode ketika instans tidak dapat dijangkau akibat propagasi cache DNS. - Untuk peningkatan tanpa cutover, sistem tetap mencatat Cutover End Time dan Cutover End Time sebagai referensi.
    Hasil peningkatanStatus instanceMakna
    RunningMigration in ProgressTugas peningkatan sedang berjalan
    SucceededRunningTugas peningkatan berhasil

Langkah selanjutnya

  1. Jika Anda melakukan peningkatan menggunakan metode penyebaran biru-hijau (cutover), setelah memastikan layanan Anda berjalan stabil pada instans baru, lepas instans sumber. Ubah metode penagihan instans baru menjadi subscription untuk menghemat biaya.

    Melepas instans subscription sebelum masa berlaku habis dapat menyebabkan kerugian finansial. Instans baru tidak mewarisi diskon apa pun dari instans sumber. Pengembalian dana mengikuti tagihan pembatalan langganan aktual dan tidak diproses secara real time.
  2. (Opsional) Jika Anda menghapus instans read-only sebelum peningkatan, buat ulang pada instans baru:

    1. Buat instans read-only PostgreSQL pada instans baru.

    2. Di aplikasi Anda, perbarui titik akhir agar mengarah ke instans read-only baru.

Referensi API

Operasi APIDeskripsi
UpgradeDBInstanceMajorVersionPrecheckMenjalankan pemeriksaan pra-peningkatan untuk peningkatan versi utama
DescribeUpgradeMajorVersionPrecheckTaskMenanyakan laporan pemeriksaan pra-peningkatan
UpgradeDBInstanceMajorVersionMeningkatkan versi mesin utama
DescribeUpgradeMajorVersionTasksMenanyakan riwayat tugas peningkatan versi utama

Referensi

FAQ

Apakah saya dapat memodifikasi instans selama peningkatan versi utama?

Tidak. Instans tidak dapat dimodifikasi selama peningkatan sedang berlangsung. Modifikasi hanya tersedia setelah peningkatan selesai.

Apakah peningkatan versi utama otomatis didukung?

Tidak. Peningkatan versi utama harus dipicu secara manual.

Apakah downgrade versi utama didukung?

Tidak. Downgrade tidak didukung setelah peningkatan versi utama. Untuk menjalankan versi yang lebih rendah, beli instans baru pada versi tersebut dan gunakan Data Transmission Service (DTS) untuk memigrasikan data Anda.

Setelah peningkatan versi utama, saya mendapatkan konflik `raster_overviews` saat membuat view di instans baru. Bagaimana cara memperbaikinya?

Masalah ini terjadi ketika versi PostGIS lebih awal dari 2.5.2 dan Anda meningkatkan dari PostgreSQL 10 atau 11 ke PostgreSQL 12 tanpa terlebih dahulu meningkatkan plugin PostGIS.

Langkah 1: Tingkatkan plugin PostGIS pada instans sumber.

Jalankan perintah berikut dua kali untuk memastikan peningkatan berhasil:

SELECT PostGIS_Extensions_Upgrade();
SELECT PostGIS_Extensions_Upgrade();

Langkah 2: Pilih perbaikan berdasarkan apakah Anda menggunakan plugin PostGIS Raster.

Jika plugin PostGIS Raster sedang digunakan:

  1. Pada instans sumber, lepaskan view raster_overviews dari ekstensi dan ganti dengan placeholder:

    ALTER EXTENSION PostGIS_Raster DROP VIEW raster_overviews;
    CREATE OR REPLACE VIEW raster_overviews AS SELECT 1;
  2. Tingkatkan instans PostgreSQL ke minimal PostgreSQL 12.

  3. Setelah peningkatan, buat ulang view pada instans baru:

    CREATE
    OR REPLACE VIEW raster_overviews AS
    SELECT
      current_database() AS o_table_catalog,
      n.nspname AS o_table_schema,
      c.relname AS o_table_name,
      a.attname AS o_raster_column,
      current_database() AS r_table_catalog,
      split_part(
        split_part(s.consrc, '''::name', 1),
        '''',
        2
      )::name AS r_table_schema,
      split_part(
        split_part(s.consrc, '''::name', 2),
        '''',
        2
      )::name AS r_table_name,
      split_part(
        split_part(s.consrc, '''::name', 3),
        '''',
        2
      )::name AS r_raster_column,
      trim(
        both
        from
          split_part(s.consrc, ',', 2)
      )::integer AS overview_factor
    FROM
      pg_class c,
      pg_attribute a,
      pg_type t,
      pg_namespace n,
      (
        SELECT
          connamespace,
          conrelid,
          conkey,
          pg_get_constraintdef(oid) As consrc
        FROM
          pg_constraint
      ) AS s
    WHERE
      t.typname = 'raster'::name
      AND a.attisdropped = false
      AND a.atttypid = t.oid
      AND a.attrelid = c.oid
      AND c.relnamespace = n.oid
      AND c.relkind = ANY(
        ARRAY[ 'r'::char, 'v'::char, 'm'::char,
        'f'::char ]
      )
      AND s.connamespace = n.oid
      AND s.conrelid = c.oid
      AND s.consrc LIKE '%_overview_constraint(%'
      AND NOT pg_is_other_temp_schema(c.relnamespace)
      AND has_table_privilege(c.oid, 'SELECT'::text);
    
    ALTER EXTENSION PostGIS_Raster ADD VIEW raster_overviews;

Jika plugin PostGIS Raster tidak digunakan:

  1. Letakkan plugin pada instance sumber:

    DROP EXTENSION PostGIS_Raster;
  2. Tingkatkan instans PostgreSQL ke minimal PostgreSQL 12.

Bagaimana cara mencegah inkonsistensi data akibat preemption slot replikasi selama peningkatan?

Jika instans sumber adalah subscriber slot replikasi, slot replikasi dapat diambil alih oleh instans baru selama peningkatan, yang dapat menyebabkan inkonsistensi data.

Untuk menyimpan data subscription pada instans sumber (versi lebih rendah): pastikan instans sumber tidak gagal akibat beban berlebih selama peningkatan untuk mencegah slot replikasi diambil alih. Setelah peningkatan selesai, nonaktifkan subscription pada instans baru:

\c your_database
ALTER SUBSCRIPTION your_subscription_name DISABLE;

Untuk mempertahankan data subscription pada instans baru (versi lebih tinggi): nonaktifkan subscription pada instans sumber sebelum memulai peningkatan, lalu aktifkan kembali pada instans baru setelah peningkatan selesai.

Nonaktifkan pada instans sumber:

\c your_database
ALTER SUBSCRIPTION your_subscription_name DISABLE;

Aktifkan pada instans baru:

\c your_database
ALTER SUBSCRIPTION your_subscription_name ENABLE;

Untuk informasi lebih lanjut, lihat Logical Subscription dan Change Tracking.

Bagaimana cara menangani inkonsistensi data subscription setelah peningkatan?

Jika inkonsistensi telah terjadi, gunakan pendekatan berikut untuk menyelaraskan:

  1. Pada instans baru, hapus data tabel yang terdampak, buat ulang subscription dengan copy_data=true. Untuk detailnya, lihat ALTER SUBSCRIPTION.

  2. Gunakan ON CONFLICT untuk mengimpor data dari instans sumber. Contoh berikut menunjukkan cara menangani skenario konflik berbeda:

    CREATE TABLE my_tbl(id INT PRIMARY KEY, t TIMESTAMP, val TEXT);
    
    INSERT INTO my_tbl VALUES (1, CURRENT_TIMESTAMP, 'a');
    INSERT INTO my_tbl VALUES (2, CURRENT_TIMESTAMP, 'b');
    INSERT INTO my_tbl VALUES (3, CURRENT_TIMESTAMP, 'c');
    
    -- Timestamp lebih baru: perbarui baris yang ada
    INSERT INTO my_tbl VALUES (1, CURRENT_TIMESTAMP, 'd') ON CONFLICT(id) DO UPDATE
        SET t = excluded.t,
            val = excluded.val
        WHERE my_tbl.t < excluded.t;
    
    -- Timestamp lebih lama: pertahankan baris yang ada
    INSERT INTO my_tbl VALUES (2, CURRENT_TIMESTAMP - '10 hours'::interval, 'e') ON CONFLICT(id) DO UPDATE
        SET t = excluded.t,
            val = excluded.val
        WHERE my_tbl.t < excluded.t;
    
    -- Baris baru: sisipkan langsung
    INSERT INTO my_tbl VALUES (5, CURRENT_TIMESTAMP - '10 hours'::interval, 'f') ON CONFLICT(id) DO UPDATE
        SET t = excluded.t,
            val = excluded.val
        WHERE my_tbl.t < excluded.t;

Mengapa saya perlu menghapus instans read-only sebelum peningkatan?

Node read-only dan slot replikasi pada instans sumber tidak secara otomatis ditransfer ke instans baru setelah peningkatan. Menghapus instans read-only sebelum peningkatan mencegah konflik titik akhir dan memastikan cutover yang bersih. Setelah peningkatan, buat instans read-only baru pada instans baru dan perbarui titik akhir aplikasi Anda sesuai.