Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Solusi DBaaS Terbaik untuk MySQL

Sebagai database open source paling populer, MySQL telah diimplementasikan di banyak tempat, mulai dari perusahaan rintisan kecil hingga organisasi yang sangat besar. Kasus penggunaan bervariasi dari aplikasi situs web sederhana hingga lingkungan kritis misi dengan persyaratan waktu aktif 99,999%. MySQL baru saja menyelesaikan pekerjaannya, dan mudah digunakan.

Meskipun MySQL relatif mudah dikelola, ia tidak berjalan sendiri. Ada overhead manajemen tertentu - perangkat lunak perlu ditambal sesekali, database perlu dipantau untuk kegagalan atau anomali dalam kinerja atau keamanan, kegagalan perlu ditangani dan dipulihkan, cadangan perlu dikelola.. list goes on.. Jadi tidak mengherankan jika vendor cloud terbesar menawarkan layanan DBaaS publik berdasarkan MySQL.

Tiga penyedia cloud yang menawarkan MySQL sebagai layanan meliputi :

  • Layanan Web Amazon dengan RDS untuk MySQL
  • Google Compute Engine dengan CloudSQL untuk MySQL
  • Microsoft Azure, Microsoft Azure MySQL

Di blog ini, kami akan membandingkan solusi dari penyedia cloud ini.

Versi &Patch MySQL

Versi terbaru MySQL yang tersedia di Amazon Web Services (AWS) adalah MySQL 8.0.20, yang cukup dekat dengan versi terbaru dari Oracle MySQL resmi ( 8.0.21 pada saat menulis). Selain versi terbaru, AWS RDS juga menyediakan versi lama MySQL (mayor versi 5.5, 5.6, dan 5.7), sehingga Anda dapat menerapkan versi persis yang kompatibel dengan aplikasi Anda.

Di Google Cloud Platform (GCP), versi MySQL yang didukung di CloudSQL untuk MySQL masih MySQL 5.6 &5.7, versi minor terbaru dari rilis 5.6 adalah 5.6.42 sedangkan untuk versi 5.7, yang terbaru versi minor adalah 5.7.25.

Azure database untuk MySQL mendukung versi 5.6, 5.7, 8.0, sayangnya mereka tidak menyediakan versi minor (atau versi perbaikan bug dari database, seperti yang disebut Azure) saat digunakan dari konsol. Untuk menentukan versi instance server MySQL Anda, seseorang dapat menggunakan SELECT VERSION(); perintah pada prompt MySQL.

Masalah Umum dan Batasan

Ada beberapa masalah dan batasan yang diketahui yang ada pada database sebagai layanan sementara itu tidak terjadi di MySQL pada premis atau VM. Pada RDS, beberapa batasan adalah:

  • Plugin keyring MySQL tidak didukung.
  • Ukuran batas penyimpanan maksimum untuk tabel adalah 16 TB saat menggunakan mesin penyimpanan InnoDB.
  • Ada beberapa parameter yang memerlukan pertimbangan khusus saat menggunakan RDS, misalnya:long_query_time, lower_case_table_name.

Ada beberapa batasan dan masalah yang diketahui di CloudSQL untuk MySQL, dibagi menjadi beberapa kategori, misalnya:masalah ketahanan dan ketersediaan data, masalah koneksi instans, masalah administratif, dan masalah dengan ekspor dan impor data. Setiap kategori memiliki masalah dan batasan tertentu, beberapa di antaranya adalah: 

  • Operasi yang berjalan lama tidak dapat dibatalkan atau dihentikan.
  • Nama instance tidak dapat digunakan segera setelah kami menghapus instance.
  • Klausa DEFINER akan menyebabkan impor gagal.

Database Azure untuk MySQL memiliki beberapa keterbatasan dan masalah yang diketahui terkait dengan peningkatan versi, hak istimewa, dan mesin penyimpanan. Beberapa detailnya adalah:

  • Upgrade database utama saat ini tidak didukung. Anda perlu melakukan dump dan restore ke server baru untuk upgrade besar.
  • Database Azure untuk MySQL saat ini mendukung mesin penyimpanan InnoDB dan Memori.
  • Database sistem di database Azure untuk MySQL diatur ke hanya-baca. Anda tidak dapat mengubah apa pun di database sistem mysql.

Anda perlu memeriksa batasan dan masalah umum untuk MySQL di setiap penyedia cloud, dan membandingkan dengan persyaratan Anda untuk memahami apakah hal itu memengaruhi aplikasi.

Cadangkan dan Pulihkan

Amazon RDS untuk MySQL menjalankan pencadangan otomatis sesuai jadwal, dibutuhkan snapshot volume dari instance database. Default periode penyimpanan cadangan adalah 7 hari. Tidak hanya itu, RDS mengunggah log transaksi Anda untuk instans database ke S3 setiap 5 menit untuk menjaga titik pemulihan waktu.

