4.3.1.1 Потоковая передача данных резервной копии на другое устройство или сервер
Для ограничения нагрузки на сервер базы данных вы можете передать данные резервной копии на другой сервер, не сохраняя их локально. Это можно сделать с помощью резервной копии в одном файле. Чтобы отправить резервную копию в одном файле в стандартный вывод, используйте команду mysqlbackup backup-to-image, не указывая параметр --backup-image. (Вы также можете указать --backup-image=-, чтобы было очевидно, что данные отправляются в stdout.) Для потоковой передачи данных используйте резервную копию в одном файле в сочетании с функциями операционной системы, такими как конвейеры, ssh и так далее, которые принимают входные данные со стандартного вывода и создают эквивалентный файл на удалённой системе. Вы можете либо сохранить резервную копию в одном файле непосредственно на удалённой системе, либо вызвать команду mysqlbackup с параметром copy-back-and-apply-log на другом конце, чтобы восстановить резервную копию на удалённом сервере MySQL.
Пример 4.13 Резервная копия в одном файле на удалённый хост
Следующая команда осуществляет потоковую передачу резервной копии в виде выходного файла в один файл на удалённый хост для сохранения под именем файла my_backup.img (--backup-dir=/tmp обозначает каталог для хранения временных файлов, а не конечного выходного файла):
mysqlbackup --defaults-file=~/my_backup.cnf --backup-image=- --backup-dir=/tmp backup-to-image | \
ssh <user name>@<remote host name> 'cat > ~/backups/my_backup.img' Для простоты предполагается, что все параметры подключения и другие необходимые параметры указаны в файле конфигурации по умолчанию. ssh может быть заменено другим протоколом связи, например, ftp, а cat может быть заменено другой командой (например, dd или tar для обычного архивирования).
Пример 4.14 Резервная копия в одном файле на удалённый сервер MySQL
Следующая команда осуществляет потоковую передачу резервной копии в виде файла резервной копии для восстановления на удалённом сервере MySQL:
mysqlbackup --backup-dir=backup --backup-image=- --compress backup-to-image | \
ssh <user name>@<remote host name> 'mysqlbackup --backup-dir=backup_tmp --datadir=/data \
--innodb_log_group_home_dir=. --uncompress --backup-image=- copy-back-and-apply-log'Пример 4.15 Потоковая передача каталога резервной копии на удалённый сервер MySQL
Следующая команда осуществляет потоковую передачу каталога резервной копии как файла резервной копии для восстановления на удалённом сервере MySQL:
mysqlbackup --backup-image=- --backup-dir=/path/to/my/backup backup-dir-to-image | \
ssh <user name>@<remote host name> 'mysqlbackup --backup-dir=backup_tmp --datadir=/data --backup-image=- copy-back-and-apply-log'
© 2025 Oracle
Licensed under the GPLv2 License.