Ad Widget
Collapse
Перенос БД в другой раздел
Collapse
X
-
-
Ещё подумалось: переносится ВЕСЬ каталог var/lib/mysql ?Добрый день!
2) Останавливаю service mariaDB
3) Перемещаю (Midnight Commander-ом) базу из var/lib/mysql в новое место
4) Меняю в файле конфигурации my.cnf пути на новые
....
Захожу в web-ку zabbix и он выдает ошибку, что не найдена база данных (и указывает путь на старое место расположение var/lib/mysql/zabbix)
Т.е. со всеми файлами, данных всех баз и "служебной" БД ?
Так-же правильным считаю иметь тестовый сервер (хоть виртуалку) дляя экспериментов - чтоб сломать не жалко было :-)Comment
-
Да, весь. Так кроме базы zabbix и "служебной" БД больше ничего нет и не предвидется.
Просто думал, перенос будет выполнить просто.
Надо поставить тестовый сервак и поиграться на нем.
В общем, как сделаю удачно перенос на тестовом серваке, напишу сюда алгоритм действий.Last edited by Scrappy1974; 24-01-2018, 13:19.Comment
-
Так у меня и описан, за исключением останова серверра БД.
Даже проверен :-)
- останавливаем zabbix;
- Останавливаем mysql;
- переносим базу в новое место;
- chown на файлы в новом месте + проверка прав;
- softlink файлов на прежнее место;
- ещё сделал chown на софтлинки;
- запуск сервера mysql;
- запуск zabbix;
Попробуйте, может что дополнить/убрать :-)Comment
-
Ок, на днях сделаю тестовый сервак и попробую Ваш алгоритм, если что, еще дополню.Так у меня и описан, за исключением останова серверра БД.
Даже проверен :-)
- останавливаем zabbix;
- Останавливаем mysql;
- переносим базу в новое место;
- chown на файлы в новом месте + проверка прав;
- softlink файлов на прежнее место;
- ещё сделал chown на софтлинки;
- запуск сервера mysql;
- запуск zabbix;
Попробуйте, может что дополнить/убрать :-)
В вашем алгоритме, раз softlink установлен на старое место баз, получается, что my.cnf править не надо?
Ну и Housekeeping настрою дней на 30-ть, чтоб удалял старые данные .Comment
-
Добрый день!
Несколько раз уже выполняли перенос файлов БД zabbix в другой раздел, пользовались вот этим простым гайдом: https://rusadmin.biz/bloknot/perenos...ku-ili-razdel/
Думаю проблема именно в правах и свойствах файлов, в гайде прописано, что копирование файлов нужно выполнять с ключами -pR
Code:# cp -pR /old/db /new/db
Comment
-
В общем закончилось место в разделе и добрался я до переноса БД zabbix в другой раздел. В принципе, алгоритм, как и описан у pa1975
- останавливаем zabbix;
- Останавливаем mysql;
- переносим базу в новое место (переносил копированием # cp -pR /old/db /new/db);
- chown на файлы в новом месте + проверка прав не делал, так как копировал с сохранением существующих прав;
- удаляем БД со старого места (для освобождения места в разделе)
- softlink файлов на прежнее место (без softlink не заработало, правка my.cnf не помогла, скорее всего еще в других местах править нужно, проще создать softlink);
- ещё сделал chown на софтлинки (не делал и так все заработало);
- запуск сервера mysql;
- запуск zabbix;Comment
-
Вообще то этот метод подойдёт там где маленькая база данных и где можно делать долгий довнтиме у мониторинга,
там где всё намного серьёзнее там надо делать по другому,
тб по всякому экономим время на маневры:
- делаю пометку что эта схема универсальная и подходит под разныеe Linux & ДБ (mysql, postgres, etc),
как сингле сервер так и в clusters,
и когда ДБ работает на отдельном сервер oт Zabbix server.
Чтобы мигрировать ДБ на другой сервер там лучше делать через ДБ репликацию (master-slave).
sync_script.sh
rsync -aHv --delete /var/lib/mysql /opt/data/
#rsync -aHv --delete /var/lib/postgresql /opt/data/
mkdir -p /opt/data/tmp && chmod -R 777 /opt/data/tmp
#(обратите внимания на наличие здесь slash (/), именно так надо)
И можно начинать подготовку:
1) без остановки каких либо сервисов запускаем: sync_script.sh
следим, ждём завершения.
2) идем на новый моунт поинт и проверяем всё ли там красиво и так как нам надо (path, owners, permissions, etc)
если нет, то делаем изменения в скрипте и повторяем.
3) Заходим в config ДБ и меняем datadir и tmp
(подготовка нового конфига, который будет работать после запуска)
и пока все.
#mysql
/etc/mysql/my.cnf
datadir = /opt/data/mysql
tmpdir = /opt/data/tmp
#postresql
postgresql.conf
data_directory = '/opt/data/postgresql/x.x/main'
И поехали:
4) Stop Zabbix server ->
tail -f /var/log/zabbix/zabbix_server.log
там ждём следующие строки:
XXXXX:XXXXXXXX:XXXXXX.XXX syncing history data...
XXXXX:XXXXXXXX:XXXXXX.XXX syncing history data done
XXXXX:XXXXXXXX:XXXXXX.XXX syncing trend data...
XXXXX:XXXXXXXX:XXXXXX.XXX syncing trend data done
XXXXX:XXXXXXXX:XXXXXX.XXX Zabbix Server stopped. Zabbix x.x.x (revision xxxxx).
5) Stop MySQL or PostgreSQL
tail -f /var/log/mysql/mysqld.err -> "Shutdown complete"
tail -f tail -f /var/log/postgresql/postgresql-*-main.log -> "database system is shut down"
6) Run script again: sync_script.sh
Делаем re-sync, скрипт заберёт те файлы которые менялись с предыдущего запуска скрипта.
Следим, ждём завершения.
7) Start MySQL or PostgreSQL
tail -f /var/log/mysql/mysqld.err -> "ready for connections"
tail -f tail -f /var/log/postgresql/postgresql-*-main.log -> "database system is ready to accept connections"
8) Start Zabbix server
tail -f /var/log/zabbix/zabbix_server.log
там ждём следующие строки:
XXXXX:XXXXXXXX:XXXXXX.XXX Starting Zabbix Server. Zabbix x.x.x (revision xxxxx).
XXXXX:XXXXXXXX:XXXXXX.XXX current database version (mandatory/optional): xxxx/xxxx <- вот этот самый нужный msg
XXXXX:XXXXXXXX:XXXXXX.XXX required mandatory version: xxxx
XXXXX:XXXXXXXX:XXXXXX.XXX server #0 started [main process]
....
9) Open Zabbix GUI - проверяем и радуемся.
Done.
Comment
-
Всем доброго времени суток.
У меня чуть иная проблема, и дабы не плодить темы напишу тут.
Сервер на Debian перестал запускаться, но файлы с диска читаются без проблем.
нагуглил что mariadb делает импорт бд только из файла sql куда до этого был произведен экспорт.
Возможно ли прикрутить как то существующие файлы к заново созданному серверу?Comment
Comment