У меня есть тестовая база данных на отдельном удаленном сервере, чем моя производственная БД. Каждые раз в некоторое время, я хочу попробовать и проверить вещи, загрузив копию моей производственной БД в мою тестовую БД. К сожалению, резервный файл теперь находится на половину концерта, и у меня возникли проблемы с его передачей через FTP или SSH. Есть ли простой способ использовать команду mysql restore между серверами? Кроме того, есть ли другой способ переместить большие файлы, которые я не рассматриваю? Половина концерта не кажется такой большой, я бы предположил, что люди часто сталкиваются с этой проблемой.
Спасибо!
Доступны ли серверы друг другу?
Если это так, вы можете просто передавать данные с одного db на другой без использования файла.
ex: mysqldump [options] | mysql -h test -u username -ppasswd
0. Пожалуйста, подумайте, действительно ли вам нужны производственные данные (особенно если они содержат некоторую конфиденциальную информацию).
1. Самое простое решение - сжать резервную копию на исходном сервере (обычно gzip), перенести его по проводу, а затем распаковать на целевом сервере.
http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/
2.Если вам не нужна точная копия производственных данных (например, вам не нужны журналы приложений, ошибки, некоторые другие технические материалы), вы можете рассмотреть возможность создания резервной копии и восстановления на исходном сервере на другой DB, удалите все ненужные данные и THEN возьмите резервную копию, которую вы будете использовать.
3. Восстановите полную резервную копию на сервере ссылок в среде Dev и затем скопируйте только журналы транзакций (чтобы воспроизвести их на ссылочном сервере). В зависимости от шаблона использования журналы транзакций могут занимать намного меньше места, чем вся база данных.
Используйте эффективный метод передачи, а не ftp.
Если у вас есть файл дампа, созданный mysqldump, на тестовом сервере db, и вы обновляете его так часто. Я думаю, вы могли бы сэкономить время (если не на диске), используя rsync для его переноса. Rsync будет использовать ssh и сжимать данные для передачи, но я думаю, что и локальные, и удаленные файлы должны/быть несжатыми.
Rsync будет передавать только измененную часть файла.
Может потребоваться некоторое время, чтобы решить, что именно изменилось в файле дампа, но передача должна быть быстрой.
Должен признаться, я никогда не делал этого с файлом дампа с половиной гигабайтом.
Mysql позволяет вам подключаться к удаленному серверу базы данных для запуска SQL-команд. Используя эту функцию, мы можем передать вывод из mysqldump и попросить mysql подключиться к удаленному серверу базы данных для заполнения новой базы данных.
mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb