MySQL Եթերում. SQL հարցումների մոնիտորինգ

Տուն / Չի միանում

Հասկանալով, թե ինչպես է աշխատում որոշակի CMS-ը, դուք պետք է օգտագործեք տարբեր գործիքներ՝ ձեր աշխատանքը հեշտացնելու համար:
Ամենահետաքրքիր թեման տվյալների բազա(ների) հետ աշխատելն է: Բնականաբար, հարցումները և հարցումների արդյունքները ուսումնասիրելու համար հարկավոր է օգտագործել ունիվերսալ բան: Մի բան, որը կայուն կաշխատի և՛ հայտնի շարժիչով, և՛ մաքսային համակարգով։
Ենթադրենք, դուք ունեք բովանդակության կառավարման համակարգ, և դուք պետք է տեսնեք, թե ինչպես է իրականացվում նոր օգտվողների ավելացումը կամ գաղտնաբառերի փոփոխությունը:

Գործիքների մեծ մասը, որոնք թույլ են տալիս վերահսկել տվյալների բազայի հետ աշխատանքը, վճարովի են [մեկ, երկու]: Ես ուզում էի ավելի թեթև և հարմար բան, ուստի ընտրեցի mysql-proxy: Թեև կոմունալ ծառայության հնարավորությունները շատ ավելի լայն են, քան ինձ անհրաժեշտ է, ես նկարագրելու եմ միայն հիմնականը: Աշխատում է ինչպես Windows, այնպես էլ Unix համակարգերում:

Այն կարող եք ներբեռնել այստեղ՝ dev.mysql.com/downloads/mysql-proxy
Առաջին քայլը բաշխման ընտրության որոշումն է: Միացված է այս պահին վերջին տարբերակը«MySQL Proxy 0.8.3 ալֆա» է, իմ ՕՀ-ն Windows 7 է, ուստի բոլոր թեստերը կլինեն դրա վրա:

«Ներբեռնում» կոճակը սեղմելուց հետո ձեզանից կպահանջվի մուտք գործել կամ գրանցվել, սակայն ներքևում կա ներբեռնման հղում՝ առանց ավելորդ քայլերի: (Ubuntu-ի և Debian-ի պահոցներն ունեն նախապես կառուցված փաթեթներ, ուստի՝ sudo apt-get install mysql-proxy)

Ցանկանում եմ նշել, որ 7,9 ՄԲ չափով բաշխումը ներառում է Lua-ն՝ հիմնական մոդուլների աջակցությամբ:

Արխիվը ներբեռնելուց հետո դուք պետք է այն հանեք ձեզ հարմար գրացուցակի մեջ, օրինակ վերցնենք C:\mysql-proxy-ը:
Հավելվածը գործարկելու համար անհրաժեշտ է որոշել պարամետրերը:

Այս համատեքստում շատ բան կախված է նրանից, թե ինչ եք տեղադրել: Ես օգտագործում եմ Winginx-ը որպես LAMP, այս փաթեթի մասին կարող եք կարդալ այստեղ՝ winginx.ru
Լռելյայնորեն, MySQL-ն աշխատում է 3306 նավահանգստի վրա, մենք դրան չենք դիպչի:
Մենք պետք է փոխենք պորտը՝ php-ը տվյալների բազայի միացման համար։ Դա անելու համար հարկավոր է ուղղել php.ini-ն
Գտեք «mysql.default_port» տողը և դրեք նավահանգիստը (կանխադրված 4040): Ավելի համընդհանուր շահագործման համար փոխեք «mysqli.default_port»-ը 4040-ի

Նախապատրաստական ​​մասն ավարտված է, անցնենք գործին։

Տարբերակ 1. Վերահսկել հարցումները:
Պարզ մոնիտորինգի համար դուք պետք է օգտագործեք Lua script: Ինչպես արդեն ասացի, Lua-ն ներառված է, այնպես որ ձեզ հարկավոր չէ որևէ նոր բան տեղադրել:
Եկեք ստեղծենք մի պարզ view.lua սկրիպտ C:\mysql-proxy\ գրացուցակում բովանդակությամբ.

Read_query (փաթեթ) ֆունկցիան, եթե string.byte (փաթեթ) == proxy.COM_QUERY, ապա տպել (string.sub(packet, 2)) վերջ վերջ

Այժմ դուք կարող եք ստուգել արդյունքը:
Հարմարության համար եկեք ստեղծենք view.bat ֆայլ C:\mysql-proxy գրացուցակում՝ բովանդակությամբ.

C:\mysql-proxy\bin\mysql-proxy.exe --proxy-lua-script=C:\mysql-proxy\view.lua --log-file="C:\mysql-proxy\mysql-proxy- log.txt" --proxy-backend-addresses=localhost:3306

Proxy-backend-addresses - MySQL սերվերի հասցեն, որին մենք կհանձնենք հարցումը:

Գործարկելով վեբ սերվերը և կատարելով ցանկացած հարցում տվյալների բազայում, դուք կարող եք տեսնել սա.

Հայտերը ցուցադրված են, լավ:

Տարբերակ 2. Վերահսկել հարցումները և գրել ֆայլին:
Ֆայլին հարցումներ գրելու համար մենք կօգտագործենք ստանդարտ Lua հնարավորությունները:
Եկեք ստեղծենք ֆայլ view-write.lua C:\mysql-proxy\ գրացուցակում բովանդակությամբ.

Read_query (փաթեթ) ֆունկցիան, եթե string.byte (փաթեթ) == proxy.COM_QUERY, ապա տեղական ֆայլ = io.open("C:\\mysql-proxy\\sql-log.txt", "a") file:write( string.sub(packet, 2) .. "\n") file:close() print(string.sub(packet, 2)) end end
Եվ bat ֆայլ- «view-write.bat»
C:\mysql-proxy\bin\mysql-proxy.exe --proxy-lua-script="C:\mysql-proxy\view-write.lua" --log-file="C:\mysql-proxy\ mysql-proxy-log.txt" --proxy-backend-addresses=localhost:3306

Արդյունք հարցումները կատարելուց հետո («C:\mysql-proxy\sql-log.txt» հասցեում)

Բացի ինքնին հարցումները ցուցադրելուց, մեզ կարող է անհրաժեշտ լինել ցուցադրել այդ հարցումների արդյունքները:

Տարբերակ 3. Հարցումներ և արդյունքներ
Օգտագործելով նույն սխեման, մենք ստեղծում ենք «view-result.lua» սցենարը.
ֆունկցիան read_query(փաթեթ) if packet:byte() == proxy.COM_QUERY ապա տպել("Query:" .. string.sub(packet, 2)) local file = io.open("C:\\mysql-proxy\ \sql-log.txt", "a") file:write("Query: " .. string.sub(packet, 2) .. "\n") file:close() proxy.queries:append(2, string.char(proxy.COM_QUERY) .. string.sub(packet, 2), (resultset_is_needed = true)) proxy.queries:append(1, packet, (resultset_is_needed = true)) վերադարձի վստահված անձ.PROXY_SEND_QUERY end_res-ի ավարտի ֆունկցիան(read_query): inj) եթե inj.id == 1, ապա inj.resultset.rows տողի համար արեք տեղական i = 1 տեղական դաշտ = () իսկ տող[i] անել, եթե տող[i] == տող, ապա ընդհատեք վերջի տեղական ֆայլը = io: open("C:\\mysql-proxy\\sql-log.txt", "a") file:write("Response field. " .. inj.resultset.fields[i].name .. " => " .. row[i] .. "\n") file:close() print("Պատասխան դաշտ. " .. inj.resultset.fields[i].name .. " => " .. row[i]) i = i + 1 վերջի վերջի վերադարձի վստահված անձ.PROXY_IGNORE_RESULT վերջի վերջ

Իսկ view-result.bat
C:\mysql-proxy\bin\mysql-proxy.exe --proxy-lua-script="C:\mysql-proxy\view-result.lua" --log-file="C:\mysql-proxy\ mysql-proxy-log.txt" --proxy-backend-addresses=localhost:3306

Արդյունքում մենք ստանում ենք հարցումների և պատասխանների ամբողջական գրանցում ընթեռնելի ձևով

MySQL-ն է բաց կոդով տվյալների բազայի կառավարման համակարգ աղբյուր կոդը , հիմնված Structured Query Language (SQL) վրա։ Բացի այն, որ համակարգը հասանելի է անվճար, MySQL-ի առավելությունն այն է, որ այն աշխատում է գրեթե բոլոր հարթակներում. MySQL-ն աշխարհում ամենատարածված տվյալների բազայի համակարգերից մեկն է, որի վրա կառուցված են բազմաթիվ դինամիկ կայքեր: Բաց կոդով տարբերակի հետ մեկտեղ կա նաև տվյալների բազայի կառավարման համակարգի կոմերցիոն տարբերակը։ Առևտրային արտադրանքում MySQL-ն օգտագործելու համար դուք պետք է լիցենզիա գնեք:

MySQL-ի առավելությունները

MySQL-ն ունի շուկայի ամենամեծ մասնաբաժինը ցանկացած բաց կոդով տվյալների բազայում: Հետևաբար, MySQL-ում գրքերի, հոդվածների և աջակցության պակաս չկա։

Համեմատած այլ տվյալների բազաների հետ՝ MySQL-ը հեշտ է կարգավորել և կառավարել: Գործիքներ, ինչպիսիք են MySQL Administrator-ը, հասանելի են ձեզ սկսելու համար:

MySQL-ի ամենամեծ առավելություններից մեկը՝ կայծակնային արագություն: Իր պարզ կառուցվածքի շնորհիվ MySQL-ը չափազանց արդյունավետ է ռեսուրսների սպառման առումով և գրեթե չի օգտագործում հիշողություն:

Արտադրող-
MySQL՝ հիմք մի շարք այլ ծառայությունների համար

Եթե ​​ձեր տվյալների բազան շատ դանդաղ է աշխատում, սխալներ է վերադարձնում որոշ հարցումների դեպքում կամ ամբողջովին անհասանելի է, այդ տվյալների բազայից կախված բոլոր հավելվածների կատարումը և որակը կտուժեն: Ապահովել մշտական ​​և ամենաարագ հասանելիությունըդիմումները, անհրաժեշտ է իրականացնել մոնիտորինգհիմքերը MySQL տվյալներ. Այսպիսով, ձեր տվյալների բազայի կատարողականը օպտիմալացնելով, դուք հիմք եք ստեղծում տարբեր մակարդակներում ձեր բոլոր ծառայությունների հասանելիության և կատարման համար:

Ի՞նչն է PRTG-ին դարձնում MySQL մոնիտորինգի ամբողջական գործիք:

Եթե ​​ձեր կայքը, առցանց խանութը կամ վեբ հավելվածը օգտագործում է MySQL տվյալների բազա, և տվյալների բազան կփչանա, ապա կայքը կարող է տուժել. այն կարող է ճիշտ չցուցադրվել, դրա մասերը կարող են անհասանելի լինել կամ կայքը կարող է ընդհանրապես չբեռնվել:

PRTG-ն թույլ է տալիս անընդհատ վերահսկել Ձեր MySQL տվյալների բազայի առկայությունը. PRTG-ի միջոցով դուք կարող եք նվազեցնել տվյալների բազայի խափանումները և կարող եք անմիջապես արձագանքել տվյալների բազայի խափանումներին: Արդյունքը կլինի հաճախորդների բավարարվածության բարձրացում և աշխատակիցների արտադրողականության բարձրացում:

PAESSLER-ի MySQL մոնիտորինգի համապարփակ գործիքը վերահսկում է ոչ միայն տվյալների բազայի հասանելիությունը, այլ նաև MySQL-ի կատարողականի այլ տվյալները: Դա անելու համար PRTG-ն ավտոմատ կերպով հարցումներ է կատարում տվյալների շտեմարաններում և չափում է ժամանակը, պահանջվում է կապ հաստատելու, SQL հարցում կատարելու, գործարքի մշակման և կապը դադարեցնելու համար։ PRTG վահանակը ցուցադրում է հստակ վիճակագրություն ընդհանուր պահանջի ժամանակը.

PRTG-ն նաև թույլ է տալիս հետևել հատուկ տվյալների հավաքածուներ MySQL տվյալների բազայից: Դուք կարող եք, օրինակ, որոշ տեղեկություններ ստանալ առցանց խանութից կամ հավելվածների տվյալների բազայից: Դա անելու համար պարզապես սահմանեք ձեր սեփական SQL հարցումները PRTG հավելվածում և վերահսկեք նրանց վերադարձած արժեքները:

Բացի վերադարձվող արժեքներից, PRTG-ն ցույց կտա հարցման կատարման ժամանակը և տվյալների աղյուսակներում հարցված տողերի քանակը: Օգտագործելով հարմարեցված շեմեր, կարող եք գործարկել ավտոմատ ծանուցումներ և ստանալ ծանուցումներ, օրինակ՝ առցանց խանութում որոշակի ապրանքի պաշարների մոտալուտ սպառման մասին:

Շատերից մեկը օգտակար գործառույթներ PRTG-ն մաքսային հաշվետվությունների ստեղծումն է: Զեկույցների բովանդակությունը կարող է հարմարեցվել ցանկացած ձևով, այնուհետև կարող են կանչվել հաշվետվությունները թռիչքի վրակամ ստեղծել դրանք ավտոմատ կերպով(օրական, շաբաթական կամ ամսական) հետագա ուղարկմամբ, օրինակ՝ էլեկտրոնային փոստով:

PRTG-ն թույլ է տալիս հաշվետվություններ ստեղծել ձեր աշխատանքի համար կարևոր բոլոր տվյալների հետ: Հաշվետվությունների հատկանիշը նաև տրամադրելու իդեալական միջոց է արդի տեղեկատվությունգործընկերներ և վերադասներ. Պարզապես ընտրեք համապատասխան տեղեկատվություն և հաշվետվությունները ավտոմատ կերպով կուղարկվեն համապատասխան ղեկավարներին: Օրինակ, դուք կարող եք փոխանցել կայքի ամենակարևոր վիճակագրությունը մարքեթինգային թիմին կամ ավտոմատ կերպով ուղարկել բաց տոմսերի քանակը օգնության գրասեղանին:

PRTG MySQL մոնիտորինգի ծրագրակազմն ունի ահազանգման հատկություն: Եթե ​​տվյալների բազան անհասանելի է, կամ եթե որոշ հարցումներ չեն վերադարձնում պահանջվող (կամ սխալ) արժեքները, կարող եք կարգավորել PRTG-ն այս իրավիճակի վերաբերյալ ավտոմատ ծանուցումներ ստանալու համար:

Ծանուցումը կարող է լինել հաղորդագրության տեսքով էլ, SMS կամ push ծանուցումներ ձեր սմարթֆոնին: Ձեզ ժամանակին կտեղեկացնեն՝ մինչ խնդրի սրումը։ PRTG API-ի միջոցով կարող եք նաև ստեղծել հատուկ ծանուցումներ և ավտոմատ կերպով կատարել սկրիպտներ կամ HTTP գործողություններ:

Վայելեք ամբողջական վերահսկողության զգացումը PRTG-ի հետ:

PRTG-ն թույլ է տալիս մշտապես վերահսկել
MySQL տվյալների բազաները նույնիսկ շարժման մեջ

PRTG-ն տեղադրվում է մի քանի րոպեում և համատեղելի է շարժական սարքերի մեծ մասի հետ:

PRTG-ն վերահսկում է այս և շատ այլ արտադրողներ և հավելվածներ ձեզ համար

PRTG-ին անցնելը հեշտ է և անվտանգ

Շուկայում կան բազմաթիվ գործիքներ MySQL սերվերների մոնիտորինգի համար: PRTG-ն ունի հետևյալ առավելությունները.

Ոչ թաքնված
տախտակներ

Շատ ադմինիստրատորներ հատուկ դեպքերում օգտագործում են մոնիտորինգի մի շարք գործիքներ: Գործիքների այս համակցության կառավարումը ժամանակ և էներգիա է պահանջում: Սա հանգեցնում է աշխատանքի անհամար ժամերի, որոնք կարող են ավելի արդյունավետ ծախսվել: Ավելին, այս կերպ սովորաբար հնարավոր չէ ստանալ հակիրճ ակնարկ:

  • PRTG-ի ամբողջական տարբերակը 30 օրով
  • 30 օր հետո՝ անվճար տարբերակ
  • Ընդլայնված տարբերակի համար՝ առևտրային լիցենզիա

Ինչպես վերահսկել MySQL տվյալների բազայի կատարումը PRTG-ի միջոցով

PRTG-ով MySQL-ի մոնիտորինգը սկսելու համար հարկավոր է հետևել մի քանի պարզ քայլի: PRTG լուծումը գալիս է պատրաստի MySQL մոնիտորինգի սենսորով: Ընդհանուր առմամբ, դուք կարող եք անմիջապես սկսել օգտագործել այս սենսորը տվյալների բազայի հիմնական տեղեկությունները, ինչպիսիք են հասանելիությունը և կատարման ժամանակը վերահսկելու համար:

Ավելի մանրամասն չափումների համար ավելացրեք ձեր սեփական SQL հարցումները որպես առանձին ֆայլ:

MySQL սենսորի տեղադրումը հեշտ է և շատ ժամանակ չի պահանջում:

1. Ստեղծեք SQL հարցում

Ինքնորոշված ​​SQL հարցումները թույլ են տալիս հետևել տարբեր հիմնական կատարողականի ցուցանիշներին, ինչպիսիք են՝

  • կայքի այցելուների թիվը;
  • վաճառքի թվեր առցանց խանութում;
  • բաց հարցումներ հաճախորդների սպասարկման ոլորտում:

Հնարավորությունները գրեթե անսահման են։ Միակ պահանջն այն է, որ համապատասխան SQL հայտարարությունը պետք է նշվի:

Ահա մի օրինակ, թե ինչ կարող է նման լինել.


SELECT count(idorder), sum(value), avg(value), GROUP_CONCAT(customer SEPARATOR ", ") test.order-ից

2. Սցենարի պահպանում

Պահպանեք SQL հարցումը առանձին ֆայլձեր կոշտ սկավառակի վրա: Համոզվեք, որ ֆայլի ընդլայնումը .sql է և ընտրված է հետևյալ ուղին.

C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\sql\mysql

3. PRTG-ում սենսորի ստեղծում

Նախքան PRTG հավելվածին սենսոր ավելացնելը, համոզվեք, որ ձեր միջավայրը համապատասխանում է պահանջներին (տե՛ս մեր օգտատիրոջ ուղեցույցը՝ լրացուցիչ տեղեկությունների համար): Հատուկ ուշադրություն պետք է դարձնել սարքի կարգավորումներում մուտքի ճիշտ տվյալները մուտքագրելուն, քանի որ այս սարքը կներկայացնի ձեր տվյալների բազան PRTG հավելվածում:

Սեղմեք «Ավելացնել սենսոր»Սարքի վրա, որը կստանա սենսորը, որոնեք MySQL և ընտրեք MySQL-v2-Sensor: Հետագա երկխոսության վանդակում մուտքագրեք սենսորի անունը և տվյալների բազայի անվանումը, որը կվերահսկվի:

Հաջորդը, ընտրեք ձեր SQL հարցումը պարունակող SQL ֆայլը (քայլ 2-ից) և կարգավորեք սենսորը ըստ ցանկության: Օրինակ, որոշեք, թե արդյոք դուք պարզապես ցանկանում եք հետևել հարցման կատարման ժամանակին, թե նաև վերլուծել և մշակել արժեքները տվյալների աղյուսակից: Եթե ​​ընտրում եք վերջին տարբերակը, նշեք, թե որ արժեքները պետք է ընթերցվեն աղյուսակից:

PRTG սենսորը կավելացվի երկխոսության տուփը փակելուց հետո: Դա այսպիսի տեսք կունենա.

PRTG-ն հեշտացնում է ձեր կյանքը:

Մեր ծրագրային ապահովումմոնիտորինգն աշխատում է ձեզ համար
և ժամանակին ծանուցում է հնարավոր խնդիրների մասին:
Այն թույլ է տալիս կենտրոնանալ ավելի կարևոր բաների վրա։

PRTG-ն խնայում է ժամանակը

Գնելով PRTG, դուք ստանում եք մեկ կենտրոնացված գործիք սերվերների և ամբողջ ցանցի աշխատանքը վերահսկելու համար: Ստացեք տեսանելիություն ձեր ամբողջ ենթակառուցվածքի մեջ մեր հավելվածի և վահանակի միջոցով:

PRTG-ն խնայում է ձեր նյարդերը

PRTG-ի տեղադրումը շատ հեշտ է: PRTG-ով սկսելը կամ մոնիտորինգի այլ գործիքից անցնելն անխափան է՝ շնորհիվ ավտոմատ հայտնաբերման և պատրաստի կաղապարներբազմաթիվ սարքերի համար:

PRTG-ն գումար է խնայում

PRTG-ն արժե գումարը: Մեր հաճախորդների 80%-ն ասում է, որ խնայողություններ է ձեռք բերել ցանցի կառավարման մեջ: Իսկ PRTG լիցենզիաների արժեքը միջինում վճարվում է ընդամենը մի քանի շաբաթվա ընթացքում:

Paessler AG-ն լայնածավալ հետազոտություն է անցկացրել աշխարհի ավելի քան 600 ՏՏ բաժիններում, որոնք օգտագործում են PRTG:
Այս հարցման նպատակն էր օպտիմալացնել և նուրբ թյունինգմեր ցանցի մոնիտորինգի ծրագրակազմը
որն ավելի լավ կբավարարի ադմինիստրատորների կարիքները:
Մեր հետազոտության արդյունքների համաձայն՝ մասնակիցների ավելի քան 95%-ը պատրաստ էր խորհուրդ տալ PRTG-ին կամ արդեն արել էր դա:

Բազմ մրցանակակիր ծրագրակազմ

Մենք ամեն օր ձգտում ենք ապահովել հզոր և
պարզ ծրագրակազմ մեր հաճախորդների համար:
Իհարկե, մենք հպարտ ենք, երբ ունենք հաջողություններ և երախտագիտություն մեր աշխատանքի համար:

PRTG-ն մոնիտորինգի համապարփակ գործիք է
տվյալների բազաներ

PRTG-ն ոչ միայն աջակցում է MySQL-ին, այլև հարմար է տվյալների բազայի այլ ծրագրերի մոնիտորինգի համար: Ծրագիրն ունի պատրաստի սենսորներ տվյալների բազայի բոլոր հիմնական միջավայրերի համար, ներառյալ Microsoft SQL, Oracle SQL և PostgreSQL: Բացի այդ, մեր ADO SQL սենսորը կարող է օգտագործվել տվյալների բազայի կառավարման գրեթե ցանկացած այլ համակարգի հետ: Այս սենսորը թույլ է տալիս վերահսկել տվյալների ցանկացած աղբյուր, որը հասանելի է OLE DB-ի կամ ODBC-ի միջոցով:

PRTG. Ցանցի մոնիտորինգի հեղափոխական ծրագիր

Օգտագործելով API, դուք կարող եք PRTG-ն անհատականորեն և դինամիկ կերպով հարմարեցնել ձեր հատուկ կարիքներին.
  • HTTP API:մուտք դեպի ցանցի մոնիտորինգ և հաստատությունների կառավարման տվյալներ՝ օգտագործելով HTTP հարցումները
  • Անհատական ​​սենսորներ.Դուք կարող եք ավելացնել ձեր սեփական սենսորները ցանցի անհատական ​​մոնիտորինգի համար
  • Անհատական ​​ծանուցումներ.դուք կարող եք ավելացնել ձեր սեփական ծանուցումները՝ արտաքին համակարգերին ծանուցումներ ուղարկելու համար
  • Նոր REST API սենսոր.Դիտարկում է գրեթե ամեն ինչ, որն աջակցում է XML և JSON

Գրեթե ցանկացած ժամանակակից հաճախորդ-սերվեր ծրագիր չի կարող անել առանց DBMS-ի, և շատ կազմակերպություններում տվյալների բազայի սերվերների պահպանումը հիմնված է բացառապես համակարգի ադմինիստրատորի ուսերին: Ստանդարտ գործիքները թույլ են տալիս լուծել միայն հիմնական խնդիրները, և դրանց գործառույթները միշտ չէ, որ բավարար են: Երրորդ կողմի կոմունալ ծառայությունները շատ հեշտ կդարձնեն MySQL-ի և կլոնների կառավարումը:

Վարչական ինտերֆեյս

MySQL-ն ու կլոնները բաշխվում են առանց լռելյայն GUI. Առավելագույնի մեջ պարզ դեպքերմի քանի հիմքերով կառավարելու համար բավական է հրամանի տող, երբ նրանց սպասարկող սերվերների, տվյալների բազաների և ադմինիստրատորների թիվը գերազանցում է մեկ տասնյակը, GUI-ի անհրաժեշտությունն ավելի ակնհայտ է դառնում։ Oracle-ն առաջարկում է իր մշակումը. տվյալների բազայի մշակողների և ադմինիստրատորների համար նախատեսված մեկ գործիք, MySQL Workbench Windows-ի, Linux-ի, OS X-ի համար: Սա հզոր միջավայր է մեծ հնարավորություններով, որը թույլ է տալիս տեսողականորեն նախագծել, ստեղծել և կառավարել տվյալների բազաները: Բոլոր գործիքները հասանելի են սերվերներ տեղադրելու, հաշիվներ կառավարելու, պահուստավորման և վերականգնման, աուդիտի և պարզ կարգավիճակի մոնիտորինգի համար: Այն կարող է օգտագործվել նաև այլ DBMS-ներից՝ MS հեշտությամբ տեղափոխելու համար SQL Server, Sybase ASE, PostreSQL և այլն: Հնարավորությունները կարող են ընդլայնվել նաև փլագինների միջոցով: Ինտերֆեյսը տեղայնացված չէ: Ֆունկցիաները շատ են, ուստի ստիպված կլինեք որոշակի ժամանակ տրամադրել դրան ընտելանալու համար, թեև ընդհանուր առմամբ միջավայրը հարմար է։ Համայնքի (OSS) հրատարակությունը լիցենզավորված է GNU GPL-ի ներքո: Տեղադրումը ոչ մի խնդիր չի առաջացնում, փաթեթները հասանելի են Linux-ի, Windows-ի և OS X-ի տարբեր բաշխումների համար: Red Hat / CentOS-ի համար ավելի լավ է օգտագործել EPEL, Ubuntu APT ծրագրավորողների պահոցը:

$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo apt - Տեղադրեք mysql-workbench

PhpMyAdmin-ը շատ տարածված է հոսթերների շրջանում, որը թույլ է տալիս կատարել տվյալների բազայի կառավարման, աղյուսակների, ինդեքսների, մուտքի իրավունքների, վերարտադրման կարգավորումների, տեղեկատվության արտահանման, կրկնօրինակում/վերականգնում, վիճակագրություն դիտելու և այլնի հետ կապված գործողությունների մեծ մասը ինտուիտիվ միջավայրում: Միևնույն ժամանակ, հնարավոր է ուղղակիորեն մուտքագրել ցանկացած SQL հարցում: Աջակցվում է բազմաթիվ սերվերների կառավարում: Ամեն ինչ բավականին ինտուիտիվ է, և օգտագործողը կարող է կառավարել առանց որևէ հատուկ ուսուցման, բրաուզեր ունեցող ցանկացած սարքից: Ինտերնետում կան բազմաթիվ հրահանգներ և օրինակներ օգտագործելով phpMyAdmin. Փաթեթի պահոցից տեղադրելը որևէ խնդիր չի առաջացնում, դուք կարող եք օգտագործել ոչ միայն Apache-ն որպես վեբ սերվեր, այլև ավելի թեթև nginx կամ lighttpd. Որոշ հոստինգի կառավարման վահանակներ, ինչպիսիք են cPanel-ը և Plesk-ը, աջակցում են phpMyAdmin-ին:

Windows-ի օգտատերերը, անշուշտ, կգնահատեն HeidiSQL-ն, որն աջակցում է MySQL-ի, MS SQL-ի և PostgreSQL-ի կառավարմանը (դեռ փորձնական) և տարածվում է բաց կոդով լիցենզիայի ներքո: Ծրագիրն ունի շատ հարմար ինտերֆեյս, աջակցում է միացմանը միանգամից մի քանի սերվերների հետ, որոնք հասանելի են մեկ պատուհանում, սա հեշտացնում է տվյալների արտահանման/ներմուծման գործողությունները: Դուք կարող եք ստեղծել և խմբագրել տվյալների բազաներ, աղյուսակներ, կառավարել արտոնությունները, արտահանել աղյուսակներ (CSV, HTML, XML, SQL, ...), որոնում, օպտիմալացում, մոնիտորինգ: Ինքնալրացումն օգնում է հարցումներ գրելիս: Հրամանի տողն ապահովված է, հնարավոր է միացում SSH թունելի միջոցով: Գոյություն ունի Wine-ի օգտագործմամբ շարժական տարբերակ, այն կարող է գործարկվել նաև *nix / OS X-ով:

Նրանց համար, ովքեր գոհ չեն նկարագրված ապրանքներից, կարող եք գտնել դրանք ինտերնետում: մեծ թվովանալոգներ՝ SQLyog, dbForge Studio MySQL, TOra, SQL Buddy և այլոց համար:

Մոնիտորինգ կոմունալ ծառայություններ

Ինչպես ցանկացած հավելված, այնպես էլ DBMS-ը պահանջում է իր գործունեության մշտական ​​մոնիտորինգ, որպեսզի խնդիրների դեպքում հնարավոր լինի հեշտությամբ գտնել խցանումը: Ընդհանուր տեղեկություններԴուք կարող եք տեղեկատվություն ստանալ այն մասին, թե ինչպես է աշխատում MySQL-ը՝ օգտագործելով ստանդարտ mysqladmin հաճախորդը: Հարցումները, ինչպիսիք են՝ SHOW QUERY LOG, SHOW PROCCESSLIST, SHOW VARIABLES, SHOW GLOBAL STATUS և այլն, հազվադեպ են հստակ պատկերացում տալիս, քանի որ միշտ դանդաղ հարցումներ են լինում, բայց դրանք պարտադիր չէ, որ ազդեն ծառայության աշխատանքի վրա: Կա նաև մի օգտակար ծրագիր, որը կոչվում է mysqldumpslow, որը վերլուծում է slow.log-ի տվյալները և ցուցադրում ամենահաճախ դանդաղ հարցումները:

Enterprise հրատարակությունը առաջարկում է հատուկ MySQL Enterprise Monitor գործիք, որն ապահովում է իրական ժամանակում կատարողականի և հասանելիության մասին տեղեկատվություն MySQL-ի բոլոր տվյալների բազաների համար: Բացի այդ, հատուկ պլագիններ հասանելի են մոնիտորինգի համակարգերի մեծ մասի համար, ներառյալ բաց կոդով Nagios, Cacti, Zabbix, Ganglia: Օրինակ՝ Նագիոսը։ Պլագիններից յուրաքանչյուրը պետք է ճիշտ կազմաձևվի՝ ներկայացնելու համար մանրամասն տեղեկություններայն մասին, թե ինչ է տեղի ունենում MySQL-ում, և դա հաճախ փորձ է պահանջում: Միշտ չէ, որ ռացիոնալ է գործարկել լիարժեք մոնիտորինգի համակարգ, երբ խնդիրը միայն DBMS-ի մոնիտորինգն է: Այս դեպքում օգնության են հասնում մասնագիտացված գործիքները։

Ցավոք սրտի, շատ հայտնի mytop-ը չի մշակվել ավելի քան երկու տարի (թեև դա չի նշանակում, որ այն չի կարող օգտագործվել), բայց այն ունի գերազանց և ավելի ֆունկցիոնալ փոխարինում։ Սկսած MySQL 3.23.41 տարբերակից՝ InnoDB-ն ներառում է InnoDB Monitor innotop-ը՝ Unix վերևի մի տեսակ անալոգ այս DBMS-ի համար: Innotop-ը ցուցադրում է InnoDB-ի ներքին վիճակի մասին տեղեկատվությունը հարմար ձևով, որը կարող է օգտակար լինել կատարումը կարգավորելիս: Կոմունալ ծրագիրը գործարկելու շատ տարբերակներ կան: Ամենապարզը որպես կոնկրետ օգտատեր առանց պարամետրերի գործարկելն է

$ innotop -u root -p գաղտնաբառը

Լռելյայն կապը կատարվում է տեղական սերվեր, բայց դուք կարող եք նշել ցանկացած հանգույց կամ վերահսկել միանգամից մի քանի սերվեր: Բոլոր հրամանների ցանկը (Shift + ստեղն) կարելի է ստանալ՝ սեղմելով հարցի ստեղնը: Օրինակ՝ կցուցադրի բոլոր ընթացիկ հարցումների ցանկը: --write պարամետրը թույլ է տալիս պահպանել կապի տվյալները .innotop/innotop.conf ֆայլում՝

$innotop --գրել

Այս կոմունալ ծառայությունների միակ անհարմարությունն այն է, որ նրանք տեղեկատվություն են ցուցադրում իրական ժամանակում, և դուք պետք է հոգ տանեք վիճակագրական տվյալների պահպանման և հետագա վերլուծության մասին:

Mycheckpoint նախագիծը, որը հայտնվեց 2009 թվականին, մի քանի տարիների ընթացքում դարձել է դե ֆակտո ստանդարտ գործիք MySQL-ի մոնիտորինգի համար: Հանրաճանաչության պատճառը յուրահատուկ մոտեցումն է։ Պահպանման և հարցումների համար օգտագործվում է տվյալների բազա, որի մեջ (մեկ INSERT գործողություն) հավաքվում են տվյալներ մոնիտորինգի չափումների, վիճակագրության և MySQL փոփոխականների, Linux ՕՀ-ի մասին տեղեկություններ (RAM և swap վիճակ, բեռնվածություն և այլն): Տվյալների բազայում ներառված են նաև օգտվողների հարցումների արդյունքները: Հավաքված տեղեկատվությունը հեշտությամբ կարելի է դիտել՝ օգտագործելով պարզ SELECT հարցումներ: Միևնույն ժամանակ, ադմինիստրատորը ստանում է տեսողական գծապատկերներ (հիմնված Google Chart API-ի վրա), հաշվետվություններ և չափումներ, որոնք ստեղծվում են անմիջապես: Դուք կարող եք օգտագործել ձեր սեփական վեբ սերվերը HTML հաշվետվություններ թողարկելու համար: Էլեկտրոնային փոստով ուղարկված ծանուցումները նույնպես կարող են կազմաձևվել: Հնարավոր է հեռակա համակարգի և բազմաթիվ սերվերների մոնիտորինգ:

Այն գրված է Python-ով, ուստի տեղադրումը դժվար չէ։ Մշակողները առաջարկում են deb, rpm և tar.gz փաթեթներ և հումք: Ubuntu-ում դուք պետք է մուտքագրեք հետևյալ հրամանները.

$ sudo apt-get install python-mysqldb $ sudo dpkg -i mycheckpoint-231-1.deb

Այնուհետև ձեզ հարկավոր է տվյալների բազա ստեղծել՝ տեղեկատվությունը պահելու համար.

$ mysql -uroot -ppassword mysql> CREATE DATABASE mycheckpoint;

mysql> ՏՐԱՄԱԴՐԵԼ ԲՈԼՈՐ ԱՐՏՈՆՈՒԹՅՈՒՆՆԵՐԸ mycheckpoint-ի վրա*:

Տվյալներ հավաքելու և ցուցադրելու համար օգտագործվում է mycheckpoint օգտակար ծրագիրը, որը կարող է գործարկվել ձեռքով կամ cron-ի միջոցով: MySQL և SMTP սերվերին միանալու պարամետրերը նույնպես նշված են հրամանի տողում.

$ mycheckpoint --user=user --password=գաղտնաբառ --host=server --port=3306

Կամ գրված է կազմաձևման ֆայլում (լռելյայն /etc/mycheckpoint.cnf):

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

Այժմ մենք կարող ենք դիտել հավաքագրված տեղեկատվությունը և ստեղծել հաշվետվություններ SQL հարցումների միջոցով:

$ mysql mycheckpoint -e "SELECT html FROM sv_report_html_brief" --silent --raw > ./checkpoint_report.html

Մեկ այլ օգտակար գործիք, որը թույլ է տալիս վերահսկել, վերլուծել և, անհրաժեշտության դեպքում, փոխել տվյալների փոխանակումը MySQL սերվերի և հաճախորդի հավելվածի միջև, կոչվում է MySQL Proxy: Ծրագիրը շատ մեծ հնարավորություններ ունի։ Աշխատում է ինչպես Windows, այնպես էլ *nix համակարգերով: Տեղադրումը ոչ մի խնդիր չի առաջացնում պարամետրերում, դուք պետք է նշեք MySQL պորտը (կանխադրված 3306) և PHP (mysql.default_port տողը php.ini-ում): Բոլոր հարցումները ստեղծվում են Լուա լեզվով, փաստաթղթերն այստեղ լավ օգնություն են:

Ցանկացած ծրագրային արտադրանքի շահագործման հետ կապված խնդիրներից մեկն այն է սխալ կարգավորում. Տեղադրվելուց հետո կան լրացուցիչ ցուցադրություն հաշիվներ, փորձարկել տվյալների բազաները, օգտվողներն իրենք կարող են սահմանել պարզ գաղտնաբառեր, որոնք հեշտ է վերցնել։ Այս խնդիրները կարող են լուծվել միայն մշտական ​​աուդիտի միջոցով, որը նույնպես պարտադիր կլինի գաղտնի/անձնական տվյալների մշակման դեպքում ( վարկային քարտեր, բժշկական գրառումներ և այլն): Միջադեպերի և խնդիրների վերացման ժամանակ անհրաժեշտ է ստեղծել անվտանգության չափանիշներին (SOX, HIPAA և այլն) համապատասխան միջավայր: Տեղադրվելուց հետո դուք պետք է օգտագործեք mysql_secure_installation-ը, որն ապահովում է ստուգումների նվազագույն փաթեթ, որը թույլ է տալիս կարգավորել ընդհանուր անվտանգության կարգավորումները:

Հաջորդը, դուք պետք է օգտագործեք ստորև նկարագրված գործիքներն ու սցենարները: Աուդիտի խնդիրը պարզեցված է նրանով, որ MySQL մշակողները առաջարկում են համապատասխան API: Այնուամենայնիվ, MySQL-ում audit_log plugin-ը հասանելի է միայն Enterprise տարբերակի համար: Percona Server մշակողները առաջարկում են GPL այլընտրանք այս մոդուլին, որը հարմար է MySQL-ի և կլոնների աուդիտի համար: Երկու այլ այլընտրանքներ՝ McAfee MySQL Audit Plugin-ը և MariaDB Audit Plugin-ը MySQL-ի համար, նույնպես կատարում են աշխատանքը և թույլ են տալիս ստուգել MariaDB, MySQL և Percona Server-ը, բայց օգտագործել իրենց սեփականը: սեփական ձևաչափըաուդիտի մատյան, որը տարբերվում է ստանդարտ MySQL-ից: Սա կպահանջի մի փոքր ավելի նախնական կարգավորում: Փլագինների օգտագործումը չի կարելի անվանել պարզ և մանրամասնորեն ներառված է փաստաթղթերում, որոնք դուք դեռ պետք է կարդաք, այնպես որ մենք չենք անդրադառնա դրա վրա:

Բացի այդ, Պատրիկ Կառլսոնը ներկայացնում է մի շարք թեստեր ցանցային սկաներ Nmap, որը թույլ է տալիս ստուգել ձեր սերվերը հիմնական անվտանգության խնդիրների համար: Ubuntu-ում, տեղադրումից հետո, կարգավորումները պահվում են /usr/share/nmap/nselib/data և nmap/script գրացուցակում՝ սերվերը ստուգելու համար, դուք պետք է նշեք կապի պարամետրերը և հաշիվը:

$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args "mysql-audit.filename="/usr/share/nmap/nselib/data/mysql-cis.audit" ,mysql-audit.username = "root",mysql- audit.password="գաղտնաբառ""

Հաքերն այն կօգտագործի ցանկացած դեպքում, ուստի ադմինիստրատորը պարզապես պարտավոր է պարբերաբար ստուգել սերվերները այս եղանակով։ Երկու փաթեթ, որոնք պետք է առանձին քննարկվեն, պարունակում են նաև աուդիտի գործիքներ:

Percona Toolkit MySQL-ի համար

