Перейти к содержимому
Последнее обновление

BACKUP

Описание​

Эта инструкция используется для резервного копирования данных указанной базы данных. Команда выполняется асинхронно. После отправки команды можно проверить ход выполнения с помощью SHOW BACKUP.

Синтаксис​

BACKUP SNAPSHOT [<db_name>.]<snapshot_name>
TO `<repository_name>`
[ { ON | EXCLUDE } ]
( <table_name> [ PARTITION ( <partition_name> [, ...] ) ]
[, ...] ) ]

[ PROPERTIES ( "<key>" = "<value>" [ , ... ] )]

Обязательные параметры​

1.<db_name>

Имя базы данных, которой принадлежат данные для резервного копирования.

2.<snapshot_name>

Имя снимка данных. Оно должно быть глобально уникальным и не может повторяться.

3.<repository_name>

Имя репозитория. Создать репозиторий можно с помощью CREATE REPOSITORY.

Необязательные параметры​

1.<table_name>

Имя таблицы для резервного копирования. Если не указано, будет создана резервная копия всей базы данных.

  • Предложение ON задаёт таблицы и разделы, для которых нужно создать резервную копию. Если раздел не указан, по умолчанию копируются все разделы таблицы.
  • Предложение EXCLUDE задаёт таблицы и разделы, для которых резервное копирование не требуется. Копируются данные всех разделов всех таблиц этой базы данных, кроме указанной таблицы или раздела.

2.<partition_name>

Имя раздела для резервного копирования. Если не указано, будут скопированы все разделы соответствующей таблицы.

3.[ PROPERTIES ( "<key>" = "<value>" [ , ... ] ) ]

Атрибуты снимка данных в формате <key> = <value>. В настоящее время поддерживаются следующие свойства:

  • "type" = "full": указывает на полное обновление (по умолчанию).
  • "timeout" = "3600": время ожидания завершения задачи в секундах. По умолчанию составляет один день.

Требования к правам доступа​

Пользователь, выполняющий эту команду SQL, должен иметь как минимум следующие права:

ПравоОбъектПримечания
LOAD_PRIVUSER или ROLEЭту операцию могут выполнять только пользователи или роли с правом LOAD_PRIV

Примечания по использованию​

  • Поддерживается резервное копирование только таблиц типа OLAP.
  • В одной и той же базе данных можно выполнять только одну операцию резервного копирования.
  • Операция резервного копирования сохраняет базовую таблицу и синхронное материализованное представление указанной таблицы или раздела. При этом копируется только одна реплика. Асинхронное материализованное представление не поддерживается.
  • Эффективность резервного копирования: эффективность операции зависит от объёма данных, количества Compute Nodes и количества файлов. Каждый Compute Node, на котором расположен шард копируемых данных, участвует в этапе выгрузки данных при резервном копировании. Чем больше узлов, тем выше эффективность выгрузки. Под объёмом файловых данных здесь понимается только количество шардов и количество файлов в каждом шарде. Большое количество шардов или мелких файлов в них может увеличить время резервного копирования.

Примеры​

  1. Создать полную резервную копию таблицы example_tbl из базы данных example_db в репозитории example_repo:
BACKUP SNAPSHOT example_db.snapshot_label1
TO example_repo
ON (example_tbl)
PROPERTIES ("type" = "full");
  1. Создать полную резервную копию разделов p1, p2 таблицы example_tbl и таблицы example_tbl2 из базы данных example_db в репозитории example_repo:
BACKUP SNAPSHOT example_db.snapshot_label2
TO example_repo
ON
(
example_tbl PARTITION (p1,p2),
example_tbl2
);
  1. Создать полную резервную копию всех таблиц базы данных example_db, кроме таблицы example_tbl, в репозитории example_repo:
BACKUP SNAPSHOT example_db.snapshot_label3
TO example_repo
EXCLUDE (example_tbl);
  1. Создать полную резервную копию таблиц базы данных example_db в репозитории example_repo:
BACKUP SNAPSHOT example_db.snapshot_label3
TO example_repo;