Mysql zaxira nusxasini o'rnatish. MySQLdump yordamida MySQL ma'lumotlar bazasini zaxiralang va tiklang. Ma'lumotlar bazasini zaxiralash turlari

Ushbu maqolada men qisqacha, ammo qisqacha, ma'lumotlar bazasining zahira nusxasini qanday oson va tez qilishning bir nechta variantlarini ko'rib chiqishga harakat qilaman.
Men uchta variantni taklif qilaman:

  • mysqdump (Buyruqning yordam dasturi)
  • phpmyadmin (ma'lumotlar bazasi bilan ishlash uchun veb-interfeysi)
  • Sypex Dumper (skript)
mysqldumpSSH orqali ulanish yoki terminal orqali mahalliy kirish imkoniyatiga ega bo'lgan holda, o'rnatilgan MySQL paketiga kiritilgan mysqldump buyruqlar yordam dasturidan foydalanib ma'lumotlar bazasini zaxira nusxasini yaratishingiz mumkin. Keling, ushbu buyruqning sintaksisini ko'rib chiqaylik.
mysqldump -u -p > - ma'lumotlar bazasiga kirish huquqiga ega foydalanuvchining nomi.
- foydalanuvchi paroli.
- ma'lumotlar bazasi nomi.
– fayl nomi, chiqish dumpi.
MySQL serverida mydb_forum ma'lumotlar bazasini qanday tashlashga misol:

mysqldump -uadmin -pSuperPassword mydb_forum > mydb_forum.sql

Ilgari olingan ma'lumotlar bazasini qayta tiklash ham oson.

mysql -uadmin -pSuperPassword mydb_forum< mydb_forum.sql

MySQL serveringizdagi barcha ma'lumotlar bazalarini o'chirish uchun quyidagilarni foydalaning. misol:

mysqldump -uAdmin -pMyPass --all-ma'lumotlar bazalari > all_databases.sql

Ma'lumotlar bazasi strukturasini zaxiralash

mysqldump --no-data --ma'lumotlar bazalari my_db1 my_db2 my_db3 > structurebackup.sql

Yo'lda ma'lumotlarni siqish

mysqldump -uAdmin -pSuperPass mydb | bzip2 -c > backup.sql.bz2 mysqldump -uAdmin -pSuperPass mydb | gzip -c > backup.sql.gz

PHPMyAdminPHPMyAdmin MySQL ma'lumotlar bazalari bilan ishlash uchun engil veb-interfeysdir. Agar sizda PHP o'rnatilgan va sozlangan bo'lsa, uni server yoki uy kompyuterida ishlatishingiz mumkin. Bu, shuningdek, telnet/ssh orqali serverga kirish imkoningiz bo'lmaganda ham yaxshi variant. Eng so'nggi versiyasini yuklab oling
PHPMyAdmin paketini shu yerda topish mumkin.
PHPMyAdmin sozlamalari
PHPMyAdmin yordamida ma'lumotlar bazasini zaxiralashni boshlashdan oldin, uni qanday sozlashingiz mumkinligini tasvirlab beraman. PHPMyAdmin paketini ochish va o'rnatishdan so'ng biz faylni tahrirlashimiz kerak
config.inc.php
Phpmyadmin joylashgan joyning toʻliq URL manzilini koʻrsating

$cfg [ "PmaAbsoluteUri" ] = "http://myexample.com/phpmyadmin/" ;

ma'lumotlar bazasi bilan ishlash uchun phpmyadmin sozlamalari

$cfg [ "Serverlar" ] [ $i ] [ "host" ] = "235.104.1.5" ; $cfg [ "Serverlar" ] [ $i ] [ "port" ] = "3306" ; $cfg [ "Serverlar" ] [ $i ] [ "connect_type" ] = "tcp" ; $cfg [ "Serverlar" ] [ $i ] [ "auth_type" ] = "config" ; $cfg [ "Servers" ] [ $i ] [ "user" ] = "admin" ; $cfg [ "Serverlar" ] [ $i ] [ "parol" ] = "FvAk41P" ;

PHPMyAdmin yordamida MySQL ma'lumotlar bazasini zaxiralang.
PHPMyAdmin yordamida MySQL ma'lumotlar bazasining zaxira nusxasini yaratish uchun unga kiring (masalan, http://localhost/phpmyadmin/), chap tomonda sizni qiziqtirgan ma'lumotlar bazasini tanlang va Eksport yorlig'ini bosing, siz shunga o'xshash narsaga o'tasiz. bu sahifa:

Ko'rib turganingizdek, bu erda turli xil sozlamalar mavjud, kelajakdagi ma'lumotlar bazasini tashlab yuborish turini tanlash, axlatni arxivlash va hk. Ma'lumotlar bazasining zaxira nusxasini yaratishni boshlash uchun "O'tish" tugmasini bosing, ma'lumotlar bazasini zaxiralash jarayoni saqlanadigan shaxsiy kompyuteringizda joylashuvni ko'rsatishni so'ragan oyna ochiladi, ma'lumotlar bazasini zaxiralash jarayonini ko'rsating va zavqlaning. PHPMyAdmin. Ma'lumotlar bazasini tiklash
Jarayon juda oddiy, phpmyadmin-ga o'ting, Import-ni bosing, shaklni ko'ring, mahalliy ma'lumotlar bazasi dump faylini tanlash uchun foydalaning. "O'tish" tugmasini bosganingizda ma'lumotlar bazasi tiklanadi Sypex Dumper Bundan tashqari, menimcha, PHP-da yozilgan bepul skript - "Sypex Dumper" juda qiziq.
Turli xil konsol yordam dasturlari va ko'p funktsiyali veb-interfeyslar bilan bezovta qilishni istamaydigan har qanday yangi foydalanuvchi yoki administrator qulay, sodda va to'liq ishlaydigan Sypex Dumper skriptini tanlashi mumkin.

Salom o'quvchilar va sayt obunachilari! Bugun men eng muhimi, saytning zaxira nusxasi haqida gapirishga qaror qildim, buning yordamida barcha sayt ma'lumotlarini kun yoki tunning istalgan vaqtida avvalgidek bir xil shaklda tiklash mumkin.

Ko'rinib turibdiki, bunday mavzuda nima muhim? O'ylab ko'ring, saytning qandaydir nusxasi, axir biz hosting uchun pul to'laymiz va u xizmat ko'rsatilayotgan saytlar mazmuni xavfsizligi uchun javobgar bo'lishi shart.

Bunda qandaydir haqiqat bor, lekin hech kim fors-major holatlaridan himoyalanmagan va bir kuni veb-saytingizga kirganingizda va uning o'rniga shunga o'xshash xato xabarini ko'rganingizda hayratda qolganingizni tasavvur qiling.

Eng yomoni nima bilasizmi? Siz uning zaxira nusxasini yaratmagansiz (fayllar va ma'lumotlar bazasi).

Sizning barcha ishingiz va doimiy daromadingiz bunday ahmoqlik tufayli mavjud bo'lishni to'xtatganini tasavvur qilishning iloji yo'q.

Oddiy misol: siz bir necha yillardan beri blog yuritasiz, har kuni maqolalar yozish va uni targ'ib qilish uchun vaqt sarflaysiz. Atrofingizda doimiy o'quvchilar va obunachilar armiyasi to'plandi, bundan tashqari, sizning saytingiz allaqachon daromad olishni boshladi, bu sizning ishingizdan voz kechish va onlayn tarmoq orqali moliyaviy mustaqil bo'lish imkonini berdi.

Ammo ba'zi sabablarga ko'ra, sizning saytingiz joylashgan qattiq disk joylashgan server ishlamay qoldi, shuning uchun siz hostingni shunchaki virtual ma'lumotlarni saqlash joyi ekanligini bilasiz, lekin aslida er yuzida bir joyda ko'plab zamonaviy kompyuterlar va minglab GB hajmli maxsus xona qurilgan. xotiradan.

Siz masofaviy qattiq diskdagi bo'sh joy uchun to'laysiz. Endi tasavvur qiling-a, bu xonada yong'in sodir bo'lgan va veb-saytingiz joylashgan qattiq diskdagi barcha ma'lumotlar buzilgan.

Xosting provayderi sizga uzr so'raydi va boshqa hech narsa yo'q. Albatta, siz onlayn tadbirkor sifatida karerangizni noldan boshlashingiz kerak bo'ladi. (

Saytning zaxira nusxasini olish, boshqa xostingdagi ma'lumotlarni qayta tiklash va bunday hodisani unutish uchun kim ko'proq uzoqni ko'rgan edi.

Shaxsan, o'zimning terimda, bir necha kun oldin men hosting serverlarim ishdan chiqqanida va blogim bir muncha vaqt tashrif buyuruvchilar uchun mavjud bo'lmaganida, bir zumda hamma narsani yo'qotishim mumkinligidan qo'rqib ketdim.

Albatta, men to'liq yangi boshlovchi emasman va men bunday hodisalardan barcha ma'lumotlarni nusxalash kerakligini juda yaxshi bilaman, lekin o'sha paytda men bir necha oy davomida blogimning zaxira nusxasini yangilamagan edim.

Rostini aytsam, orqaga qaytib, o'nlab maqolalarni qaytadan yozish juda xafa bo'lardi. Shunday qilib, o'ylab ko'ring va quyida men sizga sayt ma'lumotlarining zaxira nusxasi qanday yo'llar bilan yaratilganligini ko'rsataman.

Sayt yo'qolishining sabablari:

  • Sayt fayllarini tahrirlashda xatolik yuz berdi. Kodni osongina chalkashtirib yuborishingiz yoki xato qilishingiz mumkin.
  • Xosting ishlamayapti. Buning sabablari ko'p bo'lishi mumkin, tabiiy ofatlardan boshlab va hostingning o'zi mijozlarni aldashga imkon berishi bilan yakunlanadi. Hayotda hamma narsa bo'lishi mumkin!
  • Saytga xaker yoki virus hujumi. Endi nishonlari oddiy veb-ustalar va ularning foydali loyihalari bo'lgan ko'plab tajovuzkorlar mavjud.
Xostingda veb-sayt fayllarini zaxiralash

Deyarli har bir xosting provayderi barcha mijozlar ma'lumotlarining kunlik zaxira nusxalarini yaratishi bilan boshlaylik.

Va endi eng qiziqarli narsa, keyingi xatboshida siz plagin avtomatik ravishda nusxa ko'chiradigan va ma'lumotlar bazasining zaxira nusxasini elektron pochtangizga yuboradigan vaqtni belgilashingiz kerak.

Men ish manzilimni blog ma'lumotlar bazasining arxivlangan nusxalari bilan aralashtirib yubormaslik uchun kuniga bir marta chastotani o'rnatdim va buning uchun alohida elektron pochta qayd yozuvini yaratdim. Ko'rib turganingizdek, hech qanday murakkab narsa yo'q!

Men postni shu erda tugataman, umid qilamanki, siz vaqti-vaqti bilan barcha sayt fayllari va MySQL ma'lumotlar bazasi nusxalarini yaratishning og'rig'i va ahamiyatini tushunasiz.

Loyihani veb-arxivlardan tiklash uchun bir necha oydan ko'ra bir necha daqiqa vaqt sarflash yaxshiroqdir. Xayr

Men sizga "Linux da Mysql ma'lumotlar bazalarini avtomatik zahiralash" maqolamda Mysql-da ma'lumotlar bazalarimning avtomatik zahira nusxalarini qanday qilganimni aytib bermoqchiman. Juda foydali ma'lumot, ayniqsa siz buni bilmasangiz va zaxira nusxasini yaratishingiz kerak bo'lsa.

1. Mysql-ni o'rnatish va sozlash (Umid qilamanki, sizda hamma narsa sozlangan va ishlashga tayyor, zaxira nusxasini yaratish uchun ma'lumotlar bazalari qanday), men avvalgi mavzularimda ma'lumot beraman, balki kimgadir kerak bo'ladi:

Yana ko'p mavzular bor, agar kerak bo'lsa saytdan qidiring.

2. Biz barcha ma'lumotlar bazalarining haqiqiy zaxira nusxasini yaratamiz.

Birinchidan, papka yarataylik, buning uchun barcha zaxiralarimiz u erda bo'ladi:

# mkdir /home/kapitan/zaxira va& CD /home/kapitan/zaxira

Buyruq yordamida zaxira nusxasini yarating:

# mysqldump -u root -root -h 127.0.0.1 --all-ma'lumotlar bazalari | gzip >

PS: Bolalar, shunchaki belgilarni chalkashtirmang (` -tilda, bu oddiy tirnoq belgisiga o'xshaydi). Belgida tildalar yozilgan.

Biz fayl allaqachon yaratilganligiga ishonch hosil qilamiz va hamma narsa yaxshi ekanligiga ishonch hosil qilamiz:

# ls -lah

Bu har doim ham to'g'ri emas! Shunday qilib, siz doimo bu haqda o'ylashingiz kerak, men zaxira qildimmi? MySQL ma'lumotlarini avtomatik zaxiralash uchun crontab-ga ushbu buyruqni qo'shishingiz kerak, bu quyidagicha amalga oshiriladi:

# vim /etc/crontab

Ushbu parametr mos keladi, lekin muammo bor, u ildiz foydalanuvchisi sifatida bajariladi. Buni qilmaslik tavsiya etiladi. To'g'ri yo'l bo'ladi:

# crontab -e # Linuxda Mysql ma'lumotlar bazalarini avtomatik zahiralash 00 00 * * * /usr/bin/mysqldump -u root -proot -h 127.0.0.1 --all-ma'lumotlar bazalari | gzip > /home/captain/backup/my_database_backup_`date +%mm%dd%yy`.sql.gz

Bu bilan men https://site veb-saytimdagi "Linux-da Mysql ma'lumotlar bazalarini avtomatik zahiralash" mavzuimni yakunlayman.

Bugun men bir xostingdan ikkinchisiga avtomatik ma'lumotlar bazasi zahirasini o'rnatishim kerak edi. Men ma'lumotlar bazasining zaxira nusxalarini yaratishning bir nechta variantlarini ko'rib chiqdim va eng oddiyiga - mysqldump yordam dasturidan foydalanishga qaror qildim. Endi men buni qanday qilganimni aytaman.

Bir serverdan ikkinchisiga zaxira nusxasini yaratish g'oyasi nima?

G'oya juda oddiy - agar bitta server ishlamay qolsa, ma'lumotlar bazasi boshqasidan tiklanishi mumkin. Bu barcha zaxira nusxalarini bitta serverda saqlashdan yaxshiroqdir.

OK, buni qanday qilamiz?

Va endi zaxira jarayoni qanday sodir bo'lishi haqida bir necha so'z. Aytaylik, bizda zaxira nusxalarini yaratmoqchi bo'lgan ma'lumotlar bazasi mavjud "A" serveri bor. Va "B" serveri mavjud bo'lib, biz ushbu zaxiralarni saqlaymiz. Ma'lumotlar bazasini tashlab yuborish uchun serverdagi buyruq satrida quyidagi buyruqni bajaring:

mysqldump -u -p --extended-insert=false > sayt-$(sana +%Y-%m-%d).sql

Va boshqa serverdagi ma'lumotlar bazasiga ulanish uchun -h parametrini qo'shing, masalan:

mysqldump -h 92.53.114.27 -u -p --extended-insert=false > sayt-$(sana +%Y-%m-%d).sql

Xo'sh, bularning barchasi avtomatik ishlashi uchun siz cron ishini yaratishingiz va dump katalogida ma'lum miqdordagi fayllarni saqlaydigan kichik skriptni PHP da yozishingiz kerak (nima uchun bizga yuzlab dumplar kerak?).

Keling, MySQL ma'lumotlar bazasining avtomatik zaxira nusxasini o'rnatishni boshlaylik

Ish uchun bizga juda oz narsa kerak:

  • Ikkita server
  • Serverga ssh orqali kirish
  • serverdagi mysldump yordam dasturi
  • 20 daqiqa bo'sh vaqt :)
  • Skriptni serverga o'rnating

    Quyidagi kodni database_backup.php fayliga yozing va uni istalgan papkada dump saqlash bo'ladigan serverga saqlang, u /var/database_backups papkasi bo'lsin. Keyin axlatlaringiz saqlanadigan papka yarating, u quyidagi papka bo'lsin /var/database_backups/sitename .

    $config = [ // “ip” maʼlumotlar bazasidan koʻchiriladigan serverning IP manzili => “11.11.111.11”, // Maʼlumotlar bazasi axlatlari joylashadigan papkaga yoʻl “yoʻl” => "/ var/database_backups/sitename" , // Ma'lumotlar bazasi dump fayli nomi uchun shablon. Buning o'rniga, sana 2015-04-19 formatida almashtiriladi "filenamePattern" => "dump_.sql", // "maxFilesCount" serverida saqlanadigan dumplarning maksimal soni => 3, // Ulanishni o'rnatish ma'lumotlar bazasi "db" => [ "name" => "sayt", "user" => "root", "password" => "mysql", ], ]; $ip = !empty($config["ip"]) ? "-h $config" : ""; $filename = str_replace("", "$(sana +%Y-%m-%d)", $config["filenamePattern"]); $command = "mysqldump $ip -u ($config["db"]["user"]) -p($config["db"]["parol"]) --extended-insert=false ($config[ "db"]["name"]) > ($config["path"])/$filename"; exec ($ buyruq); if (!empty($config["maxFilesCount"])) ( cleanDirectory($config["path"], $config["maxFilesCount"]); ) /** * Fayllar katalogini tozalaydi, ko‘pi bilan qoldirmaydi $maxFilesCount fayllar soni * * @param string $dir * @param string $maxFilesCount */ funksiyasi cleanDirectory($dir, $maxFilesCount) ( $filenames = ; foreach(scandir($dir) $file sifatida) ( $filename = " $dir/$file"; if (is_file($filename)) ( $filenames = $filename; ) ) if (count($filename))

    Sizga maqola yoqdimi? Do'stlaringizga ulashing: