5 alat sumber terbuka teratas untuk pentadbir MySQL

Michael Coburn adalah pengurus produk di Percona. 

Bagi pentadbir pangkalan data (DBA), menjaga agar pangkalan data tetap berjalan pada prestasi puncak mungkin seperti pelat berputar: Ia memerlukan ketangkasan, tumpuan, reaksi cepat, kepala yang sejuk, dan panggilan sesekali dari peninjau yang berguna. Pangkalan data adalah pusat kejayaan operasi hampir setiap aplikasi. Oleh kerana DBA bertanggungjawab untuk data organisasi, mencari alat yang boleh dipercayai yang membantu mereka untuk menyelaraskan proses pengurusan pangkalan data dan memudahkan tugas penyelenggaraan sehari-hari sangat penting. DBA memerlukan alat yang baik untuk memastikan sistem mereka berputar dengan lancar.

Oleh itu, apakah alat yang dicuba dan dipercayai untuk pentadbir MySQL? Di sini saya kongsikan lima alat sumber terbuka utama saya untuk pentadbir MySQL dan membincangkan nilai mereka dalam menyokong tugas pentadbiran MySQL sehari-hari. Untuk setiap dari mereka, saya telah memberikan pautan ke repositori GitHub dan menyenaraikan jumlah bintang GitHub pada masa penulisan.

Mycli

Projek Mycli menyediakan penyempurnaan automatik baris perintah MySQL dan penyorotan sintaks. Ini adalah salah satu alat MySQL yang paling popular untuk pentadbir. 

Sekatan keselamatan seperti hos lompat dan pengesahan dua faktor meninggalkan banyak DBA MySQL dengan akses baris perintah ke sistem mereka sahaja. Dalam keadaan seperti itu, alat GUI yang disukai seperti MySQL Workbench, Monyog, dan lain-lain bukanlah pilihan.

Di baris arahan, banyak masa dihabiskan di dunia terminal cahaya-hitam. Oleh itu, salah satu perkara terbaik mengenai Mycli adalah kekayaan sintaksisnya yang menonjol. Ini membolehkan anda, misalnya, memisahkan fungsi dan pengendali secara visual dari rentetan pertanyaan dalam WHEREklausa. Untuk pertanyaan pendek, satu baris, ini mungkin bukan masalah besar, tetapi ia menjadi penukar permainan apabila anda bekerja dengan pertanyaan yang menjalankan JOINoperasi lebih dari beberapa jadual. Adakah saya JOINmenggunakan lajur yang diindeks? Adakah saya menapis menggunakan wildcard terkemuka dalam WHEREklausa saya ? Mycli menyokong pertanyaan berbilang baris dan sorotan sintaks, yang bermaksud anda boleh masuk ke bahagian yang paling penting semasa mengkaji atau mengoptimumkan pertanyaan. Anda boleh memilih dari sebilangan skema warna penyorotan sintaks atau membuat sendiri.

Ciri pembunuh lain dari Mycli adalah penyelesaian yang bijak. Ini membolehkan anda memilih nama jadual dan lajur dari senarai sensitif konteks dengan memasukkan hanya beberapa watak pertama mereka. Tidak lagi meninggalkan input semasa anda untuk dijalankan SHOW CREATE TABLE kerana anda lupa nama lajur yang anda mahukan dalam WHEREklausa anda !  

Amjith Ramanujam

Dengan Mmycli, anda boleh menggunakan pertanyaan kegemaran dengan menggunakan \fs, mis \fs myAlias myQuery. Ini sangat berguna, kerana anda kemudian dapat menjalankan pertanyaan menggunakan \f myAliasbila diperlukan.

Projek Mycli menggunakan lesen BSD 3. Terdapat 44 penyumbang, 1.2k komited, dan 5k bintang.

Gh-ost

Sekiranya seperti 99 peratus DBA MySQL yang anda hadapi melaksanakan perubahan pada jadual MySQL sambil khuatir akan kesan terhadap pengeluaran, maka anda harus mempertimbangkan Gh-ost (GitHub Online Schema Migrasi). Gh-ost menyediakan perubahan skema MySQL tanpa menyekat penulisan, tanpa menggunakan pencetus, dan dengan kemampuan untuk menjeda dan meneruskan penghijrahan! 

Mengapa ini sangat penting? Oleh kerana MySQL 5.6 dihantar dengan ALTER TABLE ... ALGORITHM=INPLACEfungsi DDL (Data Definition Language) baru, menjadi mungkin untuk mengubah jadual tanpa menyekat penulisan untuk operasi biasa seperti menambahkan indeks (B-tree). Walau bagaimanapun, masih ada beberapa syarat di mana penulisan (pernyataan DML) disekat, terutamanya penambahan FULLTEXTindeks, penyulitan ruang jadual, dan penukaran jenis lajur. 

Lain popular dalam talian alat perubahan skema, seperti Percona itu pt-online-skema-perubahan, bekerja dengan melaksanakan satu set tiga pencetus ( INSERT, UPDATE, dan DELETE) di induk untuk menjaga meja salinan bayang selari dengan perubahan. Ini memperkenalkan hukuman prestasi kecil kerana penguatan tulis, tetapi lebih penting lagi memerlukan tujuh contoh kunci metadata. Ini berkesan menghentikan acara DML (Bahasa Manipulasi Bahasa). 

