データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Verticaデータベースのバックアップと復元

データの破損や偶発的な削除が発生した場合にデータを確実に回復できるようにするには、データベースのバックアップを定期的なメンテナンス作業にします。この投稿では、Vertica®データベースのバックアップと復元について説明します。

はじめに

分析データベース管理システムであるVerticaは、大量のデータを処理するように設計された列型ストレージプラットフォームであり、従来のリソースを大量に消費するシナリオで高速なクエリパフォーマンスを実現します。

Verticaには次の利点があります。

  • 従来のデータベースリレーショナルデータベース管理システムよりもクエリパフォーマンスが向上します。
  • 高可用性を提供します。
  • コモディティエンタープライズサーバーにペタバイトのスケーラビリティを提供します。

データベースのバックアップとリカバリのメカニズムにより、メンテナンスとディザスタリカバリ中のダウンタイムが削減されます。

データベースのバックアップと復元

Verticaを使用すると、ホットバックアップ、復元ポイントの数が不定の増分コピー、データベース全体またはデータベースのサブセット(スキーマ、テーブルなど)のバックアップを作成できます。次のバックアップレベルを使用できます。

  • フルレベル :このレベルでは、Verticaデータベース全体をバックアップおよび復元できます。
  • 増分レベル :このレベルは、新しいデータまたは変更されたデータのみで構成される後続のバックアップです。
  • オブジェクトレベル :このレベルは、復元用のオブジェクトのバックアップです。

Verticaは、完全バックアップから特定のオブジェクト(スキーマやテーブルなど)を復元するための柔軟性と粒度のレベルを提供します。

スナップショット

データベーススナップショットは、データベース内のすべてのオブジェクトとデータの一貫したイメージをキャプチャします。オブジェクトレベルのスナップショットに含めるデータベースオブジェクトのサブセットを選択できます。これには、スナップショットの時点でのデータベース内の関連データと、依存関係グラフ内の他のオブジェクトが含まれます。スナップショットには好きな名前を付けることができます(例:snap、objectsnap1、fullsnapなど)。

バックアップの場所

バックアップの場所は、スナップショットとそれに関連するアーカイブを保存するバックアップホスト上のディレクトリです。スナップショットには互換性があるため、完全なデータベーススナップショットからデータベースを復元した後は、同じバックアップ場所から任意のオブジェクトスナップショットを使用できます。同じバックアップ場所にあるすべてのスナップショットは、ハードリンクを介してデータファイルを共有します。

ハードリンクバックアップ

Verticaは、低コストでスペース効率の高いコピーを提供します(ハードリンクローカルバックアップ )ローカルクラスタインフラストラクチャのデータベースバックアップ。システムがユーザーデータを外部バックアップ環境にコピーしないため、これらのバックアップをより高速に取得できます。 Verticaはカタログデータのみをコピーし、ファイルシステム内でLinux®ベースのハードリンクを開始します。

Verticaデータベースのバックアップと復元

画像ソース :https://www.vertica.com/wp-content/uploads/2016/04/sidestep1.png

これらのバックアップは同じストレージブロックのセットを共有し、各バックアップはポイントインタイムコピーを追跡します。システムは同じコンテンツを複数の場所に保存しません。

バックアップと復元のプロセスフロー

バックアップと復元のフローは、次の手順で構成されています。

  1. 完全バックアップ、増分バックアップ、オブジェクトレベルバックアップなどのスナップショットタイプを選択します。
  2. Vertica BackupandRecoveryツールを使用して構成ファイルを作成します。
  3. バックアップファイルを保存するためにバックアップ場所を初期化します。
  4. 構成ファイルを使用してバックアップを取ります。
  5. バックアップ場所のバックアップを確認します。
  6. 類似または異なるVerticaクラスター上の完全なデータベースまたはデータベースオブジェクトを復元します。
Verticaデータベースのバックアップと復元

画像ソース :https://www.vertica.com/kb/Copy-and-Restore-Data-from-a-Vertica-Cluster-to-a-Backup/Content/BestPractices/Copy-and-Restore-Data-from-a -Vertica-Cluster-to-a-Backup.htm

構成ファイルを生成する

vbr.py ユーティリティは、Verticarequiresが完全、増分、またはオブジェクトレベルのスナップショットをバックアップおよび復元するために必要な情報を含む構成ファイルを作成します。構成ファイルがないとデータベースまたはオブジェクトをバックアップまたは復元できず、デフォルトのファイルは存在しません。

必要な数のバックアップ構成ファイルを作成できます(完全または増分、オブジェクトまたはスキーマ固有、または場所固有のファイルなど)。

完全バックアップ構成ファイル

次の手順は、データベース全体のバックアップを取るための構成ファイルの作成に役立ちます。

$ vbr.py --setupconfig
Snapshot name (backup_snapshot): full_bkp_snap
Backup vertica configurations? (n) [y/n]: y
Number of restore points (1):
Specify objects (no default):
Vertica user name (dbadmin): dbadmin
Save password to avoid runtime prompt? (n) [y/n]: n
Node v_testdb_node0001
Backup host name (no default): v_testdb_node0001
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0002
Backup host name (no default): v_testdb_node0002
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0003
Backup host name (no default): v_testdb_node0003
Backup directory (no default): /vert_backup/backup
Config file name (full_bkp_snap.ini): /vert_backup/backup_conf/full_bkp_snap.ini
Change advanced settings? (n) [y/n]: n
Saved vbr configuration to /vert_backup/backup_conf/full_bkp_snap.ini.
オブジェクト固有のバックアップ構成ファイル

次の手順を実行して、オブジェクト固有の構成ファイルを作成します。

  1. データベース内のオブジェクトを一覧表示し、使用するオブジェクトを選択します。次のオブジェクトがVerticaデータベースに存在します:

              List of tables
      Schema | Name  | Kind  |  Owner  | Comment
     --------+-------+-------+---------+---------
      public | tab1  | table | dbadmin |
      public | tab2  | table | dbadmin |
      public | tab3  | table | dbadmin |
      (3 rows)
    
  2. 次のコマンドを実行して、 public.tab1のバックアップを取るための構成ファイルを作成します。 テーブル:

     $ vbr.py --setupconfig
     Snapshot name (backup_snapshot): tab1_bkp_snap
     Backup vertica configurations? (n) [y/n]: n
     Number of restore points (1):
     Specify objects (no default): public.tab1
     Vertica user name (dbadmin): dbadmin
     Save password to avoid runtime prompt? (n) [y/n]: n
     Node v_testdb_node0001
     Backup host name (no default): v_testdb_node0001
     Backup directory (no default): /vert_backup/backup
     Node v_testdb_node0002
     Backup host name (no default): v_testdb_node0002
     Backup directory (no default): /vert_backup/backup
     Node v_testdb_node0003
     Backup host name (no default): v_testdb_node0003
     Backup directory (no default): /vert_backup/backup
     Config file name (tab1_bkp_snap.ini): /vert_backup/backup_conf/tab1_bkp_snap.ini
     Change advanced settings? (n) [y/n]: n
     Saved vbr configuration to /vert_backup/backup_conf/tab1_bkp_snap.ini.
    
  3. 次のコマンドを実行して、作成されたバックアップ構成ファイルを一覧表示します。

     $ cd /vert_backup/backup_conf/
     $ ls -la
     total 20
     drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 14:21 .
     -rw-rw-r--. 1 dbadmin dbadmin  488 Jan 20 14:21 tab1_bkp_snap.ini
     -rw-rw-r--. 1 dbadmin dbadmin  475 Jan 20 14:04 full_bkp_snap.ini
    
バックアップ場所を初期化します

ソースクラスタの完全バックアップとオブジェクトレベルバックアップのバックアップ場所を初期化するには、次のinitを実行します。 ステートメント:

$ /opt/vertica/bin/vbr.py -t init --config-file full_bkp_snap.ini
$ /opt/vertica/bin/vbr.py -t init --config-file tab1_bkp_snap.ini
バックアップを取る

データベース全体またはオブジェクトレベルのバックアップを作成します。

データベースの完全バックアップ

以前に作成した構成ファイルfull_bkp_snap.iniを使用して、データベースの完全バックアップを作成します :

$ vbr.py --task backup --config-file full_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port:  5433
Copying...
348900 out of 348900, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
単一オブジェクトのバックアップ

構成ファイルtab1_bkp_snap.iniを使用します 、オブジェクトレベルのバックアップを取るには:

$ vbr.py --task backup --config-file tab1_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port:  5433
Copying...
78920 out of 78920, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
バックアップの場所を確認する

次のコマンドを実行して、バックアップの場所を確認します。

$ cd vert_backup/
$ ls -la
total 16
drwxr-xr-x.  4 dbadmin dbadmin 4096 Jan 20 13:40 .
dr-xr-xr-x. 28 root    root    4096 Jan 20 13:53 ..
drwxr-xr-x.  5 dbadmin dbadmin 4096 Jan 20 15:22 backup
drwxr-xr-x.  2 dbadmin dbadmin 4096 Jan 20 15:29 backup_conf
$ cd backup/
$ ll
total 12
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0001
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0002
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0003
$ cd v_testdb_node0001/
$ ll
total 12
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:29 tab1_bkp_snap
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:22 full_bkp_snap
バックアップを復元する

フルバックアップまたはオブジェクトレベルのバックアップを復元します。

フルデータベースバックアップからの復元

:完全バックアップを復元するには、データベースがダウンしている必要があります。

