Προγραμματισμός

Κορυφαία 5 εργαλεία ανοιχτού κώδικα για διαχειριστές MySQL

Ο Michael Coburn είναι διευθυντής προϊόντων της Percona.

Για διαχειριστές βάσεων δεδομένων (DBAs), η διατήρηση των βάσεων δεδομένων σε υψηλή απόδοση μπορεί να μοιάζει με περιστρεφόμενες πλάκες: Χρειάζεται ευελιξία, συγκέντρωση, γρήγορες αντιδράσεις, δροσερό κεφάλι και περιστασιακή κλήση από έναν χρήσιμο θεατή. Οι βάσεις δεδομένων είναι κεντρικές για την επιτυχή λειτουργία σχεδόν κάθε εφαρμογής. Καθώς τα DBA είναι υπεύθυνα για τα δεδομένα ενός οργανισμού, η εύρεση αξιόπιστων εργαλείων που τους βοηθούν να βελτιώσουν τη διαδικασία διαχείρισης της βάσης δεδομένων και να διευκολύνουν τις καθημερινές εργασίες συντήρησης είναι απαραίτητες. Τα DBA χρειάζονται καλά εργαλεία για να διατηρούν την ομαλή περιστροφή των συστημάτων τους.

Ποια είναι λοιπόν τα δοκιμασμένα και αξιόπιστα εργαλεία για τους διαχειριστές MySQL; Εδώ μοιράζομαι τα πέντε κορυφαία εργαλεία ανοιχτού κώδικα για διαχειριστές MySQL και συζητώ την αξία τους στην υποστήριξη καθημερινών εργασιών διαχείρισης MySQL. Για καθένα από αυτά, έχω δώσει έναν σύνδεσμο για το αποθετήριο GitHub και παραθέτω τον αριθμό των αστεριών του GitHub κατά τη στιγμή της σύνταξης.

Μύκλι

Το έργο Mycli παρέχει αυτόματη συμπλήρωση της γραμμής εντολών MySQL και επισήμανση σύνταξης. Είναι ένα από τα πιο δημοφιλή εργαλεία MySQL για διαχειριστές.

Οι περιορισμοί ασφαλείας, όπως οι κεντρικοί υπολογιστές άλματος και ο έλεγχος ταυτότητας δύο παραγόντων, αφήνουν πολλά MySQL DBA με πρόσβαση στη γραμμή εντολών μόνο στα συστήματά τους. Σε τέτοιες περιπτώσεις, τα αγαπημένα εργαλεία GUI όπως το MySQL Workbench, το Monyog και άλλα δεν αποτελούν επιλογή.

Στη γραμμή εντολών, μεγάλο μέρος του χρόνου αφιερώνεται σε έναν κόσμο τερματικών ανοιχτόχρωμο. Ένα από τα καλύτερα πράγματα για το Mycli είναι ο πλούτος της σύνταξης που τονίζει. Αυτό σας επιτρέπει, για παράδειγμα, να διαχωρίζετε οπτικά τις λειτουργίες και τους χειριστές από τις συμβολοσειρές ερωτημάτων στο ΟΠΟΥ ρήτρες. Για ένα σύντομο ερώτημα μίας γραμμής, αυτό μπορεί να μην είναι τόσο μεγάλο, αλλά γίνεται ένα παιχνίδι αλλαγής όταν εργάζεστε με ερωτήματα που αποδίδουν ΣΥΜΜΕΤΟΧΗ λειτουργίες σε περισσότερους από δύο πίνακες. Το κάνω ΣΥΜΜΕΤΟΧΗ χρησιμοποιώντας ευρετηριασμένες στήλες; Είμαι φιλτράρισμα χρησιμοποιώντας κορυφαίους μπαλαντέρ στο μου ΟΠΟΥ ρήτρες; Το Mycli υποστηρίζει ερωτήματα πολλαπλών γραμμών και επισήμανση σύνταξης, πράγμα που σημαίνει ότι μπορείτε να βρείτε τις ενότητες που έχουν μεγαλύτερη σημασία κατά τον έλεγχο ή τη βελτιστοποίηση των ερωτημάτων. Μπορείτε να επιλέξετε από έναν αριθμό συνδυασμών χρωμάτων επισήμανσης σύνταξης ή να δημιουργήσετε το δικό σας.

Το άλλο χαρακτηριστικό δολοφονίας του Mycli είναι η έξυπνη ολοκλήρωση. Αυτό σας επιτρέπει να διαλέξετε τα ονόματα των πινάκων και των στηλών από μια λίστα ευαίσθητη στο περιβάλλον εισάγοντας μόνο τους πρώτους χαρακτήρες τους. Μην εγκαταλείπετε πλέον την τρέχουσα εισαγωγή σας για εκτέλεση ΔΕΙΤΕ ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ επειδή ξεχάσατε το όνομα της στήλης που θέλετε στο δικό σας ΟΠΟΥ ρήτρα!

Amjith Ramanujam

Με το Mmycli, μπορείτε να χρησιμοποιείτε ψευδώνυμα αγαπημένα ερωτήματα χρησιμοποιώντας \ fs, π.χ. Το myQuery myAlias. Αυτό είναι πραγματικά βολικό, καθώς μπορείτε στη συνέχεια να εκτελέσετε το ερώτημα χρησιμοποιώντας \ myAlias όποτε χρειαστεί.

Το έργο Mycli χρησιμοποιεί την άδεια BSD 3. Υπάρχουν 44 συντελεστές, 1.2k δεσμεύσεις και 5k αστέρια.

Φάντασμα

Εάν όπως το 99 τοις εκατό των MySQL DBAs έχετε αντιμετωπίσει την εφαρμογή μιας αλλαγής σε έναν πίνακα MySQL ενώ φοβάστε τον αντίκτυπο στην παραγωγή, τότε θα πρέπει να εξετάσετε το Gh-ost (GitHub Online Schema Migration). Το Gh-ost παρέχει αλλαγές σχήματος MySQL χωρίς αποκλεισμό εγγραφών, χωρίς χρήση σκανδάλης και δυνατότητα παύσης και συνέχισης της μετεγκατάστασης!

Γιατί είναι τόσο σημαντικό; Δεδομένου ότι η MySQL 5.6 αποστέλλεται με νέα ALTER ΠΙΝΑΚΑΣ ... ΑΛΓΟΡΙΘΜΟΣ = ΑΝΤΙΚΕΙΜΕΝΟ Λειτουργικότητα DDL (Data Definition Language), έγινε δυνατή η τροποποίηση ενός πίνακα χωρίς αποκλεισμό εγγραφών για κοινές λειτουργίες όπως η προσθήκη ευρετηρίου (B-tree). Ωστόσο, παραμένουν μερικές προϋποθέσεις όπου οι εγγραφές (δηλώσεις DML) αποκλείονται, κυρίως η προσθήκη ενός ΠΛΗΡΕΣ ΚΕΙΜΕΝΟ ευρετήριο, την κρυπτογράφηση του χώρου πινάκων και τη μετατροπή ενός τύπου στήλης.

Άλλα δημοφιλή εργαλεία αλλαγής σχήματος στο διαδίκτυο, όπως το pt-online-schema-change της Percona, λειτουργούν εφαρμόζοντας ένα σύνολο τριών ενεργοποιητών (ΕΙΣΑΓΕΤΕ, ΕΚΣΥΓΧΡΟΝΙΖΩ, και ΔΙΑΓΡΑΦΩ) στο κύριο για να διατηρηθεί ένας πίνακας σκιώδους αντιγράφου σε συγχρονισμό με τις αλλαγές. Αυτό εισάγει μια μικρή ποινή απόδοσης λόγω ενίσχυσης εγγραφής, αλλά πιο σημαντικό απαιτεί επτά παρουσίες κλειδαριών μεταδεδομένων. Αυτά σταματούν αποτελεσματικά τα γεγονότα DML (Γλώσσα χειρισμού δεδομένων).

Δεδομένου ότι το Gh-ost λειτουργεί χρησιμοποιώντας το δυαδικό αρχείο καταγραφής, δεν είναι ευαίσθητο στα μειονεκτήματα που βασίζονται στη σκανδάλη. Τέλος, το Gh-ost μπορεί να ενεργοποιήσει αποτελεσματικά τη δραστηριότητα σε μηδενικά συμβάντα, επιτρέποντάς σας να διακόψετε προσωρινά τη μετεγκατάσταση του σχήματος εάν ο διακομιστής σας αρχίσει να δυσκολεύεται και να συνεχίσει όταν η φυσαλίδα δραστηριότητας συνεχίζεται.

Πώς λειτουργεί λοιπόν το Gh-ost; Από προεπιλογή, το Gh-ost συνδέεται με ένα αντίγραφο (σκλάβος), προσδιορίζει τον κύριο και εφαρμόζει τη μετεγκατάσταση στο κύριο. Λαμβάνει αλλαγές σε ένα αντίγραφο στον πίνακα προέλευσης στο binlog_format = ROW, αναλύει το αρχείο καταγραφής και μετατρέπει αυτές τις δηλώσεις για να εκτελεστούν ξανά στον πίνακα σκιών του πλοιάρχου. Παρακολουθεί τις μετρήσεις της σειράς στο αντίγραφο και προσδιορίζει πότε είναι ώρα να εκτελέσετε ένα ατομικό cutover (πίνακες διακοπτών).

GitHub

Το Gh-ost παρέχει μια εναλλακτική λειτουργία όπου εκτελείτε τη μετεγκατάσταση απευθείας στο master (είτε έχει σκλάβους είτε όχι), διαβάστε ξανά το master binlog_format = ROW συμβάντα και, στη συνέχεια, εφαρμόστε ξανά στον πίνακα σκιών.

Μια τελική επιλογή είναι διαθέσιμη για την εκτέλεση της μετεγκατάστασης μόνο στο αντίγραφο χωρίς να επηρεαστεί ο κύριος, ώστε να μπορείτε να δοκιμάσετε ή να επικυρώσετε με άλλο τρόπο τη μετεγκατάσταση.

GitHub

Σημειώστε ότι εάν το σχήμα σας έχει ξένα κλειδιά, τότε το Gh-ost ενδέχεται να μην λειτουργεί καθαρά, καθώς αυτή η διαμόρφωση δεν υποστηρίζεται.

Σημειώστε ότι ο oak-online-alter-table ήταν ο προκάτοχος του Gh-ost. Μπορείτε να διαβάσετε μια σύγκριση μεταξύ της απόδοσης Gh-ost και pt-online-schema-change από τον Peter Zaitsev, Διευθύνοντα Σύμβουλο της Percona, μαζί με μια απάντηση της Shlomi Noach, του συγγραφέα και συντηρητή της εργαλειοθήκης OAK και του Gh-ost.

Το έργο Gh-ost χρησιμοποιεί την άδεια MIT. Έχει 29 συνεργάτες, σχεδόν 1k δεσμεύσεις και 3k αστέρια.

PhpMyAdmin

Ένα από τα πιο μακροχρόνια και πιο ώριμα έργα μεταξύ των εργαλείων MySQL είναι το σεβαστό εργαλείο PhpMyAdmin που χρησιμοποιείται για τη διαχείριση της MySQL μέσω του διαδικτύου. Το phpMyAdmin επιτρέπει στο DBA να περιηγείται και να τροποποιεί αντικείμενα βάσης δεδομένων MySQL: βάσεις δεδομένων, πίνακες, προβολές, πεδία και ευρετήρια. Υπάρχουν επιλογές για την πραγματοποίηση εξαγωγής δεδομένων χρησιμοποιώντας περισσότερες από δώδεκα μορφές, τροποποίηση χρηστών και προνομίων MySQL και - το αγαπημένο μου - να εκτελούν ad-hoc ερωτήματα.

Θα βρείτε επίσης μια καρτέλα Κατάσταση που σχεδιάζει δυναμικά ερωτήσεις, συνδέσεις / διαδικασίες και επισκεψιμότητα δικτύου για τη δεδομένη παρουσία της βάσης δεδομένων σας, μαζί με μια καρτέλα Σύμβουλος που σας δείχνει μια λίστα με πιθανά ζητήματα απόδοσης, καθώς και προτάσεις σχετικά με τον τρόπο αποκατάστασης.

Το PhpMyAdmin χρησιμοποιεί την άδεια GPLv2. Πρόκειται για ένα τεράστιο έργο με περισσότερους από 800 συντελεστές, εκπληκτικές δεσμεύσεις 112 χιλιάδων και 2.7 χιλιάδες αστέρια. Μια ηλεκτρονική επίδειξη είναι διαθέσιμη στη διεύθυνση //demo.phpmyadmin.net/master-config/

Sqlcheck

Τα αντί-μοτίβα SQL μπορούν να επιβραδύνουν τα ερωτήματα, αλλά συχνά χρειάζονται έμπειρους DBA και προγραμματιστές που αναζητούν κώδικα για να τα αναγνωρίσουν και να τα επιλύσουν. Το Sqlcheck αντικατοπτρίζει τις προσπάθειες της Joy Arulraj να κωδικοποιήσει το βιβλίο «SQL Anti-models: αποφεύγοντας τις παγίδες του προγραμματισμού βάσεων δεδομένων» του Bill Karwin. Ο Karwin προσδιορίζει τέσσερις κατηγορίες αντι-μοτίβου:

  1. Λογική σχεδίαση βάσης δεδομένων
  2. Φυσικός σχεδιασμός βάσης δεδομένων
  3. Ερώτηση
  4. Ανάπτυξη εφαρμογής
Χαρά Αρουλάχ

Το Sqlcheck μπορεί να στοχευτεί σε διάφορα επίπεδα κινδύνου, κατηγοριοποιημένα ως χαμηλού, μεσαίου ή υψηλού κινδύνου. Αυτό είναι χρήσιμο εάν η λίστα με τα αντί-μοτίβα είναι μεγάλη, καθώς μπορείτε να δώσετε προτεραιότητα στα ερωτήματα με τη μεγαλύτερη επίδραση στην απόδοση. Το μόνο που πρέπει να κάνετε για να ξεκινήσετε είναι να συγκεντρώσετε μια λίστα με τα ξεχωριστά ερωτήματά σας σε ένα αρχείο και, στη συνέχεια, να τα μεταβιβάσετε ως επιχείρημα στο εργαλείο.

Χρησιμοποίησα ένα δείγμα που συλλέχθηκε από το περιβάλλον επίδειξης PMM για να δημιουργήσω την ακόλουθη έξοδο:

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

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

| SQLCHECK |

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

> ΕΠΙΠΕΔΟ ΚΙΝΔΥΝΟΥ :: ΟΛΑ ΤΑ ΑΝΤΙΔΙΩΜΑΤΑ

> SQL FILE NAME :: έξοδος

> COLOR MODE :: ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ

> ΛΕΙΤΟΥΡΓΙΑ VERBOSE :: ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΗ

> DELIMITER ::;

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

==================== Αποτελέσματα ===================

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

Δήλωση SQL: επιλέξτε table_schema, table_name, table_type, ifnull (engine, "none") ως μηχανή,

ifnull (έκδοση, «0») ως έκδοση, ifnull (row_format, ‘none’) ως row_format,

ifnull (table_rows, ‘0’) ως table_rows, ifnull (data_length, ‘0’) ως data_length,

ifnull (index_length, ‘0’) ως index_length, ifnull (data_free, ‘0’) ως data_free,

ifnull (create_options, ‘none’) ως create_options από information_schema.tables

όπου table_schema = "innodb_small";

[έξοδος]: (HINTS) NULL Χρήση

[Αντιστοίχιση έκφρασης: null]

...

==================== Περίληψη ===================

Όλα τα αντι-μοτίβα και συμβουλές :: 7

> Υψηλός κίνδυνος :: 0

> Μέσος Κίνδυνος :: 0

> Χαμηλός κίνδυνος :: 2

> Συμβουλές :: 5

Το Sqlcheck καλύπτεται από το Apache License 2.0. Το έργο έχει πέντε συντελεστές, 187 δεσμεύσεις και 1,4 χιλιάδες αστέρια.

Ορχηστής

Το Orchestrator είναι ένα εργαλείο διαχείρισης υψηλής διαθεσιμότητας και αναπαραγωγής. Παρέχει τη δυνατότητα να ανακαλύψετε την τοπολογία αναπαραγωγής ενός περιβάλλοντος MySQL, ανιχνεύοντας πάνω και κάτω την αλυσίδα για να εντοπίσετε πλοιάρχους και σκλάβους. Μπορεί επίσης να χρησιμοποιηθεί για την αναπαράσταση της τοπολογίας αναπαραγωγής μέσω του GUI, παρέχοντας μια διεπαφή μεταφοράς και απόθεσης για την προώθηση ενός σκλάβου σε έναν κύριο. Αυτή είναι μια πολύ ασφαλής λειτουργία. Στην πραγματικότητα το Orchestrator απορρίπτει τυχόν παράνομες λειτουργίες, ώστε να μην σπάσει το σύστημά σας.

