Data Repository のバックアップ

データを保護するには、Data Repository をバックアップします。
capm370
データを保護するには、Data Repository をバックアップします。
以下の手順は、Data Repository をバックアップするためにサポートされている方法です。 仮想マシン スナップショットは、Data Repository をバックアップするためにサポートされている方法
ではありません
最初のバックアップでは、すべての履歴データをフル バックアップします。 以降のバックアップは増分バックアップで、前回のバックアップの開始時のスナップショット以降に発生したすべてのデータベース アクティビティが含まれます。
2
Data Repository のバックアップについて
  • Data Repository および Data Aggregator は、Data Repository のバックアップ中に実行を続行します。
  • バックアップ処理には大量のリソースが必要になる場合がありますが、その他の処理より優先順位が低くなります。 バックアップの実行時間を短縮し、その他の処理への影響を最小限に抑えるには、非ピーク時にバックアップを実行します。
  • Data Repository は、リモート ホストまたは同じホストにバックアップできます。 同じホストにバックアップする場合は、カタログやデータのディレクトリによって使用されるディスクとは異なるディスクにバックアップを保存してください。
  • フル バックアップは週単位で実行します。 増分バックアップは毎日実行します。
  • フル バックアップは、バックアップ先が新規ディレクトリの場合にのみ発生します。 snapshotName は以前のバックアップと同じにできます。
  • 増分スナップショットは、新規ファイルとハード リンクを前回のバックアップから変更されていないファイルに格納します。 任意の増分スナップショットへのリストアは、以前のスナップショットにリンクされているファイルの整合性に依存します。
  • バックアップ ファイルのサイズの詳細については、「
    DX Performance Management
    サイズ変更ツール
    」を参照してください。
データの整合性を保つために、Data Repository の各ノードを専用のバックアップ ホストにバックアップします。 バックアップを準備するには、各 Data Repository ノードに対して以下の手順を実行します。
開始する前に、Data Repository のホストとリモート バックアップ ホストに関する以下の情報を確認してください。
  • どちらのホストも LDAP に接続されていない。
  • どちらのホストもネットワーク情報サービス(NIS)に接続されておらず、Vertica Linux データベース管理者ユーザが同じである。
  • Data Repository ホストが、バックアップ ホストのカスタム rsync ssh ポート 50000 にアクセスできるように、ポート 50000 はあらゆるファイアウォール上で開いています。
バックアップ ホストがない場合は、Data Repository をローカルにバックアップできます。 詳細については、「ローカル バックアップ用の Data Repository ホストの設定」を参照してください。
以下の手順に従います。
  1. バックアップ ホストに root ユーザとしてログインします。
  2. リモート バックアップ ホスト上で Vertica Linux データベース管理者ユーザを作成します。
    useradd
    db_admin
    -s /bin/bash
    db_admin
    は、Data Repository ホストに存在するのと同じ Vertica Linux データベース管理者ユーザです。
  3. Vertica Linux データベース管理者ユーザ パスワードを設定します。
    passwd
    db_admin
  4. リモート バックアップ ホスト上に Vertica ディレクトリを作成します。
    mkdir /opt/vertica/bin
    mkdir /opt/vertica/oss
  5. Vertica ディレクトリの所有者を変更します。
    chown -R
    db_admin
    /opt/vertica
  6. リモート バックアップ ホストからログアウトします。
  7. リモート バックアップ ホストの Data Repository ホストにパスワードなしの ssh を設定するには、以下の手順に従います。
    1. Vertica Linux データベース管理者ユーザとして Data Repository ホストにログインします。
    2. パスワードなし ssh のキーを生成します。
      ssh-keygen -N "" -t rsa -f ~/.ssh/id_rsa
      cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys2
      chmod 644 ~/.ssh/authorized_keys2
    3. Vertica Linux データベース管理者ユーザの公開鍵をリモート バックアップ ホストの許可された鍵リストにコピーします。
      ssh-copy-id -i [email protected]
      backuphost
    4. Vertica Linux データベース管理者ユーザとしてリモート バックアップ ホストにログインします。
    5. Vertica rsync および python ツールを、Data Repository ホストからリモート バックアップ ホストに コピーします。
      scp [email protected]
      drhost
      :/opt/vertica/bin/rsync /opt/vertica/bin
      scp -r [email protected]
      drhost
      :/opt/vertica/oss/python /opt/vertica/oss
  8. リモート バックアップ ホストに以下のディレクトリがあることを確認します。
    • /opt/vertica/bin/rsync
    • /opt/vertica/oss/python
  9. バックアップ ディレクトリを作成します。
    mkdir
    backup_directory
    backup_directory
    には、バックアップ ファイルを保存するディレクトリを指定します。 大量の空きスペースがあるディスク パーティション上のバックアップ ディレクトリを選択します。 これらのディレクトリがデータベース管理者ユーザによって書き込み可能でない場合は、このユーザにこれらのディレクトリへのアクセス権を付与します。
    バックアップ設定ファイルを作成し、バックアップ ディレクトリを初期化するために、リモート ホストの準備ができました。
