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 + ստեղն) կարելի է ստանալ՝ սեղմելով հարցի ստեղնը: Օրինակ՝
$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-ում օգտագործվող դյուրանցումների ստեղների ամբողջ ցանկը: