Percona XtraBackup

Көбіміз базаны бэкап жасағанда стандарт құралдармен ғана шектеліп қоямыз. Мысалы:

mysqldump --database mydb --user root --password root > mydb.sql

Бұл әдіс локалхостта проект жасап жатқанда қолайлы болуы мүмкін. Бірақ неғұрлым база үлкейген сайын, дамптың басқа әдістерін іздей бастаймыз. Мысалы салмағы 10Гб тан асатын базаданы дамп жасау 4-5 сагат алуы мүмкін.

Percona XtraBackup – осы сұрақты шешуге арналған құрал.MySQL, MariaDB, Percona секілді жүйелерді бэкап жасай алады. Xtrabackup тың ең басты атқаратын қызметі:
  • Тез бэкап жасау
  • Үздіксіз транзакциялар
  • Дисктегі бос орын
Сонымен қоса инкременталды түрде бэкап жасай алады.

Жүйеге орнату

Мына сайттан өзіңізге қолайлы форматтағы жиынтықты қондырыңыз:
http://www.percona.com/software/percona-xtrabackup

Бізде Debian болғандықтан мына версияны қондырамыз:
wget http://www.percona.com/redir/downloads/XtraBackup/LATEST/deb/wheezy/x86_64/percona-xtrabackup_2.1.6-702-1.wheezy_amd64.deb
dpkg -i  percona-xtrabackup_2.1.6-702-1.wheezy_amd64.deb

Бэкап кезінде mysql сервері жұмыс жасап тұру керек. Толық бэкап жасау:

root@server:~/dump# innobackupex --user=root --password=root /some/dir/


Енді бэкаптың аяқталуын күтеміз:

131226 06:13:36  innobackupex: Starting ibbackup with command: xtrabackup_55  --defaults-group="mysqld" --backup 
….
….
….
131226 06:19:25  innobackupex: completed OK!

Көрсетілген жерде сол датамен белгіленген папка

root@server:~/dump# ls -lh 2013-12-26_06-13-36/
итого 26G
-rw-r--r-- 1 root root  260 Дек 26 06:13 backup-my.cnf
-rw-r----- 1 root root  26G Дек 26 06:19 ibdata1
drwxr-xr-x 2 root root 4,0K Дек 26 06:19 mysql
drwxr-xr-x 2 root root 4,0K Дек 26 06:19 performance_schema
-rw-r--r-- 1 root root   13 Дек 26 06:19 xtrabackup_binary
-rw-r----- 1 root root   97 Дек 26 06:19 xtrabackup_checkpoints
-rw-r----- 1 root root 2,5K Дек 26 06:19 xtrabackup_logfile

Жоғарыда көрсетілгендей 26 Гб салмақты база 6 минуттан аз уакытта көшіріліп бітті. Бұл өте жақсы көрсеткіш. Біздің бэкап дайын, алыс бір жерге сақтап қойсақ болады.

Бірақ әлі қолдануға жарамсыз. Бэкапты қолдану үшін әзірлеп алу керек:

innobackupex --apply-log /path/to/BACKUP-DIR

Енді айтылған жердегі файлдарды /var/lib/mysql папкасына көшіріп, mysql серверін өшіріп қосуға болады.

Жоғарыда көрсетілген ең қарапайым қолдану әдісі. xtrabackup құралы туралы толық мәліметті сайттан көруге болады. Қолданудан бұрын құжатпен жақсылап танысып алыңыз.

  • +5
19 пікір
kamyrov
Өте пайдалы материал, Рахмет!)
yerbol89
Өте пайдалы ақпарат екен. Мен алдын SypexDumper қолданатын едім. Кейін СЖ-ның базасы 1.2 Гб болып жазбалар саны 8-9 миллион болғанда SypexDumper жайына қалады екен.
Амалсыз SSH көшуге тура келді. Осы кезде:
$ mysql -uusername -p DATA-BASE-NAME <base.sql

рахатын осы кезде көрдім. Аса жылдам болмауы мүмкін, бірақ қазіргі таңда қажеттілігімді атқарып тұр.
Ал база данныхтың бакапын менде ISPManager-дің бакап алу жүйесі алып тұрады. Оны күн ара ноутбугіме жүктеп алып отырамын. Импорттағанда жоғарыдағы команданы қолданамын.

Рахмет. Өте пайдалы жазба екен. Қазіргі кезде қолданып жүрген VPS-серверім осы Debian6 және графикалық басқару панельі ISPManager. Осы амалдарды қолданып көрейін, нәтижесін кейін жаза жатармын.
raimbek
хм, 6 минут, 4-5 Гб данныйларды виртуалкаға 1 сағаттай құйғаным есіме түсіп жатыр ))
yerbol89
Тағы 4-5 Гб емес, 25 Гб 6 минутта дегенді ойлап отырмын O_o деп :))
rafa
backup-тын жылдам болуы MySQL дын баптауларына және сервердің характеристикасынада тікелей байланысты
dastiw1
Бұл SypexDumper сияқты бір бәле ме?
samlabs821
Дамп .sql форматта сакталмайды. Тек файлдар куйінде
rafa
Пайдалы ақпарат, Percona Server жайлы ақпарат жазсаң өте дұрыс болар еді, орнату, баптаулар, артықшылықтары, mysql мен салыстырмалы түрде
samlabs821
Жақын арада жазуға тырысамын. MariaDB туралы мақала жазсам ба деген ой бар
vfvtnjd
mysqldump --opt -u username -p -h hostname --add-drop-table databasename | gzip > dump.sql.gz — осылай өмір сүріп жатырмыз (2 GB => max 20 секунда) 200-300MB етіп жайлап лактырып коям да.
PS: Артық утилита орнатқанды суқаным сүймейді
raimbek
Мхм, тек бір ғана сұрақ, деректер қорының өлшемі 100Гб-900Гб немесе одан да көп болса не істейсіз? Сонда да mysqldump қолданасыз ба?
vfvtnjd
әңгіме 100-900ГБ туралы екенін білмедім, жоғарыда 26 GB деп тұрғандықтан жаздым әрине
raimbek
Иә, 26 Гб мысал ретінде алынған, бірақ сондай көлемнің өзінде құрал көп уақыт тежейді. Ад үлкен көлемді мәліметтерде таптырмас құрал деп айтар едім. Ол туралы автор да жазып қалар.

Тағы да бұл олардағы тек бір ғана құрал емес, тағы көптеген пайдалы утилиталар бар, қарап көруге болады.
raimbek
2 GB => max 20 секунда
Компьютеріңіз өте қуатты сияқты, егер осындай көрсеткіш көрсетіп жатса.
vfvtnjd
виртуалка, gzip-сіз минутқа жуықтайды
raimbek
Сіз шынымен gzip mysqldump уақытын жылдамдатады деп ойлап тұрсыз ба? Сонда, архивтейтін бағдарлама, файлды дискке жәй жазудан гөрі тез жұмыс атқара ма? Кейін сіз бірінші пікірдегі сұрақтарға жауап бермедіңіз…

Сіздің критикаңызды құрметтеймін, көңіліңізге жақын алмаңыз, сайтқа қош келіпсіз, сіз сияқты пікірталасатын адамдар көп болғаны жақсы ))
vfvtnjd
Рахмет жылы кабылдаганыңызға ))) Иа, жылдамдык өседі
raimbek
Мен бұған сене алмаймын, қазір қолымда үлкен көлемді деректер қоры жоқ, жұмысқа барғанда эксперимент жасап көремін. Менің ойымша бұлай болуы мүмкін емес.
vfvtnjd
Алдап нем бар сизди
Тек тіркелген қолданушылар ғана пікір қалдыра алады.