надежно запишите дамп базы данных непосредственно в удаленную файловую систему (Linux)

Я должен переместить очень большую базу данных (~320 ГБ) от server1 до server2 (Linux). Из-за различных дополнительных версий база данных может только быть восстановлена на server2 из файла дампа, как описано здесь.

Проблема, я не имею достаточного количества пространства на server1 для первой записи файла дампа там, затем копирую ее в server2 и проверяю суммы. Мне нужен надежный способ записать данные непосредственно в server2, минимизируя риск повреждения.

Я попробовал:

  • Передача по каналу дампа от server1 до использования server2 nc.
  • Запись файла дампа непосредственно к server2 файловой системе, которая смонтирована на использовании server1 sshfs.

Оба файла дампа, кажется, были повреждены (существенно другой размер и ошибки, связанные с повреждением на различных этапах импорта).

Я переместил базы данных как это (но намного меньший) без проблем. Кто-либо может предложить лучший, более надежный способ сделать эту большую передачу?

ОБНОВЛЕНИЕ: Испытанный NFS с теми же результатами. Явно удаленные файловые системы не могут иметь дело с этим объемом данных. Блоки явно отсутствуют из получающегося файла SQL, вызывая синтаксические ошибки во время импорта. Различные части файла повреждаются каждый раз, когда я пробую.

1
задан 13 August 2015 в 14:14
4 ответа

Я получил лучший ответ здесь . Лучший способ сделать это - создать файл дампа непосредственно на принимающем сервере путем удаленного дампа исходной базы данных:

pg_dump -h remoteserver -U remoteuser remotedbname -Fc -f my_old_server_backup.dump

Это гораздо надежнее, чем запись огромного SQL-файла через сетевую файловую систему. Теперь у меня есть работающая, перенесенная база данных!

.
0
ответ дан 4 December 2019 в 07:17

А как насчет того, чтобы сначала установить внешний ресурс 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, вы можете попробовать локальный частичный дамп для устранения неправильных настроек в утилите дампов, если этот локальный дамп также будет поврежден.

0
ответ дан 4 December 2019 в 07:17

Попробуйте AFS (Andrew FS). Эта файловая система сама по себе предназначена для масштабирования и ориентирована на сеть и может стать хорошим решением Вашей проблемы. В случае Ubuntu используйте OpenAFS. Однако имейте в виду, что перед тем, как установить надежное соединение, потребуется некоторая настройка и настройка.

.
0
ответ дан 4 December 2019 в 07:17

вы можете попробовать напрямую импортировать его через 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"

но не имеете возможности надежно скопировать его по сети. Вы уверены, что нет проблем с сетью или файловой системой?

.
0
ответ дан 4 December 2019 в 07:17

Теги

Похожие вопросы