Main > Databases | Hosting | Linux | MySQL > Экспорт дампа на удаленную машину через ssh

Экспорт дампа на удаленную машину через ssh

21.05.2013 0 comments » Views: 3,191

MySQL

Сегодня столкнулся с очередной не стандартной задачей, а именно я забыл установить уведомитель об окончании свободного места на диске, и конечно именно на этом VPS-е (я их админю сам, без панелек) исчерпалось все доступное пространство. Разумеется выходит один - переезжать на сервер с большим винтом. Однако как же нам перенести базу, если мы не можем сделать её бэкап, место-то под него нету..

Разумеется первым делом, я нашел чего можно удалить и освободил немного места, чтобы сервер проработал еще хотя бы день, после этого, я показал юзерам страницу с информацией что на сервере идут работы, а поисковикам отдал 503 ошибку в этой же странице, чтобы они вернулись чуть позже. Сделано это лишь для того, чтобы освободить нужную мне базу от запросов и изменений.

Теперь я выполнил такую команду:

и копирование на удаленный хост в папку root-а, пошло..

Давайте теперь разберемся подробнее:

mysqldump - делает нам бэкап, параметры:

  • -u MYSQL_USERNAME = имя пользователя БД
  • -p MYSQL_PASSWORD = пароль пользователя БД
  • -q = параметр, который позволяет писать данные сразу на диск, не аккумулируя их в памяти (этот параметр по-умолчанию включен, однако я по старинке все равно его использую)
  • --default_character_set utf8 = кодировка базы
  • YOUR_DATABASE = имя базы данных

далее весь этот поток данных, нам бы не помешало заархивировать, чтоб меньше передавать по сети, поэтому используем команду gzip:

gzip - архивирует поток данных, параметры

  • = выводить заархивированные данные в стандартный поток

теперь, осталось только передать поток по сети, на удаленную машину, для этого используем ssh:

ssh - программа удаленного доступа, параметры:

  • -p PORT = порт на который обслуживает ssh соединения, по-умолчанию: 22
  • USERNAME@YOUR_TO_HOST = имя-пользователя-на-сервере@ip-адрес-сервера
  • 'cat>~/dump.sql.gz' = команда которая выполнится на удаленной машине и перенаправит поток в файл ~/dump.sql.gz

Собственно это и все, остается только дождаться завершения копирования и импортировать дамп уже в базу на удаленной машине. Напомню, сделать это можно так:

Author: | Rating: 4/5 | Tags: , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>