Τέλος, το Orchestrator μπορεί να υποστηρίξει την ανάκτηση όταν οι κόμβοι παρουσιάζουν αποτυχίες, καθώς χρησιμοποιεί την έννοια της κατάστασης για να επιλέξει έξυπνα τη σωστή μέθοδο ανάκτησης και να αποφασίσει την κατάλληλη διαδικασία κύριας προώθησης που θα χρησιμοποιηθεί.

Το Orchestrator είναι ένα άλλο εργαλείο που παρέχεται από την Shlomi Noach στο GitHub. Καλύπτεται από το Apache License 2.0. Ο Orchestrator έχει 34 συνεισφέροντες, 2.780 δεσμεύσεις και 900 αστέρια τη στιγμή αυτής της γραφής.

GitHub

Κρατώντας τις πλάκες γυρίζοντας

Στην αρχή αυτού του κομματιού, μίλησα για το ρόλο του διαχειριστή της MySQL να είναι όπως αυτός του spinner. Περιστασιακά, ο διαχειριστής μπορεί να επωφεληθεί από μια κραυγή από έναν χρήσιμο θεατή όταν τα πράγματα αρχίζουν να ταλαντεύονται και χρειάζονται προσοχή. Η Percona Monitoring and Management (PMM) αναλαμβάνει τη δουλειά να φωνάζει, επισημαίνοντας περιοχές που χρειάζονται προσοχή και βοηθώντας τους διαχειριστές βάσεων δεδομένων να εντοπίσουν και να επιλύσουν ζητήματα βάσης δεδομένων.

Το PMM ενσωματώνει μια σειρά από εργαλεία ανοιχτού κώδικα κορυφαίας ποιότητας, συμπεριλαμβανομένου του Orchestrator, για να παρέχει μια ολοκληρωμένη εγκατάσταση παρακολούθησης και διαχείρισης βάσεων δεδομένων. Η γραφική παρουσίασή του παρέχει εύκολα αφομοιωμένες οπτικές ενδείξεις για την κατάσταση των διακομιστών βάσης δεδομένων σας με την πάροδο του χρόνου και υποστηρίζει διακομιστές MySQL, MariaDB και MongoDB. Δείτε τη δημόσια επίδειξή μας!

Ακριβώς όπως τα πέντε κορυφαία εργαλεία μου, και όπως όλα τα λογισμικά της Percona, το PMM είναι εντελώς δωρεάν και ανοιχτού κώδικα λογισμικό που μπορείτε να το κατεβάσετε από τον ιστότοπο της Percona ή από το GitHub.

Κάθε ένα από τα εργαλεία που έχω περιγράψει αφορά μια διαφορετική πτυχή του ρόλου του διαχειριστή MySQL. Συμβάλλουν στο οπλοστάσιο των εργαλείων διαχείρισης βάσεων δεδομένων και σας επιτρέπουν να αξιοποιήσετε την εμπειρία και τις δεξιότητες των συνεισφερόντων σε αυτά τα δημοφιλή έργα. Είναι δωρεάν και ανοιχτού κώδικα και μπορούν να προσαρμοστούν στις ανάγκες του δικού σας περιβάλλοντος, εάν είναι απαραίτητο, ή μπορείτε να τα χρησιμοποιήσετε χωρίς τροποποίηση. Εάν δεν έχετε ακόμη εξερευνήσει αυτούς τους πολύτιμους λίθους, σας προτείνω να ρίξετε μια πιο προσεκτική ματιά για να δείτε αν σας προσφέρουν πλεονεκτήματα έναντι των τρεχουσών μεθόδων και εργαλείων σας.

Ο Michael Coburn υπηρετεί ως υπεύθυνος προϊόντων στην Percona όπου είναι υπεύθυνος για την παρακολούθηση και διαχείριση της Percona. Με βάση τη διαχείριση συστημάτων, η Coburn απολαμβάνει να συνεργάζεται με τεχνολογίες SAN και λύσεις υψηλής διαθεσιμότητας.

Το New Tech Forum παρέχει έναν χώρο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο[email protected].