Экспорт данных
Резервное копирование и восстановление Alibaba cloud OSS
Selena поддерживает резервное копирование данных в alicloud OSS / AWS S3 (или объектное хранилище, совместимое с протоколом S3). Предположим, есть два кластера Selena, а именно кластер DB1 и кластер DB2. Нам нужно создать резервную копию данных в DB1 в alicloud OSS, а затем восстановить их в DB2 при необходимости. Общий процесс резервного копирования и восстановления выглядит следующим образом:
Создание облачного репозитория
Выполните SQL в DB1 и DB2 соответственно:
CREATE REPOSITORY `repository name`
WITH BROKER `broker_name`
ON LOCATION "oss://bucket name/path"
PROPERTIES
(
"fs.oss.accessKeyId" = "xxx",
"fs.oss.accessKeySecret" = "yyy",
"fs.oss.endpoint" = "oss-cn-beijing.aliyuncs.com"
);
a. И DB1, и DB2 должны быть созданы, и имя созданного REPOSITORY должно быть одинаковым. Просмотр репозитория:
SHOW REPOSITORIES;
b. broker_name нужно заполнить именем брокера в кластере. Просмотр BrokerName:
SHOW BROKER;
c. Путь после fs.oss.endpoint не должен содержать имя bucket.
Резервное копирование таблицы данных
Выполните BACKUP таблиц, которые нужно скопировать, в облачный репозиторий в DB1. Выполните SQL в DB1:
BACKUP SNAPSHOT [db_name].{snapshot_name}
TO `repository_name`
ON (
`table_name` [PARTITION (`p1`, ...)],
...
)
PROPERTIES ("key"="value", ...);
PROPERTIES в настоящее время поддерживает следующие свойства:
"type" = "full": указывает, что это полное обновление (по умолчанию).
"timeout" = "3600": тайм-аут задачи. По умолчанию один день. Единица измерения - секунды.
Selena в настоящее время не поддерживает полное резервное копирование базы данных. Нам нужно указать таблицы или разделы для резервного копирования ON (...), и эти таблицы или разделы будут скопированы параллельно.
Просмотр выполняющихся задач резервного копирования (обратите внимание, что одновременно может выполняться только одна задача резервного копирования):
SHOW BACKUP FROM db_name;
После завершения резервного копирования вы можете проверить, существуют ли уже данные резервной копии в OSS (ненужные резервные копии необходимо удалить в OSS):
SHOW SNAPSHOT ON OSS repository name;
Восстановление данных
Для восстановления данных в DB2 нет необходимости создавать структуру таблицы для восстановления в DB2. Она будет создана автоматически во время операции Restore. Выполните SQL восстановления:
RESTORE SNAPSHOT [db_name].{snapshot_name}
FROMrepository_name``
ON (
'table_name' [PARTITION ('p1', ...)] [AS 'tbl_alias'],
...
)
PROPERTIES ("key"="value", ...);
Просмотр прогресса восстановления:
SHOW RESTORE;