Topik ini memberikan jawaban atas pertanyaan yang sering diajukan tentang , , dan PolarDB for PostgreSQL (Compatible with Oracle).
Pertanyaan umum
Q: Apa itu PolarDB?
A: PolarDB adalah layanan database relasional cloud yang tersedia di pusat data di lebih dari 10 wilayah global, menawarkan pengalaman siap pakai. PolarDB mendukung tiga engine yang masing-masing 100% kompatibel dengan MySQL, 100% kompatibel dengan PostgreSQL, dan sangat kompatibel dengan sintaks Oracle. Layanan ini menyediakan kapasitas penyimpanan hingga 200 TB. Untuk informasi lebih lanjut, lihat , , atau Apa itu PolarDB untuk PostgreSQL (Kompatibel dengan Oracle)?
Q: Mengapa PolarDB merupakan pilihan yang lebih baik dibandingkan database tradisional?
A: Dibandingkan dengan database tradisional, PolarDB dapat menyimpan ratusan terabyte data serta menyediakan fitur seperti ketersediaan tinggi, keandalan tinggi, skalabilitas elastis cepat, dan backup tanpa kunci. Untuk informasi lebih lanjut, lihat , , atau Manfaat.
Q: Kapan PolarDB dirilis dan kapan tersedia secara komersial?
A: PolarDB dirilis dalam pratinjau publik pada September 2017 dan tersedia secara komersial pada Maret 2018.
Q: Apa itu kluster dan node?
A: PolarDB Edisi Kluster menggunakan arsitektur multi-node. Sebuah kluster terdiri dari satu node utama dan beberapa node read-only. Satu kluster PolarDB dapat ditempatkan lintas zona tetapi tidak lintas wilayah. Layanan ini dikelola dan ditagih berdasarkan tingkat kluster. Untuk informasi lebih lanjut, lihat , , atau Istilah.
Q: Bahasa pemrograman apa saja yang didukung?
A: PolarDB mendukung berbagai bahasa pemrograman, termasuk Java, Python, PHP, Go, C, C++, .NET, dan Node.js.
Q: Setelah saya membeli kluster PolarDB, apakah saya juga perlu membeli middleware database PolarDB-X untuk menerapkan sharding?
A: Ya.
Q: Apakah PolarDB mendukung partisi tabel?
A: Ya.
Q: Bisakah saya mengubah wilayah kluster PolarDB setelah pembelian?
A: Tidak, Anda tidak dapat mengubah wilayah kluster setelah pembelian.
Q: Apakah PolarDB secara otomatis menyertakan mekanisme partisi?
A: Ya. PolarDB melakukan partisi pada lapisan penyimpanan, yang transparan bagi pengguna.
Q: Bagaimana kluster single-node memastikan ketersediaan layanan dan keandalan data?
A: Kluster single-node berjalan pada satu node komputasi untuk tujuan tertentu. Meskipun hanya memiliki satu node, kluster single-node memanfaatkan teknologi seperti penjadwalan komputasi instan dan penyimpanan multi-replika terdistribusi untuk memastikan ketersediaan layanan dan keandalan data yang tinggi.
Q: Bagaimana cara membeli kluster PolarDB single-node?
A: Seri produk single-node tidak lagi tersedia. Namun, Anda dapat membuat kluster yang berfungsi sebagai kluster single-node dengan mengatur jumlah node read-only menjadi 0 saat membeli kluster PolarDB.
Penagihan
Q: Apa saja item yang dapat ditagih dari kluster PolarDB?
A: Item yang dapat ditagih mencakup storage space, node komputasi, backup (dengan kuota gratis), dan SQL Explorer (opsional). Untuk informasi lebih lanjut, lihat , , atau Spesifikasi dan harga.
Q: Apa saja yang termasuk dalam storage space yang dikenai biaya?
A: Storage space yang dikenai biaya mencakup file tabel database, file indeks, file undo log, file redo log, file slow log, dan sejumlah kecil file sistem. Untuk informasi lebih lanjut, lihat , , atau Spesifikasi dan harga.
Q: Bagaimana saya dikenai biaya jika menambahkan node read-only?
A: Harga node read-only sama dengan harga node utama. Untuk informasi lebih lanjut, lihat , , atau Rincian harga node komputasi.
Q: Jika saya menambahkan node read-only, apakah kapasitas penyimpanan menjadi dua kali lipat?
A: Tidak. PolarDB menggunakan arsitektur yang memisahkan komputasi dan penyimpanan. Saat Anda membeli node read-only, Anda menambahkan sumber daya komputasi, yang tidak meningkatkan kapasitas penyimpanan.
Storage space bersifat serverless, sehingga Anda tidak perlu memilih kapasitas saat melakukan pembelian. Kapasitas ini secara otomatis bertambah seiring pertumbuhan data Anda, dan Anda hanya dikenai biaya berdasarkan jumlah data yang digunakan. Setiap spesifikasi kluster memiliki kapasitas penyimpanan maksimum. Untuk meningkatkan batas penyimpanan, , , atau ubah spesifikasi.
Q: Bagaimana cara menghentikan biaya untuk kluster pay-as-you-go?
A: Jika Anda tidak lagi membutuhkan kluster tersebut, Anda dapat melepaskannya. Melepas kluster akan menghentikan semua biaya di masa depan.
Q: Bisakah saya mengubah spesifikasi kluster selama peningkatan sementara?
A: Selama peningkatan sementara, selama status kluster Berjalan, Anda dapat meningkatkan spesifikasi secara manual. Namun, Anda tidak dapat menurunkan spesifikasi secara manual, mengaktifkan auto-scaling, atau menambah atau menghapus node.
Q: Berapa bandwidth publik PolarDB, dan apakah ada biaya terkait?
A: PolarDB sendiri tidak memiliki batas bandwidth publik. Bandwidth terutama bergantung pada layanan Server Load Balancer (SLB) yang Anda gunakan. PolarDB tidak membebankan biaya untuk koneksi publik.
Q: Mengapa saya masih melihat biaya harian untuk kluster langganan?
A: Item yang dapat ditagih untuk PolarDB mencakup node komputasi (node utama dan node read-only), storage space, backup data (dikenai biaya hanya jika melebihi kuota gratis), SQL Explorer (opsional), dan Global Database Network (GDN) (opsional). Untuk informasi lebih lanjut, lihat Item yang dapat ditagih. Metode penagihan langganan mengharuskan Anda membayar di muka untuk node komputasi saat membuat kluster, tetapi tidak mencakup biaya storage space, backup data, dan SQL Explorer. Biaya untuk item-item pay-as-you-go ini ditarik dari akun Anda setiap jam. Oleh karena itu, meskipun menggunakan langganan, Anda tetap akan menerima tagihan pay-as-you-go.
Q: Apakah ada biaya tambahan untuk migrasi satu klik dari ApsaraDB RDS for MySQL ke PolarDB?
A: Proses migrasi satu klik tidak dikenai biaya. Anda hanya dikenai biaya untuk instans ApsaraDB RDS for MySQL dan kluster PolarDB itu sendiri.
Q: Mengapa saya masih dikenai biaya untuk storage space setelah menghapus data dari tabel PolarDB menggunakan perintah
DELETE?A: Perintah
DELETEhanya menandai baris untuk dihapus. Perintah ini tidak melepaskan ruang tabel.
Akses kluster dan pemisahan baca/tulis
Q: Bagaimana cara menerapkan pemisahan baca/tulis di PolarDB?
A: Anda hanya perlu menggunakan titik akhir kluster di aplikasi Anda. Pemisahan baca/tulis kemudian diterapkan berdasarkan mode baca/tulis yang dikonfigurasi. Untuk informasi lebih lanjut, lihat , , atau Konfigurasikan proksi database.
Q: Berapa jumlah maksimum node read-only yang didukung dalam kluster PolarDB?
A: PolarDB menggunakan arsitektur kluster terdistribusi. Sebuah kluster berisi satu node utama dan hingga 15 node read-only. Setidaknya satu node read-only diperlukan untuk memastikan ketersediaan tinggi.
Q: Mengapa beban kerja tidak seimbang di antara beberapa node read-only?
A: Ketidakseimbangan beban kerja di antara node read-only dapat disebabkan oleh jumlah koneksi yang rendah ke node tersebut atau oleh titik akhir kluster kustom yang tidak mencakup semua node read-only dalam konfigurasinya.
Q: Apa penyebab beban pada node utama tinggi atau rendah?
A: Beban tinggi pada node utama dapat disebabkan oleh beberapa faktor: koneksi langsung ke titik akhir utama, node utama menerima permintaan baca, jumlah besar permintaan transaksi, latensi replikasi tinggi yang menyebabkan permintaan diarahkan ke node utama, atau kegagalan node read-only yang menyebabkan permintaan baca diarahkan ke node utama.
Beban rendah pada node utama dapat terjadi jika opsi untuk menerima permintaan baca pada node utama dinonaktifkan.
Q: Bagaimana cara mengurangi beban pada node utama?
A: Anda dapat menggunakan metode berikut untuk mengurangi beban pada node utama:
Terhubung ke kluster PolarDB menggunakan titik akhir kluster. Untuk informasi lebih lanjut, lihat , , atau Konfigurasikan proksi database.
Jika sejumlah besar transaksi menyebabkan tekanan tinggi pada node utama, Anda dapat mengaktifkan fitur pemisahan transaksi di konsol untuk mengarahkan beberapa kueri dalam transaksi ke node read-only. Untuk informasi lebih lanjut, lihat , , atau Pemisahan transaksi.
Jika latensi replikasi tinggi menyebabkan permintaan diarahkan ke node utama, Anda dapat mempertimbangkan untuk menurunkan tingkat konsistensi, misalnya dengan menggunakan konsistensi akhir. Untuk informasi lebih lanjut, lihat , , atau Tingkat konsistensi.
Jika node utama menerima permintaan baca, hal ini juga dapat menyebabkan beban tinggi. Anda dapat menonaktifkan permintaan baca pada node utama dari konsol untuk mengurangi jumlah permintaan baca yang diarahkan ke node tersebut.
Q: Mengapa saya tidak dapat membaca data segera setelah data tersebut dimasukkan?
A: Masalah ini mungkin disebabkan oleh konfigurasi tingkat konsistensi. Titik akhir kluster kluster PolarDB mendukung tingkat konsistensi berikut:
Konsistensi akhir: Tingkat ini tidak menjamin bahwa Anda dapat segera membaca data yang baru dimasukkan, baik dari sesi (koneksi) yang sama maupun sesi yang berbeda.
Konsistensi sesi: Tingkat ini menjamin bahwa Anda dapat membaca data yang dimasukkan dalam sesi yang sama.
CatatanTingkat konsistensi yang lebih tinggi menyebabkan performa lebih rendah dan tekanan lebih besar pada node utama. Pilih tingkat konsistensi dengan hati-hati. Untuk sebagian besar skenario aplikasi, konsistensi sesi sudah cukup untuk memastikan operasi bisnis berjalan normal. Untuk beberapa pernyataan yang memerlukan konsistensi kuat, Anda dapat menggunakan petunjuk
/*FORCE_MASTER*/. Untuk informasi lebih lanjut, lihat , , atau Tingkat konsistensi.Q: Bagaimana cara memaksa pernyataan SQL dijalankan di node utama?
A: Saat Anda menggunakan titik akhir kluster, Anda dapat menambahkan awalan
/*FORCE_MASTER*/atau/*FORCE_SLAVE*/pada pernyataan SQL untuk menentukan arah peruteannya. Untuk informasi lebih lanjut, lihat , , atau Praktik terbaik untuk memilih tingkat konsistensi.Petunjuk
/*FORCE_MASTER*/memaksa permintaan diarahkan ke node utama. Ini dapat digunakan untuk permintaan baca yang memerlukan tingkat konsistensi lebih tinggi.Petunjuk
/*FORCE_SLAVE*/memaksa permintaan diarahkan ke node read-only. Ini dapat digunakan dalam skenario di mana proksi PolarDB secara default mengarahkan sintaks khusus ke node utama untuk memastikan kebenaran, seperti panggilan ke prosedur tersimpan atau penggunaan multi-pernyataan.
CatatanHints memiliki prioritas perutean tertinggi dan tidak dibatasi oleh tingkat konsistensi atau pemisahan transaksi. Evaluasi potensi dampaknya sebelum digunakan.
Jangan menyertakan pernyataan yang memodifikasi parameter GUC dalam hint, seperti /FORCE_SLAVE/ SET enable_hashjoin = off;. Pernyataan semacam ini dapat menyebabkan hasil kueri yang tidak terduga.
Q: Bisakah saya menetapkan titik akhir berbeda untuk layanan berbeda? Apakah titik akhir ini menyediakan isolasi antar layanan?
A: Ya, Anda dapat membuat beberapa titik akhir kustom untuk layanan berbeda. Jika titik akhir ini menggunakan node dasar yang berbeda, titik akhir tersebut menyediakan isolasi dan tidak saling memengaruhi. Untuk informasi tentang cara membuat titik akhir kustom, lihat , , atau Buat titik akhir kluster kustom.
Q: Jika saya memiliki beberapa node read-only, bagaimana cara membuat titik akhir node tunggal khusus untuk salah satunya?
A: Anda dapat membuat titik akhir node tunggal hanya jika mode baca/tulis titik akhir kluster diatur ke Read Only dan kluster memiliki tiga node atau lebih. Untuk langkah-langkah detail, lihat , , atau Buat titik akhir kluster kustom.
PeringatanSetelah Anda membuat titik akhir node tunggal, jika node tersebut gagal, titik akhir mungkin tidak tersedia hingga satu jam. Jangan gunakan titik akhir node tunggal di lingkungan produksi.
Q: Berapa jumlah maksimum titik akhir node tunggal yang dapat saya buat dalam satu kluster?
A: Jika kluster Anda memiliki tiga node, Anda dapat membuat titik akhir node tunggal hanya untuk satu node read-only. Jika kluster Anda memiliki empat node, Anda dapat membuat titik akhir node tunggal terpisah untuk dua dari node read-only tersebut. Pola ini berlanjut seiring peningkatan jumlah node.
Q: Saya hanya menggunakan titik akhir utama, tetapi saya melihat beban pada node read-only. Apakah titik akhir utama juga mendukung pemisahan baca/tulis?
A: Tidak, titik akhir utama tidak mendukung pemisahan baca/tulis. Titik akhir ini selalu hanya terhubung ke node utama. Beberapa QPS kecil pada node read-only adalah hal yang normal dan tidak terkait dengan titik akhir utama.
Manajemen dan pemeliharaan
Q: Apakah ada latensi replikasi antara node utama dan node read-only?
A: Ya, terdapat latensi tingkat milidetik di antara keduanya.
Q: Apa yang dapat menyebabkan peningkatan latensi replikasi?
A: Latensi replikasi dapat meningkat dalam situasi berikut:
Beban tulis tinggi pada node utama menghasilkan jumlah redo log yang berlebihan, yang tidak dapat diterapkan tepat waktu oleh node read-only.
Beban tinggi pada node read-only mengonsumsi sumber daya yang diperlukan untuk menerapkan redo log.
Adanya bottleneck I/O yang memperlambat proses membaca dan menulis redo log.
Q: Jika terjadi latensi replikasi, bagaimana cara memastikan konsistensi kueri?
A: Anda dapat menggunakan titik akhir kluster dan memilih tingkat konsistensi yang sesuai. Tingkat konsistensi yang tersedia, dari tertinggi ke terendah, adalah konsistensi sesi, dan konsistensi akhir. Untuk informasi lebih lanjut, lihat , , atau Konfigurasikan proksi database.
Q: Apakah tujuan titik pemulihan (RPO) 0 dapat dijamin jika terjadi kegagalan satu node?
A: Ya.
Q: Bagaimana peningkatan spesifikasi (misalnya, dari 2 core dan memori 8 GB menjadi 4 core dan 16 GB) diimplementasikan di backend? Apa dampaknya terhadap layanan?
A: PolarDB melakukan peningkatan bergulir (rolling upgrade) pada node proksi dan database untuk meminimalkan dampak terhadap layanan. Peningkatan biasanya membutuhkan waktu 10 hingga 15 menit untuk diselesaikan, dengan dampak layanan tidak lebih dari 30 detik. Selama periode ini, mungkin terjadi satu hingga tiga error koneksi sementara. Untuk informasi lebih lanjut, lihat , , atau Ubah spesifikasi.
Q: Berapa lama waktu yang dibutuhkan untuk menambahkan node? Apakah hal ini memengaruhi layanan saya?
A: Menambahkan node membutuhkan waktu sekitar lima menit dan tidak memengaruhi layanan Anda. Untuk informasi tentang cara menambahkan node, lihat , , atau Tambahkan node read-only.
CatatanSetelah Anda menambahkan node read-only, koneksi pemisahan baca/tulis baru akan meneruskan permintaan ke node tersebut. Koneksi pemisahan baca/tulis yang dibuat sebelum penambahan node tidak akan meneruskan permintaan ke node baru. Anda harus memutus dan menghubungkan ulang koneksi tersebut, misalnya dengan me-restart aplikasi Anda.
Q: Berapa lama waktu yang dibutuhkan untuk meningkatkan ke versi revisi terbaru? Apakah hal ini memengaruhi layanan saya?
A: PolarDB menggunakan metode peningkatan bergulir di beberapa node untuk meminimalkan dampak terhadap layanan Anda. Peningkatan versi biasanya membutuhkan waktu kurang dari 30 menit. Selama peningkatan, proksi database atau mesin kernel DB direstart, yang dapat menyebabkan error koneksi sementara. Kami menyarankan agar Anda melakukan peningkatan selama jam sepi dan memastikan aplikasi Anda memiliki mekanisme koneksi ulang otomatis. Untuk informasi lebih lanjut, lihat , , atau Manajemen versi minor.
Q: Bagaimana cara failover otomatis bekerja?
A: PolarDB menggunakan arsitektur kluster ketersediaan tinggi Active-Active. Failover otomatis terjadi antara node utama baca-tulis dan node read-only. Sistem secara otomatis memilih node utama baru. Setiap node dalam kluster PolarDB memiliki prioritas failover, yang menentukan probabilitasnya terpilih sebagai node utama baru selama failover. Jika beberapa node memiliki prioritas yang sama, probabilitas terpilihnya juga sama. Untuk informasi lebih lanjut, lihat , , atau Alih bencana utama/cadangan otomatis dan manual.
Q: Apa arsitektur proksi database? Apakah memiliki mekanisme failover? Bagaimana ketersediaan tingginya dipastikan?
A: Proksi database menggunakan arsitektur ketersediaan tinggi dua node, mendistribusikan trafik secara merata di antara dua node proksi tersebut. Sistem terus-menerus memeriksa status kesehatan node proksi. Jika terdeteksi kegagalan node, sistem secara proaktif memutus koneksi pada node tersebut, dan node sehat yang tersisa secara otomatis mengambil alih semua trafik untuk memastikan layanan tidak terganggu. Pada saat yang sama, sistem secara otomatis membangun kembali dan memulihkan node proksi yang gagal. Proses ini biasanya selesai dalam waktu sekitar 2 menit. Selama waktu ini, kluster database tetap dapat diakses.
Dalam kasus langka, koneksi ke node yang gagal mungkin tidak diputus tepat waktu dan menjadi tidak responsif. Untuk menangani situasi seperti ini, konfigurasikan kebijakan timeout yang sesuai di sisi klien, seperti
socketTimeoutdanconnectTimeoutJDBC. Hal ini memungkinkan lapisan aplikasi untuk segera mendeteksi dan menghentikan koneksi yang tertunda, sehingga lebih meningkatkan toleransi kesalahan dan efisiensi respons sistem.
Cadangan dan pemulihan
Q: Bagaimana PolarDB melakukan backup data?
A: PolarDB menggunakan snapshot untuk melakukan backup data. Untuk informasi lebih lanjut, lihat , , atau Metode backup 2: Backup manual.
Q: Seberapa cepat database dapat dipulihkan?
A: Memulihkan database dari set cadangan (snapshot) atau mengkloning database membutuhkan waktu sekitar 40 menit per TB. Jika Anda memulihkan data ke titik waktu tertentu, waktu yang diperlukan untuk menerapkan redo log juga termasuk. Menerapkan redo log membutuhkan waktu sekitar 20 hingga 70 detik per GB. Waktu pemulihan total adalah jumlah dari kedua bagian ini.
Performa dan kapasitas
Q: Berapa jumlah maksimum tabel? Pada titik mana performa mungkin menurun?
A: Jumlah maksimum tabel dibatasi oleh jumlah file. Untuk informasi lebih lanjut, lihat , , atau Batas.
Q: Apakah partisi tabel dapat meningkatkan performa kueri PolarDB?
A: Secara umum, ya. Jika kueri dapat dibatasi pada partisi tertentu, performa dapat ditingkatkan.
Q: Bisakah saya membuat 10.000 database dalam kluster PolarDB? Berapa jumlah maksimum database?
A: Ya, Anda dapat membuat 10.000 database dalam kluster PolarDB. Jumlah maksimum database dibatasi oleh jumlah file. Untuk informasi lebih lanjut, lihat , , atau Batas.
Q: Bagaimana IOPS dibatasi dan diisolasi? Bisakah terjadi kontensi I/O antara beberapa node kluster PolarDB?
A: Di kluster PolarDB, setiap node memiliki batas IOPS berdasarkan spesifikasinya. IOPS setiap node diisolasi dan tidak memengaruhi node lain.
Q: Bisakah performa node read-only yang lambat memengaruhi node utama?
A: Ya. Jika node read-only memiliki beban tinggi atau latensi replikasi meningkat, hal ini mungkin sedikit meningkatkan konsumsi memori node utama.
Q: Apa dampak performa dari mengaktifkan SQL Explorer?
A: Tidak ada dampak pada performa.
Q: Protokol jaringan berkecepatan tinggi apa yang digunakan PolarDB?
A: PolarDB menggunakan teknologi RDMA dual 25 Gbps untuk komunikasi antara node komputasi dan penyimpanannya, serta antara replika data penyimpanannya. Hal ini memberikan performa I/O yang kuat dengan latensi rendah dan throughput tinggi.
Q: Berapa bandwidth maksimum untuk koneksi eksternal ke PolarDB?
A: Bandwidth maksimum untuk koneksi eksternal ke PolarDB adalah 10 Gbit/s.