Programmēšana

Top 5 atvērtā koda rīki MySQL administratoriem

Maikls Koburns ir Percona produktu vadītājs.

Datubāzu administratoriem (DBA) datu bāzu uzturēšana ar maksimālu veiktspēju var nedaudz līdzināties vērpšanas plāksnēm: tas prasa veiklību, koncentrēšanos, ātras reakcijas, vēsu prātu un ik pa laikam izsauktu izpalīdzīgu skatītāju. Datu bāzes ir būtiskas, lai veiksmīgi darbotos gandrīz katra lietojumprogramma. Tā kā DBA ir atbildīgas par organizācijas datiem, ir svarīgi atrast uzticamus rīkus, kas viņiem palīdz pilnveidot datu bāzes pārvaldības procesu un atvieglot ikdienas uzturēšanas uzdevumus. DBA ir nepieciešami labi rīki, lai viņu sistēmas vienmērīgi grieztos.

Kādi ir pārbaudītie un uzticamie rīki MySQL administratoriem? Šeit es dalos ar saviem pieciem atvērtā pirmkoda rīkiem MySQL administratoriem un apspriežu to vērtību ikdienas MySQL administrēšanas uzdevumu atbalstīšanā. Katram no viņiem es esmu norādījis saiti uz GitHub krātuvi un uzrakstījis GitHub zvaigžņu skaitu rakstīšanas laikā.

Mycli

Mycli projekts nodrošina MySQL komandrindas automātisko pabeigšanu un sintakses izcelšanu. Tas ir viens no populārākajiem MySQL rīkiem administratoriem.

Drošības ierobežojumi, piemēram, lēcienu saimnieki un divu faktoru autentifikācija, daudziem MySQL DBA ļauj komandrindas piekļuvi tikai savām sistēmām. Šādos apstākļos iecienītie GUI rīki, piemēram, MySQL Workbench, Monyog un citi, nav iespēja.

Komandu rindā liela daļa laika tiek pavadīta termināla gaismā pret melnu. Tātad viena no labākajām lietām Mycli ir tās sintakses izcelšanas bagātība. Tas ļauj, piemēram, vizuāli nošķirt funkcijas un operatorus no vaicājuma virknēm KUR klauzulas. Īsam, vienas rindas vaicājumam tas var nebūt tik liels darījums, taču tas kļūst par spēles mainītāju, strādājot ar vaicājumiem, kas darbojas PIEVIENOTIES operācijas vairāk nekā pāris tabulās. Vai es daru PIEVIENOTIES izmantojot indeksētās kolonnas? Vai es filtrēju, izmantojot savās aizstājējzīmes KUR klauzulas? Mycli atbalsta vairākrindu vaicājumus un sintakses izcelšanu, kas nozīmē, ka jūs varat nokļūt sadaļās, kas ir vissvarīgākās, pārskatot vai optimizējot vaicājumus. Varat izvēlēties kādu no sintakses izceļošajām krāsu shēmām vai izveidot pats.

Otra Mycli slepkavu iezīme ir gudra pabeigšana. Tas ļauj atlasīt tabulu un kolonnu nosaukumus no kontekstjutīgā saraksta, ievadot tikai dažas pirmās rakstzīmes. Vairs neatstājiet savu pašreizējo ieguldījumu RĀDĪT IZVEIDOT GALDU jo esat aizmirsis kolonnas nosaukumu, kuru vēlaties savā KUR klauzula!

Amjith Ramanujam

Izmantojot Mmycli, varat aizstāt citus vārdus, izmantojot \ fs, piem. \ fs myAlias ​​myQuery. Tas ir patiešām ērti, jo pēc tam jūs varat izpildīt vaicājumu, izmantojot \ f myAlias kad vien tas ir nepieciešams.

Mycli projektā tiek izmantota BSD 3 licence. Ir 44 līdzautori, 1,2 000 apņemšanās un 5 000 zvaigznes.

Gh-ost