Data Repository のバックアップの設定
Data Repository をバックアップし、自動バックアップを設定するには、バックアップ用の設定ファイルを作成します。 Vertica は、新規バックアップ ディレクトリへの最初のバックアップ中にフル バックアップを実行します。 スナップショットの名前が変更された場合でも、同じディレクトリに対する以降のバックアップは増分バックアップが行われます。
この手順を実行するノードは、バックアップを開始します。
vbr ユーティリティを設定するために、Vertica によって以下の場所にサンプル設定ファイルが自動的にインストールされます。
/
opt/vertica/share/vbr/example_configs
詳細については、Vertica のドキュメントを参照してください。
以下の手順に従います。
  1. データベース管理者ユーザとして Data Repository ホストにログインします。
  2. パスワード ファイルを作成します。
    例:
    /opt/vertica/config/password.txt
    パスワード ファイル用として別の場所を選択できます。
    [Passwords]
    ; Specified password for db admin account
    dbPassword = DBpassword
    ; Specifies password for rsync user account – if different than DB admin
    ; serviceAccessPass = rsyncpwd
    ; Specifies password for the dest_dbuser Vertica account. Used only for restoring to alternate cluster.
    ; dest_dbPassword = DestinationPwd
  3. サンプル設定ファイルに移動します。
    /opt/vertica/share/vbr/example_configs
    データベース管理者ユーザには、このディレクトリへの書き込み権限が必要です。
  4. バックアップ用に設定ファイルをコピー、編集、および展開します。 Vertica から以下の例を参照してください。
    例 1:
    backup_restore_full_local.ini
    Data Repository を同じマシン上のローカル領域にバックアップします。 バックアップは、外部共有ドライブまたはローカル ディスクからのマウントとして使用できます。
    data/catalog
    と同じディスクを使用することはできません。
    [Mapping]
    ; node_name = backup_host:backup_dir
    ; [] indicates backup to localhost
    v_drdata_node0001 = []:/backups
    v_drdata_node0002 = []:/backups
    v_drdata_node0003 = []:/backups
    [Misc]
    ; Backups with the same snapshotName form a time sequence limited by restorePointLimit.
    ; SnapshotName is used for naming archives in the backup directory, and for monitoring and troubleshooting.
    ; Valid values: a-z A-Z 0-9 - _
    snapshotName = backup_snapshot
    [Misc]
    ; The temp directory location on all database hosts.
    ; The directory must be readable and writeable by the dbadmin, and must implement POSIX style fcntl lockf locking.
    ; tempDir = /tmp/vbr
    ; Specifies the number of historical backups to retain in addition to the most recent backup.
    ; 1 current + n historical backups
    restorePointLimit = 7
    ; Full path to the password configuration file
    ; Store this file in directory readable only by the dbadmin.
    passwordFile = /opt/vertica/config/password.txt
    ; When enabled, Vertica confirms that the specified backup locations contain
    ; sufficient free space and inodes to allow a successful backup. If a backup
    ; location has insufficient resources, Vertica displays an error message explaining the shortage and
    ; cancels the backup. If Vertica cannot determine the amount of available space
    ; or number of inodes in the backupDir, it displays a warning and continues
    ; with the backup.
    ; enableFreeSpaceCheck = True
    ; When performing a backup, replication, or copycluster, specifies the maximum
    ; acceptable difference, in seconds, between the current epoch and the backup epoch.
    ; If the time between the current epoch and the backup epoch exceeds the value
    ; specified in this parameter, Vertica displays an error message.
    ; SnapshotEpochLagFailureThreshold = 3600
    例 2:
    backup_restore_full_external.ini
    Data Repository を別のマシンにバックアップします。 IP アドレスをバックアップ ホストの IP アドレスに置き換えます。
    [Mapping]
    ; node_name = backup_host:backup_dir
    ; In this "parallel backup" configuration, each node backs up to a distinct external host.
    ; To backup all database nodes to a single external host, use that single hostname/IP address in each entry below.
    v_drdata_node0001 = 1.1.1.1:/backups
    v_drdata_node0002 = 2.2.2.2:/backups
    v_drdata_node0003 = 3.3.3.3:/backups
    [Misc]
    ; Backups with the same snapshotName form a time sequence limited by restorePointLimit.
    ; SnapshotName is used for naming archives in the backup directory, and for monitoring and troubleshooting.
    ; Valid characters: a-z A-Z 0-9 - _
    snapshotName = backup_snapshot
    [Misc]
    ; The temp directory location on all database hosts.
    ; The directory must be readable and writeable by the dbadmin, and must implement POSIX style fcntl lockf locking.
    ; tempDir = /tmp/vbr
    ; Specifies the number of historical backups to retain in addition to the most recent backup.
    ; 1 current + n historical backups
    restorePointLimit = 7
    ; Full path to the password configuration file
    ; Store this file in directory readable only by the dbadmin
    ; (no default)
    passwordFile = /opt/vertica/config/password.txt
    ; When enabled, Vertica confirms that the specified backup locations contain
    ; sufficient free space and inodes to allow a successful backup. If a backup
    ; location has insufficient resources, Vertica displays an error message explaining the shortage and
    ; cancels the backup. If Vertica cannot determine the amount of available space
    ; or number of inodes in the backupDir, it displays a warning and continues
    ; with the backup.
    ; enableFreeSpaceCheck = True
    ; When performing a backup, replication, or copycluster, specifies the maximum
    ; acceptable difference, in seconds, between the current epoch and the backup epoch.
    ; If the time between the current epoch and the backup epoch exceeds the value
    ; specified in this parameter, Vertica displays an error message.
    ; SnapshotEpochLagFailureThreshold = 3600
  5. (初回のみ)初めてバックアップを実行する前に、バックアップ ディレクトリを初期化します。
    /opt/vertica/bin/vbr.py --task init --config-file
    configuration_directory_path_filename
    • configuration_directory_path_filename
      は、リストア時に参照する設定ファイルのディレクトリ パスとファイル名を示します。 このファイルは、バックアップ ユーティリティを実行した場所にあります。
    初期化された後は、ファイルが同じバックアップ ディレクトリの場所を共有している場合、複数の設定ファイルがこのディレクトリを使用できます。
  6. Data Repository をバックアップします。
    /opt/vertica/bin/vbr.py --task backup --config-file
    configuration_directory_path_filename
    例:
    /opt/vertica/bin/vbr.py --task backup --config-file /home/vertica/vert-db-production.ini
  7. ホストの信ぴょう性に関するプロンプトが表示された場合は、「はい」と回答します。
    Data Repository はバックアップを開始します。 この処理、特にフル バックアップの処理は時間がかかる場合があります。
  8. (オプション)将来の手動バックアップに備えて Data Repository のパスワードをクリア テキストで保持しない場合は、以下の手順に従います。
    生成される設定ファイルにはクリア テキスト パスワードが含まれます。 自動バックアップには、パスワードが必要です。 この手順によって、この設定ファイルからの自動バックアップが阻止されます。
    1. [Database]セクションに以下の行が存在することを確認します。
      dbPromptForPassword = True
    2. [Database]セクションセクションから以下の行を削除します。
      dbPassword =
      password
