Как создать уникальные идентификаторы для резервных копий кластера MysQL

by itisgood

Каждая онлайн резервная копия MySQL Cluster получает уникальный идентификационный номер.

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

Однако это может вызвать проблемы.

Например, если система перезагружается, этот счетчик идентификаторов сбрасывается и начинается снова с номера 1, что вызывает проблемы, если вы не перемещали более ранние резервные копии.

В этом руководстве будет рассказано, как создавать уникальные идентификаторы резервных копий

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

Это гарантирует, что никогда не будет проблем с дублированием идентификаторов резервной копии на самих узлах данных.

Кроме того, вы можете сгенерировать свои собственные идентификаторы резервной копии и передать их в оператор START BACKUP с помощью клиентского инструмента ndb_mgm.

В версиях MySQL Cluster 6.2.17, 6.3.23 и 7.0.3 этот идентификатор имеет верхний предел 4294967296 (232). Более ранние версии поддерживают максимум 2147483648 (231).

Одним из примеров того, как создать свой собственный идентификатор резервной копии, является использование времени Unix или POSIX.

Преимущество этого состоит в том, что это уже 32-разрядное число, и каждый раз, когда вы запускаете START BACKUP, это будет текущее время, которое является уникальным, если вы не вмешиваетесь в системные часы.

Вы должны ввести что-то вроде следующего из командной строки:

$ TS=$(date +%s) && ndb_mgm -e "START BACKUP ${TS}"
Connected to Management Server at: localhost:1186
Waiting for completed, this may take several minutes
Node 1: Backup 1455575258 started from node 49
Node 1: Backup 1455575258 started from node 49 completed
 StartGCP: 2596 StopGCP: 2599
 #Records: 7378 #LogRecords: 0
 Data: 501128 bytes Log: 0 bytes

Другим примером может служить фактическая дата и час создания резервной копии.

Преимущество этого в том, что его легче читать, и можно сразу увидеть, с какого дня была сделана резервная копия.

Следующий пример, однако, будет работать только один раз в час – он также вводится из командной строки:

$ TS=$(date +%Y%m%d%H) && ndb_mgm -e "START BACKUP ${TS}"
Connected to Management Server at: localhost:1186
Waiting for completed, this may take several minutes
Node 1: Backup 2016021609 started from node 49
Node 1: Backup 2016021609 started from node 49 completed
 StartGCP: 2665 StopGCP: 2668
 #Records: 7378 #LogRecords: 0
 Data: 501128 bytes Log: 0 bytes

Существует много возможных способов создания идентификаторов резервных копий, не ограничиваясь временными метками.

Вы можете создать счетчик, который хранится в центральной базе данных, работающей на вашем сервере резервного копирования.

Как вы генерируете ID, зависит от вас.

 

 

You may also like

Leave a Comment