Ja, piemēram, 99 procenti MySQL DBA, esat saskāries ar izmaiņu ieviešanu MySQL tabulā, baidoties no ietekmes uz ražošanu, jums jāapsver Gh-ost (GitHub tiešsaistes shēmas migrācija). Gh-ost nodrošina MySQL shēmas izmaiņas, nebloķējot rakstīšanu, neizmantojot aktivizētājus un iespēju apturēt un atsākt migrāciju!

Kāpēc tas ir tik svarīgi? Tā kā MySQL 5.6 piegādāts ar jaunu MAINĪT TABULU ... ALGORITMS = IEVADĪT DDL (Data Definition Language) funkcionalitāte ļāva modificēt tabulu, nebloķējot ierakstus parastām operācijām, piemēram, pievienojot indeksu (B-koks). Tomēr joprojām ir daži nosacījumi, kad raksti (DML paziņojumi) tiek bloķēti, jo īpaši a pievienošana PILNĀ TEKSTS indekss, tabulas vietas šifrēšana un kolonnu veida pārveidošana.

Citi populāri tiešsaistes shēmas maiņas rīki, piemēram, Perkonas pt-online-schema-change, darbojas, ieviešot trīs aktivizētāju kopu (IELIKT, ATJAUNINĀT, un DZĒST), lai ēnu kopiju tabula būtu sinhronizēta ar izmaiņām. Tas ievieš nelielu izpildes sodu rakstīšanas pastiprināšanas dēļ, bet daudz svarīgāk prasa septiņus metadatu bloķēšanas gadījumus. Šie efektīvi apstādina DML (Data Manipulation Language) notikumus.

Tā kā Gh-ost darbojas, izmantojot bināro žurnālu, tas nav uzņēmīgs pret sprūda balstītiem trūkumiem. Visbeidzot, Gh-ost spēj efektīvi ierobežot darbību līdz nullei notikumu, ļaujot uz laiku apturēt shēmas migrāciju, ja jūsu serveris sāk cīnīties, un atsākt, kad aktivitātes burbulis pāriet uz priekšu.

Tātad, kā darbojas Gh-ost? Pēc noklusējuma Gh-ost izveido savienojumu ar kopiju (vergu), identificē galveno un migrāciju uz galveno. Tas saņem izmaiņas avota tabulas kopijā binlog_format = ROW, parsē žurnālu un konvertē šos paziņojumus atkārtoti izpildāmiem uz master ēnu tabulas. Tas seko līdzi kopiju rindu skaitam un identificē, kad ir pienācis laiks veikt atomu samazināšanu (slēdžu tabulas).

GitHub

Gh-ost nodrošina alternatīvu režīmu, kurā migrāciju veicat tieši uz galveno (neatkarīgi no tā, vai tam ir vergi vai nē), nolasiet galvenā binlog_format = ROW notikumiem un pēc tam tos atkārtoti pielietojiet ēnu galdam.

Ir pieejama pēdējā opcija, lai migrāciju palaistu tikai replikā, neietekmējot galveno, tāpēc varat pārbaudīt vai citādi apstiprināt migrāciju.

GitHub

Ņemiet vērā, ka, ja jūsu shēmai ir svešas atslēgas, Gh-ost var nedarboties tīri, jo šī konfigurācija netiek atbalstīta.

Ņemiet vērā, ka ozols-online-alter-table bija Gh-ost priekštecis. Varat izlasīt Perkonas izpilddirektora Pētera Zaiceva veikuma Gh-ost un pt-online-schema-change veiktspējas salīdzinājumu, kā arī OAK rīkkopas un Gh-ost autora un uzturētāja Šlomi Noaha atbildi.

Gh-ost projektā tiek izmantota MIT licence. Tajā ir 29 līdzautori, gandrīz 1 000 apņemšanās un 3 000 zvaigznes.

PhpMyAdmin

Viens no visilgāk un nobriedušākajiem projektiem starp MySQL rīkiem ir cienījams rīks PhpMyAdmin, ko izmanto, lai administrētu MySQL tīmeklī. phpMyAdmin ļauj DBA pārlūkot un modificēt MySQL datu bāzes objektus: datu bāzes, tabulas, skatus, laukus un rādītājus. Ir iespējas veikt datu eksportēšanu, izmantojot vairāk nekā divpadsmit formātus, modificēt MySQL lietotājus un privilēģijas un - mans mīļākais - izpildīt ad-hoc vaicājumus.

Jūs atradīsit arī cilni Statuss, kas dinamiski noformē jautājumus, savienojumus / procesus un tīkla trafiku attiecīgajai datu bāzes instancei, kā arī cilni Padomnieks, kurā parādīts iespējamo veiktspējas problēmu saraksts, kā arī ieteikumi to novēršanai.

PhpMyAdmin izmanto GPLv2 licenci. Tas ir milzīgs projekts, kurā piedalās vairāk nekā 800 dalībnieku, apbrīnojami 112 000 un 2,7 000 zvaigznes. Tiešsaistes demonstrācija ir pieejama vietnē //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL anti-modeļi var palēnināt vaicājumus, taču bieži vien pieredzējušiem DBA un izstrādātājiem ir nepieciešams pārmeklēt kodu, lai tos identificētu un atrisinātu. Sklčeks atspoguļo Joy Arulraj centienus kodificēt Bila Karvina grāmatu “SQL Anti-patterns: Izvairīšanās no datu bāzu programmēšanas slazdiem”. Karvins identificē četras antimoda kategorijas:

  1. Loģiskā datu bāzes noformēšana
  2. Fiziskās datu bāzes noformēšana
  3. Vaicājums
  4. Lietojumprogrammu izstrāde
Prieks Arulrajs

Sqlcheck var būt vērsts uz dažādiem riska līmeņiem, kas klasificēti kā zems, vidējs vai augsts risks. Tas ir noderīgi, ja jūsu pretmodeļu saraksts ir liels, jo jūs varat noteikt prioritāti vaicājumiem, kuriem ir vislielākā ietekme uz veiktspēju. Viss, kas jums jādara, lai sāktu, ir failā apkopot savu atšķirīgo vaicājumu sarakstu un pēc tam tos kā argumentu nodot rīkam.

Es izmantoju paraugu, kas savākts no PMM Demo vides, lai izveidotu šādu izvadi:

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

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

| SQLCHECK |

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

> RISKA LĪMENIS: VISI ANTIKAMATI

> SQL FILE NAME :: izeja

> KRĀSU REŽĪMS: IESLĒGTS

> VERBOSE REŽĪMS: ATSPĒJOTS

> DELIMITER ::;

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

==================== Rezultāti ===================

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

SQL paziņojums: kā dzinēju atlasiet table_schema, table_name, table_type, ifnull (engine, ‘none’),

ifnull (versija, ‘0’) kā versija, ifnull (rindas_formāts, ‘neviens’) kā rindas_formāts,

ifnull (table_rows, ‘0’) kā table_rows, ifnull (data_length, ‘0’) kā data_length,

ifnull (indeksa_ garums, ‘0’) kā indeksa_ garums, ifnull (datu_ brīvs, ‘0’) kā datu_free,

ifnull (create_options, ‘none’) kā create_options no information_schema.tables

kur table_schema = ‘innodb_small’;

[izvade]: (PADOMI) NULL Lietojums

[Atbilstošā izteiksme: null]

...

==================== Kopsavilkums ===================

Visi anti-modeļi un padomi :: 7

> Augsts risks :: 0

> Vidējs risks :: 0

> Zems risks :: 2

> Padomi :: 5

Uz Sqlcheck attiecas Apache License 2.0. Projektā ir pieci dalībnieki, 187 apņemšanās un 1,4 000 zvaigznes.

Orķestris

Orchestrator ir augstas pieejamības un replikācijas pārvaldības rīks. Tas nodrošina iespēju atklāt MySQL vides replikācijas topoloģiju, pārmeklējot ķēdi augšup un lejup, lai identificētu kapteiņus un vergus. To var arī izmantot, lai pārstrādātu jūsu replikācijas topoloģiju, izmantojot GUI, nodrošinot vilkšanas un nomešanas saskarni, lai virzītu vergu kapteinim. Šī ir ļoti droša darbība. Faktiski Orchestrator noraida jebkādas nelikumīgas darbības, lai nesabojātu jūsu sistēmu.

Visbeidzot, Orchestrator var atbalstīt atkopšanu, kad mezgli cieš no kļūmēm, jo ​​tas izmanto stāvokļa jēdzienu, lai saprātīgi izvēlētos pareizo atkopšanas metodi un izlemtu par piemēroto galveno veicināšanas procesu.

Orķestris ir vēl viens rīks, ko nodrošina Shlomi Noach vietnē GitHub. Uz to attiecas Apache License 2.0. Rakstīšanas laikā Orchestrator ir 34 līdzautori, 2780 apņemšanās un 900 zvaigznes.

GitHub

Plātņu griešanās

Šī raksta sākumā es runāju par to, ka MySQL administratora loma ir tāda pati kā šķīvja vērpējam. Reizēm administrators var gūt labumu no izaicinoša skatītāja sauciena, kad lietas sāk svārstīties un tām jāpievērš uzmanība. Perkonas pārraudzība un pārvaldība (PMM) uzņemas kliedzošo darbu, izceļot jomas, kurām jāpievērš uzmanība, un palīdzot datu bāzu administratoriem identificēt un atrisināt datu bāzes problēmas.

Lai nodrošinātu visaptverošu datu bāzes uzraudzības un pārvaldības iespēju, PMM iekļauj vairākus vislabākās šķirnes atvērtā koda rīkus, tostarp Orchestrator. Tās grafiskais noformējums nodrošina viegli asimilētus vizuālos norādījumus par datu bāzes serveru stāvokli laika gaitā un atbalsta MySQL, MariaDB un MongoDB serverus. Apskatiet mūsu publisko demonstrāciju!

Tāpat kā mani pieci galvenie rīki un tāpat kā visa Percona programmatūra, PMM ir pilnīgi bezmaksas un atvērtā koda programmatūra, kuru var lejupielādēt no Percona vietnes vai no GitHub.

Katrs no manis aprakstītajiem rīkiem attiecas uz atšķirīgu MySQL administratora lomas aspektu. Tie veicina jūsu datu bāzes pārvaldības rīku arsenālu un ļauj jums izmantot šo populāro projektu dalībnieku pieredzi un prasmes. Tie ir bezmaksas un atvērta pirmkoda un, ja nepieciešams, tos var pielāgot savas vides vajadzībām, vai arī jūs varat tos izmantot bez izmaiņām. Ja jūs vēl neesat izpētījis šos dārgakmeņus, es iesaku jums rūpīgāk izpētīt, vai tie piedāvā jums priekšrocības salīdzinājumā ar jūsu pašreizējām metodēm un rīkiem.

Maikls Koburns strādā par produktu vadītāju Perkonā, kur viņš ir atbildīgs par Perkonas pārraudzību un vadību. Ar sistēmu administrēšanas pamatu Koburnam patīk strādāt ar SAN tehnoloģijām un augstas pieejamības risinājumiem.

Jauno tehnoloģiju forums nodrošina vietu, kur bezprecedenta dziļumā un plašumā izpētīt un pārrunāt topošās uzņēmuma tehnoloģijas. Izvēle ir subjektīva, balstoties uz mūsu izvēlētajām tehnoloģijām, kuras, mūsuprāt, ir svarīgas un interesē lasītājus. nepieņem mārketinga nodrošinājumu publicēšanai un patur tiesības rediģēt visu ieguldīto saturu. Nosūtiet visus jautājumus uz[email protected].

$config[zx-auto] not found$config[zx-overlay] not found