データベース全体の復元を実行するには、次の手順を使用します。

  1. データベース内のすべてのオブジェクトを削除し、最近作成したバックアップを使用してそれらを復元します。

     cluster=> dt
                    List of tables
      Schema | Name  | Kind  |  Owner  | Comment
     --------+-------+-------+---------+---------
      public | tab1  | table | dbadmin |
      public | tab2  | table | dbadmin |
      public | tab3  | table | dbadmin |
     (3 rows)
    
     cluster=> drop table tab1,tab2,tab3;
     DROP TABLE
     cluster=> dt
     No relations found.
    
  2. データベースを停止した状態で、完全バックアップを使用してデータベースを復元します。

     $ vbr.py --task restore --config-file full_bkp_snap.ini
     Please input vertica password:
     Preparing...
     Found Database port:  5433
     Copying...
     248556 out of 248556, 100%
     All child processes terminated successfully.
     restore done!
    
  3. データベースを起動し、オブジェクトの復元が成功したかどうかを確認します。次の例は、復元が成功したことを示しています。

     cluster=> dt
                    List of tables
      Schema | Name  | Kind  |  Owner  | Comment
     --------+-------+-------+---------+---------
      public | tab1  | table | dbadmin |
      public | tab2  | table | dbadmin |
      public | tab3  | table | dbadmin |
     (3 rows)
    
オブジェクトレベルのバックアップを復元する

:オブジェクトレベルの復元を行うには、データベースが稼働している必要があります。

オブジェクトを復元するには、既存のオブジェクトレベルのバックアップを使用する必要があります。次のコードはtab1を削除します 復元の準備中:

cluster=> drop table tab1;
DROP TABLE
cluster=> dt
         List of tables
Schema | Name  | Kind  |  Owner  | Comment
-------+-------+-------+---------+---------
public | tab2  | table | dbadmin |
public | tab3  | table | dbadmin |
(2 rows)

オブジェクトレベルのバックアップからオブジェクトを復元するには、次の手順を実行します。

  1. オブジェクトを復元します:

     $ vbr.py --task restore --config-file tab1_bkp_snap.ini
     Please input vertica password:xxxxxxxx
     Preparing...
     Found Database port:  5433
     Copying...
      out of , 100%
     All child processes terminated successfully.
     Copying...
     2970 out of 2970, 100%
     All child processes terminated successfully.
     restore done!
    
  2. オブジェクトの復元が成功したかどうかを確認します。次の例は、 public.tab1の正常な復元を示しています。 オブジェクトレベルのバックアップから:

     $ vsql
     Password:xxxxxxx
    
     dbadmin=> dt
            List of tables
      Schema | Name  | Kind  |  Owner  | Comment
     --------+-------+-------+---------+---------
      public | tab1  | table | dbadmin |
      public | tab2  | table | dbadmin |
      public | tab3  | table | dbadmin |
     (3 rows)
    
     dbadmin=> d tab1 ;
                                 List of Fields by Tables
      Schema | Table | Column |     Type     | Size | Default | Not Null | Primary Key | Foreign Key
     --------+-------+--------+--------------+------+---------+----------+-------------+-------------
      public | tab1  | col1   | numeric(3,)  |    8 |         | f        | f           |
    
結論

この投稿では、Verticaデータベースのバックアップとリカバリプロセスの背後にあるロジックに焦点を当てています。また、完全、増分、オブジェクトレベルなど、さまざまなレベルでVerticaデータベースをバックアップおよび復元する手順も提供します。

データベースの詳細をご覧ください。

www.rackspace.comにアクセスし、セールスチャットをクリックします 会話を開始します。

[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。


  1. Windows レジストリをバックアップおよび復元する方法

    Windows レジストリの調整を考えている場合は、まず適切なバックアップを作成することが重要です。 Windows コンピューターの動作にとって重要な部分であるため、Windows レジストリが損傷すると、ワークフローに重大な障害が発生する可能性があります。 したがって、レジストリのバックアップは、これらの問題を回避するためのフェールセーフ オプションです。問題が発生した場合は、バックアップが既にあるので、これらのバックアップからファイルを復元することで、問題を安全に解決できます。 この記事では、Windows レジストリのバックアップを作成する方法を説明しました。その後、復元のプロセス

  2. Windows レジストリをバックアップおよび復元する方法

    レジストリコンピューターにとって頭脳のような役割を果たします。コンポーネント、サービス、アプリケーション、および Windows のほとんどすべてで使用されるすべての構成と設定が含まれています。レジストリには、キーと値という 2 つの基本的な概念があります。レジストリ キーはフォルダーであるオブジェクトであり、インターフェイスではフォルダーのように見えます。値はフォルダ内のファイルに少し似ており、実際の設定が含まれています。 Windows コンピュータの設定に大きな変更を加える必要があるときはいつでも、Windows レジストリを変更する必要があります。ただし、レジストリ エディターを使用し