Verticaデータベースのバックアップと復元
データの破損や偶発的な削除が発生した場合にデータを確実に回復できるようにするには、データベースのバックアップを定期的なメンテナンス作業にします。この投稿では、Vertica®データベースのバックアップと復元について説明します。
分析データベース管理システムであるVerticaは、大量のデータを処理するように設計された列型ストレージプラットフォームであり、従来のリソースを大量に消費するシナリオで高速なクエリパフォーマンスを実現します。
Verticaには次の利点があります。
- 従来のデータベースリレーショナルデータベース管理システムよりもクエリパフォーマンスが向上します。
- 高可用性を提供します。
- コモディティエンタープライズサーバーにペタバイトのスケーラビリティを提供します。
データベースのバックアップとリカバリのメカニズムにより、メンテナンスとディザスタリカバリ中のダウンタイムが削減されます。
Verticaを使用すると、ホットバックアップ、復元ポイントの数が不定の増分コピー、データベース全体またはデータベースのサブセット(スキーマ、テーブルなど)のバックアップを作成できます。次のバックアップレベルを使用できます。
- フルレベル :このレベルでは、Verticaデータベース全体をバックアップおよび復元できます。
- 増分レベル :このレベルは、新しいデータまたは変更されたデータのみで構成される後続のバックアップです。
- オブジェクトレベル :このレベルは、復元用のオブジェクトのバックアップです。
Verticaは、完全バックアップから特定のオブジェクト(スキーマやテーブルなど)を復元するための柔軟性と粒度のレベルを提供します。
データベーススナップショットは、データベース内のすべてのオブジェクトとデータの一貫したイメージをキャプチャします。オブジェクトレベルのスナップショットに含めるデータベースオブジェクトのサブセットを選択できます。これには、スナップショットの時点でのデータベース内の関連データと、依存関係グラフ内の他のオブジェクトが含まれます。スナップショットには好きな名前を付けることができます(例:snap、objectsnap1、fullsnapなど)。
バックアップの場所は、スナップショットとそれに関連するアーカイブを保存するバックアップホスト上のディレクトリです。スナップショットには互換性があるため、完全なデータベーススナップショットからデータベースを復元した後は、同じバックアップ場所から任意のオブジェクトスナップショットを使用できます。同じバックアップ場所にあるすべてのスナップショットは、ハードリンクを介してデータファイルを共有します。
Verticaは、低コストでスペース効率の高いコピーを提供します(ハードリンクローカルバックアップ )ローカルクラスタインフラストラクチャのデータベースバックアップ。システムがユーザーデータを外部バックアップ環境にコピーしないため、これらのバックアップをより高速に取得できます。 Verticaはカタログデータのみをコピーし、ファイルシステム内でLinux®ベースのハードリンクを開始します。
画像ソース :https://www.vertica.com/wp-content/uploads/2016/04/sidestep1.png
これらのバックアップは同じストレージブロックのセットを共有し、各バックアップはポイントインタイムコピーを追跡します。システムは同じコンテンツを複数の場所に保存しません。
バックアップと復元のフローは、次の手順で構成されています。
- 完全バックアップ、増分バックアップ、オブジェクトレベルバックアップなどのスナップショットタイプを選択します。
- Vertica BackupandRecoveryツールを使用して構成ファイルを作成します。
- バックアップファイルを保存するためにバックアップ場所を初期化します。
- 構成ファイルを使用してバックアップを取ります。
- バックアップ場所のバックアップを確認します。
- 類似または異なる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.
次の手順を実行して、オブジェクト固有の構成ファイルを作成します。
-
データベース内のオブジェクトを一覧表示し、使用するオブジェクトを選択します。次のオブジェクトがVerticaデータベースに存在します:
List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
-
次のコマンドを実行して、 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.
-
次のコマンドを実行して、作成されたバックアップ構成ファイルを一覧表示します。
$ 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
フルバックアップまたはオブジェクトレベルのバックアップを復元します。
注 :完全バックアップを復元するには、データベースがダウンしている必要があります。
データベース全体の復元を実行するには、次の手順を使用します。
-
データベース内のすべてのオブジェクトを削除し、最近作成したバックアップを使用してそれらを復元します。
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.
-
データベースを停止した状態で、完全バックアップを使用してデータベースを復元します。
$ 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!
-
データベースを起動し、オブジェクトの復元が成功したかどうかを確認します。次の例は、復元が成功したことを示しています。
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)
オブジェクトレベルのバックアップからオブジェクトを復元するには、次の手順を実行します。
-
オブジェクトを復元します:
$ 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!
-
オブジェクトの復元が成功したかどうかを確認します。次の例は、 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にアクセスし、セールスチャットをクリックします 会話を開始します。
[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。
-
Windows レジストリをバックアップおよび復元する方法
Windows レジストリの調整を考えている場合は、まず適切なバックアップを作成することが重要です。 Windows コンピューターの動作にとって重要な部分であるため、Windows レジストリが損傷すると、ワークフローに重大な障害が発生する可能性があります。 したがって、レジストリのバックアップは、これらの問題を回避するためのフェールセーフ オプションです。問題が発生した場合は、バックアップが既にあるので、これらのバックアップからファイルを復元することで、問題を安全に解決できます。 この記事では、Windows レジストリのバックアップを作成する方法を説明しました。その後、復元のプロセス
-
Windows レジストリをバックアップおよび復元する方法
レジストリコンピューターにとって頭脳のような役割を果たします。コンポーネント、サービス、アプリケーション、および Windows のほとんどすべてで使用されるすべての構成と設定が含まれています。レジストリには、キーと値という 2 つの基本的な概念があります。レジストリ キーはフォルダーであるオブジェクトであり、インターフェイスではフォルダーのように見えます。値はフォルダ内のファイルに少し似ており、実際の設定が含まれています。 Windows コンピュータの設定に大きな変更を加える必要があるときはいつでも、Windows レジストリを変更する必要があります。ただし、レジストリ エディターを使用し