У меня есть резервная копия базы данных MySQL размером около 250 МБ. Я сделал это с помощью mysqldump
Я пытался загрузить его на другой сервер вот так:
mysql -u xxxx -pxxxx data_mirror < dbdump.sql
Меня не устроил этот процесс, потому что
Какой метод вы бы порекомендовали для резервного копирования и восстановления большой базы данных MySQL?
Я делаю это на серверах под управлением Windows 7.
Причина, по которой вы получили сообщение «Сервер ушел», заключается в том, что истекло время сеанса терминала. Используйте nohup, чтобы предотвратить прерывание процесса, например:
nohup mysql -u xxxx -pxxxx зеркало_данных <dbdump.sql &
Примечание: амперсанд означает, что процесс выполняется в фоновом режиме. Чтобы отслеживать состояние запущенного процесса, просто следите за созданным файлом nohup.out:
хвост -f nohup.out
С помощью Percona Xtrabackup довольно давно на разных вариантах Linux. К сожалению, для Windows это альфа.
use LOAD DATA INFILE является дополнением SELECT ... INTO OUTFILE. это должно быть намного быстрее, поскольку не требуется синтаксический анализ sql.
Большой бэкап? Я восстановил данные с 10+ ГБ сжатый SQL-дампы ...
Невозможно получить индикатор выполнения из-за очень (нелинейной) природы дампа SQL. И почти нет корреляции между размером дампа и фактическим использованием диска сервером MySQL.
«Сервер ушел», кажется, указывает на то, что что-то разрывает соединение между вашим клиентом mysql и сервером. Либо сервер MySQL разбился (или столкнулся с невыносимой медлительностью), либо проверьте свою сеть, если ваш сервер удален (некоторые брандмауэры болезненны с долгоживущими TCP-соединениями).
Обратите внимание, что использование сжатых дампов SQL выполняется быстрее, поскольку для чтения фактического дампа требуется меньше операций ввода-вывода. Например:
mysqldump the_db | gzip > the_db.sql.gz # backup
zcat the_db.sql.gz | mysql the_db # restore