はじめに

Verticaのバックアップ方法をご紹介します。
Verticaのバックアップ方法として、以下の方法が挙げられます。
・物理オンラインバックアップ
・CSVエクスポート

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

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

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

特徴

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

方法

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

バックアップに必要なコンフィグレーションを作成します。
※このスクリプトは、対話式で設定を行います。
[Enterキー]で示している箇所は、設定をせずにデフォルトのまま進めています。


この設定が完了すると、バックアップ構成ファイルをカレントディレクトリに作成します。

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を出力します。



参考

SELECT結果をCSV出力する方法
SELECT結果をCSV出力する方法(その2)


検証バージョンについて

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