Я должен переместить очень большую базу данных (~320 ГБ) от server1 до server2 (Linux). Из-за различных дополнительных версий база данных может только быть восстановлена на server2 из файла дампа, как описано здесь.
Проблема, я не имею достаточного количества пространства на server1 для первой записи файла дампа там, затем копирую ее в server2 и проверяю суммы. Мне нужен надежный способ записать данные непосредственно в server2, минимизируя риск повреждения.
Я попробовал:
nc
.sshfs
.Оба файла дампа, кажется, были повреждены (существенно другой размер и ошибки, связанные с повреждением на различных этапах импорта).
Я переместил базы данных как это (но намного меньший) без проблем. Кто-либо может предложить лучший, более надежный способ сделать эту большую передачу?
ОБНОВЛЕНИЕ: Испытанный NFS с теми же результатами. Явно удаленные файловые системы не могут иметь дело с этим объемом данных. Блоки явно отсутствуют из получающегося файла SQL, вызывая синтаксические ошибки во время импорта. Различные части файла повреждаются каждый раз, когда я пробую.
Я получил лучший ответ здесь . Лучший способ сделать это - создать файл дампа непосредственно на принимающем сервере путем удаленного дампа исходной базы данных:
pg_dump -h remoteserver -U remoteuser remotedbname -Fc -f my_old_server_backup.dump
Это гораздо надежнее, чем запись огромного SQL-файла через сетевую файловую систему. Теперь у меня есть работающая, перенесенная база данных!
.А как насчет того, чтобы сначала установить внешний ресурс NFS на сервере sever1 и после дампа установить его на сервере2? Так я выполняю резервное копирование баз данных Oracle и RMAN (аналогично вашим дампам) с лучшими результатами дублирования производственного сервера (server1) для тестирования сервера (server2) и восстановления резервных копий. Наша внешняя NFS полагается на NAS, но любой Gnu/Linux сделает эту работу, просто установите необходимые пакеты
Следуйте этим шагам для Debian и после настройки монтирования ресурса на сервере1 и сервере2 через /etc/fstab
nfs_server:/path/to/share /server1or2filesystem/mountpoint nfs rw,hard,intr,timeo=600,actimeo=0,proto=tcp,bg,rsize=262144,wsize=262144 0 0
У меня никогда не было проблем с повреждениями дампов на разделяемых ресурсах NFS (если только не произошел сбой подключения), и если вы обнаружите повреждения при повторном тестировании NFS, вы можете попробовать локальный частичный дамп для устранения неправильных настроек в утилите дампов, если этот локальный дамп также будет поврежден.
Попробуйте AFS (Andrew FS). Эта файловая система сама по себе предназначена для масштабирования и ориентирована на сеть и может стать хорошим решением Вашей проблемы. В случае Ubuntu используйте OpenAFS. Однако имейте в виду, что перед тем, как установить надежное соединение, потребуется некоторая настройка и настройка.
.вы можете попробовать напрямую импортировать его через oneliner:
mysqldump --add-drop-table --extended-insert --force --log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost "mysql -uUSER -pPASS NEW_DB_NAME"
но не имеете возможности надежно скопировать его по сети. Вы уверены, что нет проблем с сетью или файловой системой?
.