Рубріки: Highload

Бекапы в Vertica

admin

Vertica поддерживает создание и восстановление из бекапов без остановки базы данных.

Создание бекапа

Для начала необходимо создать конфигурационный файл бекапа:

[Misc]
snapshotName = backup_snapshot
restorePointLimit = 1
objects = test
objectRestoreMode = createOrReplace
    
[Database]
dbName = data
dbUser = dbadmin
    
[Transmission]
    
[Mapping]
v_data_node0001 = 10.10.0.2:/var/storage/test

# сохраним этот файл в backup.ini

Тут мы описали правила для создания бекапа таблицы test из базы данных data. Для того, чтобы процесс заработал, необходимо иметь сервер для загрузки бекапа (в примере — сервер 10.10.0.2) по протоколу ssh. Для этого достаточно настроить SSH доступ по ключу для пользователя dbadmin на сервер 10.10.0.2.

Такой же файл настроек можно сгенерить автоматически с помощью помощника:

/opt/vertica/bin/vbr --setupconfig

После этого можно запускать скрипт создания бекапа:

/opt/vertica/bin/vbr.py --task backup --config-file backup.ini

# Запускаем процесс создания бекапа

Вывод будет похожим на такой:

Preparing...
Copying...
[==================================================] 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!

# Успешно завершенный бекап

Восстановление из бекапа

Как только бекап готов, мы можем в любой момент времени восстановиться из него:

/opt/vertica/bin/vbr --task restore --config-file backup.ini

# для восстановления указываем тот же файл конфигурации, что и при создании бекапа

В результате увидим что-то похожее:

Copying...
1871652633 out of 1871652633, 100% 
All child processes terminated successfully. restore done!

# Данные восстановлены из бекапа

Экспорт в CSV

Альтернативой встроенным бекапам может стать экспорт в CSV:

/opt/vertica/bin/vsql -U dbadmin -F ',' -P footer=off -A -c 'SELECT * from test' | gzip -f > /tmp/test.csv.gz

# Экспорт данных в CSV

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

Для импорта данных обратно в таблицу стоит воспользоваться операцией COPY:
COPY test FROM '/tmp/test.csv.gz' GZIP DELIMITER ',' TRAILING NULLCOLS
# Импорт данных из бекапа в таблицу

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023