Мне нужно переместить очень большую базу данных (~ 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 через файловую систему сети. Теперь у меня есть работающая перенесенная база данных!
вы можете попробовать и напрямую импортировать его с помощью этой единственной строки:
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"
но не может надежно копировать по сети. Вы уверены, что нет проблем с сетью или файловой системой?
Пытаться AFS (Эндрю ФС). это файловая система является как таковой разработан, чтобы быть масштабируемым и сетевой и может предоставить хорошее решение вашей проблемы. В случае Ubuntu использовать OpenAFS. Однако имейте в виду, что перед установлением надежного соединения потребуется некоторая конфигурация и настройка.
Как насчет монтирования внешнего общего ресурса NFS сначала на sever1 и монтирования на server2 после дампа? Таким образом я выполняю дамп данных баз данных Oracle и резервное копирование RMAN (аналогично вашим дампам) с лучшими результатами, дублируя рабочий сервер (server1) на тестовый сервер (server2) и восстанавливая резервные копии. Наша внешняя NFS полагается на NAS, но любой Gnu / Linux выполнит эту работу, просто установите необходимые пакеты.
следить эти шаги для Debian и после настройки общего ресурса смонтируйте его на server1 и server2 через / 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, вы можете попробовать локальный частичный дамп, чтобы отменить неправильные конфигурации в инструменте дампа, если этот локальный дамп также будет поврежден.