はじめに

Verticaのバックアップ方法をご紹介します。Verticaのバックアップ方法として、以下の方法が挙げられます。

・物理オンラインバックアップ
・CSVエクスポート

物理オンラインバックアップ

Verticaのバックアップユーティリティ(vbr.py)を使います。データベースを稼働した状態でVerticaのデータをバックアップします。この方法では、3つのバックアップ単位でバックアップを取得する事ができます。

・データベース単位
・スキーマ単位
・テーブル単位

特徴

データベースを停止する事なく、バックアップが取得できます。
また、バックアップ取得中でもデータのINSERT/COPY/DELETE/UPDATEが可能です。
バックアップ単位を選択する事ができるため、柔軟なバックアップ運用が可能です。
リストアポイント(デフォルト値は1)を設定する事で、[設定値(整数)+1]分の世代を管理します。

方法

1. バックアップ構成ファイルの作成

バックアップを行う場合は、まず最初に設定ファイルを作成します。

バックアップ設定ファイルの作成例(backup_test.ini)

また、バックアップをスケジューラ等で自動実行したい場合、パスワード入力を省略するパスワードファイルも併せて作成する必要があります。

パスワードファイルの作成例(db_backup.pass)


2. バックアップを取得

バックアップ保存先のディレクトリがない場合は、予め作成しておきます。

データベースのバックアップ環境を初期化します。
※Vertica 7.2から必須の手順です。

データベースのバックアップを行います。

3. バックアップデータの確認

取得したバックアップを確認します。

なお、ここでリストされる行は、vbrで世代管理されているバックアップデータです。
管理される世代数は「リストアポイントで指定した整数+1」です。

CSVエクスポート

vsqlでアウトプットフォーマットオプションを使用して、テーブルデータをCSVに出力します。

特徴

バックアップとして出力したファイルがCSVのため、データの中を確認する事ができます。
Verticaのバックアップユーティリティ(vbr.py)で管理ができないため、バックアップデータの世代管理(古いバックアップデータの削除など)はユーザ自身で行う必要があります。

方法

1. 任意のテーブルデータをCSVに出力

以下のコマンドで、テーブルデータを出力します。
(bashなどのシェルでコマンドを実行します)

2. 任意のテーブルのDDLを出力

以下のコマンドで、テーブルのDDL(CREATE TABLE文)を出力します。
(vsqlでデータベースにログインした状態でコマンドを実行します)

以下のようにEXPORT_OBJECTS関数の第2引数を空白にすると、そのデータベースユーザがアクセス可能な全てのテーブル(仮想テーブルではない)のDDLを出力します。

参考情報

バックアップデータの管理方法
バックアップの正常性を確認する方法
vbrによるバックアップ/リストア時にワイルドカードを使用する
Verticaのオンラインバックアップで、AWSのS3に直接バックアップを取得する方法
バックアップリストアのタスク実行をシミュレーションする方法
SELECT結果をCSV出力する方法
SELECT結果をCSV出力する方法(その2)

検証バージョンについて

この記事の内容はVertica 11.0で確認しています。

更新履歴

2022/04/07 v11.0用に改訂、全体的に体裁を修正、バックアップ中の実行可能処理にCOPYを追加、
        パスワードファイルの権限設定コマンドを追加、参考情報のリンクを追加
2022/01/20 パスワードファイルの作成例を修正
2021/07/14 Vertica10.1用に修正、パスワードファイルの権限について注記を追加
2019/11/28 一部コマンドを修正
2015/04/23 本記事を公開