Копирование баз mysql между серверами. Как не больно?

12 3
Lor
На сайте с 28.05.2004
Offline
352
Lor
2392

В общем, взял еще сервер, отдельно под mySQL.

На основном серваке все стандартное и CPanel. На втором все то же, но CPanel не ставил. Надо ли?

Прошу поделиться опытом, как быстрей и проще скопировать mysql базы с одного сервера на другой в такой конфигурации. Доступ по SSH.

Йопез - форум без модераторов. https://yopez.com
B
На сайте с 01.05.2007
Offline
15
#1

Судя по вопросу обычный mysqldump вызывает высокую нагрузку, а значит нужно смотреть в сторону

ionice/nice, либо можно использовать перловый скрипт mysqlhotcopy.

Если критично время синхронизации, то лучше использовать полноценную кластерную репликацию (с mcluster-ом у меня строго негативные ассоциации и посему его не рекомендую разворачивать)

Bartholomew Jo-Jo
П
На сайте с 13.03.2007
Offline
9
#2

Ну если надо именно быстрее и проще, я бы сами файлы данных скопировал. Перед копированием желательно базу остановить.

Zaqwr
На сайте с 08.08.2007
Offline
111
#3

поддерживаю Поручик

имхо если копировать, то остановить обязательно!... и быстрее и проще....

Администрирование, Linux, Cisco, Juniper
Eddie
На сайте с 12.07.2006
Offline
36
#4

Надо сделать бэкап базы с помощью mysqldump.

Максимально его сжать (например gzip'ом) (необязательно) и передать на удаленный сервер с помощью sftp.

На удаленном сервере распаковать архив (при необходимости) и залить бэкап - все.

Блог веселого программиста (http://www.bloged.org)
DyaDya
На сайте с 11.04.2007
Offline
147
#5

1. У нас админ просто копированием это дело делает. Остановить серв базы, конечно надо не забыть. Вообще надо остановить серв в любом случае ибо наверняка критично чтобы данные совпадали. Пущай часок повисит, ничего страшного. Просто делать лучше на выходных либо ночью. И желательно подгадать так, чтобы в это время была бы мала вероятность посещения робота яшки.

2. Подумать заранее, как быстро потом перенастроить все скрипты обращающиеся к базе на новый хост.

ЗЫ. Конечно лучше сначала сделать это в тестовом режиме, например, перенести только пару баз, убедиться, что все работает и повторить операцию переноса уже для ВСЕХ баз данных на 100%.

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
Lupus
На сайте с 02.11.2002
Offline
241
#6

Лучше всего действительно переносить копированием файлов данных. Только сервер останавливать не надо - просто сделать flush tables и залочить на запись.

There are two types of people in this world: 1. Those who can extrapolate from incomplete data.
K
На сайте с 24.03.2004
Offline
223
#7
Lupus:
Лучше всего действительно переносить копированием файлов данных. Только сервер останавливать не надо - просто сделать flush tables и залочить на запись.

а что про это подумают пехапескрипты? imho надо погасить вебсервер и кронтаб, а потом уже, убедившись что туда никто не пишет, сделать mysqldump... если там myisam то проще файлы скопировать.

проверенная ддос защита (http://ddos-protection.ru) -> http://ddos-protection.ru (http://ddos-protection.ru), бесплатный тест, цена от размера атаки не зависит.
Lupus
На сайте с 02.11.2002
Offline
241
#8
kostich:
а что про это подумают пехапескрипты?

А они там есть? :)

Строго говоря, при бешеной посещаемости, конечно лучше переходить в maintenance mode. Но, на практике, несколько секунд, требуемых для копирования, занимают меньше времени, чем процесс остановки и запуска серверов. А Innodb, конечно, лучше дампить.

[Удален]
#9

CPanel ставить на втором - не надо.

В связи с тем, что по SSH порой не пролезают файлы более 4 гиг, рекомендую дамп писать сразу на второй сервер:

mysqldump -u root -p -h****** > db.sql, где ****** - ip адрес вашего первого сервера

предварительно остановив апач:

service httpd stop

на первом сервере

A4
На сайте с 09.08.2007
Offline
55
#10
Maxim Golubev:
mysqldump -u root -p -h****** > db.sql, где ****** - ip адрес вашего первого сервера

Это если юзеру разрешено ходить не с локалхоста и mysql слушает хоть что-то вместо сокета, что встречается довольно редко.

Настройка nginx и сопутствующего софта на freebsd/debian. Контакт через PM.
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий