バックアップとは、特定の時点でのデータベースのスナップショットです。 バックアップは次の 3 つの主な部分で構成されます。
メタデータ. すべてのデータベーステーブルの名前と定義
テーブルレコード. バックアップが作成された時点でデータベーステーブルに実際に格納されたデータ
トランザクションログ. データがデータベースに格納された方法と日時を示す順次レコード
これらの各部分は、バックアップに参加しているすべてのノード上に保存されます。 バックアップ中に、各ノードはこれらの 3 つの部分をディスク上の 3 つのファイルに保存します。
-
BACKUP-
backup_id
.node_id
.ctl制御情報およびメタデータを含む制御ファイルです。 各ノードは、このファイルの各ノード独自のバージョンに、(クラスタ内のすべてのテーブルの) 同じテーブル定義を保存します。
-
BACKUP-
backup_id
-0.node_id
.dataフラグメントごとに保存され、テーブルレコードを含むデータファイルです。 つまり、バックアップ中にノードによって異なるフラグメントを保存します。 各ノードによって保存されたファイルは、レコードが属するテーブルを示すヘッダーで始まります。 レコードのリストのあとに、すべてのレコードのチェックサムを含むフッターが続きます。
-
BACKUP-
backup_id
.node_id
.logコミットされたトランザクションのレコードを含むログファイルです。 このログには、バックアップに格納されたテーブル上のトランザクションのみが格納されます。 ノードによって異なるデータベースのフラグメントをホストするため、バックアップに関与するノードはさまざまなレコードを保存します。
前述のリストで、backup_id
はバックアップ識別子を表し、node_id
はファイルを作成するノードの一意の識別子です。
バックアップファイルの場所は、BackupDataDir
パラメータによって決まります。