Показаны сообщения с ярлыком mysql. Показать все сообщения
Показаны сообщения с ярлыком mysql. Показать все сообщения

четверг, 9 января 2020 г.

Скрипт для бэкапа файлов сайта и базы данных mysql с помощью percona-xtrabackup

Понадобилось на одном хосте мне бэкапить базы данных 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

вторник, 18 декабря 2018 г.

Бенчмарки для linux

За последнее время я нашёл массу всяких бенчмарков для GNU Linux и мне в целом приглянулось из них 2:
  1. percona-toolkit
  2. lmbench

Percona toolkit

Взять последний percona toolkit можно отсюда:


Полагаю под самые популярные ОС в ^ этой ссылке можно будет большинству найти нужное...

Если говорить вкратце, то percona toolkit состоит из целого набора утилит, предназначенных каждая для своей цели (достаточно в любимом шелле посмотреть набор программ, начинающихся с pt-*). Скажем pt-summary отобразит кратко полную информацию о текущей конфигурации системы, её текущих различных показателей и т.п., а скажем pt-diskstats отобразит текущую информацию об загруженности дисковой подсистемы, ну и т.д.

Хотя вся эта замечательная сборка утилит предназначена для анализа "спортивного состояния" сервера БД MySQL и его показателей, но в принципе многое годится для анализа стороннего...

lmbench

В debian/ubuntu ставится на раз-два коммандой sudo apt-get install lmbench . В сути этот бенчмарк может более грамотно поснимать показатели как с железа, так и с остального ряда интересного набора метрик... 
После установки запускаем по из-под root'а lmbench-run и заполняем вдумчиво ответы на вопросы визарда бенчмарка и в ходе заполнения запускаем его работу. По окончанию выполнения программа скажет куда положила результат вывода, который останется только посмотреть... Замечу одно - при запуске этого бенчмарка систему лучше оставить в максимально не загруженном состоянии (а лучше даже потушить X сервер и поотключать нагруженные службы), так как в самом начале она просит аллоцировать для неё определённый свод памяти и как бы результат может потом расходиться с ожиданиями... 

Вывод бенчмарка довольно приличен и тут его пастить нет смысла...

После прохода бенчмарка будет создан конфиг (мой лежал в директории /usr/lib/lmbench/bin/x86_64-linux-gnu/ ) и он будет использован при следующем запуске бенчмарка. Если охота запустить бенчмарк с новыми параметрами, то как я прикинул - достаточно грохнуть данный конфиг и запустить бенчмарк по-новому...

вторник, 17 июля 2018 г.

Недоделки для Ubuntu 18.04 bionic или как натянуть последнюю версию phpmyadmin...

Я тут напоролся на проблемку... Думал что такие недоделки только у почитателей технологии docker, но тут обломилось и мне малость... В общем говорят мне такие сверху мол а сделай ты машинку с набором софта в виде nginx+php-fpm+mysql+phpmyadmin для того чтобы новенького прогера в потенциале протестировать... Ну я так прикинул и развернул LXC контейнер с последней версией ubuntu 18.04 (bionic), на которую воткнул прям одной строкой сразу nginx+php-fpm+mysql, ну настроил я всё это дело и самым последним моментом тупо через apt install phpmyadmin получаю пламенный облом... В чём облом? Да нет, всё встало как надо, но как только я посоздавал пользователя и прилепил к нему новенькую БД - я полез под этим пользователем в админку phpmyadmin и попытался сделать тупо select из сделаной мною на скорую руку таблицы... В итоге получил портянку всяких ошибок. Полез гуглить... А там такое! Версия, которая накатывается из репов убунты вся в дырках аж мама не горюй, так что вопрос по инфосеку стал прям очень страшным, а гора ошибок что я видел - это не стыковка работы старой версии phpmyadmin с новым php 7.2. Да делов думаю... качну последний deb пакет да и всё... А репов для bionic'а нет... В итоге вот рецепт: