Որպես առաջատար ազատ հասանելի տվյալների բազաներից մեկը՝ MySQL-ը տարածված ընտրություն է բազմաթիվ վեբ հավելվածների համար: Լինելով համացանցի ազդեցության տակ՝ ձեր հավելվածը ենթարկվում է վնասակար հարձակումների: Եթե ձեր սերվերը վտանգված է, լավագույն դեպքում, դուք պետք է նորից տեղադրեք հավելվածը. վատագույն դեպքում, դուք կարող եք կորցնել ձեր տվյալները: Բացի այդ, դուք կարող եք հայտնվել այնպիսի իրավիճակում, երբ ձեզ անհրաժեշտ է տվյալների բազան մի սերվերից մյուսը տեղափոխել:
Ինչի՞ համար է օգտագործվում mysqldump:
Mysqldump գործիքը ծածկում է ինչպես սերվերի փոխզիջման, այնպես էլ միգրացիայի իրավիճակների համար: Դրա հիմնական գործառույթն է վերցնել MySQL տվյալների բազան և այն դուրս հանել որպես տեքստային ֆայլ: Բայց ոչ որևէ տեքստային ֆայլ; ֆայլը SQL հայտարարությունների մի շարք է:Այս հայտարարությունները, երբ կատարվում են, վերակառուցում են տվյալների բազան այն ճշգրիտ վիճակին, որը գտնվում էր աղբահանության կատարման ժամանակ:
Օգտագործեք mysqldump՝ տվյալների բազայի արտահանումներ ստեղծելու համար որպես կրկնօրինակներ կամ տվյալների բազան նոր հոսթ տեղափոխելիս: Երկու դեպքում էլ տեքստային ֆայլը ետ կներմուծվի MySQL տվյալների բազայի սերվեր: Այն կկատարի ֆայլի բոլոր SQL հայտարարությունները, որը վերակառուցում է տվյալների բազան իր սկզբնական վիճակին: Այս մասը չի օգտագործում mysqldump հրամանը, բայց առանց այս օգտակարության էլ դա հնարավոր չէր լինի:
MySQL փաստաթղթերում թվարկված են կրկնօրինակումներ ստեղծելու այլ մեթոդներ, սակայն դրանք ունեն թերություններ.
- MySQL Enterprise-ից տվյալների բազայի արագ պատճենումը հիանալի միջոց է այս պահուստավորումները ստանալու համար, եթե դեմ չեք Enterprise-ի գնային պիտակին:
- Տվյալների բազայի տվյալների գրացուցակները պատճենելը կարող է բարդ լինել օպերացիոն համակարգերով շարժվելիս, քանի որ ուղղությունները տարբեր կլինեն:
- Արտահանումը դեպի սահմանազատված տեքստային ֆայլ ձեզ կտա բովանդակություն, բայց դուք պետք է վերստեղծեք կառուցվածքը:
- Հաճախ կարող եք տվյալների բազաները կրկնօրինակել GUI ծրագրերից, ինչպիսին է MySQL Workbench-ը: Բայց սա ձեռքով գործընթաց է. ոչ մի բան, որը կարող եք գրել կամ ներառել խմբաքանակային աշխատանքում:
Տեղադրեք mysqldump գործիքը
Windows-ի համար ստուգեք մեր հրահանգները՝ Windows 7-ում MySQL-ը տեղադրելու համար (տեղադրման գործընթացը նույնն է Windows 10-ի համար): MacOS-ում տեսեք մեր ցուցումները՝ տեղադրելու MySQL-ը macOS 10.7-ում (կրկին ավելի հին, բայց դեռ կիրառելի): Ubuntu-ի վրա հիմնված Linux համակարգերի օգտատերերը կարող են օգտագործել հետևյալ հրամանը՝ MySQL հաճախորդը և կոմունալ ծառայությունները տեղադրելու համար.
sudo apt install mysql-client
Արտահանել MySQL Dump
Տեղադրվելուց հետո օգտագործեք mysqldump տվյալների բազայի ամբողջական կրկնօրինակում ստանալու համար:
mysqldump -h [ձեր DB հյուրընկալողի անունը կամ IP] -u [DB օգտվողի անունը] -p [շտեմարանի անունը] > db_backup.sql
Ահա այս հրամանում օգտագործվող դրոշների նկարագրությունը.
- - h. Այս դրոշը տվյալների բազայի հոսթն է: Այն կարող է լինել ամբողջական հոսթի անունը (օրինակ՝ myhost.domain.com) կամ IP հասցե։ Թողեք սա դատարկ, եթե հրամանը գործարկեք նույն հոսթի վրա, ինչ MySQL սերվերը:
- - u՝ Ձեր օգտվողի անունը:
- - p. Եթե ճիշտ եք ապահովել MySQL-ի տեղադրումը, միանալու համար ձեզ հարկավոր է գաղտնաբառ: Առանց արգումենտի այս դրոշը ձեզ հուշում է գաղտնաբառ, երբ կատարում եք հրամանը: Երբեմն օգտակար է գաղտնաբառն ուղղակիորեն որպես փաստարկ տրամադրել այս դրոշի համար, օրինակ՝ կրկնօրինակում սկրիպտում: Սակայն հրամայականի դեպքում դուք չպետք է դա անեք, քանի որ եթե ինչ-որ մեկը մուտք գործի ձեր համակարգիչ, նա կարող է ստանալ այս գաղտնաբառը հրամանների պատմության մեջ:
- > db_backup.sql. Այս մասը mysqldump-ին ասում է իր ելքը ուղղել ֆայլ: Սովորաբար հրամանն ամեն ինչ թողարկում է վահանակ, այսինքն՝ էկրանին կտեսնեք մի քանի SQL հայտարարություններ: > խորհրդանիշը ելքը տեղափոխում է անվանված տեքստային ֆայլ: Եթե այս ֆայլը գոյություն չունի, այն ինքնաբերաբար կստեղծվի:
Երբ այն ավարտվի, դուք կունենաք. SQL ֆայլ: Սա տեքստային ֆայլ է, որը պարունակում է SQL հայտարարություններ: Դուք կարող եք այն բացել ցանկացած տեքստային խմբագրիչում՝ բովանդակությունը ստուգելու համար: Ահա մի արտահանում WordPress տվյալների բազայից, որը ցույց է տալիս, թե ինչպես են այս ֆայլերը հավաքվում:
Ֆայլը բաժանված է բաժինների: Առաջին բաժինը սահմանում է WordPress-ի մեկնաբանությունների աղյուսակը: Երկրորդ բաժինը վերստեղծում է այդ աղյուսակների բովանդակությունը (այս օրինակում մեկնաբանությունների գրառումները): Երբ դուք նորից ներմուծում եք MySQL աղբավայրը, հրամանն աշխատում է ֆայլի միջոցով, կատարում է հայտարարությունները և նորից կառուցում տվյալների բազան այնպես, ինչպես եղել է:
Ներմուծել MySQL Dump Ֆայլ
Նախքան աղբանոց ֆայլը ներմուծելը ձեզ անհրաժեշտ կլինի արդեն ստեղծված տվյալների բազա և դրա վավեր օգտանունն ու գաղտնաբառը: Դուք նաև պետք է ունենաք տվյալների բազայի բոլոր թույլտվությունները: Դուք GRANT թույլտվության կարիք չունեք, բայց ավելի հեշտ է բոլորին տրամադրել:
Իմացեք ավելին տվյալների բազայի թույլտվությունների մասին նախքան ձեր տվյալների բազայում անվտանգության դերերը փոխելը:
Ձեր տվյալները նորից ներմուծելու համար մուտք գործեք MySQL սերվեր mysql հրամանով: Մուտքագրեք use [database name] հուշում և փոխարինեք տվյալների բազայի անունը: Մուտքագրեք աղբյուր [filename] և փոխարինեք նախկինում վերցրած աղբավայրի անունը:
Երբ ավարտում եք, հայտնվում է հաղորդագրությունների ցանկ՝ նշելով, որ SQL հայտարարությունները կատարվում են: Հետևեք սխալներին, բայց եթե ունեք ճիշտ թույլտվություններ, պետք է լավ լինեք:
Երբ գործընթացն ավարտվի, դուք կունենաք սկզբնական տվյալների բազայի կրկնօրինակը: Տվյալների բազաների միջև նմանությունը ստուգելու համար կատարեք մեկ այլ աղբահանություն, ապա համեմատեք երկու ելքերը: Երկու ֆայլերը համեմատելու համար օգտագործեք տեքստային խմբագրիչ կամ հատուկ տարբերության գործիք:
Այս ֆայլերի միջև կա երկու տարբերություն, որոնք ներկայացված են կարմիր գծերով աջ ոլորման տողի վերևում և ներքևում: Առաջինն այն տողն է, որը պարունակում է տվյալների բազայի անվանումը, և սա տարբերվում է, քանի որ ֆայլերը այլ կերպ են անվանվել: Երկրորդը աղբավայրի ֆայլի ժամանակի դրոշմն է: Սա տարբեր է, քանի որ երկրորդ տվյալների բազան վերստեղծվել է առաջինից հետո: Հակառակ դեպքում, ֆայլերը նույնն են, ինչը նշանակում է, որ դրանք ստեղծած տվյալների բազաները նույնպես:
ՀՏՀ
Ինչպե՞ս շտկել mysqldump սխալը. մուտքն արգելված է կողպման աղյուսակներ օգտագործելիս:
Խնդրեք ձեր տվյալների բազայի ադմինիստրատորին, որպեսզի ձեզ շնորհի LOCK արտոնություն: Եթե դա չլուծի խնդիրը, փորձեք գործարկել նույն mysqldump հրամանը՝ ավելացնելով - -single-transaction դրոշը, օրինակ՝ [ $ mysqldump --single-transaction] [-u օգտվող] [-p DBNAME] > backup.sql
Կարո՞ղ եք օգտագործել «where» կետը mysqldump-ի հետ:
Օգտագործեք WHERE կետը կրկնօրինակ ստեղծելիս, որը ներառում է միայն տվյալ պայմանը բավարարող տողերը: Օրինակ՝ միայն 100-ից մեծ id սյունակ ունեցող տողերից տվյալները թափելու համար մուտքագրեք «mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql»: