Назад | Перейти на главную страницу

Передача данных с сервера на новый сервер

Я получаю сервер в другом месте по сравнению с текущим и избавляюсь от текущего.

Мне нужно найти способ беспрепятственно перенести следующее:

В основном меня беспокоят базы данных MySQL, это так же просто, как копирование структуры папок, и все снова работает (конечно, после установки MySQL на новый сервер)? А как насчет прав доступа к файлам для сайтов пользователей? Я знаю, что некоторые пользователи используют системы форумов, и у них обычно есть определенные каталоги, для которых требуются разрешения, например 775. Есть ли способ сохранить это?

Файлы и каталоги

Для этого у вас есть два инструмента, с которых вы можете начать.

Для каталогов пользователя, конфигурации Apache и файлов Awstats можно использовать tar.

# tar cvpzf myfiles.tgz *

Это скопирует подкаталоги, сохранит разрешения и создаст единый архив, который вы можете распаковать в новой системе. Я немного не уверен в том, как он сохранит права пользователей на вашем новом сервере, если UID будет изменяться для каждого пользователя.

Чтобы восстановить tar-файл на новом сервере, он будет выглядеть примерно так. Запустите его в текущем каталоге, в который вы хотите расширить структуру каталогов.

# tar xvpzf myfiles.tgz

В качестве примечания, вы также можете заглянуть в файл tar и увидеть его содержание. Это позволяет вам проверить, как все выглядит внутри файла, без необходимости извлекать содержимое.

# tar xvzf myfiles.tgz

MySQL - mysqldump для резервного копирования и восстановления

Для MySQL не сокращайте здесь путь. Используйте mysqldump, чтобы сделать резервную копию ваших баз данных и, в идеале, сделать одну резервную копию для каждой базы данных.

# mysqldump -u [user] -p[password] [database_name] > [database_name].sql

В новой системе вы также можете восстановить файл с помощью mysqldump. Просто убедитесь, что вы уже создали базу данных на новом сервере, поскольку я думаю, что в резервной копии может не быть параметра CREATE DATABASE в файле резервной копии SQL.

# mysqldump -u [user] -p[password] [database_name] < database_name.sql

Удачи.

Единственное, что вы можете сделать, - это синхронизировать старый сервер с новым. Первое, что нужно сделать, - это добавить пользователей /etc/passwd и группы /etc/group в соответствующие файлы нового сервера. Вы можете попробовать использовать то же самое uid и gid

Для данных у вас есть rsync который можно использовать со следующими опциями:

--archive
--verbose
--recursive
--hard-links
--compress (optionally - compress data for faster transfer of data)
 -e 'ssh -p 2234' (use ssh for secure connection between servers)

В первый раз ты можешь rsync каждый каталог, содержащий соответствующие данные. Разрешения останутся такими же, как и вы использовали --archive вариант. После этого вы можете попытаться смоделировать доступ к новому серверу и проверить, работает ли доступ: для mysql, http, Другой...

Вы не говорите, такая же версия centos или нет. Если нет, вам следует проверить, mysql версия является серьезным обновлением (например, 5.1 на старом сервере и 5.5 на новом) или нет. Если это серьезное обновление, вам следует прочитать mysql документация и, вероятно, запустить mysql_upgrade. Поскольку вы будете использовать centos на обоих серверах, я полагаю, пользователь mysql пробеги должны быть такими же. Mysql должен работать нормально, если вы копируете или rsync данные между двумя серверами.

В определенный момент вам нужно будет снова синхронизировать данные, отключить старый сервер и перевести новый в состояние реального времени. Когда наступит этот момент, ты должен остановиться mysql и данные rsync, используя еще два параметра:

--update  (transfers only new data)
--delete  (deletes data in new server that doesn't exist anymore in old server)

По большей части, я думаю, вы можете следовать этим рекомендациям.