Ստանդարտ գործիքները, որոնք գալիս են MySQL-ով, ապահովում են միայն կառավարման հիմնական հնարավորությունները, և արդյունքում շատ գործողություններ պետք է կատարվեն ձեռքով: Սա կարող է խնդիր լինել, քանի որ ամեն ինչին հետևելը շատ դժվար է և հաճախ որոշակի փորձ է պահանջում, և հեշտ է սխալվել։ Percona Toolkit for MySQL փաթեթը միավորում է երկու նախագծերի աշխատանքը՝ Maatkit-ը և Aspersa-ն, և ապահովում է սկրիպտներ, որոնք թույլ են տալիս կատարել բազմաթիվ սովորական վարչարարական գործողություններ. շատ ավելին: Ընդհանուր առմամբ կան ավելի քան 4000 թեստեր և պարամետրեր: Փաթեթը հասանելի է Linux-ի հիմնական բաշխումների համար (Ubuntu-ում՝ percona-toolkit փաթեթը): Տեղադրվելուց հետո մենք ստանում ենք 32 կոմունալ ծառայություններ, որոնց անունը սկսվում է pt-*-ով, նպատակը հաճախ պարզ է անունից: Գործարկման ժամանակ կարող եք սահմանել տարբեր զտիչներ և ձևաչափել ելքը: Հետևաբար, դուք դեռ ստիպված կլինեք կարդալ փաստաթղթերը, քանի որ յուրաքանչյուր կոմունալ ունի մեծ թվով պարամետրեր: Օրինակ, pt-summary սկրիպտը կցուցադրի սերվերի վրա հավաքված բոլոր տեղեկությունները /proc/cpuinfo, /proc/meminfo, mount, df և այլ կոմունալ ծրագրերի կողմից, pt-show-grants-ը ցույց կտա DBMS-ի օգտատիրոջ բոլոր իրավունքները, pt-query-: digest-ը թույլ է տալիս ստեղծել հաշվետվություններ՝ հիմնվելով հարցումների սերվերի կողմից մշակված տեղեկամատյանների վերլուծության վրա, ինչպես նաև գործընթացների ցուցակի և tcpdump-ի կողմից հավաքված տեղեկատվության վրա: Օրինակ՝ դիտում դանդաղ հարցումներերկու եղանակով.

$ pt-query-digest slow.log $ pt-query-digest --user=user --password=password --processlist --host=example.org

Մեկ այլ հանրաճանաչ փաթեթ՝ openark kit-ն առաջարկում է 14 կոմունալ ծառայություններ, որոնք թույլ են տալիս ստուգել DBMS-ը. ստուգել կարգավորումները, ստուգել գաղտնաբառերը (դատարկ, նույնական, թույլ), արգելափակել հաշիվները, ընդհատումների հարցումներ, ֆիլտրի գրանցամատյանում գրառումներ, կրկնօրինակման կարգավիճակի ցուցադրում, ճիշտ կոդավորումներ և շատ ավելին: Բաշխված է BSD լիցենզիայի ներքո: Գրված է Python-ով և պահանջում է python-mysqldb: Տեղադրման համար առաջարկվում են Deb և rpm փաթեթներ և հումք, գործընթացը ստանդարտ է և որևէ խնդիր չի առաջացնում:

Ամենահայտնի սցենարը oak-security-audit kit-ն է, որը նախատեսված է հաշիվների, գաղտնաբառերի, արտոնությունների և այլ սերվերի կարգավորումների պարբերական աուդիտի համար: Ընդհանուր առմամբ, այն կարող է գործարկվել առանց պարամետրերի: Լռելյայնորեն օգտագործվում է համակարգի ամենաբարձր մակարդակի աուդիտի ռեժիմը (համապատասխանում է --audit-level=strict):

$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=գաղտնաբառ

Արդյունքում մենք ստանում ենք հաշվետվություն այն ամենը, ինչ նշված չէ որպես Անցած, պահանջում է ուշադիր ուշադրություն: Լռելյայնորեն, openark հավաքածուի կոմունալ ծառայությունները (ներառյալ mycheckpoint-ը, որը նշված է վերևում, նույն մշակողի կողմից) օգտագործում են /var/run/mysqld/mysql.sock վարդակը DBMS-ին միանալու համար (սա ներկառուցված է հենց սկրիպտի մեջ): մեջ Ubuntu ֆայլկոչվում է mysqld.sock: Որպեսզի ամեն անգամ ուղին չնշեք, կարող եք օգտագործել նախապես պատրաստված ֆայլ՝ կապի կարգավորումներով և նշել այն՝ օգտագործելով -defaults-file: Այլընտրանք՝ փոխեք MySQL կարգավորումները my.cnf-ում: Սցենարների խմբագրումը անհարմար է, քանի որ դրանք չեն աշխատի թարմացման ընթացքում: Հաջորդ սկրիպտը՝ oak-block-account, շատ տարածված է տարբեր տեսակի հոսթերների շրջանում՝ DBMS մուտքը ժամանակավորապես անջատելու համար: Փաստն այն է, որ ստանդարտ DBMS մեխանիզմը թույլ չի տալիս ժամանակավորապես անջատել հաշիվը (ինչ-որ բան, ինչպիսին է REVOKE login ON): . ), այսինքն՝ եթե կա հաշիվ, օգտատերը միշտ կարող է միանալ տվյալների բազային։ Դուք, իհարկե, կարող եք օգտագործել նման բան

Mysql> ՉԵՂԱՐԿԵԼ ԲՈԼՈՐ ԱՐՏՈՆՈՒԹՅՈՒՆՆԵՐԸ, ՏՐԱՄԱԴՐԵԼ ՏԱՐԲԵՐԱԿԸ «ՕԳՏԱԳՈՐԾՈՂ»@»%»-ից;

բայց եթե իրավունքները վերականգնվեն, դուք ստիպված կլինեք հիշել բոլոր կարգավորումները: Եվ ամենակարևորը, եթե նայեք օգտագործման իրավունքներին

Mysql> Ցույց տալ դրամաշնորհները «ՕԳՏԱԳՈՐԾՈՂԻ» ՀԱՄԱՐ;

ՏՐԱՄԱԴՐԵԼ ՕԳՏԱԳՈՐԾՄԱՆ ՕԳՏԱԳՈՐԾՈՒՄԸ *.*-ին «ՕԳՏԱԳՈՐԾՈՂ»@»%»-ին, որը նույնականացվում է գաղտնաբառով .....

մենք կհամոզվենք, որ նման հրամանը չի վերակայում USAGE-ը: Օգտագործելով REEVOKE USAGE-ը, իրականում նշանակում է ԲԱՑԵԼ ՕԳՏԱԳՈՐԾՈՂԻՆ: Ավելի հեշտ է փոխել ձեր օգտանունը և գաղտնաբառը, բայց վերականգնումը կարող է խնդիր լինել: Ընդհանրապես, աղմուկն ու ռիսկերը շատ են։ Oak-block-account-ն օգտագործելիս հաշիվը մնում է անփոփոխ, նրան ուղղակի տրվում է ժամանակավոր գաղտնաբառ, այնպես որ դուք չեք կարող կապվել այս հաշվի հետ:

$ oak-block-account --block --account-user=USER --account-host=example.org Լրացուցիչ --kill պարամետրը թույլ կտա միանգամից վերականգնել ամեն ինչակտիվ կապեր

. Ձեր հաշվի գործառույթի վերականգնումը նույնպես հեշտ է: Դիտարկենք հաշիվների ցանկը և դրանց կարգավիճակը.

$ oak-block-account --list

Եվ միացրեք հաշիվը.

$ oak-block-account --release --account-user=USER --account-host=example.org Openark հավաքածուի այլ սցենարներ թույլ են տալիս պարզեցնել որոշ գործողություններ: Օրինակ, oak-chunk-update-ը հնարավորություն է տալիս կատարել UPDATE/DELETE մեծ գործողություններ՝ առանց երկար արգելափակման՝ առաջադրանքը բաժանելով փոքր մասերի: Oak-show-replication-status script-ը ցուցադրում է կրկնօրինակման կարգավիճակը, oak-kill-slow-queries-ը ջնջում է արդեն գործարկվող հարցումները:երկար ժամանակ

, oak-repeat-query-ն կատարում է հարցումը, մինչև այն հասնի որոշակի պայմանի (կրկնումների քանակը, ժամանակը):

Կարգավորումների օպտիմիզացումը շատ նուրբ գործընթաց է, քանի որ հավաքագրված վիճակագրության հիման վրա դուք պետք է փոխեք միայն այն, ինչը իսկապես կազդի աշխատանքի վրա: MySQL-ի ամենահայտնի գործիքը Perl script MySQLTuner-ն է, որը հասանելի է Linux բաշխումների մեծ մասի պահեստներում: Այն կարդում է ընթացիկ սերվերի կարգավորումները և MySQL տեղադրումները, այնուհետև տալիս է առաջարկություններ (միայն առաջարկություններ) դրանք փոխելու համար: Եթե ​​տեղադրումն իրականացվել է փաթեթների միջոցով, ապա պարզապես մուտքագրեք սցենարի անունը, հակառակ դեպքում պետք է զանգահարեք այն՝ նշելով թարգմանիչը.

$ perl mysqltuner.pl

Հաջորդը, կպահանջվի ադմինիստրատորի մուտքի և գաղտնաբառը, որից հետո մենք կստանանք համակարգի չափումներ և առաջարկություններ: Բացի այդ, MySQLTuner-ը ցույց է տալիս տեղեկատվություն աղյուսակներում ինդեքսների և մասնատման մասին, որոնք նույնպես ազդում են սերվերի արագության վրա։ Անհրաժեշտության դեպքում մենք կստանանք առաջարկություններ՝ ինդեքսները վերադասավորելու և դեֆրագմենտացման համար: Ավելի ճշգրիտ աշխատանքի համար խորհուրդ է տրվում սկրիպտը գործարկել առնվազն մեկ օր աշխատելուց հետո:

Բնօրինակ սցենարը գրված էր *nix-ի տակ, սակայն Win-ի համար հարմարեցված տարբերակը հասանելի է CodePlex-ում: Այլընտրանք է MySQL Performance Tuning Primer Script-ը, որը նման վիզուալ տեղեկատվություն չի տրամադրում, բայց ավելի շատ «խոսում» է խնդիրների մասին։

Եզրակացություն

Սրանք, իհարկե, բոլոր այն գործիքները չեն, որոնք պետք է ունենան տվյալների բազայի ադմինիստրատորը: Բայց սա, հավանաբար, այն նվազագույնն է, որը պետք է ուսումնասիրել: Բացի այդ, երբ ծանոթանում ես, սկսում ես ավելի շատ հասկանալ MySQL-ին բնորոշ մեխանիզմների մասին:

Սերվերի բեռնվածությունը վերահսկելու համար MySQLկա մեկը լավ օգտակարությունմիտոպ.
Mytop է բաց գործիք MySQL-ի աշխատանքի մոնիտորինգի հրամանի տող գործիք, որը մոդելավորվել է Linux համակարգի մոնիտորինգի գործիքից, որը կոչվում է top: Mytop-ը միանում է MySQL-ին և պարբերաբար գործարկում է show processlist-ը և show global status հրամանները, այնուհետև ամփոփում է տեղեկատվությունը օգտակար ձևաչափով: Mytop-ի միջոցով դուք կարող եք իրական ժամանակում վերահսկել MySQL-ի թեմաները, հարցումները և ժամանակի աշխատանքը, պարզել, թե որ օգտվողն է հարցումներ ուղարկում որոշակի տվյալների բազա, բացահայտել դանդաղ հարցումները և շատ ավելին: Այս ամբողջ տեղեկատվությունը կարող է օգտագործվել արդյունավետությունը օպտիմալացնելու համար MySQL սերվեր.

Տեղադրում համար տարբեր համակարգեր:

# apt-get install mytop

# yum install mytop

#pkg տեղադրել mytop

Միացեք մեր MySQL:

# mysql -u root -p Մուտքագրեք գաղտնաբառը.

Ցանկալի է յուրաքանչյուր տվյալների բազայի կամ համար տարբեր ծրագրերստեղծել տարբեր հաշիվներ: Հետևաբար, մենք կստեղծենք և կնկարագրենք mytopuser օգտվողի համար անհրաժեշտ տվյալների բազաների իրավունքները.

Mysql> ստեղծել «mytopuser»@«localhost» օգտվող, որը նույնականացվում է «գաղտնաբառով»; mysql> տրամադրել բոլորը *.*-ին «mytopuser»@«localhost»-ին, որը նույնացվում է «գաղտնաբառով»;

Ստեղծեք կարգավորումների ֆայլ ձեր տնային գրացուցակում ~/.mytopև մուտքագրեք կապի կոնֆիգուրացիան դրան.

# mcedit .mytop user=mytopuser pass=dgbple host=localhost db=asterisk port=3306 color=1 delay=3 idle=0

որտեղ օգտվողը և անցագիրը մեր ստեղծած մուտքն ու գաղտնաբառը են:

հոսթ, նավահանգիստ – հասցեն և MySQL սերվերի միացքը

db – տվյալների բազան, որին մենք միանում ենք

հետաձգում – Mytop էկրանը թարմացնելու համար յուրաքանչյուր 3 վայրկյանը մեկ

անգործուն - որոշում է, թե արդյոք սպասող թելերը պետք է դուրս գան mytop: Լռելյայն նման հոսքերը հաշվի են առնվում։ Բաց թողնելով սպասող շղթաները՝ mytop-ը փոխում է լռելյայն տեսակավորման կարգը՝ ցուցակի վերևում տեղադրելով երկար հարցումներ:

Եկեք փոխենք այս ֆայլի մուտքի իրավունքները.

# chmod 700 .mytop

Գործարկել կոմունալ ծրագիրը.

#mytop

Դուք կարող եք ցուցադրել տվյալներ հատուկ տվյալների բազայի համար, օրինակ՝

# mytop -u mytopuser -p գաղտնաբառը -d goip

Առաջին տողում՝ հոսթի անունը և գործող սերվերի տարբերակը MySQL. Վերևի աջ անկյունը սերվերի գործարկման ժամանակն է (շարունակական աշխատանքի ժամանակը) օր+ժամ+րոպե+վայրկյան։

Երկրորդ տողում՝ տվյալների բազայի մշակված հարցումների ընդհանուր թիվը (Queries:), հարցումների միջին թիվը վայրկյանում (qps:) և դանդաղ հարցումների քանակը (Slow:):

Երրորդ տողը ցույց է տալիս տեղեկատվություն գործընթացների մասին՝ ընդհանուր, ակտիվ, քեշ:

Չորրորդ տողում `տեղեկատվություն հիմնական բուֆերի արդյունավետության մասին` որքան հաճախ MySQLգտնում է բուֆերի բանալիները՝ առանց սկավառակ գնալու, սերվերի կողմից ուղարկված և ստացված բայթերի միջին քանակը և ներկայումս ուղարկվող բայթերի քանակը:

Էկրանի երկրորդ մասը ցույց է տալիս բոլոր ակտիվ թեմաները (ներառյալ այն, որն օգտագործում է): MyTOP) Սա ցուցադրում է օգտվողի անունը, տվյալների բազայի անունը և հանգույցի անունը, ինչպես նաև ընթացիկ հարցումն ու կարգավիճակը աղյուսակային տեսքով:

Mytop-ի ստանդարտ ելքում հարցումները կրճատվում են: Ամբողջական գրառումը դիտելու համար սեղմեք Ֆ. Ծրագիրը կհարցնի.

Ամբողջական հարցումը թեմայի id-ի համար.

Մուտքագրեք շղթայի ID-ն՝ պահանջվող հարցումը դիտելու համար:

Հարցման բացատրության համար սեղմեք Ե, և այնուհետև ծրագիրը կտրամադրի տվյալներ գործարկվող հարցման մասին, ինչը կօգնի պարզել, թե արդյոք հարցումը օպտիմիզացված է: EXPLAIN-ը MySQL հարցումները հասկանալու և օպտիմալացնելու ամենահզոր գործիքներից մեկն է:

Այս ռեժիմից դուրս գալու համար սեղմեք ցանկացած ստեղն; ստանդարտ արդյունքին վերադառնալու համար սեղմեք տ.

Mytop-ի մեկ այլ օգտակար տեսք հասանելի է՝ սեղմելով C ստեղնը: Այն ցույց է տալիս գործող հրամանները:

Հրամանի սյունակը ցույց է տալիս գործարկված հրամանի կամ հարցման տեսակը: Ընդհանուր սյունակը ցույց է տալիս այս տեսակի հրամանների ընդհանուր թիվը սերվերի մեկնարկից ի վեր, իսկ Pct-ը ցույց է տալիս այս թիվը որպես տոկոս: Վերջին սյունակը ցույց է տալիս այս տեսակի հրամանների քանակը, քանի որ վերջին թարմացումըմիտոպ. Ընդհանուր առմամբ, այս տվյալները պատկերացում են տալիս MySQL սերվերի կարճաժամկետ և երկարաժամկետ գործունեության մասին:

Եզրակացություն

Այս գործիքը թույլ է տալիս ժամանակին հայտնաբերել և օպտիմալացնել բարդ SQL հարցումները՝ դրանով իսկ բարձրացնելով սերվերի ընդհանուր աշխատանքը:

Mytop-ը հրամանի տող գործիք է, որը նման է վերին հրամանին, բայց նախատեսված է MySQL-ի մոնիտորինգի համար: Պահանջվում է MySQL 3.22 կամ ավելի նոր տարբերակ: Mytop-ն աշխատում է մեծ մասի վրա Linux համակարգեր. Այս հոդվածում մենք որպես հիմք կօգտագործենք Ubuntu-ն: Աշխատելու համար ձեզ հարկավոր է տեղադրել Perl, DBI և Term::ReadKey: Term::ANSIColor-ի միջոցով դուք կարող եք դուրս բերել ցանկացած գույն, որը ցանկանում եք: 0.7 տարբերակը նույնպես աշխատում է Windows-ում:

Տեղադրում

Նախքան տեղադրումը, դուք պետք է տեղադրեք նախորդ պարբերությունում նշված բոլոր ծրագրերը: Mytop-ը տեղադրվում է հետևյալ կերպ.

Debian. apt-get install mytop Ubuntu. sudo apt-get install mytop

Կամ կարող եք ներբեռնել tar գնդակը և տեղադրել այն.

Tar -zxvf mytop-x.x.x.tar.gz (Ձեր տարբերակի համարը)
cd mytop-x.x.x. (Ձեր տարբերակի համարը)
perl Makefile.PL
դարձնել
կատարել թեստ
կատարել տեղադրել

Լրացրեք վերը նշված հրամանները՝ տվյալները հանելու և տեղադրումն ավարտելու համար: CentOS-ի և RedHat-ի օգտատերերը պետք է ներբեռնեն rpmforge պահոցը ավտոմատ տեղադրումկամ կարող եք օգտագործել ձեռքով տեղադրման մեթոդը:

Օգտագործելով mytop

Տեղադրվելուց հետո եկեք անցնենք mytop-ի օգտագործմանը.

Mytop - հուշում (սահմանեք գաղտնաբառի հուշումը, այնուհետև սեղմեք enter՝ գաղտնաբառը հաստատելու համար)

Սա ստանդարտ մեթոդ է, դուք կարող եք նաև սահմանել գաղտնաբառը հետևյալ կերպ.

Mytop -u root -p (այստեղ պետք է օգտագործեք mysql գաղտնաբառը, քանի որ օգտվողը «արմատ» է)

Եթե ​​սխալ է տեղի ունենում, ինչպիսին է «root: NO PASS» կամ նման բան, մուտքագրեք հետևյալը.

Mytop -u root -p xxxx («xxxx»-ի փոխարեն մուտքագրեք մեր գաղտնաբառը)

Նախքան այս հրամաններն օգտագործելը, դուք պետք է ստուգեք, արդյոք MySQL սերվերը աշխատում է:

Ստուգելուց հետո պարզապես սեղմեք enter:

MySQL localhost-ում (5.0.8) մինչև 0+00:32:51 (11:20:10)
Հարցումներ՝ 19,0 qps՝ 0 Դանդաղ՝ 0,0 Se/In/Up/De(%)՝ 00/00/00/00
Qps հիմա՝ 0 Դանդաղ աճեր՝ 0.0 Թեմաներ՝ 1 (1/ 0) 00/00/00/00
Բանալիների արդյունավետություն՝ 100% Bps մուտք/դուր՝ 7.3/907.3 Այժմ մուտք/ելք՝ 8.4/1.3k
ID Օգտվողի հյուրընկալող/IP DB Time Cmd հարցում կամ վիճակ
2 root localhost թեստ 0 Հարցումը ցույց է տալիս ամբողջական գործընթացը

Առաջին տողում ցուցադրվում են սերվերի անունը (localhost) և մեր համակարգում աշխատող MySQL-ի տարբերակը: Միջուկային կապույտով ընդգծված գիծը ցույց է տալիս այն ժամանակը, որի ընթացքում MySQ սերվերը աշխատում է աշխատանքային ռեժիմով, նշման ձևաչափն է՝ օր+ժամ:րոպե:վայրկյան, և նշված է նաև համակարգի ընթացիկ ժամանակը:

Երկրորդ տողում նշվում է հարցումների քանակը, որոնք համակարգը մշակել է այն սկսելուց հետո:

Երրորդ տողը ցույց է տալիս թելերի քանակը:

Պատկերի երկրորդ մասը ցույց է տալիս Thread-ների քանակը, որոնք մշակում է MySQL-ը: Թեմաները դասակարգվում են ըստ իրենց անգործության ժամանակի ամենաքիչ անգործության:

Որոշ պարամետրեր կարելի է բաց թողնել mytop-ի միջոցով.

U կամ օգտվողի անուն. Սովորաբար օգտագործվում է mytop-ում գրանցման ժամանակ օգտանունը սահմանելու համար: Նախնականը «արմատ» է:

P կամ գաղտնաբառ կամ գաղտնաբառ. գաղտնաբառեր, որոնք օգտագործվում են օգտատիրոջը լիազորելու համար Նախնական գաղտնաբառը սահմանված չէ, ուստի գաղտնաբառի դաշտը կարող է դատարկ մնալ:

H կամ host hostname[:port]. նավահանգիստներ սահմանելու համար, եթե MySQL-ը չի օգտագործում ստանդարտ պորտ: Կանխադրվածը 3306 է:

S կամ -delay seconds. Նշում է թարմացման ժամանակային ընդմիջումը: Կանխադրվածը 5 է:

Mytop-ի այլ պարամետրերը դիտելու համար մուտքագրեք հետևյալը.

Man mytop

Տղամարդը շատ տեղեկություններ է պարունակում mytop-ի մասին։

Եկեք նայենք կազմաձևման ֆայլին, որը ստեղծվել է մեր տվյալների հասանելիություն և վերահսկողություն ստանալու համար.

User=root #Նշում է օգտվողի անունը:
pass= #Սահմանել գաղտնաբառը:
host=localhost #hostname.
db=թեստ #տվյալների բազայի անունը.
delay=5 #time interval մոնիտորինգի ելքային տվյալների թարմացման համար:
port=3306 #port՝ mytop-ում օգտագործելու համար:
socket= #եթե սահմանեք որևէ վարդակ, mytop-ը անտեսելու է պորտի համարը և հոսթի անունը, այս տողը կարող է հեռացվել, եթե դրա կարիքը չունեք:
batchmode=0 #տրամադրում է MySQL-ում մշակված հարցումների ճշգրիտ թիվը:
header=1 #Սահմանել, եթե ցանկանում եք ցուցադրել վերնագիրը: Ցուցադրվում է h ստեղնով mytop-ը գործարկելիս:
color=1 #Սահմանել, եթե ցանկանում եք օգտագործել տարբեր գույներ (միայն այն դեպքում, եթե ունեք աջակցվող գույներ):
idle=1 #գործընթացների ցանկում անգործուն գործընթացները ցուցադրելու համար:

Կազմաձևման ֆայլը ստեղծվում է հետևյալ կերպ.

Mcedit ~/.mytop ֆայլը կստեղծվի բազային թղթապանակում, կարող եք օգտագործել ցանկացած խմբագրիչ

Mytop-ի մյուս տարբերակները դիտելու համար մուտքագրեք՝ ?, սա կցուցադրի mytop-ում օգտագործվող դյուրանցումների ստեղների ամբողջ ցանկը:

© 2024 ermake.ru -- Համակարգչի վերանորոգման մասին - Տեղեկատվական պորտալ