Oleh kerana Gh-ost beroperasi menggunakan log binari, ia tidak terdedah kepada kelemahan berdasarkan pencetus. Akhirnya Gh-ost dapat melancarkan aktiviti dengan berkesan ke sifar peristiwa, yang membolehkan anda menjeda penghijrahan skema untuk sementara waktu sekiranya pelayan anda mula bergelut, dan disambung semula apabila gelembung aktiviti bergerak.

Jadi bagaimana Gh-ost berfungsi? Secara lalai, Gh-ost menyambung ke replika (hamba), mengenal pasti master, dan menerapkan migrasi pada master. Ia menerima perubahan pada replika ke tabel sumber dalam binlog_format = ROW, menguraikan log, dan mengubah pernyataan-pernyataan ini untuk dilaksanakan kembali di meja bayangan master. Ini mengawasi jumlah baris pada replika dan mengenal pasti kapan tiba masanya untuk melakukan pemotongan atom (beralih jadual). 

GitHub

Gh-ost menyediakan mod alternatif di mana anda menjalankan migrasi secara langsung pada master (sama ada mempunyai hamba atau tidak), membaca semula binlog_format=ROWperistiwa master , dan kemudian menerapkannya semula ke jadual bayangan.

Pilihan terakhir tersedia untuk menjalankan migrasi hanya pada replika tanpa memberi kesan kepada master, jadi anda boleh menguji atau mengesahkan migrasi.

GitHub

Perhatikan bahawa jika skema anda mempunyai kunci asing maka Gh-ost mungkin tidak beroperasi dengan baik, kerana konfigurasi ini tidak disokong.

Perhatikan bahawa oak-online-alter-table adalah pendahulunya kepada Gh-ost. Anda boleh membaca perbandingan antara prestasi perubahan-skema Gh-ost dan pt-online-oleh Peter Zaitsev, Ketua Pegawai Eksekutif Percona, bersama dengan respons dari Shlomi Noach, pengarang dan penyelenggara toolkit OAK dan Gh-ost.

Projek Gh-ost menggunakan lesen MIT. Ia mempunyai 29 penyumbang, hampir 1k komited, dan 3k bintang.

PhpMyAdmin

Salah satu projek yang paling lama berjalan dan paling matang di antara alat MySQL adalah alat PhpMyAdmin yang dihormati yang digunakan untuk mentadbir MySQL melalui web. phpMyAdmin membolehkan DBA melayari dan mengubah objek pangkalan data MySQL: pangkalan data, jadual, pandangan, bidang, dan indeks. Terdapat pilihan untuk melakukan eksport data menggunakan lebih daripada selusin format, mengubah suai pengguna dan hak istimewa MySQL, dan - kegemaran saya - melaksanakan pertanyaan ad-hoc.

Anda juga akan menemui tab Status yang secara dinamis menyusun pertanyaan, sambungan / proses, dan lalu lintas rangkaian untuk contoh pangkalan data yang anda berikan, bersama dengan tab Penasihat yang menunjukkan kepada anda senarai kemungkinan masalah prestasi bersama dengan cadangan mengenai cara mengatasinya.

PhpMyAdmin menggunakan lesen GPLv2. Ini adalah projek besar dengan lebih daripada 800 penyumbang, komitmen berjumlah 112k, dan bintang 2.7k. Demo dalam talian boleh didapati di //demo.phpmyadmin.net/master-config/

Pemeriksaan Sql

Anti-corak SQL dapat melambatkan pertanyaan, tetapi selalunya memerlukan DBA berpengalaman dan pembangun meneliti kod untuk mengenal pasti dan menyelesaikannya. Sqlcheck mencerminkan usaha Joy Arulraj untuk mengkodifikasi buku "SQL Anti-pola: Mengelakkan Perangkap Pengaturcaraan Pangkalan Data" oleh Bill Karwin. Karwin mengenal pasti empat kategori anti-corak:

  1. Reka bentuk pangkalan data logik
  2. Reka bentuk pangkalan data fizikal
  3. Pertanyaan
  4. Pembangunan aplikasi
Joy Arulraj

Sqlcheck dapat disasarkan pada tahap risiko yang berbeza-beza, dikategorikan sebagai risiko rendah, sederhana, atau tinggi. Ini berguna jika senarai anti-corak anda besar, kerana anda dapat memprioritaskan pertanyaan dengan kesan prestasi yang paling besar. Yang perlu anda lakukan untuk memulakan ialah mengumpulkan senarai pertanyaan anda yang berbeza ke dalam fail dan kemudian menyampaikannya sebagai hujah ke alat tersebut. 

Saya menggunakan sampel yang dikumpulkan dari persekitaran Demo PMM untuk menghasilkan output berikut:

[michael @ fedora ~] $ sqlcheck —file_name PMMDemoQueries.txt

+ —————————————————————————- +

| SQLCHECK |

+ —————————————————————————- +

> TINGKAT RISIKO :: SEMUA ANTI POLA

