Докато mysqldump
инструментът е предпочитаният метод за архивиране за база данни на MariaDB или MySQL или система за бази данни, той работи само когато сървърът на базата данни е достъпен и работи. Ако базата данни не може да бъде стартирана или хост системата е недостъпна, тя все още може да бъде копирана директно.
физическо архивиране често е необходимо в ситуации, когато имате достъп само до среда за възстановяване (като Finnix), където монтирате дисковете на вашата система като външни устройства за съхранение. Ако искате да прочетете за логически архиви използвайки mysqldump
,вижте нашето ръководство по темата.
За опростяване името MySQL ще се използва в това ръководство, но инструкциите ще работят както за MySQL, така и за MariaDB.
Забележка Стъпките в това ръководство изискват root привилегии. Влезте като root потребител с su -
преди да започнете.
Създайте резервно копие
-
Ако не работите в режим на възстановяване (сесия на Finnix), спрете
mysql
услуга:systemctl stop mysql
-
Намерете директорията на вашата база данни. Трябва да бъде
/var/lib/mysql/
на повечето системи, но ако тази директория не съществува, проверете/etc/mysql/my.cnf
за път до директорията с данни. -
Създайте директория за съхранение на вашите архиви. Това ръководство ще използва
/opt/db-backups
но можете да промените това, за да отговаря на вашите нужди:mkdir /opt/db-backups
-
Копирайте директорията с данни на MySQL в място за съхранение.
cp
команда,rsync
, или други методи ще работят добре, но ще използвамеtar
за рекурсивно копиране и gzip архивиране наведнъж. Променете директорията на базата данни, името на архивния файл и целевата директория, ако е необходимо;-$(date +%F)
допълнение към командата ще вмъкне времева марка в името на файла.tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*
-
Рестартирайте услугата MySQL:
systemctl restart mysql
Възстановяване на резервно копие
-
Променете работната си директория на място, където можете да извлечете създадения по-горе tarball. Домашната директория на текущия потребител се използва в този пример:
cd
-
Спрете
mysql
услуга:systemctl stop mysql
-
Извлечете tarball-а в работната директория. Променете името на файла на tarball в командата на това с датата, на която искате да възстановите.
tar zxvf /opt/db-backups/db-archive.tar.gz -C .
-
Преместете текущото съдържание на
/var/lib/mysql
на друго място, ако искате да ги запазите по някаква причина или да ги изтриете изцяло. Създайте нов празенmysql
папка, в която да възстановите архивирания си DMBS.mv /var/lib/mysql /var/lib/mysql-old mkdir /var/lib/mysql
-
Копирайте архивираната система от база данни в празната папка:
mv ~/var/lib/mysql/* /var/lib/mysql
-
Задайте правилните разрешения за файловете, които току-що възстановихте:
chown -R mysql:mysql /var/lib/mysql
-
Рестартирайте услугата MySQL:
systemctl restart mysql
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Общ преглед на архивиране и възстановяване; Библиотека MariaDB
- Методи за архивиране на бази данни; Справочно ръководство за MySQL