חמשת כלי הקוד הפתוח המובילים עבור מנהלי MySQL

מייקל קובורן הוא מנהל מוצר בפרקונה. 

עבור מנהלי מסדי נתונים (DBA), שמירה על מאגרי מידע פועלים בשיא ביצועים יכולה להיות קצת כמו לוחות מסתובבים: נדרשת זריזות, ריכוז, תגובות מהירות, ראש מגניב וקריאה מדי פעם מצד צופה מועיל. מאגרי מידע הם מרכזיים להפעלה מוצלחת של כמעט כל יישום. מכיוון ש- DBA אחראים לנתוני הארגון, מציאת כלים מהימנים המסייעים להם לייעל את תהליך ניהול מסדי הנתונים ולהקל על משימות התחזוקה השוטפות היא חיונית. DBAs זקוקים לכלים טובים בכדי שהמערכות שלהם מסתובבות בצורה חלקה.

אז מהם הכלים המנוסים והאמינים עבור מנהלי MySQL? כאן אני משתף את חמשת כלי הקוד הפתוח המובילים שלי עבור מנהלי MySQL ודן בערכם בתמיכה במשימות ניהול MySQL מהיום להיום. לכל אחד מהם סיפקתי קישור למאגר GitHub ורשמתי את מספר כוכבי GitHub בזמן כתיבת שורות אלה.

מיקלי

פרויקט Mycli מספק השלמה אוטומטית של שורת הפקודה MySQL והדגשת תחביר. זהו אחד הכלים הפופולריים ביותר של MySQL עבור מנהלים. 

מגבלות אבטחה כגון מארחי קפיצה ואימות דו-גורמי מותירים רבים מ- MySQL DBA עם שורת פקודה רק גישה למערכות שלהם. בנסיבות כאלה, כלי GUI אהובים כמו MySQL Workbench, Monyog ואחרים אינם אופציה.

בשורת הפקודה, חלק ניכר מהזמן מושקע בעולם מסוף קל על שחור. אז אחד הדברים הטובים ביותר במיקלי הוא עושר הדגשת התחביר שלו. זה מאפשר לך, למשל, להפריד ויזואלית בין פונקציות ומפעילים ממחרוזות שאילתה WHEREבסעיפים. עבור שאילתה קצרה בשורה אחת זה אולי לא עניין כל כך גדול, אבל זה הופך להיות מחליף משחק כשאתה עובד עם שאילתות שמבצעות JOINפעולות על יותר מכמה טבלאות. האם אני עושה את JOINהעמודות המשתמשות באינדקס? האם אני מסנן באמצעות תווים כלליים מובילים WHEREבסעיפים שלי ? Mycli תומך בשאילתות מרובות שורות ובהדגשת תחביר, מה שאומר שתוכלו לחכות בקטעים החשובים ביותר בעת סקירה או אופטימיזציה של שאילתות. אתה יכול לבחור מתוך מספר ערכות צבעים תחביריות המדגישות או ליצור משלך.

התכונה הרוצחת האחרת של Mycli היא השלמה חכמה. זה מאפשר לך לבחור שמות טבלאות ועמודות מרשימה רגישת הקשר על ידי הזנת התווים הראשונים שלהם. לא עוד לנטוש את הקלט הנוכחי שלך להפעלה SHOW CREATE TABLE מכיוון ששכחת את שם העמודה שאתה רוצה WHEREבסעיף שלך !  

אמג'ית רמאנוג'אם

עם Mmycli, אתה יכול לכנות שאילתות מועדפות באמצעות \fs, למשל \fs myAlias myQuery. זה מאוד שימושי, מכיוון שתוכל לבצע את השאילתה \f myAliasבכל עת שדרוש.

פרויקט Mycli משתמש ברישיון BSD 3. ישנם 44 תורמים, התחייבות של 1.2 אלף כוכבים.

רוּחַ

אם כמו 99 אחוזים מה- DBA של MySQL עמדתם בפני יישום שינוי לטבלת MySQL תוך חשש מההשפעה על הייצור, עליכם לשקול את Gh-ost (GitHub Online Schema Migration). Gh-ost מספק שינויים בסכימת MySQL מבלי לחסום כתובות, ללא שימוש בטריגרים, ועם יכולת להשהות ולהמשיך את ההעברה! 

מדוע זה כל כך חשוב? מכיוון ש- MySQL 5.6 נשלח עם ALTER TABLE ... ALGORITHM=INPLACEפונקציונליות חדשה של DDL (Data Definition Language), ניתן היה לשנות טבלה מבלי לחסום כתובות לצורך פעולות נפוצות כגון הוספת אינדקס (B-tree). עם זאת, נותרו מספר תנאים בהם כתובות (הצהרות DML) חסומות, בעיקר תוספת FULLTEXTאינדקס, הצפנת שטח השולחן והמרה של סוג עמודה. 

כלים לשינוי סכמת פופולריים מקוונים אחרים, כגון PT-online-הסכימה-השינוי, עבודה על ידי יישום מערכת של שלושה טריגרים של Percona ( INSERT, UPDATE, ו DELETE) על האדון לשמור על שולחן עותק צל מסונכרן עם שינויים. זה מכניס עונש ביצועים קטן בגלל הגברה בכתיבה, אך באופן משמעותי יותר נדרש שבעה מקרים של נעילת מטא נתונים. אלה למעשה מעכבים אירועי DML (Data Manipulation Language). 

מכיוון ש- Gh-ost פועל באמצעות היומן הבינארי, הוא אינו רגיש לחסרונות מבוססי ההדק. לבסוף Gh-ost מסוגל לצמצם ביעילות את הפעילות לאפס אירועים, ומאפשר לך להשהות את העברת הסכימה לזמן מה אם השרת שלך מתחיל להיאבק ולהתחדש כאשר בועת הפעילות עוברת.

אז איך Gh-ost עובד? כברירת מחדל, Gh-ost מתחבר לשכפל (עבד), מזהה את המאסטר ומחיל את ההעברה על המאסטר. הוא מקבל שינויים בעותק משוכפל לטבלת המקור ב- binlog_format = ROW, מנתח את היומן וממיר את ההצהרות הללו כדי להיעשות מחדש בטבלת הצללים של המאסטר. הוא עוקב אחר ספירת השורות ברפליקה ומזהה מתי הגיע הזמן לבצע חיתוך אטומי (החלפת טבלאות). 

GitHub

Gh-ost מספק מצב חלופי שבו אתה מבצע את ההעברה ישירות על המאסטר (בין אם יש לו עבדים ובין אם לא), קורא בחזרה את binlog_format=ROWאירועי המאסטר ואז מחיל אותם מחדש על טבלת הצללים.

אפשרות אחרונה זמינה להפעלת ההעברה רק על העתק מבלי להשפיע על המאסטר, כך שתוכל לבדוק או לאמת את ההעברה באופן אחר.

GitHub

שים לב שאם לסכימה שלך יש מפתחות זרים ייתכן ש- Gh-ost לא יפעל בצורה נקייה, מכיוון שתצורה זו אינה נתמכת.

שים לב כי אלון-מקוון-אלטר-טבלה היה קודמו לגה-אוסט. תוכלו לקרוא השוואה בין ביצועי Gh-ost לבין pt-online-schema-change של פיטר זייצב, מנכ"ל פרקונה, יחד עם תגובת שלומי נח, הכותב והתחזק של ערכת הכלים OAK ו- Gh-ost.

פרויקט Gh-ost משתמש ברישיון MIT. יש לו 29 תורמים, כמעט 1,000 מחויבים, וכוכבי 3k.

PhpMyAdmin

אחד הפרויקטים הארוכים והבוגרים ביותר בין כלי MySQL הוא כלי ה- PhpMyAdmin המכובד המשמש לניהול MySQL באינטרנט. phpMyAdmin מאפשר ל- DBA לדפדף ולשנות אובייקטים של מסדי נתונים של MySQL: מסדי נתונים, טבלאות, תצוגות, שדות ואינדקסים. ישנן אפשרויות לבצע ייצוא נתונים תוך שימוש ביותר מתריסר פורמטים, שינוי משתמשי הרשאות MySQL וה- האהוב עלי ביותר - לבצע שאילתות אד-הוק.

תוכלו למצוא גם כרטיסיית סטטוס שמתארת ​​באופן דינמי שאלות, חיבורים / תהליכים ותעבורת רשת עבור מופע מסד הנתונים הנתון שלכם, יחד עם כרטיסיית יועץ המציגה לכם רשימה של בעיות ביצועים אפשריות יחד עם המלצות כיצד לתקן.

PhpMyAdmin משתמש ברישיון GPLv2. מדובר בפרויקט ענק עם יותר מ -800 תורמים, התחייבות מדהימה של 112,000 וכוכבים של 2.7k. הדגמה מקוונת זמינה בכתובת //demo.phpmyadmin.net/master-config/

Sqlcheck

אנטי-דפוסי SQL יכולים להאט שאילתות, אך לעיתים קרובות נדרשים DBA מנוסים ומפתחים את הקוד כדי לזהות ולפתור אותם. Sqlcheck משקף את מאמציו של ג'וי ארולרג 'לקידוד הספר "ביל אנטי-דפוסים: הימנעות ממלכודות תכנות מסדי הנתונים" מאת ביל קרווין. קרווין מזהה ארבע קטגוריות של אנטי דפוס:

  1. תכנון מאגר לוגי
  2. תכנון מסדי נתונים פיזיים
  3. שאילתא
  4. פיתוח אפליקציות
ג'וי ארולרג '

ניתן למקד את Sqlcheck ברמות סיכון שונות, מסווגות כסיכון נמוך, בינוני או גבוה. זה מועיל אם רשימת הדפוסים האנטי-דפוסים שלך גדולה, מכיוון שתוכל לתעדף את השאילתות עם השפעת הביצועים הגדולה ביותר. כל שעליך לעשות כדי להתחיל הוא לאסוף רשימה של השאילתות הייחודיות שלך לקובץ ואז להעביר אותן כטיעון לכלי. 

השתמשתי במדגם שנאסף מסביבת ההדגמה של PMM כדי לייצר את הפלט הבא:

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

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

| SQLCHECK |

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

> רמת סיכון :: כל הדפוסים

> שם SQL FILE :: פלט

> מצב צבע :: מופעל

> מצב מילולית :: מושבת

> מפריד ::;

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

==================== תוצאות ====================

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

הצהרת 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 2.0. לפרויקט חמישה תורמים, 187 מחויבים וכוכבי 1.4k.

מתזמר

Orchestrator הוא כלי לניהול זמינות ושכפול גבוהים. זה מספק את היכולת לגלות את טופולוגיית השכפול של סביבת MySQL על ידי זחילה למעלה ולמטה בשרשרת כדי לזהות אדונים ועבדים. זה יכול לשמש גם כדי לשחזר את טופולוגיית השכפול שלך באמצעות ממשק המשתמש, ומספק ממשק גרור ושחרר כדי לקדם עבד למאסטר. זו פעולה מאוד בטוחה. למעשה Orchestrator דוחה כל פעולה בלתי חוקית כדי לא לשבור את המערכת שלך. 

לבסוף, Orchestrator יכול לתמוך בהתאוששות כאשר צמתים סובלים מכשלים, מכיוון שהוא משתמש במושג המדינה כדי לבחור בצורה מושכלת את שיטת השחזור הנכונה ולהחליט על תהליך הקידום הראשי המתאים לשימוש.

Orchestrator הוא כלי נוסף שמספק שלומי נח ב- GitHub. זה מכוסה על ידי רישיון Apache 2.0. לתזמורת יש 34 תורמים, 2,780 מחויבים ו -900 כוכבים בזמן כתיבת שורות אלה.

GitHub

שומר על הצלחות מסתובבות

בתחילת היצירה הזו דיברתי על כך שתפקיד מנהל MySQL היה כמו של ספינר צלחות. לעיתים, מנהל המערכת עשוי להפיק תועלת מצעקת צופה מועיל כאשר הדברים מתחילים להתנדנד וזקוקים לתשומת לב. פרקונה ניטור וניהול (PMM) לוקח על עצמו את תפקיד הצעקות, מדגיש אזורים שזקוקים לתשומת לב ועוזר למנהלי מסדי נתונים לזהות ולפתור בעיות בסיסי נתונים.

PMM משלבת מספר כלי קוד פתוח מהטובים ביותר, כולל Orchestrator, כדי לספק מתקן מקיף לניהול וניהול מסדי נתונים. המצגת הגרפית שלו מספקת רמזים חזותיים שמוטמעים בקלות למצב שרתי מסדי הנתונים שלכם לאורך זמן, ותומכת בשרתי MySQL, MariaDB ו- MongoDB. בדוק את ההדגמה הציבורית שלנו!

בדיוק כמו חמשת הכלים המובילים שלי, וכמו כל התוכנות של פרקונה, PMM היא תוכנת קוד פתוח לחלוטין וניתנת להורדה מאתר פרקונה או מ- GitHub.

כל אחד מהכלים שתיארתי מתייחס להיבט אחר של תפקיד מנהל MySQL. הם תורמים לארסנל הכלים שלך לניהול מסדי נתונים, ומאפשרים לך לנצל את הניסיון והמיומנויות של התורמים לפרויקטים פופולריים אלה. הם חופשיים וקוד פתוח וניתן להתאים אותם לצרכי הסביבה שלך במידת הצורך, או שתוכל להשתמש בהם ללא שינוי. אם עדיין לא בחנת את אבני החן האלה, אני ממליץ לך לבחון מקרוב אם הם מציעים לך יתרונות על פני השיטות והכלים הנוכחיים שלך.

-

מייקל קובורן משמש כמנהל מוצר בפרקונה שם הוא אחראי על ניטור וניהול של פרקונה. עם יסוד בניהול מערכות, קובורן נהנה לעבוד עם טכנולוגיות SAN ופתרונות זמינות גבוהה.

פורום טק חדש מספק מקום לחקור ולדון בטכנולוגיה ארגונית מתפתחת בעומק ורוחב חסרי תקדים. הבחירה היא סובייקטיבית, בהתבסס על בחירת הטכנולוגיות שלדעתנו הן חשובות ומעניינות ביותר את הקוראים. אינו מקבל ביטחונות שיווקיים לפרסום ושומר לעצמו את הזכות לערוך את כל התוכן שתרם. שלח את כל הבירורים לכתובת  [email protected] .