Halaman ini memperkenalkan praktik terbaik umum untuk membantu Anda meningkatkan performa, ketahanan, dan ketersediaan AlloyDB untuk PostgreSQL. Halaman ini ditujukan untuk administrator dan developer database yang sudah memahami AlloyDB dan PostgreSQL.
Konfigurasi dan administrasi instance
Gunakan alat AlloyDB untuk memantau penggunaan dan status database.
Ikuti panduan operasional.
Konfigurasikan periode pemeliharaan untuk instance utama Anda.
Tambahkan instance kumpulan baca untuk memindahkan traffic baca.
Kelola jeda replikasi.
Jangan memulai operasi administratif sebelum operasi sebelumnya selesai.
Konfigurasikan kuota penyimpanan yang cukup untuk mengakomodasi pemeliharaan database yang penting.
Cegah penggunaan CPU yang berlebihan.
Hindari kehabisan memori.
Pastikan instance Anda memiliki ID transaksi yang optimal.
Menggunakan alat AlloyDB untuk memantau status dan penggunaan database
Gunakan tabel berikut untuk mempelajari alat AlloyDB yang membantu Anda memantau penggunaan, status, dan performa database.
Alat AlloyDB | Deskripsi |
---|---|
Laporan ringkasan performa | Membandingkan snapshot metrik sistem antara dua titik waktu yang berbeda. |
Insight kueri | Membantu Anda mendeteksi, mendiagnosis, dan mencegah masalah performa kueri untuk database AlloyDB. Solusi ini menyediakan informasi layanan mandiri, pemantauan yang intuitif, dan diagnostik yang lebih dari sekadar deteksi untuk membantu Anda mengidentifikasi akar penyebab masalah performa. |
Insight sistem | Memungkinkan Anda memantau resource dan metrik database, termasuk jumlah node aktif, penggunaan CPU, koneksi puncak, error log, transaksi per detik, dan jeda replika maksimum. |
Mengikuti pedoman operasional
Untuk memastikan bahwa instance Anda tercakup dalam SLA AlloyDB untuk PostgreSQL, ikuti pedoman operasional.
Mengonfigurasi periode pemeliharaan untuk instance utama
Konfigurasikan periode pemeliharaan untuk instance utama Anda guna merencanakan waktu update yang mengganggu dapat terjadi. Untuk informasi selengkapnya, lihat Melihat dan menetapkan waktu pemeliharaan.
Menambahkan instance kumpulan baca untuk memindahkan traffic baca
Untuk workload read-heavy, tambahkan instance kumpulan baca untuk memindahkan traffic baca dari instance utama.
Konfigurasikan satu atau beberapa kumpulan operasi baca untuk setiap database dalam instance untuk membantu meningkatkan penyimpanan dalam cache.
Pertimbangkan untuk menambahkan node tambahan per kumpulan untuk memfasilitasi load balancing otomatis dan ketersediaan tinggi.
Mengelola jeda replikasi
AlloyDB telah melakukan beberapa peningkatan untuk meningkatkan kelambatan replikasi. Namun, Anda mungkin mengalami skenario saat replay log diblokir atau tidak dapat terus berjalan, yang dapat menyebabkan peningkatan jeda replikasi.
Misalnya, jika ukuran VM utama Anda jauh lebih besar daripada ukuran node kumpulan operasi baca, dalam workload operasi tulis yang berat, VM utama mungkin menghasilkan data log lebih cepat daripada node operasi baca dapat memutar ulang data tersebut, terutama jika ada juga workload operasi baca yang berat yang berjalan secara serentak di node operasi baca. Dalam skenario ini, meningkatkan ukuran node baca dapat membantu memberinya lebih banyak resource.
Bergantung pada kebutuhan aplikasi, Anda mungkin ingin menyesuaikan parameter berikut:
max_standby_streaming_delay
: menentukan berapa lama pemutaran ulang menunggu sebelum membatalkan kueri yang memblokirnya.google_storage.log_replay_throttle_read_transactions
: menentukan apakah akan membatasi kueri saat jeda tinggi. Dengan membatasi kueri, replay akan memiliki lebih banyak resource untuk mengejar ketinggalan dengan lebih cepat dan menghindari menampilkan data yang sudah tidak berlaku ke kueri.alloydb.promote_cancel_to_terminate
: Menentukan apakah akan menghentikan backend kueri secara paksa yang tidak responsif terhadap pembatalan.
Jangan memulai operasi administratif sebelum operasi sebelumnya selesai
Instance AlloyDB tidak dapat menerima permintaan operasi baru hingga operasi sebelumnya selesai. Jika Anda mencoba memulai operasi baru sebelum operasi sebelumnya selesai, permintaan operasi akan gagal. Tindakan ini termasuk memulai ulang instance.
Status instance di konsol Google Cloud tidak mencerminkan apakah operasi sedang berjalan. Tanda centang hijau hanya menunjukkan apakah instance berada dalam status RUNNABLE. Untuk melihat apakah operasi sedang berjalan, klik tab Operasi, lalu periksa status operasi terbaru.
Mengonfigurasi kuota penyimpanan yang cukup untuk mengakomodasi pemeliharaan database yang penting
Secara default, Anda dapat menggunakan penyimpanan hingga 16 TB per cluster. Jika Anda memerlukan penyimpanan ekstra, pertimbangkan untuk meningkatkan kuota penyimpanan.
Mencegah penggunaan CPU yang berlebihan
Anda dapat melihat persentase CPU yang tersedia yang digunakan instance di halaman detail instance di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Memantau instance. Anda juga dapat memantau penggunaan CPU dan menerima pemberitahuan pada batas yang ditentukan menggunakan Membuat kebijakan pemberitahuan batas metrik.
Untuk menghindari penggunaan yang berlebihan, Anda dapat menskalakan instance ke jumlah CPU yang lebih tinggi. Jika ingin mengubah CPU, instance harus dimulai ulang. Jika instance Anda sudah mencapai jumlah CPU maksimum, sebaiknya Anda melakukan sharding database ke beberapa instance.
Menghindari kehabisan memori
AlloyDB memiliki pengelolaan memori otomatis untuk mencegah masalah kehabisan memori. Namun, tekanan memori yang konstan dapat menyebabkan masalah performa. Saat mencari tanda-tanda kehabisan memori, Anda sebaiknya menggunakan metrik penggunaan sebagai langkah utama. Sebaiknya metrik ini tetap berada di bawah 90% untuk performa yang optimal.
Anda juga dapat menggunakan metrik total_usage untuk mengamati persentase memori yang tersedia yang digunakan instance AlloyDB, termasuk memori yang digunakan oleh penampung database dan memori yang dialokasikan oleh cache sistem operasi.
Dengan mengamati perbedaan antara metrik penggunaan dan total penggunaan, Anda dapat mengidentifikasi jumlah memori yang digunakan oleh proses dengan jumlah yang digunakan oleh cache sistem operasi. Anda dapat menggunakan kembali memori dalam cache ini.
Skalakan instance AlloyDB untuk meningkatkan ukuran memorinya. Jika ingin mengubah ukuran memori instance, Anda harus memulai ulang instance. Jika instance Anda sudah mencapai ukuran memori maksimum, Anda harus melakukan sharding database di beberapa instance.
Untuk informasi selengkapnya tentang cara memantau penggunaan dan metrik penggunaan total di konsol Google Cloud , lihat Memantau instance.
Pastikan instance Anda memiliki ID transaksi yang optimal
Anda dapat melihat penggunaan ID transaksi instance di halaman Metrics Explorer di konsol Google Cloud dengan menetapkan Resource Type
ke AlloyDB for PostgreSQL Database
dan menetapkan Metric
ke Percentage of instance's transaction IDs consumed
. Untuk informasi
selengkapnya, lihat
Membuat diagram dengan Metrics Explorer.
AlloyDB memiliki autovacuum adaptif bawaan yang membantu memitigasi masalah terkait vacuum.
Arsitektur data
Jika memungkinkan, bagi instance besar menjadi instance yang lebih kecil.
Jangan gunakan terlalu banyak tabel database.
Jika memungkinkan, bagi instance besar menjadi instance yang lebih kecil
Jika memungkinkan, gunakan banyak cluster AlloyDB yang lebih kecil, bukan menggunakan satu instance besar. Mengelola instance monolitik besar memiliki tantangan yang tidak dibuat oleh sekelompok instance yang lebih kecil.
Jangan menggunakan terlalu banyak tabel database
Pertahankan jumlah tabel instance kurang dari 10.000 tabel. Terlalu banyak tabel database dapat memengaruhi waktu upgrade database.
Performa kueri
Aktifkan Mesin Berbasis Kolom jika Anda menjalankan kueri analisis.
Menskalakan instance untuk meningkatkan performa kueri.
Men-deploy kumpulan baca dan memindahkan kueri baca ke kumpulan baca.
Mengaktifkan Columnar Engine jika Anda menjalankan kueri analisis
Baca ringkasan mesin berbasis kolom AlloyDB. Periksa jenis kueri yang mendapatkan manfaat dari pengaktifan mesin kolom.
Anda dapat memantau penggunaan mesin kolom.
Jika Anda baru menggunakan mesin kolom, mulailah dengan memahami kolomisasi otomatis. Kemudian, Anda dapat memilih untuk mengelola kolom secara manual.
Menskalakan instance untuk meningkatkan performa kueri
Jika Anda mengalami performa kueri yang rendah, pertimbangkan untuk menskalakan instance.
Setiap SKU memiliki konfigurasi vCPU dan memori yang terbatas, dan setiap SKU juga memiliki cache cepat yang terbatas. Jika ukuran data Anda besar, dan jika Anda mengalami performa kueri yang buruk, pertimbangkan untuk menskalakan ke instance yang lebih besar.
Men-deploy kumpulan baca dan men-offload kueri baca ke kumpulan baca
Jika aplikasi Anda melakukan operasi tulis dan baca yang berat, pertimbangkan untuk men-deploy kumpulan operasi baca dan memindahkan kueri baca ke kumpulan operasi baca.
Untuk workload read-heavy, tambahkan instance kumpulan baca untuk memindahkan traffic baca dari instance utama.
Implementasi aplikasi
Gunakan teknik pengelolaan koneksi yang baik.
Uji respons aplikasi Anda terhadap update pemeliharaan.
Uji respons aplikasi Anda terhadap failover.
Hindari transaksi besar.
Hindari subtransaksi dalam jumlah besar.
Gunakan Proxy Auth versi terbaru.
Menggunakan praktik pengelolaan koneksi yang baik
Gunakan praktik pengelolaan koneksi yang baik, seperti penggabungan koneksi dan backoff eksponensial.
Menggunakan teknik pengelolaan koneksi yang baik akan meningkatkan penggunaan resource aplikasi dan membantu Anda tetap berada dalam batas koneksi AlloyDB.
Menguji respons aplikasi Anda terhadap update pemeliharaan
Uji respons aplikasi Anda terhadap update pemeliharaan, yang dapat terjadi sewaktu-waktu selama masa pemeliharaan.
Anda dapat menyimulasikan update pemeliharaan dengan melakukan operasi skala komputasi atau memperbarui flag PostgreSQL statis yang memicu pemeliharaan downtime rendah (LDTM).
Selama LDTM, instance Anda tidak akan tersedia untuk beberapa saat, dan koneksi yang ada akan dihentikan. Menguji LDTM akan memberi Anda pemahaman yang lebih baik tentang cara aplikasi menangani pemeliharaan terjadwal dan seberapa cepat sistem dapat pulih.
Menguji respons aplikasi Anda terhadap failover
Uji respons aplikasi Anda terhadap failover yang dapat terjadi kapan saja.
Anda dapat memulai failover secara manual menggunakan konsol Google Cloud , Google Cloud CLI, atau API. Untuk mengetahui informasi selengkapnya, lihat Memulai failover.
Menghindari transaksi besar
Pertahankan agar transaksi tetap kecil dan singkat. Jika memerlukan update database yang besar, lakukan update dalam beberapa transaksi yang lebih kecil, bukan menjalankan satu transaksi besar.
Hindari subtransaksi dalam jumlah besar
Hindari subtransaksi dalam jumlah besar dalam transaksi jika ada transaksi yang berjalan lama.
Di AlloyDB, melakukan transaksi di blok error PL/pgSQL akan membuat subtransaksi dari transaksi yang sesuai dengan blok error. Performa sistem secara keseluruhan menurun jika jumlah subtransaksi melebihi 64 saat ada transaksi yang berjalan lama.
Menggunakan Proxy Auth versi terbaru
Jika Anda menggunakan Proxy Auth AlloyDB, pastikan Anda menggunakan versi terbaru. Untuk mengetahui informasi selengkapnya, lihat Memastikan klien Auth Proxy selalu terbaru.
Impor dan ekspor data
Memulihkan dari pencadangan Cloud SQL untuk PostgreSQL untuk migrasi.
Percepat proses impor untuk instance berukuran kecil.
Memulihkan dari pencadangan Cloud SQL untuk PostgreSQL untuk migrasi
Untuk memfasilitasi migrasi, lihat Melakukan migrasi dari Cloud SQL untuk PostgreSQL ke AlloyDB.
Untuk mempelajari cara memigrasikan data dari Cloud SQL untuk PostgreSQL ke AlloyDB menggunakan replikasi data berkelanjutan, lihat Database Migration Service untuk PostgreSQL ke AlloyDB.
Mempercepat impor untuk instance kecil
Saat mengimpor set data besar untuk instance kecil, Anda dapat meningkatkan CPU dan RAM instance untuk sementara guna meningkatkan performa.
Pencadangan dan pemulihan
Lindungi data Anda menggunakan kemampuan AlloyDB yang sesuai.
Lindungi instance dan cadangan Anda dari penghapusan yang tidak disengaja.
Melindungi data Anda menggunakan kemampuan AlloyDB yang sesuai
Gunakan pencadangan, pemulihan point-in-time (PITR), dan ekspor untuk redundansi dan perlindungan. Keduanya saling melindungi dari berbagai skenario dan saling melengkapi dalam strategi perlindungan data yang tangguh.
Pencadangan ringan; fungsi ini memberikan cara untuk memulihkan data pada instance Anda ke kondisi semula saat Anda mengambil pencadangannya. Namun, fitur cadangan AlloyDB memiliki beberapa batasan. Jika Anda menghapus instance, cadangannya juga akan dihapus. Anda tidak dapat mencadangkan satu database atau tabel. Selain itu, jika region tempat instance berada tidak tersedia, Anda tidak dapat memulihkan instance dari cadangan tersebut, bahkan di region yang tersedia.
Pemulihan point-in-time membantu Anda memulihkan instance ke titik waktu tertentu. Misalnya, jika error menyebabkan hilangnya data, Anda dapat memulihkan database ke statusnya sebelum error terjadi. Pemulihan point-in-time selalu membuat instance baru; Anda tidak dapat melakukan pemulihan point-in-time untuk instance yang ada.
Proses ekspor memerlukan waktu lebih lama karena file eksternal dibuat di Cloud Storage yang dapat digunakan untuk membuat ulang data Anda. Ekspor tidak akan terpengaruh jika Anda menghapus instance. Selain itu, Anda hanya dapat mengekspor satu database atau tabel, bergantung pada format ekspor.
Melindungi instance dan cadangan dari penghapusan yang tidak disengaja
Untuk mengaktifkan pencegahan penghapusan yang tidak disengaja secara default, buat instance AlloyDB menggunakan konsol Google Cloud atau Terraform.
Gunakan fitur ekspor di AlloyDB untuk mengekspor data Anda sebagai perlindungan tambahan. Gunakan Cloud Scheduler dengan Cloud Scheduler API untuk mengotomatiskan pengelolaan ekspor.
Untuk skenario lanjutan selengkapnya, gunakan Cloud Scheduler dengan fungsi Cloud Run untuk otomatisasi.