Понадобилось на одном хосте мне бэкапить базы данных mysql различных сайтов и их файлов...
Есть такой замечательный инструмент для бэкапа БД как xtrabackup. С помощью оного я буду делать бэкап БД (процесс резервирования порой бывает затратный по времени, но процесс развёртывания резервной копии намного быстрее нежели при использовании популярного у народа mysqldump + в моём случае я резервирую совершенно все базы за раз, а также имею лучшую целостность БД и сохраняю все учётные записи и их права доступа).
Для mysql версий 4x, 5x:
sudo -s
cd /opt
apt install xtrabackup p7zip-full
git clone https://github.com/constantinekg/sitebackup_with_mysql/
cd sitebackup_with_mysql/
echo 'Edit backup script for your settings...'
nano backupdb.py
chmod +x backupdb.py
mkdir /backup
Для mysql версий 8x:
sudo -s
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
apt update
apt install percona-xtrabackup-80 p7zip-full
git clone https://github.com/constantinekg/sitebackup_with_mysql/
cd sitebackup_with_mysql/
echo 'Edit backup script for your settings...'
nano backupdb8.py
chmod +x backupdb8.py
mkdir /backup
Запускаем и проверяем:
./backupdb.py
Запихиваем задачу в крон:
crontab -e
01 * * * * /opt/sitebackup_with_mysql/backupdb.py # Для mysql 4/5x
01 * * * * /opt/sitebackup_with_mysql/backupdb8.py
Как восстанавливать...
В сути необходимо распаковать содержимое бэкапа (файлы БД) в /var/lib/mysql, предварительно перед этим остановив mysql сервер ( systemctl stop mysql ) и выставить там необходимые права на доступ, после чего запустить mysql сервер ( systemctl start mysql ). Готово!
rsync -avrP /data/backup/ /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql
Комментариев нет:
Отправить комментарий