MySQL восстановление файлов на другом сервере - PullRequest
0 голосов
/ 24 августа 2009

У меня есть тестовая база данных на отдельном удаленном сервере, чем моя производственная БД. Время от времени я хочу попробовать и протестировать вещи, загрузив копию моей производственной БД в мою тестовую БД. К сожалению, файл резервной копии теперь составляет половину гигабайта, и у меня возникают проблемы с передачей его по FTP или SSH. Есть ли простой способ использовать команду восстановления mysql между серверами? Кроме того, есть ли другой способ переместить большие файлы, которые я не рассматриваю? Половина концерта не кажется такой уж большой, я думаю, что люди часто сталкиваются с этой проблемой.

Спасибо!

Ответы [ 4 ]

1 голос
/ 24 августа 2009

0. Пожалуйста, подумайте, действительно ли вам нужны производственные данные (особенно если они содержат некоторую конфиденциальную информацию)

1. Самое простое решение - сжать резервную копию на исходном сервере (обычно gzip), передать ее по сети, а затем распаковать на целевом сервере.

http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/

2.Если вам не нужна точная копия производственных данных (например, вам не нужны журналы приложений, ошибки, некоторые другие технические вещи), вы можете рассмотреть вопрос о создании резервной копии и восстановлении на исходном сервере другого сервера. Имя БД, удалите все ненужные данные и ТО сделайте резервную копию, которую вы будете использовать.

3. Восстановите полную резервную копию один раз на вашем эталонном сервере в вашей среде разработки, а затем скопируйте только журналы транзакций (чтобы воспроизвести их на эталонном сервере). В зависимости от модели использования журналы транзакций могут занимать намного меньше места, чем вся база данных.

1 голос
/ 24 августа 2009

Доступны ли серверы друг для друга?

Если это так, вы можете просто передать данные из одной базы данных в другую, не используя файл.

ex: mysqldump [опции] | mysql -h test -u username -ppasswd

0 голосов
/ 24 августа 2009

Используйте эффективный метод передачи, а не ftp.

Если у вас есть файл дампа, созданный mysqldump, на тестовом сервере БД, и вы обновляете его время от времени. Я думаю, вы могли бы сэкономить время (если не дисковое пространство), используя rsync для его передачи. Rsync будет использовать ssh и сжимать данные для передачи, но я думаю, что как локальные, так и удаленные файлы должны / могут быть распакованы.

Rsync будет передавать только измененную часть файла.

Может потребоваться некоторое время, чтобы решить, что именно изменилось в файле дампа, но передача должна быть быстрой.

Должен признать, я никогда не делал этого с файлом дампа в полгигабайта.

0 голосов
/ 24 августа 2009

Mysql позволяет подключаться к удаленному серверу баз данных для запуска команд sql. Используя эту функцию, мы можем передать вывод из mysqldump и попросить mysql подключиться к удаленному серверу базы данных для заполнения новой базы данных.

mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb 
...