自動バックアップのセットアップ
Data Repository の定期的なバックアップを確実に行うには、cron ジョブを作成して、自動バックアップをスケジュールします。 最初のバックアップはフル バックアップになり、それ以降のバックアップは増分バックアップになります。 フル バックアップを週単位または隔週で実行します。 新規バックアップ ディレクトリを使用する場合にのみ、Vertica はフル バックアップを実行します。
フル バックアップを週単位で実行します。 ディスク領域が限られている場合は、2 〜 3 週間のデータのみ保持します。 毎週初めに、最も古いバックアップ ファイルを削除します。 以前のバックアップを削除するには、vbr ユーティリティの削除タスクを使用します。 Vertica では、ファイル システムを介してバックアップを削除することはできません。
以下の手順に従います。
  1. 以下の行が含まれるラッパー シェル スクリプトを作成します。
    /opt/vertica/bin/vbr.py --task backup --config-file
    configuration_directory_path_filename
    configuration_directory_path_filename
    は、リストア時に参照する設定ファイルのディレクトリ パスとファイル名を示します。
  2. コンテンツを backup_script.sh という名前の新しいファイルとして、指定した場所に保存します。
    例:
    /home/vertica/backup_script.sh
  3. スクリプトを実行するための権限を変更します。
    chmod 777
    を実行すると、誰でもファイルを読み取り、書き込み、および実行できるようになります。 スクリプトの所有者だけにファイルを実行させる場合は、
    chmod 700
    を使用します。 root ユーザだけにファイルを実行させる場合は、
    chmod 755
    を使用します。
    chmod 777
    location_backup_script.sh
    /backup_script.sh
    例:
    chmod 777 /home/vertica/backup_script.sh
  4. データベース管理者ユーザとして、crontab を開き cron ジョブを定義します。
    crontab -e
  5. バックアップ スクリプトを実行する cron ジョブを追加します。
    毎日ピーク外の時間にスクリプトを実行するには、cron ジョブを作成します。
    例:
    00 02 * * * /home/vertica/backup_script.sh >/tmp/backup.log 2>&1
    この例の cron ジョブは、毎日午前 2 時にバックアップ スクリプトを実行します。
    cron ジョブは日単位の増分バックアップを実行します。
  6. 設定ファイルをコピーするスクリプトを追加し、設定ファイル内のスナップショット名を変更します。 また、Vertica がフル バックアップを実行するように、設定ファイル内で新規バックアップ ディレクトリを使用します。
    以前の設定ファイルを削除しないでください。 バックアップを削除するか、または以前の一連のバックアップからリストアするには、元の設定ファイルが必要です。
  7. (オプション)必要に応じて、バックアップの作成に使用された設定を使用して、vbr ユーティリティの削除タスクによって以前のバックアップ シーケンスを削除します。
    /opt/vertica/bin/vbr.py --task remove --archive=[<date>_<time>|"all"] --config-file
    configuration_directory_path_filename
    remove コマンドは破壊的であり、ディスク上のデータと空き領域を削除します。 単一のリストア ポイント、カンマ区切りリスト、または「すべて」を削除するように、アーカイブを指定する必要があります。 バックアップのリストを表示するには、
    --task listbackup
    を実行します。
vbr ユーティリティの参考ドキュメント
Vertica vbr ユーティリティを使用すると、データベース全体あるいは 1 つまたは複数の特定のスキーマおよびテーブル オブジェクトをバックアップおよびリストアできます。 また、以前に作成したクラスタおよびリストのバックアップをコピーすることもできます。
vbr ユーティリティの完全な説明については、Vertica のドキュメントを参照してください。