> SQL FILE NAME :: output

> MOD WARNA :: DIKENAKAN

> MODE VERBOSE :: HILANG

> DELIMITER ::;

—————————————————————————-

==================== Hasil ===================

—————————————————————————-

Pernyataan SQL: pilih table_schema, table_name, table_type, ifnull (engine, 'none') sebagai enjin,

ifnull (versi, '0') sebagai versi, ifnull (baris_format, 'tidak ada') sebagai baris_format,

ifnull (table_rows, '0') sebagai table_rows, ifnull (data_length, '0') sebagai data_length,

ifnull (index_length, '0') sebagai index_length, ifnull (data_free, '0') sebagai data_free,

ifnull (create_options, 'none') sebagai create_options dari information_schema.tables

di mana table_schema = 'innodb_small';

[output]: (PETUNJUK) NULL Penggunaan

[Ungkapan Pencocokan: nol]

...

==================== Ringkasan ===================

Semua Anti-Corak dan Petunjuk :: 7

> Berisiko Tinggi :: 0

> Risiko Sederhana :: 0

> Risiko Rendah :: 2

> Petunjuk :: 5

Sqlcheck dilindungi oleh Apache License 2.0. Projek ini mempunyai lima penyumbang, 187 komited, dan 1.4k bintang.

Orkestrator

Orchestrator adalah alat pengurusan ketersediaan dan replikasi yang tinggi. Ini menyediakan kemampuan untuk menemukan topologi replikasi dari lingkungan MySQL dengan merangkak ke atas dan ke bawah rantai untuk mengenal pasti tuan dan hamba. Ini juga dapat digunakan untuk merefleksikan topologi replikasi Anda melalui GUI, menyediakan antara muka seret dan lepas untuk mempromosikan hamba kepada master. Ini adalah operasi yang sangat selamat. Sebenarnya Orchestrator menolak sebarang operasi haram agar tidak merosakkan sistem anda. 

Akhirnya, Orchestrator dapat menyokong pemulihan apabila node mengalami kegagalan, kerana menggunakan konsep keadaan untuk memilih kaedah pemulihan yang betul dan memutuskan proses promosi induk yang sesuai untuk digunakan.

Orchestrator adalah alat lain yang disediakan oleh Shlomi Noach di GitHub. Ia dilindungi oleh Apache License 2.0. Orchestrator mempunyai 34 penyumbang, 2,780 komited, dan 900 bintang pada masa penulisan ini.

GitHub

Menjaga pinggan berputar

Pada permulaan karya ini, saya bercakap mengenai peranan pentadbir MySQL seperti peranan pemutar plat. Kadang-kadang, pentadbir mungkin mendapat keuntungan dari teriakan dari penonton yang berguna ketika keadaan mulai goyah dan memerlukan perhatian. Pemantauan dan Pengurusan Percona (PMM) mengambil tugas menjerit, menyoroti bidang yang memerlukan perhatian dan membantu pentadbir pangkalan data untuk mengenal pasti dan menyelesaikan masalah pangkalan data.

PMM menggabungkan sejumlah alat sumber terbuka terbaik, termasuk Orchestrator, untuk menyediakan kemudahan pemantauan dan pengurusan pangkalan data yang komprehensif. Persembahan grafiknya memberikan petunjuk visual yang mudah diasimilasi dengan keadaan pelayan pangkalan data anda dari masa ke masa, dan menyokong pelayan MySQL, MariaDB, dan MongoDB. Lihat demo awam kami!

Sama seperti lima alat utama saya, dan seperti semua perisian Percona, PMM adalah perisian sumber terbuka dan bebas sepenuhnya yang boleh dimuat turun dari laman web Percona atau dari GitHub.

Setiap alat yang saya terangkan menangani aspek yang berbeza dari peranan pentadbir MySQL. Mereka menyumbang kepada peralatan pengurusan pangkalan data anda, dan membolehkan anda memanfaatkan pengalaman dan kemahiran penyumbang projek-projek popular ini. Mereka bebas dan sumber terbuka dan dapat disesuaikan dengan keperluan persekitaran anda sendiri jika perlu, atau anda boleh menggunakannya tanpa pengubahsuaian. Sekiranya anda belum meneroka permata ini, saya cadangkan anda melihat lebih dekat untuk melihat apakah mereka menawarkan kelebihan berbanding kaedah dan alat semasa anda.

-

Michael Coburn berfungsi sebagai pengurus produk di Percona di mana dia bertanggungjawab untuk Pemantauan dan Pengurusan Percona. Dengan asas dalam sistem pentadbiran, Coburn menikmati bekerja dengan teknologi SAN dan penyelesaian ketersediaan tinggi.

Forum Teknologi Baru menyediakan tempat untuk meneroka dan membincangkan teknologi perusahaan yang baru muncul dalam kedalaman dan luas yang belum pernah terjadi sebelumnya. Pemilihannya bersifat subjektif, berdasarkan pilihan teknologi yang kami anggap penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk penerbitan dan berhak untuk mengedit semua kandungan yang disumbangkan. Hantarkan semua pertanyaan ke  [email protected] .