Anda dapat memulihkan cadangan ke titik waktu tertentu dengan membuat instans baru dalam periode penyimpanan cadangan. Anda dapat memilih waktu pemulihan terbaru untuk memulihkan ke waktu terbaru yang memungkinkan, atau Anda dapat memilih kustom untuk menentukan waktu tertentu untuk memulihkan data.

Cadangan yang terjadi di CloudSQL untuk MySQL bersifat inkremental. Ini hanya berisi perubahan data setelah pencadangan sebelumnya. Cadangan terlama mirip dengan ukuran basis data Anda saat ini. Saat cadangan terlama dihapus, ukuran cadangan terlama berikut bertambah, sehingga cadangan lengkap tetap ada.

Pencadangan otomatis terjadi setiap hari dan disimpan selama 7 hari secara default. CloudSQL menyimpan data cadangan di 2 region untuk redundansi. Satu region dapat berada di region yang sama dengan instance yang sedang berjalan, dan region lainnya berada di region yang berbeda.

Pemulihan titik waktu di CloudSQL akan membuat instance baru, pengaturan instance akan diwarisi dengan sumber instance. Sebelum Anda melakukan pemulihan titik waktu, pastikan Anda telah mengaktifkan logging biner. Saat Anda melakukan pemulihan titik waktu, Anda hanya perlu mengisi nama log biner dan posisi pemulihan.

Database Azure untuk MySQL mengambil cadangan file data dan log transaksi. Jadwal pencadangan itu sendiri merupakan kombinasi dari pencadangan penuh dan diferensial untuk server dengan ukuran penyimpanan hingga 4 TB, sedangkan pencadangan snapshot terjadi hingga server penyimpanan maksimum 16 TB.

Pencadangan lengkap berjalan seminggu sekali, sedangkan pencadangan diferensial dilakukan dua kali sehari. Periode penyimpanan default cadangan adalah 7 hari, tetapi Anda selalu dapat mengonfigurasi retensi hingga 35 hari.

Ada dua jenis restorasi di database Azure untuk MySQL, yaitu :

  • Pemulihan tepat waktu, tersedia sebagai opsi cadangan redundansi, atau Anda dapat membuat server baru di wilayah yang sama dengan server asli Anda, menggunakan cadangan lengkap dan log transaksi untuk memulihkan data.
  • Geo-restore, tersedia jika Anda mengonfigurasi geo-redundan dalam opsi penyimpanan. Ini akan memungkinkan Anda untuk memulihkan cadangan Anda ke wilayah yang berbeda.

Harap diperhatikan bahwa baik AWS, Google, atau Azure tidak mengizinkan Anda mengunduh cadangan.

Pemantauan Basis Data

RDS menyediakan integrasi pemantauan dengan CloudWatch, Anda dapat melihat beberapa metrik seperti Pemanfaatan CPU, Koneksi DB, menulis IOPS &membaca IOPS, menulis throughput &membaca throughput, menulis dan membaca latency. Anda dapat membuat alarm untuk memicu peringatan dari CloudWatch, berdasarkan beberapa kategori metrik dan cukup tentukan ambang batasnya.

Mirip dengan RDS, GCP CloudSQL juga terintegrasi dengan stackdriver, Anda dapat melihat metrik seperti :Pemanfaatan CPU, penggunaan memori, koneksi aktif, transaksi/dtk, byte masuk/keluar, operasi tulis &baca, jeda replikasi .

Database Azure untuk MySQL menyediakan beberapa metrik, misalnya; Koneksi Aktif, persen CPU, koneksi gagal, persen IO, persen memori, jeda replikasi, persen penyimpanan, penyimpanan yang digunakan. Anda juga dapat membuat peringatan di database Azure untuk MySQL, memilih metrik, dan menentukan aturan.

Kesimpulan

Berdasarkan 4 bidang utama; Versi &Patch MySQL, Masalah dan Batasan yang Diketahui, Pencadangan dan Pemulihan, Pemantauan Basis Data, menurut saya Amazon RDS for MySQL masih merupakan basis data terbaik sebagai layanan untuk MySQL. Ini menyediakan versi dan tambalan terperinci, masalah dan batasan yang sangat terbatas dibandingkan dengan yang lain. Ini adalah cara yang nyaman untuk menjalankan MySQL, dengan peringatan bahwa harga layanan telah naik dalam beberapa tahun terakhir.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana TIDAK RLIKE Bekerja di MySQL

  2. Ubah BufferedInputStream menjadi gambar

  3. Penggabungan string di MySQL

  4. cara menghapus baris duplikat dari tabel di mysql

  5. Query Parameterized untuk MySQL dengan C#