Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menangkap rencana eksekusi Aurora SQL Postgre di Replika
QPM(Query Plan Management) memungkinkan Anda untuk menangkap rencana kueri yang dihasilkan oleh Aurora Replicas dan menyimpannya di instans DB utama cluster Aurora DB. Anda dapat mengumpulkan rencana kueri dari semua Replika Aurora, dan memelihara serangkaian rencana optimal dalam tabel persisten terpusat pada instans primer. Anda kemudian dapat menerapkan rencana ini pada Replika lain jika diperlukan. Ini membantu Anda menjaga stabilitas rencana eksekusi dan meningkatkan performa kueri di seluruh klaster DB dan versi mesin.
Prasyarat
Aktifkan capture_plan_baselines parameter
di Replika Aurora - Atur parameter capture_plan_baselines
ke otomatis atau manual untuk mengambil rencana di Replika Aurora. Untuk informasi selengkapnya, lihat apg_plan_mgmt.capture_plan_baselines.
Instal ekstensi postgres_fdw - Anda harus menginstal ekstensi wrapper data asing postgres_fdw
untuk mengambil rencana di Replika Aurora. Jalankan perintah berikut di setiap basis data untuk menginstal ekstensi ini.
postgres=>
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
Mengelola pengambilan rencana untuk Replika Aurora
Aktifkan pengambilan rencana untuk Replika Aurora
Anda harus memiliki hak akses rds_superuser
untuk membuat atau menghapus Pengambilan Rencana di Replika Aurora. Untuk informasi selengkapnya tentang peran dan izin pengguna, lihat Memahami SQL peran dan izin Postgre.
Untuk mengambil rencana, panggil fungsi apg_plan_mgmt.create_replica_plan_capture dalam instans DB penulis, seperti yang ditunjukkan berikut ini:
postgres=>
CALL apg_plan_mgmt.create_replica_plan_capture('cluster_endpoint'
,'password'
);
cluster_endpoint - cluster_endpoint (titik akhir penulis) menyediakan dukungan failover untuk Pengambilan Rencana di Replika Aurora.
password - Kami menyarankan Anda untuk mengikuti panduan di bawah ini saat membuat kata sandi untuk meningkatkan keamanan:
Kata sandi harus berisi setidaknya 8 karakter.
Kata sandi harus berisi setidaknya satu huruf besar, satu huruf kecil, dan satu angka.
Kata sandi harus memiliki setidaknya satu karakter khusus (
?
,!
,#
,<
,>
,*
, dan sebagainya).
catatan
Jika Anda mengubah titik akhir, kata sandi, atau nomor port klaster, Anda harus menjalankan apg_plan_mgmt.create_replica_plan_capture()
lagi dengan titik akhir dan kata sandi klaster untuk menginisialisasi ulang pengambilan rencana. Jika tidak, pengambilan rencana dari Replika Aurora akan gagal.
Nonaktifkan pengambilan rencana untuk Replika Aurora
Anda dapat menonaktifkan parameter capture_plan_baselines
di Replika Aurora dengan menetapkan nilainya ke off
dalam grup Parameter.
Hapus pengambilan rencana untuk Replika Aurora
Anda dapat sepenuhnya menghapus Pengambilan Rencana di Replika Aurora tetapi pastikan untuk menonaktifkannya terlebih dahulu. Untuk menghapus pengambilan rencana, panggil apg_plan_mgmt.remove_replica_plan_capture
seperti yang ditunjukkan berikut:
postgres=>
CALL apg_plan_mgmt.remove_replica_plan_capture();
Anda harus memanggil apg_plan_mgmt.create_replica_plan_capture() lagi untuk mengaktifkan pengambilan rencana di Replika Aurora dengan titik akhir dan kata sandi klaster.
Pemecahan Masalah
Di bagian berikut ini, Anda dapat menemukan ide dan solusi pemecahan masalah jika rencana tidak diambil di Replika Aurora seperti yang diharapkan.
Pengaturan parameter - Periksa apakah parameter
capture_plan_baselines
diatur ke nilai yang tepat untuk mengaktifkan pengambilan rencana.Ekstensi
postgres_fdw
diinstal - Gunakan kueri berikut untuk memeriksa apakahpostgres_fdw
diinstal.postgres=>
SELECT * FROM pg_extension WHERE extname = 'postgres_fdw'create_replica_plan_capture() dipanggil - Gunakan perintah berikut untuk memeriksa apakah pemetaan pengguna sudah ada. Jika tidak, panggil
create_replica_plan_capture()
untuk menginisialisasi fitur ini.postgres=>
SELECT * FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';Titik akhir dan nomor port klaster - Periksa apakah titik akhir dan nomor port klaster sudah sesuai. Tidak akan ada pesan kesalahan yang ditampilkan jika nilai-nilai ini salah.
Gunakan perintah berikut untuk memverifikasi titik akhir yang digunakan dalam create() dan untuk memeriksa di basis data mana titik akhir tersebut berada:
postgres=>
SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';reload() - Anda harus memanggil apg_plan_mgmt.reload() setelah memanggil apg_plan_mgmt.delete_plan() di Replika Aurora untuk membuat fungsi penghapusan efektif. Hal ini akan memastikan bahwa perubahan telah berhasil diterapkan.
Kata sandi - Anda harus memasukkan kata sandi di create_replica_plan_capture() sesuai pedoman yang disebutkan. Jika tidak, Anda akan menerima pesan kesalahan. Untuk informasi selengkapnya, lihat Mengelola pengambilan rencana untuk Replika Aurora. Gunakan kata sandi lain yang sesuai dengan persyaratan.
Koneksi Lintas Wilayah - Pengambilan rencana di Replika Aurora juga didukung di basis data global Aurora, yang memungkinkan instans penulis dan Replika Aurora berada di wilayah yang berbeda. Instance penulis dan Replika Lintas wilayah harus dapat berkomunikasi, menggunakan VPC Peering. Untuk informasi lebih lanjut, lihat VPCmengintip. Jika failover lintas Wilayah terjadi, Anda harus mengonfigurasi ulang titik akhir ke titik akhir klaster DB primer yang baru.