EDB Postgres™バックアップとリカバリ ガイド
 
 
 
 
EDB Postgres™バックアップとリカバリ2.3
2019年2月4日
 
1 はじめに
EDB バックアップ そして 回復 ツールBART )は、複数のローカルまたはリモートEDB Postgres™Advanced ServerおよびPostgreSQL®データベースサーバーのバックアップおよびリカバリ管理を簡素化する管理ユーティリティです。
以下は、BARTが提供する主な機能の一部です。
以下のセクションでは、BARTのインストール、設定、および使用に必要な情報を提供します。
セクション 2では、BARTのコンポーネントと概念の概要を説明します。
セクション 3では、BARTのインストール、以前のバージョンのBARTからのアップグレード、およびBARTのアンインストールについて説明します。
セクション 4では、BARTとデータベースサーバをバックアップとリカバリ用に管理するように設定する手順を説明します。
セクション 5では、BARTを使用したバックアップとリカバリの管理プロセスについて説明します。
セクション 6では、ローカルとリモート両方のデータベースサーバーの構成と操作の包括的な例を示します。
このセクションの残りのセクションでは、この文書全体で使用されている基本的な規則について説明します。
1.1 新機能
BART 2.3を作成するために、以下の機能がBART 2.2に追加されました。
MBMファイルを待機するためのタイムアウト値を指定するための新しいパラメータ( mbm - scan - timeout )が導入されました。値がコマンドラインで割り当てられていない場合、デフォルト値は20秒に設定されます。
 
1.2 このガイドで使用されている表記規則
このマニュアルでは、さまざまなコマンド、ステートメント、プログラム、例などの意味と使用方法を明確にするために、特定の表記規則が使用されています。この節では、これらの規則の概要を説明します。
以下の説明では、 用語は、言語キーワード、ユーザー指定の値、リテラルなどである任意の単語または単語のグループを指します。用語の正確な意味は、それが使用される文脈によって異なります。
イタリック体のフォント は、通常は初めて定義する文章の中に新しい用語を導入します。
Fixed-width (mono-spaced) font は、 SQL コマンド、例で使用されている特定のテーブル名および列名、プログラミング言語のキーワード など、文字通りに与えなければならない用語に使用され ます 。例えば、 SELECT * FROM emp;
Italic fixed-width font は、ユーザーが実際の使用法で値を置き換える必要がある用語に使用されます。例えば、 DELETE FROM table_name ;
角括弧[]は、囲まれた用語の1つまたはすべてを置換できることを示します。たとえば、 [ a | b ] 、「 a 」または「 b 」のいずれかを選択するか、または両方を選択しないことを意味します。
中括弧{}は、囲まれた選択肢のうち1つだけを指定する必要があることを示します。たとえば、 { a | b }正確に一つ「の意味a 」又は「 b 」を指定しなければなりません。
省略記号...は、前の用語が繰り返される可能性があることを示します。たとえば、 [ a | b ] ...あなたが「 baaba 」というシーケンスを持っているかもしれないことを意味します。
 
 
 
 
 
 
 
1.3 このガイドで使用されているその他の規則
以下は、この文書で使用されている他の規則のリストです。
この文書の多くの情報はPostgreSQLとEDB Postgres Advanced Serverデータベースシステムに互換的に適用されます。 Advanced Server という用語はEDB Postgres Advanced Serverを指すために使用されます。 Postgresという用語は、PostgreSQLとAdvanced Serverの両方を総称的に指すために使用されます。これら2つのデータベースシステムを区別する必要がある場合は、特定の名前(PostgreSQLまたはAdvanced Server)が使用されます。
PostgreSQLまたはAdvanced Server製品のインストールディレクトリパスは POSTGRES_INSTALL_HOME と呼ばれます。 PostgreSQL Linuxインストールの場合、これはデフォルトで/opt/PostgreSQL/ x .バージョン10以前の場合はx 。それ以降のバージョンでは、PostgreSQLコミュニティパッケージを使用してください。バージョン10以前の対話式インストーラを使用して実行されたAdvanced Server Linuxインストールの場合、これはデフォルトで/opt/PostgresPlus/ x . x ASまたは/opt/edb/as x . x 。 RPMパッケージを使用して実行されたAdvanced Server Linuxインストールの場合、これはデフォルトで/usr/ppas- x . xまたは/usr/edb/as x . x 。製品のバージョン番号はxで表され. xまたはバージョン10以降の場合はxx 。バージョン11のRPMパッケージを使用して実行されたAdvanced Server Linuxインストールの場合、これはデフォルトで/usr/edb/as11ます。
 
1.4 前提条件
次の節では、サポートされているプラットフォームとデータベースサーバのバージョン、およびソフトウェア要件について詳しく説明します。
1.4.1 サポートされているプラットフォーム
BARTは以下のプラットフォームにインストールできます。
注: BARTは現在64ビットプラットフォームでのみ動作します。
1.4.2 サポートされているデータベースのバージョン
BART 2.3は以下のデータベースバージョンを管理できます。
注: Advanced Serverバージョン11のinitdb --wal-segsizeオプションを使用して作成できるなど、デフォルトサイズの16 MB以外のWALセグメントファイルサイズを含むデータベースクラスタからバックアップを--wal-segsizeできます。
Advanced Serverの initdb --wal-segsizeオプションについては、次のWebサイトにある 『 EDB Postgres Advanced Server 11ガイド 』の3.7 「カスタマイズ可能なWALセグメントファイルサイズ」を参照してください。
https://www.enterprisedb.com/resources/product-documentation
 
1.4.3 ソフトウェア要件
次のセクションでは、BARTホストとインストールに必要な追加コンポーネントについて詳しく説明します。
1.4.3.1 BARTホストコンポーネント
BARTホストと、増分バックアップを復元するリモートデータベースサーバホストに、次のコンポーネントをインストールします(これらのリモートホストにもBARTのインストールが必要です)。
Postgresの libpqライブラリ
Postgresの pg_basebackupユーティリティプログラム。スタンバイサーバーからバックアップを取り、特定の条件で任意のデータベースサーバーからフルバックアップを取ります。
BARTホストコンポーネントは、EnterpriseDB RPMパッケージを使用してインストールされています。これらのコンポーネントのインストール方法については、セクション 3.1参照してください
1.4.3.2 追加コンポーネント
BARTホストコンポーネントに加えて、次のコンポーネントを有効にして有効化する必要があります。
SSHとSCPクライアントプログラムは、BARTのホスト上だけでなく、リモート・データベース・サーバーのホスト上で使用可能でなければなりません。
 
1.4.4 pg_basebackupの制限
BARTは 、以下の状況でpg_basebackupユーティリティプログラムを使用して完全バックアップを pg_basebackupます。
--with-pg_basebackupオプションがで指定されているBACKUPの使用強制のためのサブコマンドpg_basebackup (項参照5.4.3を
有効なスレッド数は1で、 --no-pg_basebackupオプションはBACKUPサブコマンドではBACKUPされていません。 BART設定ファイルでthread_countパラメータを設定するthread_countについては、セクション4.1および4.2.5を参照してください。
BART設定ファイルのグローバルセクションで、パラメータ pg_basebackup_pathpg_basebackupプログラムへの完全なディレクトリパスを指定します。このパラメータについては4.1節を参照してください。
pg_basebackupで入手可能なPostgreSQLのコア・ドキュメントを参照してください。
https://www.postgresql.org/docs/11/static/app-pgbasebackup.html
使用上の制限があります pg_basebackupによってpg_basebackupバージョンとのPostgresデータベース・サーバのバージョンが。
データベースサーバは 、データベースサーバのバージョンと同じまたはそれ以降のバージョンのpg_basebackup使用してのみバックアップできます。たとえば、 pg_basebackupバージョン9.5ではデータベースサーバーバージョン9.5をバックアップできますが、データベースサーバーバージョン9.6のバックアップには使用できません。
2 概要
BARTはPostgresデータベースサーバで提供される継続的なアーカイブとポイントインタイムリカバリ方法のための単純化されたインターフェースを提供します。これは次のプロセスで構成されています。
ブロックレベルの増分バックアップ と呼ばれるデータベースクラスタの変更されたイメージの取得 。これはフルバックアップと似ていますが、すべてのフルリレーションファイルではなく、前回のバックアップ以降に変更されたリレーションファイルの変更ブロックを含みます。
データベースファイルに加えられる変更を継続的に記録する先行書き込みログセグメント (WALファイル)のアーカイブ
実行連続と共にフルバックアップ使用してタイムラインに対して指定されたトランザクションIDやタイムスタンプにポイントインタイムリカバリ (PITR)をブロックレベルの増分バックアップ同じバックアップチェーンに存在し、そしてWALファイル
WALファイルとポイントインタイムリカバリに関する詳細は、次の PostgreSQLコアドキュメントに 記載されてい ます
https://www.postgresql.org/docs/11/static/continuous-archiving.html
ブロックレベルの増分バックアップは、単に 増分バックアップ と呼ばれ ます
一般的な バックアップとは、フルバックアップと増分バックアップの両方を指します。両者を区別する必要がある場合は、 完全バックアップという用語の完全バックアップまたは増分バックアップが使用されます。
注:スタンバイサーバーの場合は、フルバックアップのみを取ることができます。増分バックアップはスタンバイサーバーからは取得できません。スタンバイサーバーについては、次のWebサイトで入手可能なPostgreSQLコアドキュメントを参照してください。
https://www.postgresql.org/docs/11/static/high-availability.html
スタンバイサーバのフルバックアップを取るとき、BARTはPostgreSQL pg_basebackupユーティリティプログラムを使用します
詳細については pg_basebackup 、で入手PostgreSQLのコア・ドキュメントを参照してください。
https://www.postgresql.org/docs/11/static/app-pgbasebackup.html
これらの機能はPostgresデータベースサーバのための完全なバックアップとリカバリ方法論を提供します、しかし、特に分散環境で複数のデータベースサーバを扱うとき、このプロセスの管理はかなり複雑になることがあります。
BARTは、集中管理されたバックアップカタログ、単一の設定ファイル、および必要な操作を制御するコマンドラインインターフェイスを使用することによって、この管理プロセスを簡素化します。
妥当なデフォルト値は、さまざまなバックアップおよび復元オプションに自動的に使用されます。 BARTはまた、そのコマンドラインインターフェイスを使用して、ポイントインタイムリカバリに必要なリカバリファイル設定を実行します。
BARTは、バックアップ管理を強化するために以下の機能も提供します。
BARTを使用するための主なコンポーネントは以下のとおりです。
BARTホスト BARTがインストールされているホストシステム。 BART操作はこのホストシステムから呼び出されます。データベースサーバのバックアップとアーカイブされたWALファイルもこのホストに保存されます。
BARTユーザーアカウント BARTを実行することを選択したLinuxオペレーティングシステムのユーザーアカウント。 BARTユーザーアカウントはBARTバックアップカタログディレクトリを所有しています。
BART設定ファイル BARTによって使用される構成情報を含む編集可能なテキスト形式のファイル。
BARTバックアップカタログ。 BARTによって管理されているデータベースサーバーのすべてのバックアップおよびアーカイブされたWALファイルを含むファイルシステムディレクトリ構造。
BART Backupinfoファイル。 BARTバックアップに関する情報を含むテキスト形式のファイル。 backupinfoファイルは、BARTバックアップカタログ内の各バックアップサブディレクトリにあります。
BARTコマンドラインユーティリティプログラム。すべてのBART操作を開始するために使用されるbartという名前の単一の実行可能ファイル。
BART WALスキャナープログラム。 bart-scannerという名前の単一の実行可能ファイル。WALファイルをスキャンして、増分バックアップ用に変更されたブロックを見つけて記録するために使用されます。
この文書で参照されている他の概念と用語には、次のものがあります。
Postgresデータベースクラスタ。一般にデータディレクトリとも呼ばれる、これは特定のPostgresデータベースサーバインスタンスに関連するすべてのデータファイルが格納されるファイルシステムディレクトリです。データベースクラスタは、Postgres initdbコマンドおよびpg_ctlコマンドによって作成、起動、停止などが行われるときに、 –Dオプションによって識別されます。通常、デフォルトでは、初期データベースクラスタはPOSTGRES_INSTALL_HOME /dataディレクトリにあり/data 。フルバックアップはデータベースクラスタのコピーです。
注:単一のデータベースサーバーで複数のデータベースクラスターを実行することはできますが、データベースクラスターとデータベースサーバーという用語は、この文書では同じ意味で使われています。
Postgresのユーザーアカウント Advanced ServerまたはPostgreSQLデータベースサーバを実行し、データベースクラスタディレクトリを所有するLinuxオペレーティングシステムのユーザアカウント。
デフォルトでは 、Oracleデータベースとの互換性をサポートするためにAdvanced Serverがインストールされている場合、データベースユーザーアカウントは enterprisedbです。
Advanced ServerがPostgreSQL互換モードでインストールされている場合、デフォルトではデータベースユーザアカウントは postgresです。
注: BART構成パラメーターcluster_ownerは、各データベースサーバーのデータベースユーザーアカウントに設定する必要があります。詳細は項4.2.5を参照してください。
レプリケーションデータベースユーザー。 BARTによって管理される各データベースサーバーに対して、データベーススーパーユーザーを選択して、レプリケーションデータベースユーザーとして機能させる必要があります。このデータベースユーザーは、バックアップが行われるときにデータベースサーバーに接続するために使用されます。最初のPostgresデータベースサーバインストール( enterprisedbまたはpostgres )で作成されたデータベーススーパーユーザは、この目的に使用できます。
注:各データベースサーバーについて、BART構成パラメーターuserをこの複製データベースユーザーに設定する必要があります。詳細は項4.2.5を参照してください。
セキュアシェル(SSH)/セキュアコピー(SCP)。 Linuxユーティリティプログラムは、ホストへのログイン(SSH)およびホスト間でのファイルのコピー(SCP)に使用されていました。ターゲットホストに存在する有効なユーザーアカウントを指定する必要があります。有効なユーザーアカウントは、SSHまたはSCP操作が行われるユーザーアカウントです。
セクション 4では、これらすべてのコンポーネントがBARTでどのように構成され使用されるかについての情報を提供します。
 
2.1 ブロックレベルの増分バックアップ
このセクションでは、単に増分バックアップと呼ばれるブロックレベルの増分バックアップの基本概念について説明します。増分バックアップはBARTにとってユニークなユーティリティです。
完全バックアップを使用する場合と比較して、増分バックアップには多くの利点があります。
通常、保存方針管理などのBART機能はすべて、フルバックアップだけでなく増分バックアップにも適用されます。増分バックアップに適用される保存方針管理については、 5.2.5 項を参照してください。
 
2.1.1 増分バックアップの制限事項と要件
以下の制限が増分バックアップに適用されます。
増分バックアップは、スタンバイ・データベース・サーバで撮影することはできません。スタンバイデータベースサーバーからはフルバックアップのみを取得できます。
増分バックアップを実装する前に、以下の要件を満たす必要があります。
BART構成ファイルでは、 cluster_ownerパラメーターを、増分バックアップの元となるデータベースクラスターのディレクトリを所有するLinuxオペレーティングシステムのユーザーアカウントに設定する必要があります。 allow_incremental_backupsパラメータを有効にする必要があります。詳細は項4.2.5を参照してください。
BARTホスト上のBARTユーザアカウントとデータベースサーバ上のcluster_ownerユーザアカウントの間に、パスワードなしのSSH / SCP接続を確立する必要があります。 注: BARTとデータベースサーバが同じホストで実行されていて、BARTユーザアカウントとcluster_ownerユーザアカウントが同じアカウントである場合でも、このパスワードなしのSSH / SCP接続を確立する必要があります。詳しくは4.2.1項を参照してください。
BARTバックアップカタログが存在するBARTホストに加えて、BARTパッケージも、増分バックアップを復元するすべてのリモートデータベースサーバにインストールする必要があります。増分バックアップを復元するには、BART構成ファイルのremote_hostパラメーターで指定されたリモート・ユーザー、またはRESTOREサブコマンドを使用して増分バックアップを復元するときの-rオプションで指定されたリモート・ユーザーがbartプログラムをリモート・ホストで実行できる必要があります。リモートホストでの増分バックアップの復元については、 2.1.5.2項を参照してください。
リモートデータベースサーバーで増分バックアップを復元するには、BARTホスト上のBARTユーザーアカウントから BART構成ファイルのremote_hostパラメーターで指定されたリモートホスト上のリモートユーザーへ、パスワードなしのSSH / SCP接続を確立する必要があります。または、 RESTOREサブコマンドを使用して増分バックアップを復元するときに-rオプションを指定します。リモートホストでの増分バックアップの復元については、 2.1.5.2項を参照してください。
BARTバックアップカタログ内のアーカイブされたWALファイルの圧縮は、増分バックアップが行われるデータベースサーバーに対しては許可されていません。 BART構成ファイル wal_compression設定は、これらのデータベースサーバーに対して有効にしないでください。グローバルセクションまたはサーバーセクションでパラメータが変更されていない限り、無効がデフォルト設定です。 wal_compressionパラメータについては、セクション4.1および4.2.5を参照してください。
次のセクションでは、基本的な増分バックアップの概念の概要について説明します。
 
2.1.2 概念の概要
増分バックアップの使用には、以下の一連のステップが含まれます。
1。
2。
3。
最初のフルバックアップは BACKUPサブコマンドで実行する必要があります 。このフルバックアップは、最初の増分バックアップの親を確立します。
4。
5。
増分バックアップは、 BACKUPサブコマンドと--parentオプションを使用して 、前のフルバックアップまたは増分バックアップのバックアップIDまたは名前を指定します。すべてのバックアップが同じタイムラインに属している限り、以前のバックアップを親として選択できます。
6。
7。
増分バックアップのリストア処理は、フルバックアップのリストアと同じ方法でRESTOREサブコマンドを使用して呼び出されます-iオプションは、復元する増分バックアップのバックアップIDまたは名前を指定します。復元プロセスは、チェーンを開始する最初のフルバックアップが識別されるまで、過去の親の増分バックアップのチェーンをたどることから始まります。このフルバックアップは、 -pオプションで指定された場所に復元されるディレクトリとファイルの初期セットを提供します。
8。
以下のセクションでは、これらの手順に関する追加情報をいくつか提供します。
 
2.1.3 WALスキャン - 増分バックアップの準備
親バックアップの時点から増分バックアップの開始時点までに作成されたWALファイルは、WALスキャナープログラム bart-scanner によってスキャンされ、どのブロックが親バックアップ以降に変更されたかが判別されます。
WALスキャナーは、どのブロックが変更されたかを判断し、その情報を 変更ブロックマップ (MBM)ファイルと呼ばれるファイルに記録します。 WALファイルごとに1つのMBMファイルが作成されます。
MBMファイルはアーカイブパスディレクトリに保存されます。 backup_path / server_name /archived_wals
どこで:
backup_path は、BART構成ファイルのグローバルセクションで指定されたBARTバックアップカタログの親ディレクトリです。
server_name は、BART構成ファイルのserverセクションでこのデータベースサーバーに指定されているデータベースサーバー名を小文字に変換したものです。
これは、アーカイブされたWALファイルがBARTバックアップカタログに格納されているのと同じディレクトリです。
以下は、WALファイル用に作成されたMBMファイルを示すアーカイブパスの内容です。 (WALファイルとMBMファイルをより類似した方法でリストするために、ファイルのユーザー名とグループ名は例から削除されています。)
[root@localhost archived_wals]# pwd
/opt/backup/acctg/archived_wals
[root@localhost archived_wals]# ls -l
total 131104
-rw------- 1 ... ... 16777216 Oct 12 09:38 000000010000000100000078
-rw------- 1 ... ... 16777216 Oct 12 09:38 000000010000000100000079
-rw------- 1 ... ... 16777216 Oct 12 09:38 00000001000000010000007A
-rw------- 1 ... ... 16777216 Oct 12 09:35 00000001000000010000007B
-rw------- 1 ... ... 16777216 Oct 12 09:38 00000001000000010000007C
-rw------- 1 ... ... 16777216 Oct 12 09:39 00000001000000010000007D
-rw------- 1 ... ... 16777216 Oct 12 09:42 00000001000000010000007E
-rw------- 1 ... ... 16777216 Oct 12 09:47 00000001000000010000007F
-rw-rw-r-- 1 ... ... 161 Oct 12 09:49 0000000100000001780000280000000179000000.mbm
-rw-rw-r-- 1 ... ... 684 Oct 12 09:49 000000010000000179000028000000017A000000.mbm
-rw-rw-r-- 1 ... ... 161 Oct 12 09:49 00000001000000017A000028000000017B000000.mbm
-rw-rw-r-- 1 ... ... 161 Oct 12 09:49 00000001000000017B000028000000017C000000.mbm
-rw-rw-r-- 1 ... ... 1524 Oct 12 09:49 00000001000000017C000028000000017D000000.mbm
-rw-rw-r-- 1 ... ... 161 Oct 12 09:49 00000001000000017D000028000000017E000000.mbm
-rw-rw-r-- 1 ... ... 161 Oct 12 09:49 00000001000000017E000028000000017F000000.mbm
-rw-rw-r-- 1 ... ... 161 Oct 12 09:49 00000001000000017F0000280000000180000000.mbm
MBMファイルの拡張子は .mbmです。
増分バックアップの準備として、WARTファイルはBARTバックアップカタログにコピーされたらすぐにスキャンする必要があります。したがって、データベースクラスタのWALファイルがBARTバックアップカタログにアーカイブされるとすぐに、WALスキャナが実行されているはずです。
BARTバックアップカタログにまだスキャンされていないWALファイルが含まれている場合、WALスキャナを起動するとこれらのファイルのスキャンが開始されます。
WALファイルのスキャンに失敗した(MBMファイルが見つからない)場合は、WALスキャナを使用して個々のWALファイルを指定できます。
注: rsyncユーティリティを使用してWARTファイルをBARTバックアップカタログにコピーする場合など、特定の状況下では、WALファイルはスキャンおよびMBMファイルの作成のためにWALスキャナプログラムによって見逃される可能性があります。 BART設定ファイルのscan_intervalパラメータを使用して、BARTバックアップカタログのアーカイブディレクトリにあるWALファイルを強制的にスキャンし、MBMファイルが確実に生成されるようにします。セクションを参照してください4.14.2.5 、および5.5の情報のために。
WALスキャナの使用方法については、 5.5 項を参照してください
 
2.1.4 増分バックアップの実行
親バックアップの時点から増分バックアップの開始時点までに作成されたWALファイルには、その期間中にどのブロックが変更されたかに関する情報が含まれています。その情報は、WALスキャナによってWALファイルごとにMBMファイルに統合されます。
関連するWALファイルのMBMファイルが読み込まれ、その情報を使用して、変更されたブロックがデータベースクラスタからBARTバックアップカタログにコピーされます。完全なプレーンバックアップと比較すると、増分バックアップの場合、リレーションファイルの数とサイズは大幅に少なくなります。
比較のために、以下は、 1つのデータベースのフルバックアップのarchived baseサブディレクトリにコピーされたファイルの簡略リストです
[root@localhost 14845]# pwd
/opt/backup/acctg/1476301238969/base/base/14845
[root@localhost 14845]# ls
112 13182_vm 14740 16467 16615 2608_vm 2655 2699 2995 ...
113 13184 14742 16471 174 2609 2656 2701 2995_vm ...
1247 13186 14745 16473 175 2609_fsm 2657 2702 2996 ...
1247_fsm 13187 14747 16474 2187 2609_vm 2658 2703 2998 ...
1247_vm 13187_fsm 14748 16476 2328 2610 2659 2704 2998_vm ...
1249 13187_vm 14749 16477 2328_fsm 2610_fsm 2660 2753 2999 ...
1249_fsm 13189 14752 16479 2328_vm 2610_vm 2661 2753_fsm 2999_vm ...
1249_vm 13191 14754 16488 2336 2611 2662 2753_vm 3079 ...
1255 13192 14755 16490 2336_vm 2611_vm 2663 2754 3079_fsm ...
.
.
.
13182_fsm 14739 16465 16603 2608_fsm 2654 2696 2893_vm 3501_vm ...
対照的に、以下は、後続の増分バックアップからの同じデータベースのアーカイブされた baseサブディレクトリの内容です
[root@localhost 14845]# pwd
/opt/backup/acctg/1476301835391/base/base/14845
[root@localhost 14845]# ls
1247 1249 1259 16384 17006 2608 2610 2658 2663 2678 ...
1247_fsm 1249_fsm 1259_fsm 16387 17009 2608_fsm 2610_fsm 2659 2673 2679 ...
1247_vm 1249_vm 1259_vm 16389 17011 2608_vm 2610_vm 2662 2674 2703 ...
MBMファイルからの情報は、 統合ブロックマップ (CBM)ファイルと呼ばれる1つのファイルに統合される 。増分バックアップの復元操作中に、CBMファイルを使用して、そのバックアップ用に復元される変更済みブロックを識別します。
さらに、増分バックアップでは、フルバックアップの場合と同様に、データベースクラスタの他の必要なサブディレクトリとファイルも保存されます。
BACKUPサブコマンドを使用して増分バックアップをとる方法については、 5.4.3 項を参照してください
 
2.1.5 増分バックアップの復元
増分バックアップを復元するには、増分バックアップを復元するホストによっては、追加のセットアップ手順が必要になる場合があります。
BARTホスト BARTがインストールされているのと同じホストに増分バックアップを復元する場合は、復元プロセスの概要をセクション 2.1.5.1に示し ます。
リモートホスト。 BARTがインストールされていないリモートホストに増分バックアップを復元する場合でも、復元プロセスはセクション2.1.5.1に概説されている手順に従いますが、さらにセクション2.1.5.2の要件も満たす必要があります。
bartため、プログラムは、リモートホスト上で利用可能でなければならないRESTOREの実行中に増分バックアップ結果のサブコマンド呼び出しをbart復元ディレクトリ内の適切な場所に変更されたブロックを復元するために、リモートホスト上のプログラム。
次のセクションでは、一般的な増分バックアップ復元プロセスについて説明します。
2.1.5.1 増分バックアップの一般的な復元プロセス
バックアップIDまたは名前を指定し、 RESTOREサブコマンドを呼び出して増分バックアップを復元するときに-iオプションを含めます。完全バックアップを復元する場合と同じ方法で、すべてのRESTOREオプションが使用されます。
最初に、バックアップチェーンの先頭からのフルバックアップのすべてのファイルが復元されます。
増分バックアップごとに、CBMファイルを使用して増分バックアップからブロックを識別および復元します。
CBMファイルで識別された新しい関係またはデータベースがある場合は、関連する関係ファイルがコピーされます。リレーションまたはデータベースのドロップを示す統合ブロックマップ情報が見つかった場合は、関連ファイルが復元ディレクトリから削除されます。同様に、テーブルの切り捨ての兆候がある場合、関連ファイルは切り捨てられます。
増分バックアップを復元するためのRESTOREサブコマンドの使用方法については、 5.4.8 項を参照してください 。また、 RESTOREサブコマンドの-wオプションを使用して、変更されたブロックを復元ホストにストリーミングするための複数の並列ワーカープロセスを指定することにも注意してください。
2.1.5.2 リモートホストでの増分バックアップの復元
BARTがインストールされていないリモートホストに増分バックアップを復元する場合は、次の手順を実行する必要があります。
手順1:増分バックアップを復元するリモートホストにBARTをインストールします。このリモートホストにBARTをインストールするには、セクション3.1の手順に従ってください。
注:リモートホストにインストールされているBART設定ファイルbart.cfg編集する必要はありません。
手順2:リモートユーザーとして使用するリモートホスト上のLinuxオペレーティングシステムのユーザーアカウントを決定します。このユーザーは、BART構成ファイルのremote_hostパラメーター、またはRESTOREサブコマンドを使用して増分バックアップを復元するときの-rオプションで指定されます。リモートユーザーは、リモートホスト上で増分バックアップを復元するディレクトリの所有者である必要があります。デフォルトでは、ユーザーアカウントはAdvanced Serverの場合はenterprisedb 、PostgreSQLの場合はpostgresです。
ステップ3:パスワードなしのSSH / SCP接続が、BARTホストのBARTユーザからリモートホストのリモートユーザへ確立されていることを確認してください。パスワードなしのSSH / SCP接続の設定については、セクション4.2.1を参照してください。
ステップ4:リモートユーザーがリモートホストに接続するとき、リモートユーザーのPATH環境変数にBART binディレクトリを含める必要があります。たとえば、ユーザーの~/.bashrcファイルまたは~/.bash_profileファイルを変更して、次の例に示すようにPATH環境変数を設定します。
# .bashrc
 
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
 
# User specific aliases and functions
 
export PATH=/usr/edb/bart/bin:$PATH
 
2.1.6 バックアップチェーンの作成
バックアップチェーンは、フルバックアップとその連続増分バックアップの全てからなるバックアップのセットです。チェーン内のすべての増分バックアップの親バックアップを遡ってトレースすると、最終的にその単一のフルバックアップに戻ります。
マルチフォーク 」バックアップチェーンを作成することもできます。これは、連続する2行以上の増分バックアップで、すべて同じフルバックアップで始まります。したがって、チェーン内には、複数の増分バックアップの親として機能するバックアップがあります。
増分バックアップの復元は、最初に完全バックアップ、次に RESTOREサブコマンドで指定された増分バックアップまでのすべての連続増分バックアップを復元することに依存しているため、以下の点に注意することが重要です。
保持ポリシー管理のアクションは、フルバックアップと、チェーン内の連続するすべての増分バックアップに、それらが1つのバックアップである場合と同じ方法で適用されます。したがって、保存方針管理を使用しても、バックアップチェーンが分割されることはありません。増分バックアップの保存方針管理については、 5.2.5 項を参照してください。
以下はバックアップチェーンの例です。
allow_incremental_backupsパラメータがに設定されてenabled記載されているデータベース・サーバ上の増分バックアップを可能にするために、BARTの設定ファイルに:
[BART]
bart_host= enterprisedb@192.168.2.27
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5445
user = enterprisedb
cluster_owner = enterprisedb
allow_incremental_backups = enabled
description = "Accounting"
BARTバックアップカタログに対してWALアーカイブを有効にしてデータベースサーバを起動した後、WALスキャナを起動します。
-bash-4.2$ bart-scanner --daemon
まず、 フルバックアップを取ります。
-bash-4.2$ bart BACKUP -s acctg --backup-name full_1
INFO: creating backup for server 'acctg'
INFO: backup identifier: '1490649204327'
63364/63364 kB (100%), 1/1 tablespace
 
INFO: backup completed successfully
INFO: backup checksum: aae27d4a7c09dffc82f423221154db7e of base.tar
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1490649204327
BACKUP NAME: full_1
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/acctg/1490649204327
BACKUP SIZE: 61.88 MB
BACKUP FORMAT: tar
BACKUP TIMEZONE: US/Eastern
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 1
ChkSum File
aae27d4a7c09dffc82f423221154db7e base.tar
 
TABLESPACE(s): 0
START WAL LOCATION: 00000001000000000000000E
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2017-03-27 17:13:24 EDT
STOP TIME: 2017-03-27 17:13:25 EDT
TOTAL DURATION: 1 sec(s)
一連の増分バックアップが行われます。最初の増分バックアップは、フルバックアップを親として指定します。その後の各増分バックアップは、その前の増分バックアップをその親として使用します。 BACKUPサブコマンドについては、 5.4.3 項を参照してください
-bash-4.2$ bart BACKUP -s acctg -F p --parent full_1 --backup-name incr_1-a
INFO: creating incremental backup for server 'acctg'
INFO: checking mbm files /opt/backup/acctg/archived_wals
INFO: new backup identifier generated 1490649255649
INFO: reading directory /opt/backup/acctg/archived_wals
INFO: all files processed
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
INFO: incremental backup completed successfully
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1490649255649
BACKUP NAME: incr_1-a
BACKUP PARENT: 1490649204327
BACKUP LOCATION: /opt/backup/acctg/1490649255649
BACKUP SIZE: 16.56 MB
BACKUP FORMAT: plain
BACKUP TIMEZONE: US/Eastern
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 0
TABLESPACE(s): 0
START WAL LOCATION: 000000010000000000000010
STOP WAL LOCATION: 000000010000000000000010
BACKUP METHOD: pg_start_backup
BACKUP FROM: master
START TIME: 2017-03-27 17:14:15 EDT
STOP TIME: 2017-03-27 17:14:16 EDT
TOTAL DURATION: 1 sec(s)
 
-bash-4.2$ bart BACKUP -s acctg -F p --parent incr_1-a --backup-name incr_1-b
INFO: creating incremental backup for server 'acctg'
INFO: checking mbm files /opt/backup/acctg/archived_wals
INFO: new backup identifier generated 1490649336845
INFO: reading directory /opt/backup/acctg/archived_wals
INFO: all files processed
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
INFO: incremental backup completed successfully
.
.
.
 
-bash-4.2$ bart BACKUP -s acctg -F p --parent incr_1-b --backup-name incr_1-c
INFO: creating incremental backup for server 'acctg'
INFO: checking mbm files /opt/backup/acctg/archived_wals
INFO: new backup identifier generated 1490649414316
INFO: reading directory /opt/backup/acctg/archived_wals
INFO: all files processed
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
INFO: incremental backup completed successfully
.
.
.
次の SHOW-BACKUPSサブコマンドの出力は、バックアップチェーンを一覧表示します。バックアップチェーンは、 full_1incr_1-aincr_1-b 、およびincr_1-cです。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME ...
 
acctg 1490649414316 incr_1-c incr_1-b 2017-03-27 17:16:55 ...
acctg 1490649336845 incr_1-b incr_1-a 2017-03-27 17:15:37 ...
acctg 1490649255649 incr_1-a full_1 2017-03-27 17:14:16 ...
acctg 1490649204327 full_1 none 2017-03-27 17:13:25 ...
フルバックアップ full_1では、 BACKUP PARENTフィールドにはnone含まれてnone 。増分バックアップごとに、 BACKUP PARENTフィールドにバックアップIDまたはその親バックアップの名前が入ります。
2番目のバックアップチェーンは BACKUPサブコマンドと同じ方法で作成されます。以下は、フルバックアップfull_2と増分バックアップincr_2-aおよびincr_2-bからなる、結果として得られる2番目のバックアップチェーンの追加を示しています。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME ...
 
acctg 1490649605607 incr_2-b incr_2-a 2017-03-27 17:20:06 ...
acctg 1490649587702 incr_2-a full_2 2017-03-27 17:19:48 ...
acctg 1490649528633 full_2 none 2017-03-27 17:18:49 ...
acctg 1490649414316 incr_1-c incr_1-b 2017-03-27 17:16:55 ...
acctg 1490649336845 incr_1-b incr_1-a 2017-03-27 17:15:37 ...
acctg 1490649255649 incr_1-a full_1 2017-03-27 17:14:16 ...
acctg 1490649204327 full_1 none 2017-03-27 17:13:25 ...
incr_1-bを親として指定する incr_1-b-1始まる次の追加の増分バックアップでは、そのバックアップからfull_1incr_1-aincr_1-bで構成されるチェーンの2行目のバックアップに分岐します。次のリストに示すように、 incr_1-b-1incr_1-b-2 、およびincr_1-b-3
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME ...
 
acctg 1490649791430 incr_1-b-3 incr_1-b-2 2017-03-27 17:23:12 ...
acctg 1490649763929 incr_1-b-2 incr_1-b-1 2017-03-27 17:22:44 ...
acctg 1490649731672 incr_1-b-1 incr_1-b 2017-03-27 17:22:12 ...
acctg 1490649605607 incr_2-b incr_2-a 2017-03-27 17:20:06 ...
acctg 1490649587702 incr_2-a full_2 2017-03-27 17:19:48 ...
acctg 1490649528633 full_2 none 2017-03-27 17:18:49 ...
acctg 1490649414316 incr_1-c incr_1-b 2017-03-27 17:16:55 ...
acctg 1490649336845 incr_1-b incr_1-a 2017-03-27 17:15:37 ...
acctg 1490649255649 incr_1-a full_1 2017-03-27 17:14:16 ...
acctg 1490649204327 full_1 none 2017-03-27 17:13:25 ...
増分バックアップの復元は、完全バックアップの復元と同じ方法でRESTOREサブコマンドとそのオプションを使用して行われます。次のように、復元する増分バックアップのバックアップIDまたはバックアップ名を指定してください。
-bash-4.2$ bart RESTORE -s acctg -p /opt/restore -i incr_1-b
INFO: restoring incremental backup 'incr_1-b' of server 'acctg'
INFO: base backup restored
INFO: archiving is disabled
INFO: permissions set on $PGDATA
INFO: incremental restore completed successfully
前の例で示したように増分バックアップ incr_1-bを復元すると、フルバックアップfull_1 、次に増分バックアップincr_1-aそして最後にincr_1-bます。
RESTORE サブコマンド については、 5.4.8 項を参照してください
3 BART 2.3のインストールまたはアップグレード
このセクションでは、CentOS 6.xまたは7.x、Red Hat Enterprise Linux(RHEL)6.xまたは7.x、またはPowerPC 64リトルエンディアン(ppc64le)でのBARTのインストールおよびアップグレードプロセスの概要について説明します。
セクション 3.1では 、以前のバージョンのBARTがホストにインストールされていない場合のBART 2.3のインストールプロセスについて説明しています。
セクション 3.2 では、SLES 12ホストへのBART 2.3のインストールプロセスについて説明しています。
セクション 3.3 では、BART 2.3のアップグレードプロセスについて説明しています。
3.1 BART 2.3のインストール
BARTは libpqライブラリとBoostライブラリを含むいくつかの依存関係を必要とします。これらの依存関係はEDB RPMインストーラーによって満たされます。以下のステップを実行して、これらの依存関係とBART製品をインストールしてください。
ステップ1: EPELパッケージ( Enterprise Linux用の追加パッケージ)をインストールします。これには、ご使用のLinuxオペレーティングシステムに応じてインストールが必要な場合がある特定のライブラリが含まれています。
yum install epel-release*
If yum cannot access a repository that contains epel-release, you will get an error message:
No package epel available.
Error: Nothing to do
If you receive this error, you can download the EPEL rpm package, and install it manually. To manually install If you receive this error, you can download the rpm package, and install it manually. To manually install EPEL, rpm package, and install it manually. To manually install download the rpm package, assume superuser privileges, navigate into the directory that contains the package, and install with the command: EPEL with the command: download the rpm package, assume superuser privileges, navigate into the directory that contains the package, and install with the command:
yum install epel-release
EPEL For more information about installing , visit: EPEL , visit:
https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
Yumの使い方については、YumプロジェクトのWebサイトを参照してください。
http://yum.baseurl.org/
手順2: スーパーユーザー特権を想定し、rpmまたはyumを使用してリポジトリ設定ファイルを作成します。
rpm -Uvh https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm
または
yum install -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm
ステップ3選択したエディタを使用してリポジトリ設定ファイルを変更し、パッケージをインストールする各リポジトリを有効にして、資格情報を入力します。リポジトリ設定ファイルの名前はedb.repoです。 /etc/yum.repos.dにあります。
リポジトリを有効にするには、enabledパラメータの値を1に変更し、baseurl仕様のユーザー名とパスワードのプレースホルダをユーザー名とリポジトリパスワードに置き換えます。
EDB Yumリポジトリへの認証情報を要求するには、次のWebサイトにアクセスしてください。
https://www.enterprisedb.com/repository-access-request
EDB Yum Repositoryの使用に関する詳細は、以下のEnterpriseDB Webサイトから入手可能なLinux用EDB Postgres Advanced Serverインストールガイドの セクション3を参照してください
https://www.enterprisedb.com/resources/product-documentation
以下のリポジトリを有効にします。
Advanced Server 9.6以降用のedbas xx 。最新バージョンのAdvanced Serverを使用することをお勧めします。
たとえば、 enterprisedb-toolsリポジトリにアクセスするには、次のエントリを有効にします。
[enterprisedb-tools]
name=EnterpriseDB Tools $releasever - $basearch
baseurl=http://<username>:<password>@yum.enterprisedb.com/tools/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY
次の手順に進む前に、必要なリポジトリエントリが有効になっていることを確認してください。
ステップ4:リポジトリ設定ファイルの該当するエントリを変更した後、設定ファイルを保存してエディタを終了します。
ステップ5(オプション):サーバクライアントパッケージを使ってpg_basebackupユーティリティプログラムをインストールします。
BARTホストにpg_basebackupプログラムをpg_basebackupインストールしていない場合 、または後でBARTホストにPostgreSQLデータベースサーバまたはAdvanced Serverをインストールする予定がない場合は、 pg_basebackupプログラムを含む限られた数のファイルをインストールできます。次のコマンドでサーバークライアントパッケージを作成します。
yum install edb- as xx -server-client
例を以下に示します。
[root@localhost ~]# yum install edb-as10-server-client
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.cs.pitt.edu
* epel: mirror.cs.princeton.edu
* extras: mirror.us-midwest-1.nexcess.net
* updates: mirrors.syringanetworks.net
edb-repos | 2.4 kB 00:00
edbas10 | 2.5 kB 00:00
edbas10/primary_db | 22 kB 00:00
enterprisedb-dependencies | 2.5 kB 00:00
enterprisedb-tools | 2.5 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package edb-as10-server-client.x86_64 0:10.1.5-1.rhel6 will be installed
--> Processing Dependency: edb-as10-server-libs(x86-64) = 10.1.5-1.rhel6 for package: edb-as10-server-client-10.1.5-1.rhel6.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: edb-as10-server-client-10.1.5-1.rhel6.x86_64
--> Running transaction check
---> Package edb-as10-server-libs.x86_64 0:10.1.5-1.rhel6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
=====================================================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================================================
Installing:
edb-as10-server-client x86_64 10.1.5-1.rhel6 edbas10 1.2 M
Installing for dependencies:
edb-as10-server-libs x86_64 10.1.5-1.rhel6 edbas10 531 k
 
Transaction Summary
=====================================================================================================================================================
Install 2 Package(s)
 
Total download size: 1.7 M
Installed size: 7.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): edb-as10-server-client-10.1.5-1.rhel6.x86_64.rpm | 1.2 MB 00:00
(2/2): edb-as10-server-libs-10.1.5-1.rhel6.x86_64.rpm | 531 kB 00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------
Total 3.1 MB/s | 1.7 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : edb-as10-server-libs-10.1.5-1.rhel6.x86_64 1/2
Installing : edb-as10-server-client-10.1.5-1.rhel6.x86_64 2/2
Verifying : edb-as10-server-client-10.1.5-1.rhel6.x86_64 1/2
Verifying : edb-as10-server-libs-10.1.5-1.rhel6.x86_64 2/2
 
Installed:
edb-as10-server-client.x86_64 0:10.1.5-1.rhel6
 
Dependency Installed:
edb-as10-server-libs.x86_64 0:10.1.5-1.rhel6
 
Complete!
ステップ6: BART RPMパッケージをインストールしてください。 Yumを使用すると、BARTに必要なすべての依存関係がインストールされます。これらのパッケージは、 edb.repoリポジトリ設定ファイルで有効にしたリポジトリからアクセスします。
次の構文は、 yumコマンドを使用して、現在の作業ディレクトリにダウンロードされたBART RPMパッケージファイルをインストールします。ローカルパッケージファイルは、完全なRPMパッケージファイル名を使用してインストールされます。
yum install edb-bart-2.3. x - x .rhel7.x86_64.rpm
EDB Yum Repository Webサイトから直接BART RPMパッケージをインストールするには、パッケージ名のみを指定します。
yum install edb-bart
例を以下に示します。
[root@localhost ~]# yum install edb-bart-2.3.0-1.rhel7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining edb-bart-2.3.0-1.rhel7.x86_64.rpm: edb-bart-2.3.0-1.rhel7.x86_64
Marking edb-bart-2.3.0-1.rhel7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package edb-bart.x86_64 0:2.3.0-1.rhel7 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
========================================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================================
Installing:
edb-bart x86_64 2.2.0-1.rhel7 /edb-bart-2.3.0-1.rhel7.x86_64 2.1 M
 
Transaction Summary
========================================================================================================================================================================================
Install 1 Package
 
Total size: 2.1 M
Installed size: 2.1 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : edb-bart-2.3.0-1.rhel7.x86_64 1/1
/sbin/ldconfig: File /lib/libpq.so.5.8 is empty, not checked.
Verifying : edb-bart-2.3.0-1.rhel7.x86_64 1/1
 
Installed:
edb-bart.x86_64 0:2.3.0-1.rhel7
 
Complete!
インストールが成功すると、BART製品は BART_HOME という次のディレクトリにインストールされます
/usr/edb/bart
以下のファイルがインストールに含まれています。
表3-1 - インストール後のファイル
BART_HOME /bin
BART_HOME /bin
BART_HOME /etc
xlogreader_ ident .so
BART_HOME /lib
BARTサブコマンドを呼び出してインストールを確認することもできます。
[root@localhost ~]# cd /usr/edb/bart/bin
[root@localhost bin]# ./bart --version
bart (EnterpriseDB) 2.3.0
手順7: PATH環境変数の設定を調整して、次のユーザーアカウントの~/.bashrcファイルまたは~/.bash_profileファイルにBART 2.3 binサブディレクトリのディレクトリの場所を含めます。
ステップ8:このセクションで説明されているインストールプロセスを繰り返して、BART 2.3を使用して増分バックアップを復元するすべてのリモートホストにBART 2.3をインストールします。リモートホストでの増分バックアップの復元の詳細については、 2.1.5.2項を参照してください。
これでBART 2.3を使ってバックアップを取る準備が整いました。
ステップ9: BARTをインストールした後、インストールを設定する必要があります。設定の詳細についてはセクション4を参照してください。
 
3.2 SLES 12ホストへのBARTのインストール
このセクションでは、SLES 12ホストにBARTをインストールするための特別な手順について説明します。
SLES 12ホストにBARTをインストールするには、zypperパッケージマネージャを使用できます。 zypperはパッケージをインストールするときにパッケージの依存関係を満たそうとしますが、EnterpriseDBでホストされていない特定のリポジトリへのアクセスを必要とします。
手順1: BARTをインストールする前に、以下のコマンドを使用してEnterpriseDBリポジトリ設定ファイルをSLESホストに追加します。
zypper addrepo https://zypp.enterprisedb.com/suse/epas96-sles.repo
zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-tools.repo
zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-dependencies.repo
各コマンドは /etc/zypp/repos.dディレクトリにリポジトリ設定ファイルを作成します 。ファイル名は次のとおりです。
edbas96suserepo
edbastoolsrepo
手順2: zypper refreshコマンドを使用してSLESホスト上のメタデータを更新し、EnterpriseDBリポジトリを含めます。
/etc/zypp/repos.d # zypper refresh
Repository 'SLES12-12-0' is up to date.
Repository 'SLES12-Pool' is up to date.
Repository 'SLES12-Updates' is up to date.
Retrieving repository 'EDB Postgres Advanced Server 9.6 12 - x86_64' metadata -----------------------[\]
Authentication required for 'https://zypp.enterprisedb.com/9.6/suse/suse-12-x86_64'
User Name:
Password:
Retrieving repository 'EDB Postgres Advanced Server 9.6 12 - x86_64' metadata...................................[done]
Building repository 'EDB Postgres Advanced Server 9.6 12 - x86_64' cache..........................[done]
All repositories have been refreshed.
...
入力を求められたら User NamePassword 、EnterpriseDBのリポジトリ用の接続の資格情報を提供しています。認証情報が必要な場合は、次のWebサイトにアクセスしてください。
https://www.enterprisedb.com/repository-access-request
ステップ3: EDB Postgres Advanced Serverまたはサポートコンポーネントをインストールする前に、SUSEConnectとSUSE Package Hub拡張をSLESホストに追加し、そのホストをSUSEに登録してSUSEリポジトリにアクセスできるようにする必要があります。以下のコマンドを使用してください。
zypper install SUSEConnect
SUSEConnect -p PackageHub/12/x86_64
SUSEConnect -p sle-sdk/12/x86_64
SUSEホストの登録について詳しくは、次のWebサイトをご覧ください。
https://www.suse.com/support/kb/doc/?id=7016626
ステップ4:アーカイブリポジトリを追加してリポジトリメタデータを更新します。
SUSEConnect -p sle-sdk/12/x86_64
zypper addrepo https://download.opensuse.org/repositories/Archiving/SLE_12_SP3/Archiving.repo
zypper refresh
ステップ5: zypperユーティリティを使ってBARTをインストールします。
zypper install edb-bart
 
3.3 以前のバージョンからのアップグレード
BART 2.3へのアップグレードパスは、以前のインストールによって異なります。
セクション 3.3.1では 、BART 2.1 / 2.2から2.3へのアップグレードプロセスについて説明しています。
セクション 3.3.2 では、2.0 / 2.01から2.3へのアップグレードプロセスについて説明しています。
 
3.3.1 BART 2.1または2.2からBART 2.3へのアップグレード
BART 2.1または2.2からBART 2.3にアップグレードするには、次の手順を実行します。
ステップ1: BART 2.1 / 2.2設定ファイルのコピーをバックアップとして保存します。デフォルトの場所とファイル名は/usr/edb/bart/etc/bart.cfgディレクトリです。
ステップ2: BART 2.3にアップグレードする前に、BARTユーザアカウントのIDを仮定し、次のコマンドを実行してBART 2.1 / 2.2 WALスキャナプログラムbart-scannerを停止します。
bart-scanner STOP
ステップ3: rootユーザーとして、 yum upgradeコマンドを使用してBART 2.3にyum upgrade
EDB Yum Repository WebサイトからBART RPMパッケージを直接更新するには、パッケージ名のみを指定します。
yum upgrade edb-bart
edb-bartパッケージを使用してインストールされているedb-repoの種々のコンポーネントのEDBヤムリポジトリにアクセスするためのURLを含むリポジトリのRPMを、。このリポジトリRPMは、 EDB Yum Repository Webサイトにアクセスしたときに表示されます。
EDB Yumリポジトリへの認証情報を要求するには、次のWebサイトにアクセスしてください。
https://www.enterprisedb.com/repository-access-request
次の構文では、 yumコマンドを使用して、現在の作業ディレクトリにダウンロードされているBART RPMパッケージファイルに更新します。ローカルパッケージファイルは、完全なRPMパッケージファイル名を使用してインストールされます。
yum upgrade edb-bart-2.3. x - x .rhel7.x86_64.rpm
Yumの使い方については、YumプロジェクトのWebサイトを参照してください。
http://yum.baseurl.org/
以下は、アップグレードの例です。
[root@localhost etc]# yum upgrade /home/edb/Desktop/edb-bart-2.3.0-1.rhel7.x86_64.rpm
Loaded plugins: auto-update-debuginfo, fastestmirror, langpacks
Examining /home/edb/Desktop/edb-bart-2.3.0-1.rhel7.x86_64.rpm: edb-bart-2.3.0-1.rhel7.x86_64
Marking /home/edb/Desktop/edb-bart-2.3.0-1.rhel7.x86_64.rpm as an update to edb-bart-2.2.0-1.rhel7.x86_64
Resolving Dependencies
--> Running transaction check
---> Package edb-bart.x86_64 0:2.2.0-1.rhel7 will be updated
---> Package edb-bart.x86_64 0:2.3.0-1.rhel7 will be an update
--> Finished Dependency Resolution
 
Dependencies Resolved
 
==============================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================
Updating:
edb-bart x86_64 2.3.0-1.rhel7 /edb-bart-2.3.0-1.rhel7.x86_64 2.3 M
 
Transaction Summary
==============================================================================================================================================================
Upgrade 1 Package
 
Total size: 2.3 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : edb-bart-2.3.0-1.rhel7.x86_64 1/2
Cleanup : edb-bart-2.2.0-1.rhel7.x86_64 2/2
Verifying : edb-bart-2.3.0-1.rhel7.x86_64 1/2
Verifying : edb-bart-2.2.0-1.rhel7.x86_64 2/2
 
Updated:
edb-bart.x86_64 0:2.3.0-1.rhel7
 
Complete!
ステップ4:親の/usr/edb/bartディレクトリにあるBART 2.1ファイルはBART 2.3ファイルに置き換えられます。 /usr/edb/bart/etcディレクトリーにあるBART構成ファイルbart.cfgが、BART 2.2 / 2.1で使用されている元のファイルであるかどうかを確認してください。存在しない場合は、手順1で保存した設定ファイルを使用できます。
BART 2.3設定ファイル backup_pathパラメータが、既存のBART 2.2 / 2.1バックアップカタログではなく、新しいディレクトリに設定されていることを確認してください 。つまり、BART 2.3を使用して作成された新しいフルバックアップと増分バックアップは、新しいBARTバックアップカタログに保存する必要があります。
注意:
手順5: PATH環境変数の設定に、次のユーザーアカウントの~/.bashrcファイルまたは~/.bash_profileファイル内のBART 2.3 binサブディレクトリのディレクトリの場所が含まれていることを確認します。
注:両方のバージョンとも/usr/edb/bart/bin使用するため、 PATH設定はBART 2.2 / 2.1の設定と同じにする必要があります。
手順6: BART 2.3を使用して増分バックアップを復元するすべてのリモートホストで、このセクションで説明されているインストールプロセスを繰り返してBART 2.3にアップグレードします。リモートホストでの増分バックアップの復元の詳細については、 2.1.5.2項を参照してください。
BART 2.3にアップグレードした後は、増分バックアップを実行する前に、システムの新しいフルバックアップを取る必要があります。
BART 2.3を使用して、親のフルバックアップまたは2.3よりも古いバージョンのBARTを使用して作成された親の増分バックアップから増分バックアップを実行することはできません。 BART 2.3を使用して増分バックアップを作成することは、BART 2.3を使用して作成された親のフルバックアップおよび親の増分バックアップからのみ可能です。
BART 2.3は、BART 2.1またはBART 2.2で作成されたフルバックアップを復元できます。ただし、BART 2.3を使用して、2.3よりも古いバージョンのBARTで作成された増分バックアップを復元することはできません。
 
3.3.2 BART 2.0からBART 2.3へのアップグレード
BART 2.0または2.0.1からBART 2.3にアップグレードするには、次の手順を実行します。
ステップ1: BART 2.3をBART 2.0とは別のディレクトリにインストールします BART 2.3のインストールについては3.1節を参照してください。
ステップ2: BART 2.0設定ファイルのコピーを保存してください。デフォルトの場所とファイル名は/usr/edb/bart2.0/etc/bart.cfgです。
BART 2.3をインストールした後は、BART 2.3に同じ設定ファイルを使用できますが、BART 2.0で使用されているのと同じディレクトリではなく、必ずBARTバックアップカタログに新しいディレクトリを使用してください。
ステップ3: 次のコマンドを使用してBART 2.0を削除します。
yum remove edb-bart20
手順4:新しく作成した/usr/edb/bart/etcディレクトリに、手順1でBART 2.0から保存した構成ファイルbart.cfgbart.cfgます。 (これが設定ファイルのデフォルトの場所であることに注意してください。 -cオプションをBARTサブコマンドとともに使用して、別の設定ファイルの名前または場所を指定できます。詳細については、 5.3項を参照してください。)
BART 2.3設定ファイル backup_pathパラメータが、既存のBART 2.0バックアップカタログではなく、新しいディレクトリに設定されていることを確認してください 。つまり、BART 2.3を使用して作成された新しいフルバックアップと増分バックアップは、新しいBARTバックアップカタログに保存する必要があります。
注意:
手順5: PATH環境変数の設定を調整して、次のユーザーアカウントの~/.bashrcファイルまたは~/.bash_profileファイルにBART 2.3 binサブディレクトリのディレクトリの場所を含めます。
ステップ6: BART 2.0を使用して増分バックアップが復元されたリモートホストでも、BARTホストと同じ方法でBART 2.3のインストールとBART 2.0の削除プロセスを実行する必要があります。
BART 2.3にアップグレードした後は、増分バックアップを実行する前に、システムの新しいフルバックアップを取る必要があります。
BART 2.3を使用して、親のフルバックアップまたは2.3よりも古いバージョンのBARTを使用して作成された親の増分バックアップから増分バックアップを実行することはできません。 BART 2.3を使用して増分バックアップを作成することは、BART 2.3を使用して作成された親のフルバックアップおよび親の増分バックアップからのみ可能です。
BART 2.3では、BART 2.0で作成されたフルバックアップを復元できます。ただし、BART 2.3を使用して、2.3よりも古いバージョンのBARTで作成された増分バックアップを復元することはできません。
4 設定
BARTの主な設定手順は次のとおりです。
次のセクションでは、BARTの初期設定手順について説明します。
4.1 BARTホストの設定
このセクションでは、BARTホストでの基本的な設定手順について説明します。これらの手順を実行すると、これらの設定に対応するパラメータがBART構成ファイル( BART_HOME /etc/bart.cfg )にあります。手順を進めながら、BART設定ファイルでこれらのパラメータを設定します。
注: bart.cfg.sampleファイルを使用してbart.cfg.sampleファイルを作成してbart.cfg
cp bart.cfg.sample bart.cfg
BART設定ファイルの下部には、BARTホストとBARTがサービスを提供する各クラスタの接続情報を入力する必要があるセクションがあります。 [BART]セクションには以下のパラメータが必要です。
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
BARTがサービスを提供する各クラスターには、以下のパラメーターが必要です。
[HR]
host = 192.168.2.24
port = 5432
user = postgres
cluster_owner = postgres
以下のセクションでは、BART構成ファイルのパラメーターの意味と使用法について明確に詳しく説明します。
BART設定ファイルの次のパラメータは、BARTのバックアップとリカバリの管理(およびすべてのBART管理データベースサーバにも同様に)にグローバルに適用されます。
[バート]。 構成ファイルのグローバルセクションを識別します。このパラメーターは必須であり、BARTという名前でなければなりません。
bart_host BARTがインストールされているホストのIPアドレス。このパラメーターの値は、 bart_user @ bart_host_addressの形式で指定する必要があります。ここで、 bart_userは、BARTの実行に使用され、BARTバックアップカタログディレクトリを所有するBARTホスト上のオペレーティングシステムユーザーアカウントです。 bart_host_addressはBARTホストのIPアドレスです。このパラメータは必須です。
backup_path。すべてのBARTデータベースサーバのバックアップとアーカイブされたWALファイルが保存されるファイルシステムの親ディレクトリを指定します。このパラメータは必須です。
pg_basebackup_path。 BARTホストにインストールしたpg_basebackupプログラムへのパスを指定します。選択したpg_basebackupのバージョンに応じて適用される可能性がある制限についての情報は項1.4.4を参照してください。このパラメータは必須です。
xlog_method BACKUPサブコマンドによるpg_basebackup実行中にトランザクションログを収集する方法を決定します。バックアップの完了後にトランザクションログファイルを収集するためにfetchに設定します。フルバックアップの作成と並行してトランザクションログをストリーミングするには、 streamに設定しstreamstreamが使用されている場合、影響を受けるデータベースサーバーのpostgresql.confファイルのmax_wal_senders構成パラメータは、トランザクションログのストリーミング用の追加セッションを考慮する必要があります(つまり、設定は最低2する必要があります)。 BART設定ファイルのserverセクションのxlog_methodパラメータの設定は、その特定のデータベースサーバのグローバルセクションのxlog_methodの設定を上書きします。 serverセクションで省略した場合は、globalセクションのxlog_methodの設定が使用されます。 xlog_methodパラメータがどちらのセクションにも指定されていない場合、デフォルトはfetchです。
retention_policyアクティブなバックアップを廃止予定としてマークし、削除の候補にする時期を決定します。設定は、 max_number BACKUPSmax_number DAYSmax_number WEEKS 、またはmax_number MONTHSいずれかmax_number 。ここで、 max_numberは正の整数です。キーワードBACKUPSDAYSWEEKS 、およびMONTHSがすべて省略されている場合、指定された整数はデフォルトでmax_number BACKUPSとして解釈されます。 BART設定ファイルのserverセクションにretention_policyパラメータを設定すると、その特定のデータベースサーバのグローバルセクションにあるretention_policyの設定が上書きされます。サーバーセクションで省略した場合は、グローバルセクションのretention_policyの設定が使用されます。 retention_policyパラメータがどちらのセクションにも指定されていない場合、 MANAGEサブコマンドを使用しても、追加のバックアップが不要とマークされることはありません。保存方針を使用してバックアップを管理する方法については、 5.2項を参照してください。
wal_compression MANAGEサブコマンドが呼び出されたときに、BARTバックアップカタログ内のアーカイブされたWALファイルの圧縮を有効にします。アーカイブ済みのWALSファイルをgzip形式で圧縮するにはenabledに設定します。ファイルを非圧縮のままにするには、 disabledに設定します。 注: gzip圧縮プログラムはBARTユーザーアカウントのPATHなければなりません。 注:アーカイブWALファイルの圧縮は、増分バックアップをとるデータベースサーバーでは許可されていません。 BART設定ファイルのserverセクションにwal_compressionパラメータを設定すると、その特定のデータベースサーバのグローバルセクションにあるwal_compressionの設定がwal_compressionれます。サーバーセクションで省略した場合は、グローバルセクションのwal_compressionの設定が使用されます。 wal_compressionパラメータがどちらのセクションにも指定されていない場合、デフォルトはdisabledです。 WAL圧縮にMANAGEサブコマンドを使用する方法については、 5.4.7項を参照してください。
copy_wals_during_restore。 RESTOREサブコマンドを呼び出したときにアーカイブWALファイルを収集する方法を決定します。データベースサーバのアーカイブリカバリの前に、アーカイブWALファイルをBARTバックアップカタログからrestore_path /archived_walsディレクトリにコピーするにはenabledに設定します。データベースサーバのアーカイブリカバリ中にBARTバックアップカタログからアーカイブWALファイルを直接取得するには、 disabledに設定しdisabledrecovery.confファイルでBARTが生成したrestore_commandパラメータは、2つのオプションのどちらが使用されているかを反映しています。 RESTOREサブコマンドが-cオプションを指定して呼び出された場合、アーカイブされたWALファイルはBARTバックアップカタログからrestore_path /archived_walsディレクトリにコピーされるため、BART設定ファイルのcopy_wals_during_restoreパラメータの設定はすべて上書き/archived_walsます。 RESTOREサブコマンドが-cオプションなしで呼び出された場合、アーカイブWALファイルの取得方法は次のようになりますcopy_wals_during_restore構成ファイルのserverセクションにあるcopy_wals_during_restoreパラメーターを明示的に設定すると、グローバルセクションのcopy_wals_during_restoreの設定が上書きされます。その特定のデータベースサーバ。 serverセクションで省略した場合は、グローバルセクションのcopy_wals_during_restoreの設定が使用されます。 copy_wals_during_restoreパラメータがどちらのセクションでも明示的に設定されていない場合、デフォルトはdisabled 。追加情報については5.4.8項を参照してください。
ログファイル。 BARTログファイルへのパスを指定します。 bartプログラムからの出力はこのファイルに書き込まれます。このパラメータはオプションです。 logfile =後にログファイルへのパスが指定されていない場合、またはパラメータがコメントアウトされている場合、BARTはログファイルを作成しません。 注: BARTの使用中にBARTログファイルに関して表示される可能性のあるエラーメッセージは、通常、現在のBARTユーザーアカウントが所有していない既存のログファイルが存在することが原因です。この問題を解決するには、既存のログファイルを削除するか名前を変更し、BARTが現在のBARTユーザアカウントが所有する新しいログファイルを作成できるようにします。
scanner_logファイル。 WALスキャナーログファイルへのパスを指定します。 bart-scannerプログラムからの出力はこのファイルに書き込まれます。このパラメータはオプションです。 scanner_logfile =後にログファイルへのパスが指定されていない場合、またはパラメータがコメントアウトされている場合、BARTはWALスキャナログファイルを作成しません。 注: WALスキャナーの使用中にWALスキャナーのログファイルに関するエラーメッセージが表示される場合は、通常、現在のBARTユーザーアカウントが所有していない既存のログファイルが存在することが原因です。この問題を解決するには、既存のログファイルを削除するか名前を変更し、BARTが現在のBARTユーザアカウントが所有する新しいログファイルを作成できるようにします。
スレッド数。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、データベースサーバーからBARTバックアップカタログにブロックをコピーするためのワーカースレッドの数を指定します。同じアプローチは、ワーカースレッドがデータベースサーバーからBARTバックアップカタログにデータファイルをコピーするフルバックアップにも適用されます。
注: 並列バックアップがN個のワーカースレッドで実行されている場合、サーバーとのN + 1個の同時接続が開始されます。
BACKUPサブコマンドが-zまたは-cオプションで指定されているときに、並列の圧縮バックアップを提供するために、フルバックアップをとるときに同じ一連のプロセスが圧縮操作に使用されます。
注:圧縮操作は増分バックアップには適用されません。
BACKUPサブコマンドが--thread-countオプションをBACKUP呼び出された場合、このオプションで指定されたワーカースレッドの数は、BART構成ファイル内のthread_countパラメーターの設定をオーバーライドします。
BACKUPサブコマンドが--thread-countオプションなしで呼び出された場合は、使用されるワーカースレッドの数が次のように決定されますthread_count構成ファイルのserverセクションのthread_countパラメータの設定は、グローバルセクションのthread_countの設定を上書きします。その特定のデータベースサーバ用。 serverセクションで省略した場合は、globalセクションのthread_countの設定が使用されます。 thread_countパラメータがどちらのセクションにも指定されていない場合、デフォルトは1です。
注:フルバックアップを取る場合、有効なスレッド数が1しかない場合は、 --no-pg_basebackupオプションがBACKUPサブコマンドで指定されていない限り、 pg_basebackupユーティリティを使用してフルバックアップを取ります。
バッチサイズ。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、変更されたブロックをデータベースサーバーからBARTバックアップカタログにコピーするために使用されるメモリーのブロック数を指定します。各ブロックは8192バイトです。最大許容値は131072 (131072 * 8192 = 1 GB)。許容最小値は1 (1 * 8192 = 8192バイト)。 pg_read_binary_file()実行中にpg_read_binary_file()がメモリー不足を訴えた場合は、設定を減らしてください。 BART設定ファイルのserverセクションにbatch_sizeパラメータを設定すると、その特定のデータベースサーバのグローバルセクションにあるbatch_sizeの設定が上書きされます。サーバーセクションで省略した場合は、グローバルセクションのbatch_sizeの設定が使用されます。 batch_sizeパラメーターがどちらのセクションにも指定されていない場合は、デフォルト値の49142 (49142 * 8192 = 3/8 GB)が使用されます。
scan_interval BARTバックアップカタログのアーカイブディレクトリにあるWALファイルのスキャンを強制するまでの秒数を指定します。 BART設定ファイルのserverセクションにあるscan_intervalパラメータの設定は、その特定のデータベースサーバのglobalセクションにあるscan_intervalの設定を上書きします。サーバーセクションで省略した場合は、グローバルセクションのscan_intervalの設定が使用されます。 scan_intervalパラメータがどちらのセクションにも指定されていない場合は、デフォルト値の0が使用されます。これは、ブルートフォーススキャンが開始されないことを意味します。
mbm_scan_timeout mbm_scan_timeoutタイムアウトするまでにMBMファイルを待機する秒数を指定します。 mbm_scan_timeoutパラメータ値は0より大きくなければなりません。値が0または負の場合、増分バックアップ中にエラーが表示されます。 BART設定ファイルのserverセクションにあるmbm_scan_timeoutパラメータの設定は、その特定のデータベースサーバのグローバルセクションにあるmbm_scan_timeoutの設定を上書きします。 serverセクションで省略した場合は、globalセクションのmbm_scan_timeoutの設定が使用されます。 mbm_scan_timeoutパラメータがどちらのセクションにも指定されていない場合は、デフォルト値の20秒が使用されます。つまり、MBMファイルを20秒間待った後、BARTはタイムアウトします。
注: mbm_scan_timeoutパラメータは、増分バックアップにのみ適用できます。
以下は、グローバルセクションの例です。
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
retention_policy = 3 MONTHS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
次の手順は、必要な設定パラメータの決定方法を示しています。
手順1: pg_basebackupユーティリティプログラムがBARTホストにインストールされていることを確認します。まだ行っていない場合は、セクション3.1を参照してください。
次の例に示すように、BART設定ファイルで pg_basebackup_pathパラメータをpg_basebackupプログラムの場所に設定します
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
ステップ2: BARTユーザーアカウントを作成または選択します。
BARTコマンドラインプログラムの実行に使用されるオペレーティングシステムのユーザーアカウントを決定します。このオペレーティングシステムユーザーは、 BARTユーザーアカウント と呼ばれ ます
選択したオペレーティングシステムのユーザーアカウントには、次の機能が必要です。
BARTユーザーアカウントは、 bartプログラムとbart-scannerプログラムを実行できなければなりません
たとえば 、管理対象データベースサーバーがそれぞれAdvanced ServerまたはPostgreSQLの場合、 enterprisedbまたはpostgresをBARTユーザーアカウントとして選択できます。
以下の例では bartuser というアカウント名が使用されています。
手順3: BARTユーザーアカウントの環境変数を設定します。
ステップ2で選択したBARTユーザーアカウントとしてBARTサブコマンドまたはBART WALスキャナーを呼び出すときは、特定の環境設定が有効になっているはずです。
パス。最も簡単で推奨される設定は、 PATH環境変数にBART_HOME /binディレクトリを含めることBART_HOME 。そうすることで、BARTユーザーは現在の作業ディレクトリからBARTを呼び出すことができます。そうしないと、BARTユーザは現在の作業ディレクトリとしてBART_HOME /bin内からBARTを呼び出す必要があります。その場合、現在の作業ディレクトリをPATH環境変数に含める必要があります。 BART_HOME /binディレクトリ内にあるbart-scannerプログラムは、特定の状況ではbartプログラムによって呼び出されます。その他の情報に関してセクション5.3を見てください。
LD_LIBRARY_PATH LD_LIBRARY_PATH 環境変数が入っているディレクトリ含める必要があるかもしれない libpqライブラリを。このディレクトリはPOSTGRES_INSTALL_HOME /libです。 LD_LIBRARY_PATH設定については、 5.3項を参照してください。
次の例に示すように、これらの設定はBARTユーザーアカウントのプロファイルに配置できるため、ログイン時に有効になります。
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
 
# User specific environment and startup programs
 
export LD_LIBRARY_PATH=/opt/PostgresPlus/9.5AS/lib:$LD_LIBRARY_PATH
export PATH=/usr/edb/bart/bin:$PATH
 
PATH=$PATH:$HOME/bin
 
export PATH
ステップ4: BARTバックアップカタログを作成します。
BARTユーザーアカウントは、BART構成ファイルのbackup_pathパラメーターで指定されているBARTバックアップカタログの親ディレクトリにアクセスできる必要があります。
そうでない場合は、そのディレクトリ内にサブディレクトリとファイルを作成できるように、BARTユーザアカウントに適切な所有権と権限が付与されていることを確認してください。
次の例では、BART構成ファイルで BARTバックアップカタログの親ディレクトリとして/opt/backup 指定されています
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
次の例では、 bartuserがBARTユーザーアカウントであると仮定して、BARTバックアップカタログの所有権と権限を作成して設定します。
su root
mkdir /opt/backup
chown bartuser /opt/backup
chgrp bartuser /opt/backup
chmod 700 /opt/backup
INITサブコマンドを使用して、または実際にはBARTサブコマンドを使用して bartコマンド行プログラムを呼び出すと、サブファイルがまだBARTによって作成されていない場合、BARTは構成ファイルにリストされているデータベースサーバーごとにサブディレクトリを作成します。
ステップ5: logfile設定パラメータをデフォルト値の/tmp/bart.log設定したままにすることをお勧めします。このファイルは、 bartコマンドラインプログラムを最初に起動したときに作成されます。
何らかの理由でBARTの使用中にBARTユーザアカウントを変更したい場合は、 /tmp/bart.logファイルを削除し、 BARTに新しいBARTユーザアカウントが所有する新しいログファイルを作成させる必要があります。
同じ手順がbart-scannerプログラム scanner_logfile構成パラメーターにも適用されます。
手順6:このセクションの冒頭に記載されている他のオプションのグローバルパラメータを設定します。これらのパラメータの設定はすべてのデータベースサーバに適用されますが、各データベースサーバセクション内で上書きすることができます。
ステップ7:グローバルパラメータをチェックするために-sオプションを省略してCHECK-CONFIGサブコマンドを呼び出します。 CHECK-CONFIGサブコマンドについては、 5.4.1項を参照してください。
ステップ8: BART構成ファイルにデータベースサーバーの最初のセット用のパラメーターを追加します。データベースサーバパラメータの定義については、 4.2.5項を参照してください。
 
4.2 BART管理用のデータベースサーバの設定
このセクションでは、データベースサーバのBARTバックアップおよびリカバリ管理を有効にする手順について説明します。主な設定領域は次のとおりです。
WALアーカイブを有効にしてデータベースサーバーを再起動する前にすべてを完了する必要がある点を除いて、これらの作業は特定の順序で行う必要はありません(箇条書き3)。
 
4.2.1 パスワードなしでSSH / SCPアクセスを承認する
BARTの基本的なメカニズムは、Secure Shell(SSH)およびSecure Copy(SCP)Linuxユーティリティプログラムを使用して、BART管理データベースサーバーからBARTホストにバックアップファイルとWALファイルをコピーし、バックアップを復元することです。
クライアント/サーバーのSSHおよびSCP接続は、接続を確立するときにパスワードの入力を要求してはなりません。
パスワードなしの接続は、 許可された公開鍵を 使用して行われ ます 。これは、ターゲットサーバーへの接続を許可されるクライアントユーザーアカウントの公開鍵のリストです。
各クライアントユーザーアカウントは公開鍵を生成し、それをターゲットサーバー上のターゲットユーザーアカウントの承認済み公開鍵リストに追加する必要があります。
方向は次のセクションに分かれています。
SSHサーバーデーモンを実行しているサーバーで、公開鍵認証の使用を最初に有効にする方法の例を、 セクション 4.2.1.1に示します。
認可された公開鍵ファイルの設定方法に関する一般的な説明は、 セクション 4.2.1.2にあります。
次に、 セクション 4.2.1.3では 、パスワードの入力なしで接続を確立する必要があるBARTを使用するためのホストの組み合わせについて説明します。
具体的な例は 6.2 節にあります。
4.2.1.1 公開鍵認証の使用を有効にする
SSHサーバーデーモンを実行しているLinuxオペレーティングシステムに応じて、公開鍵認証の使用、つまりパスワードなしのSSHおよびSCP接続を有効にする機能を有効にするために必要な手順が異なる場合があります。
必要な手順については、オペレーティングシステムの情報を確認してください。
たとえば、CentOS 6.5の場合は、次の手順を実行します。
SSHサーバーデーモン構成ファイル /etc/ssh/sshd_configで、次のパラメーターがyes設定されていてコメント化されていないことを確認します。
PubkeyAuthentication yes
構成ファイルを再ロードします。
[root@localhost ssh]# service sshd reload
Reloading sshd: [ OK ]
service sshd reload 代わりに、次のコマンドを使用できます
service sshd stop
service sshd start
service sshd restart
注: SSHまたはSCPのエラーまたは問題については、次のログファイルを調べてください。
/var/log/secure
4.2.1.2 許可された公開鍵の生成
パスワードなしのSSHまたはSCP接続を行うターゲットサーバーには、承認された公開鍵ファイルが含まれている必要があります。このファイルは authorized_keys という名前で、 USER_HOME /.sshディレクトリの下にありますUSER_HOMEは、リモートセッションを確立するために使用されるターゲットサーバ上のユーザアカウントのホームディレクトリです。
ターゲットサーバーへのパスワードなしの接続を確立する各クライアントシステムでは、SSHまたはSCP接続を要求するユーザーアカウントでクライアントシステムにログインしている間に、クライアントの公開鍵が生成されます。次に、生成された公開鍵をターゲットサーバーにコピーして USER_HOME /.ssh/authorized_keysファイルに連結する必要があります。
注:公開鍵は、既存のauthorized_keysファイルの末尾に追加する必要があります。既存のauthorized_keysファイルを完全に置き換えるべきではありません。
以下は、クライアントの公開鍵ファイルを生成してからターゲットサーバーの認証済み公開鍵ファイルを作成するための一般的な手順です。
ステップ1:クライアントシステムで、SSHまたはSCP接続を開始するユーザアカウントとしてログインします。
手順2:ユーザーアカウントのホームディレクトリに.ssh 、既存の.sshサブディレクトリがあるかどうかを確認し.ssh 。そうでない場合は、次のように作成します。
mkdir .ssh
chown user .ssh
chgrp usergroup .ssh
chmod 700 .ssh
どこ userユーザーアカウント名であり、 usergroupユーザーの関連付けられたグループです。
手順3:次のコマンドで公開鍵ファイルを生成します。すべてのプロンプトデフォルトを受け入れ、パスフレーズを要求されたときにパスフレーズを指定しないでください。
ssh-keygen –t rsa
id_rsa.pub という名前の公開鍵ファイル.sshサブディレクトリに作成され.ssh
ステップ4:システム環境で利用可能な手段が何であれ、ターゲットサーバにファイルid_rsa.pubコピーを作成します。
たとえば、公開鍵ファイルを生成したばかりのクライアントにログインしている間に、SCPを使用してそれを一時的にターゲットサーバにコピーします。
:tmp.pub scp ~/.ssh/id_rsa.pub target_user @ host_address :tmp.pub
手順5: target_userとしてターゲットサーバにログインします。システム環境で可能な方法をすべて使用します。
たとえば、クライアントにログインしている間に、SSHを使用してターゲットサーバにログインします。
ssh target_user @ host_address
手順6:ターゲットユーザーアカウントのホームディレクトリに.ssh 、既存の.sshサブディレクトリがあるかどうかを確認し.ssh 。そうでない場合は、手順2に示すように作成します。
ステップ7:一時的なクライアントの公開鍵ファイルtmp.pubをauthorized_keysという名前のauthorized_keys tmp.pub鍵ファイルにtmp.pubます。既存の認証済みキーファイルが存在しない場合は、新しいファイルを作成しますが、既存の認証済みキーファイルを完全に置き換えることはしないでください。
cat tmp.pub >> ~/.ssh/authorized_keys
authorized_keysファイルが、グループまたは他のユーザからではなく、ファイルの所有者だけからアクセスできることを確認してくださいauthorized_keysファイルに必要な許可設定(600)がないか、新しく作成された場合は、ファイル許可を次のように変更します。
chmod 600 ~/.ssh/authorized_keys
ステップ8:一時公開鍵ファイルtmp.pub削除します。
rm tmp.pub
これで、 user としてクライアントシステムにログインしたときに、次のようなコマンドが与えられたときにパスワードの入力を求めるプロンプトが表示されないはずです。
ssh target_user @ host_address
または
scp file_name target_user @ host_address : directory_path
または
scp target_user @ host_address : directory_path / file file_name
4.2.1.3 パスワードなしで必要なBART接続
BARTを使用する場合、パスワードなしのSSH / SCP接続を必要とする2つのシナリオがあります。
1。
2。
BARTホスト(SSH / SCPクライアント)から各BART管理データベースサーバ(ターゲットSSH / SCPサーバ)へ、増分バックアップを取り、フルバックアップ、アーカイブされたWALファイル、および変更されたブロックの復元をサポートします。 BART RESTOREサブコマンドが与えられています。 注:バックアップを特定のデータベースサーバーホストから実行し、別のデータベースサーバーホストに復元する場合は、パスワードなしのSSH / SCP接続をBARTホストからバックアップ先のデータベースサーバーホストに構成する必要があります。 BARTホストからバックアップの復元先となるデータベースサーバホストに移動することもできます。
注:
シナリオ1では、公開鍵ファイル( id_rsa.pub )がssh-keygen –t rsaコマンドで生成されたSSHクライアントがデータベースサーバーです。公開鍵ファイルは、データベースサーバーを実行しているユーザーアカウントによって生成されます。
公開鍵ファイルが ~/.ssh/authorized_keysファイルに追加されるターゲットSSHサーバーはBARTホストです。 authorized_keysファイルはBARTユーザアカウントのホームディレクトリにあります。
シナリオ2では、公開鍵ファイル( id_rsa.pub )がssh-keygen –t rsaコマンドで生成されたSSHクライアントが BARTホストです。公開鍵ファイルはBARTユーザーアカウントによって生成されます。
公開鍵ファイルが ~/.ssh/authorized_keysファイルに追加されるターゲットSSHサーバーはデータベースサーバーです。 authorized_keysファイルは、データベースのバックアップを復元するディレクトリを所有するユーザアカウントのホームディレクトリにあります。
各シナリオの例については、 6.2 項を参照してください
 
4.2.2 レプリケーションデータベースユーザの設定
BARTによって管理されるPostgresデータベースサーバーごとに、データベースユーザーを選択して レプリケーションデータベースユーザー として機能させる必要があり ます
レプリケーションデータベースユーザーは次の目的を果たします。
INITサブコマンドが呼び出されたときにPostgres archive_command構成パラメーターを設定します。
BACKUPサブコマンドが呼び出されたときにバックアップを作成します
レプリケーションデータベースユーザーはスーパーユーザーである必要があります。
次の例では、レプリケーションデータベースユーザーになるスーパーユーザーを作成します。
CREATE ROLE repuser WITH LOGIN SUPERUSER PASSWORD 'password';
pg_hba.confファイルは最小限にアクセスするために持っているレプリケーションデータベースのユーザーを許可する必要がありますtemplate1ために示したように、データベースをrepuser次の例では。
レプリケーションデータベースユーザーがデータベース template1 アクセスするIPアドレスは、BARTホストの場所です。
# TYPE DATABASE USER ADDRESS METHOD
 
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host template1 repuser 192.168.2.22/32 md5
host all enterprisedb 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication repuser 192.168.2.22/32 md5
pg_basebackupの場合のみ:レプリケーションデータベースのユーザーも含まれなければならないpg_hba.confようファイルreplicationた場合の例の最後のエントリで示すように、データベース接続pg_basebackup 、スタンバイ・サーバー用として任意のバックアップを取るために使用されるべきです。
次のように、データベースサーバ用のBART設定ファイルのuserパラメータでレプリケーションデータベースユーザを指定する必要があります。
[ACCTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
description = "Accounting"
レプリケーションデータベースユーザーを使用してデータベースサーバーに接続するときに、パスワードの入力を求められないようにする必要があります。これを許可するPostgresの標準的な方法はいくつかあります。推奨される方法は 、BARTユーザーアカウントのホームディレクトリにある.pgpassファイルを使用する .pgpassです。
たとえば、 bartuser BARTのユーザーアカウントで、その後、 .pgpass中にあるファイル/home/bartuser/.pgpass次のエントリが含まれている必要があります。
192.168.2.24:5444:*:repuser:password
ときしたがって、 bartuser BARTの走るBACKUP 、複製データベースユーザのパスワードを、 repuser 、から得られる.pgpassのファイルbartuserで実行中のデータベース・サーバに接続するには192.168.2.24ポートに5444
.pgpass各BARTのエントリが含まれている必要がありますファイルには、データベース・サーバとそれに対応するレプリケーションデータベースのユーザーとパスワードを管理していました。
 
4.2.3 WALアーカイブを有効にする
BARTがバックアップおよびリカバリ管理を実行するデータベースサーバに対してWALアーカイブを有効にする必要があります。
WALアーカイブの背景情報については、以下の PostgreSQLコアドキュメントを 参照してください
https://www.postgresql.org/docs/11/static/continuous-archiving.html
セクション 4.2.3.1では 、一般的な手動設定プロセスについて説明しています。
セクション 4.2.3.2では 、より自動化された代替アプローチについて説明しています。
4.2.3.1 WALアーカイブ設定
WALアーカイブを有効にするに は、 postgresql.conf ファイルに 次の設定パラメータを設定する必要があり ます。
PostgreSQL 9.5の場合はarchive 、PostgreSQL 9.6以降の場合はreplicawal_level設定archive
archive_modeon 設定on
archive_command設定して 、WALファイルをBARTバックアップカタログにコピーします。
max_wal_sendersを、少なくとも1つのセッションをバックアップに使用できるようにするのに十分な大きさの値に設定します。 xlog_method=streamパラメータ設定がBART設定ファイルで決定されたmax_wal_sendersこのデータベースサーバによって使用される場合、 xlog_method=stream設定はトランザクションログストリーミングの追加セッションを考慮する必要があります(つまり、設定は最低2なければなりません) 。 xlog_methodパラメータについては、セクション4.1および4.2.5を参照してください。
注:このセクションで説明されているarchive_command設定パラメータはpostgresql.confファイルにあります。このPostgresの archive_commandパラメータはBARTの archive_commandパラメータとは異なる方法で使用されます。BARTの archive_commandパラメータはBART設定ファイルのサーバセクションで設定できますが、特定の条件下でのみです。
ARCHIVE PATH BARTで表示されるフィールドSHOW-SERVERSサブコマンドは、Postgresの中で指定されたWALファイルをコピーする必要があるディレクトリのフルパスを示しarchive_command構成パラメータpostgresql.confファイルを:
-bash-4.1$ bart SHOW-SERVERS -s acctg
SERVER NAME : acctg
HOST NAME : 192.168.2.24
USER NAME : repuser
PORT : 5444
REMOTE HOST :
RETENTION POLICY : none
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/acctg/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Accounting"
次の例では、SCPはWALファイルを 192.168.2.22あるBARTホストのディレクトリ /opt/backup/acctg/archived_walsbartuserユーザーアカウントとしてbartuserます。
使用 bartuserアカウントは、操作がが所有BARTのバックアップカタログにコピーすることができますbartuser
wal_level = archive # minimal, archive, or hot_standby
# (change requires restart)
.
.
.
archive_mode = on # allows archiving to be done
# (change requires restart)
archive_command = 'scp %p bartuser@192.168.2.22:/opt/backup/acctg/archived_wals/%f'
# command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
 
.
.
.
max_wal_senders = 1 # max number of walsender processes
# (change requires restart)
WALアーカイブを開始するにはデータベースサーバーを再起動する必要がありますが、以前のBARTサブコマンドでBARTバックアップカタログのフルパスが作成されていることを確認するまで実行しないでください。
4.2.3.2 アーカイブコマンドの自動設定
Postgresの archive_commandパラメータはINITサブコマンドで自動的に設定できます。 INITサブコマンドはPostgres ALTER SYSTEMコマンドを呼び出して、管理対象データベースサーバーのPOSTGRES_INSTALL_HOME /dataディレクトリにあるpostgresql.auto.confファイルにPostgres archive_command構成パラメータを設定します。 INITサブコマンドの詳細については、 5.4.2項を参照してください。
INITサブコマンドがpostgresql.auto.confファイルに生成するアーカイブコマンド文字列は、BART設定ファイルにあるBART archive_commandパラメータのパラメータ設定によって決まります。
BART構成ファイルのサーバーセクションにはpostgresql.auto.confファイルのPostgres archive_commandパラメータに生成されるアーカイブコマンド文字列の希望のフォーマットを指定するBART archive_commandパラメータを含めることができます。特定のデータベースサーバのサーバセクションでBART archive_commandパラメータが設定されていない場合、設定されているコマンド文字列は次のデフォルトフォーマットを使用します。
scp %p %h:%a/%f
ここで、
%p
Postgresアーカイブプロセスによって使用されるアーカイブへのファイルのパス
%h
BART設定ファイルのグローバルセクションにある bart_host パラメータの 設定に置き換えられました。
%a
WALファイルが保存される場所 アーカイブパス 置き換えられ ます。アーカイブパスは backup_path / server_name /archived_wals 形式を取ります。 ここで、 backup_path はBART構成ファイルのグローバルセクションで指定されたBARTバックアップカタログの親ディレクトリ、 server_name はサーバーセクションでこのデータベースサーバーに指定されたデータベースサーバー名の小文字変換です。 BART設定ファイルの
%f
Postgresアーカイブプロセスで使用されるアーカイブファイル名
アーカイブコマンド文字列を作成するとき、 プレースホルダ %h%aINITサブコマンドに置き換えられます。プレースホルダ%p%fINITサブコマンドに置き換えられませんが、Postgresのアーカイブプロセスで使用されるように指定されたままになります。
たとえば、デフォルトのアーカイブコマンド形式を使用するために、BARTの設定ファイルは、BART、次の設定が含ま archive_commandパラメータは、サーバ用のセクションから省略されてACCTG
[BART]
bart_host= bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = repuser
cluster_owner = enterprisedb
description = "Accounting"
INITサブコマンドは、BARTのユーザアカウントによって呼び出されるbartuser次のように:
[bartuser@localhost ~]$ bart INIT -s acctg -o
INFO: setting archive_command for server 'acctg'
WARNING: archive_command is set. server restart is required
BARTバックアップカタログディレクトリは、まだ作成されていなければ完成します。
管理対象データベースサーバーのPOSTGRES_INSTALL_HOME /dataディレクトリにある postgresql.auto.confファイル内のPostgresアーカイブコマンド文字列は、次のようになります。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'scp %p bartuser@192.168.2.22:/opt/backup/acctg/archived_wals/%f'
注:自動構成プロセスを利用するには、 -oオプションを指定してINITサブコマンドを実行してください 。このオプションは、 postgresql.confまたはpostgresql.auto.confファイル内の既存のPostgres archive_command設定を上書きします。また、 -oオプションがあれば、コマンド文字列を生成するために使用されなければならないarchive_mode設定パラメータが設定されているoffのPostgresの既存の設定がない場合でもarchive_commandpostgresql.confpostgresql.auto.confファイルが。
注: postgresql.confファイルで4.2.3.1項の説明に従って Postgresのarchive_commandパラメータを設定し、その特定の設定を使用する場合は、 INITサブコマンドの実行時に-oオプションを指定しないでください。そうしないと、Postgresのarchive_command設定が上書きされます。このセクションで説明されている自動設定プロセスに従って。
デフォルト以外のアーカイブコマンドを使用するには、BART設定ファイルのサーバーセクションでBART archive_commandパラメータを目的のコマンド文字列で設定します。
この例では、BART archive_commandパラメーターを明示的に設定して、次のBART構成ファイルを使用しています。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = repuser
cluster_owner = enterprisedb
archive_command = 'cp %p %a/%f'
description = "Accounting"
INITサブコマンドは、BARTのユーザーアカウントによって呼び出されるenterprisedb次のとおりです。
-bash-4.1$ bart INIT -s acctg -o
INFO: setting archive_command for server 'acctg'
WARNING: archive_command is set. server restart is required
postgresql.auto.confファイルの結果のPostgres archive_commandパラメータは次のようになります。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'cp %p /opt/backup/acctg/archived_wals/%f'
必要なコマンド文字列を生成した後 postgresql.auto.confファイルに必要なWALアーカイブの設定を完了postgresql.confファイル:
PostgreSQL 9.5の場合はarchive 、PostgreSQL 9.6以降の場合はreplicawal_level設定archive
archive_modeon 設定on
max_wal_sendersを、少なくとも1つのセッションをバックアップに使用できるようにするのに十分な大きさの値に設定します。 xlog_method=streamパラメータ設定がBART設定ファイルで決定されたmax_wal_sendersこのデータベースサーバによって使用される場合、 xlog_method=stream設定はトランザクションログストリーミングの追加セッションを考慮する必要があります(つまり、設定は最低2なければなりません) 。 xlog_methodパラメータについては、セクション4.1および4.2.5を参照してください。
WALアーカイブを開始する準備ができたら、データベースサーバーを再起動します。
データベースサーバが再起動されると、 SHOW-SERVERSサブコマンド ARCHIVE COMMANDフィールドに、次のようにアクティブなPostgresアーカイブコマンドが表示されます。
-bash-4.1$ bart SHOW-SERVERS -s acctg
SERVER NAME : acctg
HOST NAME : 127.0.0.1
USER NAME : repuser
PORT : 5444
REMOTE HOST :
RETENTION POLICY : none
DISK UTILIZATION : 48.00 MB
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/acctg/archived_wals
ARCHIVE COMMAND : cp %p /opt/backup/acctg/archived_wals/%f
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Accounting"
 
4.2.4 表領域の使用
データベースクラスタにユーザ定義テーブルスペース(つまり、 CREATE TABLESPACEコマンドで作成されたテーブルスペース)が含まれている場合は 、次の点に注意してください。
BACKUPサブコマンドを使用したフルバックアップには、tar( -F t )またはプレーンテキスト( -F p )のバックアップファイル形式を使用できます。増分バックアップには、プレーンテキスト( -F p )バックアップファイル形式を使用する必要があります。
BACKUPサブコマンドで-F pオプションが指定されている限り、 pg_basebackup完全バックアップをとるためのトランザクションログストリーミング( BART設定ファイルのxlog_method = stream )を使用できます。したがって、トランザクションログストリーミングは、ユーザー定義のテーブルスペースを含むデータベースクラスタで使用できます。
バックアップを計画している特定のデータベースクラスタに CREATE TABLESPACEコマンドで作成されたテーブルスペースが含まれている場合は、BART RESTORE操作を実行する前に、必ずBART構成ファイルでtablespace_pathパラメータを設定してください。
tablespace_pathパラメータを使用すると、表領域を復元したい先のディレクトリパスを指定します。
tablespace_pathパラメータは次の形式を取ります。
OID_1 = tablespace_path_1 ; OID_2 = tablespace_path_2 ...
OID_1OID_2 、…は表領域のオブジェクト識別子です。次の例に示すように、 POSTGRES_INSTALL_HOME /data/pg_tblspcサブディレクトリの内容を一覧表示すると、表領域のOIDとそれに対応するディレクトリへのソフトリンクを見つけることができます。
[root@localhost pg_tblspc]# pwd
/opt/PostgresPlus/9.5AS/data/pg_tblspc
[root@localhost pg_tblspc]# ls -l
total 0
lrwxrwxrwx 1 enterprisedb enterprisedb 17 Aug 22 16:38 16644 -> /mnt/tablespace_1
lrwxrwxrwx 1 enterprisedb enterprisedb 17 Aug 22 16:38 16645 -> /mnt/tablespace_2
OIDは 、ディレクトリー/mnt/tablespace_1および/mnt/tablespace_2に対してそれぞれ16644および16645です。後でテーブルスペースを前の例で示したのと同じ場所に復元する場合は、BART設定ファイルに次のエントリを含める必要があります。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
cluster_owner = enterprisedb
tablespace_path = 16644=/mnt/tablespace_1;16645=/mnt/tablespace_2
description = "Accounting"
テーブルスペースを別の場所に復元する場合は、 tablespace_pathパラメータで新しいディレクトリの場所を指定します。
どちらの場合も、 tablespace_pathパラメーターで指定されたディレクトリーは存在していなければならず、BART RESTORE操作を実行する時点では空でなければなりません。
データベースサーバがリモートホストで実行されている場合(つまり、 remote_host設定パラメータも使用しているか、 RESTOREサブコマンドで--remote-hostオプションを指定する)、指定されたテーブルスペースディレクトリは指定されたリモートホストに存在する必要があります。
メインのフルバックアップを復元するディレクトリパスに必要なディレクトリは、データベースサーバーを起動するユーザーアカウント(通常はPostgresユーザーアカウント)が他のユーザーやグループからアクセスすることなく所有されている必要があります。 。
以下は、表領域を含むリモートホスト上でデータベースクラスタをバックアップしてから復元する例です。
注:この例では、表スペースの使用状況によって影響を受けるステップを強調しています。データベースクラスタのバックアップと復元に必要な全プロセスについては、セクション5を参照してください。
リモートホストで実行されているAdvanced Serverデータベースでは、次のテーブルスペースが作成され、2つのテーブルによって使用されます。
edb=# CREATE TABLESPACE tblspc_1 LOCATION '/mnt/tablespace_1';
CREATE TABLESPACE
edb=# CREATE TABLESPACE tblspc_2 LOCATION '/mnt/tablespace_2';
CREATE TABLESPACE
edb=# \db
List of tablespaces
Name | Owner | Location
------------+--------------+-------------------
pg_default | enterprisedb |
pg_global | enterprisedb |
tblspc_1 | enterprisedb | /mnt/tablespace_1
tblspc_2 | enterprisedb | /mnt/tablespace_2
(4 rows)
 
edb=# CREATE TABLE tbl_tblspc_1 (c1 TEXT) TABLESPACE tblspc_1;
CREATE TABLE
edb=# CREATE TABLE tbl_tblspc_2 (c1 TEXT) TABLESPACE tblspc_2;
CREATE TABLE
edb=# \d tbl_tblspc_1
Table "enterprisedb.tbl_tblspc_1"
Column | Type | Modifiers
--------+------+-----------
c1 | text |
Tablespace: "tblspc_1"
 
edb=# \d tbl_tblspc_2
Table "enterprisedb.tbl_tblspc_2"
Column | Type | Modifiers
--------+------+-----------
c1 | text |
Tablespace: "tblspc_2"
以下に、表領域に割り当てられたOIDと表領域ディレクトリへのシンボリックリンクを示します。
-bash-4.1$ pwd
/opt/PostgresPlus/9.5AS/data/pg_tblspc
-bash-4.1$ ls -l
total 0
lrwxrwxrwx 1 enterprisedb enterprisedb 17 Nov 16 16:17 16587 -> /mnt/tablespace_1
lrwxrwxrwx 1 enterprisedb enterprisedb 17 Nov 16 16:17 16588 -> /mnt/tablespace_2
BART構成ファイルには、以下の設定が含まれています。ことに注意してください tablespace_pathパラメータは、この時点で設定する必要はありません。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
tablespace_path =
description = "Accounting"
このセクションで説明されている必要な設定手順を実行してBARTがリモートデータベースサーバを管理できるようにした後、フルバックアップが実行されます。完全バックアップを作成するための準備手順と処置については、 セクション 5参照してください
-bash-4.1$ bart BACKUP -s acctg
 
INFO: creating backup for server 'acctg'
INFO: backup identifier: '1447709811516'
54521/54521 kB (100%), 3/3 tablespaces
 
INFO: backup completed successfully
INFO: backup checksum: 594f69fe7d26af991d4173d3823e174f of 16587.tar
INFO: backup checksum: 7a5507567729a21c98a15c948ff6c015 of base.tar
INFO: backup checksum: ae8c62604c409635c9d9e82b29cc0399 of 16588.tar
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1447709811516
BACKUP NAME: none
BACKUP LOCATION: /opt/backup/acctg/1447709811516
BACKUP SIZE: 53.25 MB
BACKUP FORMAT: tar
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 3
ChkSum File
594f69fe7d26af991d4173d3823e174f 16587.tar
7a5507567729a21c98a15c948ff6c015 base.tar
ae8c62604c409635c9d9e82b29cc0399 16588.tar
 
TABLESPACE(s): 2
Oid Name Location
16587 tblspc_1 /mnt/tablespace_1
16588 tblspc_2 /mnt/tablespace_2
 
START WAL LOCATION: 00000001000000000000000F
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2015-11-16 16:36:51 EST
STOP TIME: 2015-11-16 16:36:52 EST
TOTAL DURATION: 1 sec(s)
前の例の出力では、チェックサムはフルバックアップと同様に表領域に対しても生成されています。
BARTバックアップカタログのバックアップサブディレクトリ 1447709811516 内に、次のように表領域データがファイル名16587.tar.gzおよび16588.tar.gzされています。
-bash-4.1$ pwd
/opt/backup/acctg
-bash-4.1$ ls -l
total 8
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 16:36 1447709811516
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 16:43 archived_wals
-bash-4.1$ ls -l 1447709811516
total 54536
-rw-rw-r-- 1 enterprisedb enterprisedb 19968 Nov 16 16:36 16587.tar
-rw-rw-r-- 1 enterprisedb enterprisedb 19968 Nov 16 16:36 16588.tar
-rw-rw-r-- 1 enterprisedb enterprisedb 949 Nov 16 17:05 backupinfo
-rw-rw-r-- 1 enterprisedb enterprisedb 55792640 Nov 16 16:36 base.tar
バックアップを復元する準備ができたら、メインデータベースクラスタを復元するディレクトリを作成するだけでなく、テーブルスペースを復元するディレクトリを準備します。
リモートホストでは、ディレクトリ /opt/restore_tblspc_1/opt/restore_tblspc_2が作成され、次のように適切な所有権と権限が割り当てられます。メインデータベースクラスタは/opt/restoreます。
[root@localhost opt]# mkdir restore_tblspc_1
[root@localhost opt]# chown enterprisedb restore_tblspc_1
[root@localhost opt]# chgrp enterprisedb restore_tblspc_1
[root@localhost opt]# chmod 700 restore_tblspc_1
[root@localhost opt]# mkdir restore_tblspc_2
[root@localhost opt]# chown enterprisedb restore_tblspc_2
[root@localhost opt]# chgrp enterprisedb restore_tblspc_2
[root@localhost opt]# chmod 700 restore_tblspc_2
[root@localhost opt]# ls -l
total 20
drwxr-xr-x 3 root daemon 4096 Nov 10 15:38 PostgresPlus
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:40 restore
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:40 restore_tblspc_1
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:41 restore_tblspc_2
drwxr-xr-x. 2 root root 4096 Nov 22 2013 rh
表領域ディレクトリを指定するには、BART構成ファイル tablespace_pathパラメータを設定します。
リモートホストのユーザーとIPアドレスは remote_host設定パラメータで指定されていることにも注意してください。
[ACCTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
tablespace_path = 16587=/opt/restore_tblspc_1;16588=/opt/restore_tblspc_2
description = "Accounting"
以下に RESTOREサブコマンドの呼び出しを示します
-bash-4.1$ bart RESTORE -s acctg -i 1447709811516 -p /opt/restore
INFO: restoring backup '1447709811516' of server 'acctg'
INFO: restoring backup to enterprisedb@192.168.2.24:/opt/restore
INFO: base backup restored
INFO: archiving is disabled
INFO: tablespace(s) restored
以下に、復元された表領域を含む、復元されたフルバックアップを示します。
bash-4.1$ pwd
/opt
-bash-4.1$ ls -l restore
total 104
-rw------- 1 enterprisedb enterprisedb 206 Nov 16 16:36 backup_label.old
drwx------ 6 enterprisedb enterprisedb 4096 Nov 10 15:38 base
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:46 global
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_clog
-rw------- 1 enterprisedb enterprisedb 4438 Nov 10 16:23 pg_hba.conf
-rw------- 1 enterprisedb enterprisedb 1636 Nov 10 15:38 pg_ident.conf
drwxr-xr-x 2 enterprisedb enterprisedb 4096 Nov 16 17:45 pg_log
drwx------ 4 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_multixact
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:45 pg_notify
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_serial
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_snapshots
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:47 pg_stat
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:47 pg_stat_tmp
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_subtrans
drwx------ 2 enterprisedb enterprisedb 4096 Nov 16 17:42 pg_tblspc
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_twophase
-rw------- 1 enterprisedb enterprisedb 4 Nov 10 15:38 PG_VERSION
drwx------ 3 enterprisedb enterprisedb 4096 Nov 16 17:47 pg_xlog
-rw------- 1 enterprisedb enterprisedb 23906 Nov 16 17:42 postgresql.conf
-rw------- 1 enterprisedb enterprisedb 61 Nov 16 17:45 postmaster.opts
-bash-4.1$
-bash-4.1$ ls -l restore_tblspc_1
total 4
drwx------ 3 enterprisedb enterprisedb 4096 Nov 16 16:18 PG_9.5_201306121
-bash-4.1$ ls -l restore_tblspc_2
total 4
drwx------ 3 enterprisedb enterprisedb 4096 Nov 16 16:18 PG_9.5_201306121
pg_tblspcサブディレクトリ内のシンボリックリンクは 、復元されたディレクトリの場所を指します。
bash-4.1$ pwd
/opt/restore/pg_tblspc
-bash-4.1$ ls -l
total 0
lrwxrwxrwx 1 enterprisedb enterprisedb 21 Nov 16 17:42 16587 -> /opt/restore_tblspc_1
lrwxrwxrwx 1 enterprisedb enterprisedb 21 Nov 16 17:42 16588 -> /opt/restore_tblspc_2
psql 内のクエリは復元されたテーブルスペースも表示します。
edb=# \db
List of tablespaces
Name | Owner | Location
------------+--------------+-----------------------
pg_default | enterprisedb |
pg_global | enterprisedb |
tblspc_1 | enterprisedb | /opt/restore_tblspc_1
tblspc_2 | enterprisedb | /opt/restore_tblspc_2
(4 rows)
 
4.2.5 BART設定ファイルへのデータベースサーバの追加
BARTがデータベースサーバのバックアップとリカバリを管理するためには、BART設定ファイルのserverセクションにそのエントリがなければなりません。
次のパラメータは、serverセクションのデータベースサーバに適用されます。
[サーバーの名前]。 構成ファイルのserverセクションにあるデータベースサーバーのエントリを識別します。これは、BARTを使用してデータベースサーバを参照するときの名前です。 BARTサブコマンドオプションで参照される場合、名前は大文字と小文字を区別しません。この名前の小文字変換は、このデータベースサーバーのバックアップとWALファイルを格納するためのBARTバックアップカタログ内のサブディレクトリを作成するために使用されます。このパラメータは必須です。
backup_name。データベースサーバのバックアップに割り当てるユーザ定義のわかりやすい名前のテンプレート。テンプレートは英数字の文字列で、バックアップの実行時にタイムスタンプ値に置き換えられる変数は次のとおりです。1) %year - 4桁の年、2) %month - 2桁の月、3) %day - 2桁の日、4) %hour - 2桁の時、5) %minute - 2桁の分、および6) %second - 2桁の秒。バックアップ名にパーセント記号( % )を文字として含めるには、テンプレートに%%を指定します。テンプレートにスペース文字を含める場合でも、テンプレート文字列を引用符で囲まないでください。それ以外の場合は、引用符がバックアップ名の一部として格納されます。ただし、バックアップ名にスペース文字を使用する場合は、BARTサブコマンドで-iオプションを使用して参照するときは、バックアップ名を引用符で囲む必要があります。バックアップ名の最大長は49文字です。このパラメーターは、 BACKUPサブコマンドの--backup-nameオプションでオーバーライドできます。このパラメーターがBART構成ファイルから省略され、ユーザー定義名を持つ--backup-nameオプションがBACKUPサブコマンドで指定されていない場合、バックアップはBART割り当て整数バックアップによってのみBARTサブコマンド内で参照できます。識別子。
ホスト。バックアップ用に設定するデータベースサーバのIPアドレス。このパラメータは必須です。
港。バックアップするデータベースサーバーインスタンス(つまり、関連するデータベースクラスター)を識別するポート番号。このパラメータはオプションです。省略した場合、デフォルトはポート5444です。
ユーザー。 BARTが使用するレプリケーションデータベースのユーザー名。1)フルバックアップ用にデータベースサーバーへの接続を確立するため、2) INITサブコマンドを実行するときにPostgres archive_command構成パラメータを設定するため、3)増分バックアップを実行するため。このデータベースユーザーはスーパーユーザーでなければなりません。 注: BARTユーザーアカウントとして実行している間は、このデータベースユーザーを使用してデータベースサーバーに接続するときに、パスワードの入力を求められないようにする必要があります。また、 pg_hba.confファイルには、このデータベースユーザー名の複製接続エントリが含まれていなければなりません。詳細は項4.2.2を参照してください。このパラメータは必須です。
archive_commandこれはBART archive_commandパラメータです。 BART archive_command指定された内容と変数は、 INITサブコマンドが使用されたときにpostgresql.auto.confファイルのPostgres archive_command構成パラメーターに生成されるアーカイブ・コマンド・ストリングをもたらします。 BART構成ファイル内のこのBART archive_commandパラメーター、およびpostgresql.confファイルとpostgresql.auto.confファイル内のPostgresのarchive_commandパラメーターは、異なる方法で設定され、結果が異なる2つの別々のパラメーターを参照することに注意してください。指示に従ってこれらのパラメータを設定するときは、BART archive_commandとPostgresのarchive_commandの区別を慎重に守ってください。以下の情報はBART archive_commandパラメーターにのみ適用されます。コマンド文字列を一重引用符( ' )で囲みます。 archive_commandパラメーターが省略されていても、実際には'scp %p %h:%a/%f'設定で指定されているかのように、 INITサブコマンドによって使用されます。変数は次のとおりです。1) %p - Postgresアーカイブプロセスで使用されるアーカイブするファイルのパス、2) %h - bart_hostパラメータ設定で置き換え、3) %a - BARTアーカイブパスで置き換え、4) %f - Postgresのアーカイブ処理で使われるアーカイブファイルの名前。追加情報についてはセクション4.2.3.2を参照してください。
cluster_ownerデータベースクラスタを所有するLinuxオペレーティングシステムのユーザーアカウント。これは一般的にされたenterprisedb Oracleデータベース、またはと互換モードでインストールAdvanced Serverのデータベース・クラスタのためpostgres PostgreSQLデータベースクラスタ用とPostgreSQLデータベースとの互換性モードでインストールAdvanced Serverのデータベースクラスタのため。このパラメータは必須です。
リモートホスト。バックアップの復元先となるリモートサーバのIPアドレス。このパラメータの値は、 remote_user @ remote_host_addressの形式で指定する必要があります。ここで、 remote_userは、BARTユーザアカウントからパスワードなしのSSH / SCPログイン接続を受け入れるターゲットデータベースサーバホストのユーザアカウントで、ディレクトリの所有者です。バックアップを復元する場所。 remote_host_addressは、リモートホストのIPアドレスです。リモートホストにバックアップを復元する場合、またはremote_userとBARTユーザーアカウントが同じユーザーではないバックアップを復元する場合は、このパラメータを設定する必要があります。または、BART RESTOREサブコマンドの-rオプションで指定することもできます。
tablespace_path。表領域をリストアするパスは、 OID = tablespace_path ;形式で指定しtablespace_path ; OID = tablespace_pathremote_hostパラメータで指定されているように、バックアップをリモートホストに復元する場合は、リモートホストにテーブルスペースパスが存在している必要があります。このパラメータはオプションです。
retention_policyアクティブなバックアップを廃止予定としてマークし、削除の候補にする時期を決定します。設定は、 max_number BACKUPSmax_number DAYSmax_number WEEKS 、またはmax_number MONTHSいずれかmax_number 。ここで、 max_numberは正の整数です。キーワードBACKUPSDAYSWEEKS 、およびMONTHSがすべて省略されている場合、指定された整数はデフォルトでmax_number BACKUPSとして解釈されます。 BART設定ファイルのserverセクションにretention_policyパラメータを設定すると、グローバルセクションのretention_policyの設定が上書きされます。サーバーセクションで省略した場合は、グローバルセクションのretention_policyの設定が使用されます。 retention_policyパラメータがどちらのセクションにも指定されていない場合、 MANAGEサブコマンドを使用しても、追加のバックアップが不要とマークされることはありません。保存方針を使用してバックアップを管理する方法については、 5.2項を参照してください。
xlog_method BACKUPサブコマンドによるpg_basebackup実行中にトランザクションログを収集する方法を決定します。バックアップの完了後にトランザクションログファイルを収集するためにfetchに設定します。フルバックアップの作成と並行してトランザクションログをストリーミングするには、 streamに設定しstreamstreamが使用される場合、このデータベースサーバのpostgresql.confファイルのmax_wal_senders設定パラメータは、トランザクションログのストリーミング用の追加セッションを考慮する必要があります(つまり、設定は最低2する必要があります)。 BART設定ファイルのserverセクションにxlog_methodパラメータを設定すると、globalセクションにあるxlog_methodの設定が上書きされます。 serverセクションで省略した場合は、globalセクションのxlog_methodの設定が使用されます。 xlog_methodパラメータがどちらのセクションにも指定されていない場合、デフォルトはfetchです。
wal_compression MANAGEサブコマンドが呼び出されたときに、BARTバックアップカタログ内のアーカイブされたWALファイルの圧縮を有効にします。アーカイブ済みのWALSファイルをgzip形式で圧縮するにはenabledに設定します。ファイルを非圧縮のままにするには、 disabledに設定します。 注: gzip圧縮プログラムはBARTユーザーアカウントのPATHなければなりません。 注:アーカイブWALファイルの圧縮は、増分バックアップをとるデータベースサーバーでは許可されていません。 BART設定ファイルのserverセクションにwal_compressionパラメータを設定すると、グローバルセクションのwal_compressionの設定が上書きされます。サーバーセクションで省略した場合は、グローバルセクションのwal_compressionの設定が使用されます。 wal_compressionパラメータがどちらのセクションにも指定されていない場合、デフォルトはdisabledです。 WAL圧縮にMANAGEサブコマンドを使用する方法については、 5.4.7項を参照してください。
copy_wals_during_restore。 RESTOREサブコマンドを呼び出したときにアーカイブWALファイルを収集する方法を決定します。データベースサーバのアーカイブリカバリの前に、アーカイブWALファイルをBARTバックアップカタログからrestore_path /archived_walsディレクトリにコピーするにはenabledに設定します。データベースサーバのアーカイブリカバリ中にBARTバックアップカタログからアーカイブWALファイルを直接取得するには、 disabledに設定しdisabledrecovery.confファイルでBARTが生成したrestore_commandパラメータは、2つのオプションのどちらが使用されているかを反映しています。 RESTOREサブコマンドが-cオプションを指定して呼び出された場合、アーカイブされたWALファイルはBARTバックアップカタログからrestore_path /archived_walsディレクトリにコピーされるため、BART設定ファイルのcopy_wals_during_restoreパラメータの設定はすべて上書き/archived_walsます。 RESTOREサブコマンドが-cオプションなしで呼び出された場合、アーカイブされたWALファイルの復元方法は次のようになりますcopy_wals_during_restore構成ファイルのserverセクションのcopy_wals_during_restoreパラメータの設定は、グローバルセクションのcopy_wals_during_restoreの設定を上書きします。 serverセクションで省略した場合は、グローバルセクションのcopy_wals_during_restoreの設定が使用されます。 copy_wals_during_restoreパラメータがどちらのセクションでも明示的に設定されていない場合、デフォルトはdisabled 。追加情報については5.4.8項を参照してください。
allow_incremental_backups。増分バックアップにWALスキャナーを使用できるようにします。 BACKUPサブコマンドが--parentオプションをBACKUPして呼び出されたときに、増分バックアップを取ることを許可します。増分バックアップを許可するにはenabledに設定します。増分バックアップを許可しないため完全バックアップのみを許可するには、 disabledに設定しdisabledallow_incremental_backupsパラメーターが指定されていない場合、デフォルトはdisabledです。増分バックアップをとるためのBACKUPサブコマンドの使用方法については、 5.4.3項を参照してください。 WALスキャナーの実行については、 5.5項を参照してください。増分バックアップの一般情報については、 2.1項を参照してください。
スレッド数。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、データベースサーバーからBARTバックアップカタログにブロックをコピーするためのワーカースレッドの数を指定します。同じアプローチは、ワーカースレッドがデータベースサーバーからBARTバックアップカタログにデータファイルをコピーするフルバックアップにも適用されます。 BACKUPサブコマンドが-zまたは-cオプションで指定されているときに、並列の圧縮バックアップを提供するために、フルバックアップをとるときに同じ一連のプロセスが圧縮操作に使用されます。
注: 並列バックアップがN個のワーカースレッドで実行されている場合、サーバーとのN + 1個の同時接続が開始されます。
注:圧縮操作は増分バックアップには適用されません。
BACKUPサブコマンドが--thread-countオプションをBACKUP呼び出された場合、このオプションで指定されたワーカースレッドの数は、BART構成ファイル内のthread_countパラメーターの設定をオーバーライドします。
BACKUPサブコマンドが--thread-countオプションなしで呼び出された場合は、使用されるワーカースレッドの数が次のように決定されますthread_count構成ファイルのserverセクションのthread_countパラメータの設定は、グローバルセクションのthread_countの設定を上書きします。 。 serverセクションで省略した場合は、globalセクションのthread_countの設定が使用されます。 thread_countパラメータがどちらのセクションにも指定されていない場合、デフォルトは1です。
注:フルバックアップを取る場合、有効なスレッド数が1しかない場合は、 --no-pg_basebackupオプションがBACKUPサブコマンドで指定されていない限り、 pg_basebackupユーティリティを使用してフルバックアップを取ります。
バッチサイズ。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、変更されたブロックをデータベースサーバーからBARTバックアップカタログにコピーするために使用されるメモリーのブロック数を指定します。各ブロックは8192バイトです。最大許容値は131072 (131072 * 8192 = 1 GB)。許容最小値は1 (1 * 8192 = 8192バイト)。 pg_read_binary_file()実行中にpg_read_binary_file()がメモリー不足を訴えた場合は、設定を減らしてください。 BART設定ファイルのserverセクションにbatch_sizeパラメータを設定すると、グローバルセクションにあるbatch_sizeの設定が上書きされます。サーバーセクションで省略した場合は、グローバルセクションのbatch_sizeの設定が使用されます。 batch_sizeパラメーターがどちらのセクションにも指定されていない場合は、デフォルト値の49142 (49142 * 8192 = 3/8 GB)が使用されます。
scan_interval BARTバックアップカタログのアーカイブディレクトリにあるWALファイルのスキャンを強制するまでの秒数を指定します。 BART設定ファイルのserverセクションにscan_intervalパラメータを設定すると、globalセクションにあるscan_intervalの設定が上書きされます。サーバーセクションで省略した場合は、グローバルセクションのscan_intervalの設定が使用されます。 scan_intervalパラメータがどちらのセクションにも指定されていない場合は、デフォルト値の0が使用されます。これは、ブルートフォーススキャンが開始されないことを意味します。
mbm_scan_timeoutタイムアウトするまでにMBMファイルを待機する秒数を指定します。 mbm_scan_timeoutパラメータ値は0より大きくなければなりません。値が0または負の場合、増分バックアップ中にエラーが表示されます。 BART設定ファイルのserverセクションにあるmbm_scan_timeoutパラメータの設定は、その特定のデータベースサーバのグローバルセクションにあるmbm_scan_timeoutの設定を上書きします。 serverセクションで省略した場合は、globalセクションのmbm_scan_timeoutの設定が使用されます。 mbm_scan_timeoutパラメータがどちらのセクションにも指定されていない場合、デフォルト値の20が使用されます。つまり、MBMファイルを20秒間待った後、BARTはタイムアウトします。
注: mbm_scan_timeoutパラメータは、増分バックアップにのみ適用できます。
説明データベースサーバの説明。このパラメータはオプションです。
BART構成ファイルを編集して、各データベースサーバーのエントリを追加します。
以下は、3つのデータベースサーバーの例です。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
cluster_owner = enterprisedb
backup_name = acctg_%year-%month-%dayT%hour:%minute:%second
archive_command = 'cp %p %a/%f'
allow_incremental_backups = enabled
retention_policy = 8 BACKUPS
description = "Accounting"
 
[MKTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
allow_incremental_backups = enabled
description = "Marketing"
 
[HR]
host = 127.0.0.1
port = 5432
user = postgres
cluster_owner = postgres
retention_policy = 4 DAYS
description = "Human Resources"
以下は、完全なBART設定ファイルの例です。
#[BART] # Global section, must be named BART. Settings in this section are
# valid for all servers.
#bart_host = [USERNAME]@HOST # Required. USER name and IP address of the host
# where BART utility resides.
#backup_path = PATH # Required. The path where all of the backups will be stored.
#pg_basebackup_path = PATH # Required. The path to pg_basebackup binary.
#xlog_method = [fetch | stream] # Optional. Defaults to fetch.
#retention_policy= [BACKUPS | DAYS | WEEKS | MONTHS] # Optional.
# keep backups for desired duration.
#logfile = PATH # Optional. The path to a file for logging purposes.
#scanner_logfile = PATH # Optional. The path to a file for bart-scanner logging
# purposes.
#wal_compression= [enabled | disabled] # Optional. Defaults to disabled.
# (enables gzip compression. gzip must be in the path).
#copy_wals_during_restore = [enabled | disabled] # Optional. Defaults to disabled.
# Copy WALs to archived_wals directory inside restore location.
#thread_count = 1 # Optional. Defaults to 1. Number of threads used to copy
# blocks.
#batch_size = 49142 # Optional. Maximum number of blocks to harvest in one query.
# Default is 3/8GB - reduce if server complains that it has
# run out of memory while executing pg_read_binary_file()
#scan_interval = 0 # Optional. Number of seconds, after which a brute-force
# scan will start.
#mbm_scan_timeout = 20 # Optional. Defaults to 20. No of seconds to wait for required
# mbm files, before timing out.
#[ServerName] # Server Name.
#backup_name = NAME # Optional. Specifies friendly name for the backups.
# This NAME can contain %variables that will be replaced with
# appropriate values at the time of backup.
# Following %variables are supported.
# (%% will be replaced with %).
# %year - 4 digit year
# %month - 2 digit month
# %day - 2 digit day of month
# %hour - 2 digit hour
# %minute - 2 digit minutes
# %second - 2 digit seconds.
 
#host = HOST # Required. IP address of the server being configured
# for backup.
#user = <dbuser> # Required. Database user name.
#port = PORT # Optional. Defaults to 5444.
#archive_command = CMD # Optional. i.e 'scp %p %h:%a/%f' command to be used for
# archiving. This supports two format specifiers %h and %a
# %h will be replaced with bart_host by the utility.
# %a will be replaced with archive path by the utility.
# other identifiers are left alone to be utilized by server
# such as %f and %p
#cluster_owner = USER # Required. Owner of database cluster.
#remote_host = USER@HOST # Optional.
# IP address of the server on which given backup will
# be restored.
#tablespace_path = [OID=PATH];[OID=PATH];...
# Optional. path to directory where table-spaces will
# be restored
# (if the remote_host is provided then this path should
# be valid
# on that server).
#xlog_method = [fetch | stream] # Optional. Defaults to fetch.
#retention_policy= [BACKUPS | DAYS | WEEKS | MONTHS] # Optional.
# keep backups for desired duration.
#wal_compression= [enabled | disabled] # Optional. Defaults to disabled.
# (enables gzip compression. gzip must be in the path).
#copy_wals_during_restore = [enabled | disabled] # Optional. Defaults to disabled.
# Copy WALs to archived_wals directory inside restore location.
#allow_incremental_backups = [enabled | disabled] # Optional. Defaults to disabled.
# Can take incremental backups. (PG 9.5+ only).
# bart-scanner will only work when this is enabled.
#thread_count = 1 # Optional. Defaults to 1. Number of threads used to copy
# blocks.
#description = # Optional. description of the server.
#batch_size = 49142 # Optional. Maximum number of blocks to harvest in one query.
# Default is 3/8GB - reduce if server complains that it has
# run out of memory while executing pg_read_binary_file()
#scan_interval = 0 # Optional. Number of seconds, after which a brute-force
# scan will start.
#mbm_scan_timeout = 20 # Optional. Defaults to 20. No of seconds
# to wait for required mbm files, before timing out.
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
cluster_owner = enterprisedb
backup_name = acctg_%year-%month-%dayT%hour:%minute:%second
archive_command = 'cp %p %a/%f'
retention_policy = 8 BACKUPS
description = "Accounting"
 
[MKTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
description = "Marketing"
 
[HR]
host = 127.0.0.1
port = 5432
user = postgres
cluster_owner = postgres
retention_policy = 4 DAYS
description = "Human Resources"
BARTホストとデータベースサーバを設定したら、 5 章で説明したようにBARTを使い始めることができます
5 操作
このセクションでは、BARTを使用してバックアップおよびリカバリ管理操作を実行する方法について説明します。
セクション 5.1では、BART管理プロセスの概要を説明しています。
セクション 5.2では、保存方針を使用したバックアップの管理について説明しています。
5.3 節では、BARTコマンドラインプログラムとそのサブコマンドの基本的な使用方法について説明します。
セクション 5.4では、各BARTサブコマンドについて説明しています。
セクション 5.5はBART WALスキャナーの使用法について説明しています。
BART操作を続行する前に、これらのセクションを確認してください。
5.1 BART管理の概要
セクション 4説明されている設定プロセスを実行した後 、BARTバックアップおよびリカバリ管理プロセスを開始できます。
まず、以下の手順を実行します。
1。
-sオプションを指定せずにCHECK-CONFIGサブコマンドを実行します。 -sオプションでサーバーを指定せずに使用した場合、 CHECK-CONFIGサブコマンドはBART構成ファイルのグローバルセクション内のパラメーターを確認します。
2。
まだ行っていない場合は、 INITサブコマンドを実行してBARTバックアップカタログの作成を終了します。これにより、バックアップとWALファイルが保存される完全なディレクトリ構造になります。このステップでは、そうでない場合には、コピー操作、有効なWALアーカイブとデータベースサーバを再起動する前に行う必要がありますarchive_commandのパラメータpostgresql.confファイルまたはpostgresql.auto.confファイルが原因ターゲットアーカイブのディレクトリが存在しないために失敗しました。ディレクトリ構造が完成すると、 server_name /archived_walsという名前の最下位レベルのサブディレクトリ( アーカイブパスと呼ばれる)が各データベースサーバに存在するはずです。
3。
アーカイブを有効にしてPostgresデータベースサーバーを起動します。 WALファイルが各データベースサーバーのserver_name /archived_walsアーカイブパスに表示/archived_wals れていることを確認します。 (アーカイブの頻度は他のpostgresql.conf設定パラメータに依存します。)Postgresデータベースサーバのログファイルを調べて、アーカイブエラーがないことを確認してください。バックアップ処理中に作成される可能性のあるWALファイルが確実にアーカイブされるようにするために、アーカイブを作成してからバックアップを取ってください。
4。
5。
サーバー名を指定して-sオプションを指定して、各データベースサーバーに対してBART CHECK-CONFIGサブコマンドを実行します。これにより、データベースサーバはバックアップを取るために正しく設定されています。
6。
実行できるBART管理プロセスは他にもたくさんあります。
SHOW-SERVERSサブコマンドでデータベースサーバ情報を表示します
SHOW-BACKUPSサブコマンドでバックアップ情報を表示します。
BACKUPサブコマンドを実行して、追加のフルバックアップまたは増分バックアップを作成します。
MANAGEサブコマンドを使用してバックアップの保存方針を強制するための手順を確立します 。これには、cronジョブを使用してMANAGEサブコマンドをスケジュールすることが含まれる場合があります。
データベースクラスタに対してポイントインタイムリカバリ操作を実行する手順は、次のとおりです。
1。
service ppas- x などの適切な方法を使用して、データベースサーバを停止します . x stopsystemctl stop edb-as- x . xPOSTGRES_INSTALL_HOME /bin/pg_ctl stop –D data_directoryなど
2。
3。
BART SHOW-BACKUPS -s server_nameサブコマンドを実行して、データベースサーバのバックアップのバックアップIDとバックアップ名を一覧表示します。最新のバックアップを復元する場合を除き、BART RESTOREサブコマンドで適切なバックアップIDまたはバックアップ名を指定する必要があります。この場合、バックアップIDまたはバックアップ名を指定するためのRESTOREサブコマンドの-iオプションは省略できます。
4。
適切なオプションを指定してBART RESTOREサブコマンドを実行します。バックアップは、 -p restore_pathオプションで指定されたディレクトリに復元されます。さらに、 RESTOREサブコマンド-cオプションが指定されている場合、またはcopy_wals_during_restore BART構成パラメーターのenabled設定がデータベースサーバーに適用可能である場合は、BARTバックアップカタログから必要なアーカイブWALファイルがrestore_path /archived_walsサブディレクトリにコピーされます。 。 注: restore_pathディレクトリとそのサブディレクトリおよびファイルが適切なPostgresユーザーアカウント(例えば、 enterprisedbまたはpostgres )によって所有されていることを確認してください。 Postgresユーザーアカウントのみがrestore_pathディレクトリへのアクセス許可を持っていることも確認してください。コマンドchown -R enterprisedb:enterprisedb restore_pathまたはchmod 700 restore_pathなどを使用して、必要に応じて適切な調整を行います。
5。
6。
ポイントインタイムリカバリ用に生成された場合は、 RESTOREサブコマンドの-p restore_pathオプションで指定されたディレクトリに作成されたrecovery.confファイルが正しいリカバリパラメータ設定で生成されたことを確認します。 RESTOREサブコマンド-cオプションが指定されている場合、またはcopy_wals_during_restore BART構成パラメーターの有効設定がデータベース・サーバーに適用可能である場合、 restore_commandパラメーターはRESTOREによって作成されたrestore_path /archived_walsサブディレクトリーからアーカイブWALファイルを取り出します。それ以外の場合、 restore_commandはBARTバックアップカタログからアーカイブされたWALファイルを取得します。
7。
BART RESTOREサブコマンドは、復元されたデータベースクラスタ内のWALアーカイブを無効にします。すぐにWALアーカイブを有効にしたい場合は、BARTがファイルの最後に追加するarchive_mode = offパラメータを削除してpostgresql.confファイルを修正archive_mode = offください。
8。
BARTサブコマンドの詳細については、 5.4 節を参照してください
5.2 保存方針を使用したバックアップの管理
BARTを使用しているときは、時間の経過とともにバックアップの数が大幅に増加する可能性があります。管理者が、必要でなくなった最も古いバックアップを削除するプロセスを定期的に実行しない限り、これは最終的に大量のディスク容量の消費につながります。
バックアップが削除されるのに十分古くなってから実際に削除される時期を判断するこのプロセスは、次の基本的な手順で実行できます。
1。
BART構成ファイルで保存方針を決定して設定します。 保持ポリシーは、バックアップが不要とみなされたときに決定するルールです。保存方針はすべてのサーバーにグローバルに適用できますが( 4.1項を参照)、各サーバーはグローバル保存方針を自分自身で上書きできます( 4.2.5項を参照)。
2。
MANAGEサブコマンドを使用して、保存方針に従ってバックアップを分類および管理します。このような機能には、現時点でどのアクティブバックアップを不要と見なすか、無期限に保持するバックアップの選択、および不要バックアップの物理的な削除が含まれます。古いバックアップが削除されると、そのバックアップのアーカイブされたWALファイルとともにBACKUPサブコマンドで取得されたそのバックアップも削除されます。
3。
保存方針が決定され、検証されたら、定期的に MANAGEサブコマンドを実行してバックアップを評価し、古いバックアップをリストまたは削除するためにcronジョブを作成できます
フルバックアップと比較して、保存方針の管理が増分バックアップにどのように適用されるかに違いがあります。
フルバックアップに適用された保存方針管理が増分バックアップに与える影響については、 5.2.5 項を参照してください。
以下のセクションでは、保存ポリシー管理が一般的にバックアップにどのように適用されるか、およびその具体的な使用方法とフルバックアップへの影響について説明します。
5.2.1 項で 、保存方針の用語と種類の概要を説明します。
5.2.2 項では、保存方針に従ってバックアップのステータスをマークする概念について説明します。
5.2.3 項では、さまざまな種類の保存方針の設定について説明します。
5.2.4 項では、バックアップステータスのマーク付け、選択したバックアップの無期限保存、不要なバックアップの一覧表示、不要なバックアップの削除など、バックアップを管理するプロセスについて説明します。
注:上記のセクションに示されている例は、BARTバージョン1.1で生成されたものです。保存方針管理プロセスは現在のBARTバージョンでも同じですが、表示されるSHOW-BACKUPSおよびSHOW-SERVERSサブコマンドの出力には、保存方針に影響を与えない追加のフィールドがいくつか含まれています。
 
5.2.1 概要
BART保存方針により、各バックアップは3つの状態( アクティブ廃止 、および保持)の いずれかに分類されます
アクティブです。バックアップは、そのサーバーに適用可能な保存方針を満たしています。このようなバックアップは、サーバーの回復の安全性を確保するために必要と考えられるため、保持する必要があります。
時代遅れです。バックアップは、そのサーバーに適用可能な保存方針を満たしていません。バックアップは、サーバーの復旧の安全性のために必要と見なされなくなったため、削除することができます。
キープ。バックアップは、そのサーバーに適用可能な保存方針に関係なく保存されます。バックアップはサーバーの復旧の安全性にとって不可欠であると考えられているため、無期限に削除しないでください。
保存ポリシーには2種類あります。
冗長保持ポリシー。 冗長性保持ポリシーは、特定のサーバーに対して保持するために、指定された最大数の最新バックアップに依存します。バックアップの数がその最大数を超えると、最も古いバックアップが不要と見なされます(キープとしてマークされたバックアップを除く)。セクション5.2.3.1では 、このタイプの保存方針について説明しています。
回復期間保存ポリシー。 リカバリ期間の保存方針は、バックアップをアクティブと見なす時期についての期間(リカバリ期間)に依存します。回復期間を定義する境界は、現在の日付/時刻(回復期間の終了境界)と、過去に指定された期間にわたって戻った日付/時刻(回復期間の開始境界)です。バックアップが取られた日時がリカバリ期間内である(つまり、バックアップ日時がリカバリ期間の開始日時以降である)場合、バックアップはアクティブであるとみなされます。 (キープとしてマークされたバックアップを除く)。 5.2.3.2項でこのタイプの保存方針について説明しています。
したがって、リカバリー・ウィンドウの保存方針では、リカバリー・ウィンドウの時間枠は動的にシフトするので、リカバリー・ウィンドウの終わりは常に MANAGEサブコマンドが実行されたときの現在の日時になります。将来のある時点でMANAGEサブコマンドを実行すると、リカバリー・ウィンドウの開始境界は時間的に前にMANAGEます。
将来のある時点で、バックアップが取られた日時は、リカバリ期間の開始境界より早くなります。これは、アクティブバックアップのステータスが古くなったと見なされるときです。
SHOW-SERVERSサブコマンドを実行することにより、いつでも回復ウィンドウの開始境界を確認できますSHOW-SERVERSサブコマンドのRETENTION POLICYフィールドには、リカバリー・ウィンドウの開始境界が表示されます。
 
5.2.2 バックアップステータスのマーク付け
BACKUPサブコマンドを使用して最初にバックアップを作成したときは、常に活動状況で記録されます。
特定の時点でMANAGEサブコマンドを使用することによってのみ 、アクティブ・バックアップが評価され、保存方針に従ってそれらの状況を廃止に変更する必要があるかどうかが判断されます。
また、それはときにのみです MANAGEサブコマンドはオプションなしでのみのいずれかで呼び出される-sとして(つまり、内部BARTによって記録されている)アクティブなバックアップが評価され、また、 マークされていること(データベースサーバを特定するために)オプション時代遅れ。 MANAGEサブコマンドとそのオプションの使用方法については、 5.4.7項を参照してください。
バックアップが不要とマークされると、次の手順を実行しない限り、バックアップをアクティブに戻すことはできません。
MANAGEサブコマンドを使用して-cオプションをバックアップIDまたは名前と一緒に-iオプションと一緒に指定します。この特定のバックアップを無期限に保存したい場合は、 -c keepを使用します。それ以外の場合は-c nokeepます。
-c nokeepオプションを使用した場合 、バックアップステータスはアクティブに戻ります。次回MANAGEサブコマンドが使用されるときには、BART構成ファイル内の現在の保存方針に基づいて、バックアップを再評価して、その状況を旧式に戻す必要があるかどうかを判断します。
場合があります retention_policyパラメータは、特定の方法で設定されている、あなたが実行しMANAGEそれに応じてバックアップをマークするサブコマンドをretention_policy設定、その後、あなたが変更または無効retention_policyバックアップの現在、マークの状態、それをコメントアウトして、パラメータを現在のretention_policy設定とおそらく矛盾しています。
現在の retention_policy設定と一致するようにバックアップステータスを変更する場合は、次の手順を実行します。
現在新しい保存方針の下で廃止と見なされなくなった廃止としてマークされているバックアップがある場合は 、そのようなバックアップに対してMANAGEサブコマンドを-c nokeepオプションを指定して実行し、廃止状況を活動状態に変更します。 -i allオプションを指定することもできます。これは、現在keepとマークされているものも含め、すべてのバックアップをアクティブ状態に戻します。
MANAGEサブコマンドをオプションを指定せずに、または-sオプションのみを指定して実行して、BART構成ファイル内の新しいretention_policy設定に基づいてマーク付き状況をリセットします。
MANAGE -dオプションを使用したバックアップの削除は 、バックアップがマークされた最後の機会に依存します。
バックアップの現在のマーキング(ステータス)は、 SHOW-BACKUPSサブコマンドで表示できます
 
5.2.3アイテム保持ポリシーの設定
保存方針は 、BART設定ファイルのretention_policyパラメータによって決まります。すべてのサーバーに対してグローバルに設定するには、セクション4.1を参照してください。データベースサーバで設定する場合は、 4.2.5項を参照してください。
保持ポリシーの2種類がセクションで説明した冗長性の保持ポリシーです 5.2.3.1および節で説明したリカバリ保持ポリシー5.2.3.2
5.2.3.1 冗長保持ポリシー
冗長性保持ポリシーを使用するには、 retention_policy = max_number BACKUPS 設定し retention_policy =ここで、 max_numberは最新のバックアップの最大数を示す正の整数です。
以下にいくつかの追加の制限事項があります。
キーワード BACKUPSは常に複数形で指定する必要があります(たとえば、 1 BACKUPS )。
BARTは max_number 最大整数値2,147,483,647を max_numberますが、システム環境に基づいた現実的で実用的な値を常に使用する必要があります。
次の例に示すように、 max_number整数に続くキーワード BACKUPSDAYSWEEKS 、およびMONTHSがすべて省略されている場合、冗長性保持ポリシーはデフォルトのタイプの保持ポリシーです
retention_policy = 3
次の例では、冗長性保持ポリシー設定は最新の3つのバックアップをアクティブなバックアップと見なします。 keepとマークされているもの以外の古いバックアップは古くなっていると見なされます。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 BACKUPS
description = "Accounting"
SHOW-SERVERSサブディスプレイの3バックアップ冗長性保持ポリシーRETENTION POLICYフィールド:
-bash-4.1$ bart SHOW-SERVERS -s acctg
SERVER NAME : acctg
HOST NAME : 127.0.0.1
USER NAME : enterprisedb
PORT : 5444
REMOTE HOST :
RETENTION POLICY : 3 Backups
DISK UTILIZATION : 627.04 MB
NUMBER OF ARCHIVES : 25
ARCHIVE PATH : /opt/backup/acctg/archived_wals
ARCHIVE COMMAND : cp %p /opt/backup/acctg/archived_wals/%f
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
DESCRIPTION : "Accounting"
5.2.3.2 リカバリ期間の保存方針
リカバリ保持ポリシーを使用するには、設定 retention_policy次のいずれかの方法でリカバリのための時間の所望の長さにパラメータを:
max_number DAYS設定して 、開始日時回復ウィンドウ境界を、 max_number指定された現在の日時からmax_numberて戻る日数として定義します。
max_number WEEKS設定して 、開始日時回復ウィンドウ境界を、 max_number指定された現在の日時からmax_numberて戻る週数として定義します。
max_number MONTHS設定して 、開始日時回復ウィンドウ境界を、 max_number指定された現在の日時からmax_numberて戻る月数として定義します。
以下にいくつかの追加の制限事項があります。
キーワード DAYSWEEKS 、およびMONTHSは、常に複数形で指定する必要があります(例えば、 1 DAYS1 WEEKS 、または1 MONTHS )。
BARTは max_number 最大整数値2,147,483,647を max_numberますが、システム環境に基づいた現実的で実用的な値を常に使用する必要があります。
バックアップの日付/時刻が2秒精度まで回復ウィンドウの日付/時刻以上である場合、バックアップはアクティブであると見なされます。
以下で説明するように、実際の計算された回復期間を表示する方法がいくつかあります。
MANAGEサブコマンドと-nオプションを使用してデバッグモードで( -dオプションを使用して) BARTを呼び出すと、 retention_policy設定と現在の日付/時刻に基づいて、回復期間の計算時間長が表示されます。
たとえば、次の retention_policy設定を使用します。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 DAYS
backup-name = acctg_%year-%month-%dayT%hour:%minute:%second
description = "Accounting"
 
[DEV]
host = 127.0.0.1
port = 5445
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 WEEKS
description = "Development"
 
[HR]
host = 127.0.0.1
port = 5432
user = postgres
retention_policy = 3 MONTHS
description = "Human Resources"
場合 MANAGEサブコマンドを一緒にデバッグモードで起動され-n 2015年4月17日のオプション、次のような結果が表示されます。
-bash-4.1$ bart -d MANAGE -n
DEBUG: Server: acctg, Now: 2015-04-17 16:34:03 EDT, RetentionWindow: 259200 (secs) ==> 72 hour(s)
DEBUG: Server: dev, Now: 2015-04-17 16:34:03 EDT, RetentionWindow: 1814400 (secs) ==> 504 hour(s)
DEBUG: Server: hr, Now: 2015-04-17 16:34:03 EDT, RetentionWindow: 7776000 (secs) ==> 2160 hour(s)
サーバー acctg場合、72時間は3日の回復期間にacctg ます
サーバー dev場合、504時間は21日(3週間)の回復期間に相当します。
サーバー hr場合、2160時間は90日(3か月)の回復期間に相当します。
注: max_number MONTHS設定の場合、リカバリー期間について計算された合計日数は、現在の日付/時刻から過去の月までの実際の日数に依存します。したがって、 max_number MONTHSは、 max_number x 30 DAYSと必ずしも正確に等価ではありません。 (たとえば、現在の日付/時刻が3月の月の場合、1か月の回復期間は前の月が2月であるため、28日に相当します。したがって、現在の日付が3月31日の場合、1 - 月回復ウィンドウは3月3日に開始されます。ただし、典型的な結果は、開始回復ウィンドウ境界の月の日がMANAGEサブコマンドが呼び出された日と同じ日になることです。
SHOW-SERVERSサブコマンドを使用してRETENTION POLICYフィールドにリカバリー・ウィンドウの始まりを表示します。
次の例では、リカバリ期間保持ポリシー設定は、3日間のリカバリ期間内に取得されたバックアップをアクティブバックアップと見なします。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 DAYS
description = "Accounting"
SHOW-SERVERSサブコマンドが2015-04-10呼び出された場合、 RETENTION POLICYフィールドに表示される3日間のリカバリーウィンドウの RETENTION POLICY2015-04-07 14:57:36 EDTです。
現時点では、 2015-04-07 14:57:36 EDT 以降に実行されたバックアップはアクティブと見なされます。 2015-04-07 14:57:36 EDTより前に2015-04-07 14:57:36 EDTされたバックアップは、キープとしてマークされたバックアップを除いて時代遅れと見なされます。
-bash-4.1$ date
Fri Apr 10 14:57:33 EDT 2015
-bash-4.1$
-bash-4.1$ bart SHOW-SERVERS -s acctg
SERVER NAME : acctg
HOST NAME : 127.0.0.1
USER NAME : enterprisedb
PORT : 5444
REMOTE HOST :
RETENTION POLICY : 2015-04-07 14:57:36 EDT
DISK UTILIZATION : 824.77 MB
NUMBER OF ARCHIVES : 37
ARCHIVE PATH : /opt/backup/acctg/archived_wals
ARCHIVE COMMAND : cp %p /opt/backup/acctg/archived_wals/%f
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
DESCRIPTION : "Accounting"
次の例では、リカバリ期間保持ポリシー設定は、3週間のリカバリ期間内に取得されたバックアップをアクティブなバックアップと見なします。
[DEV]
host = 127.0.0.1
port = 5445
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 WEEKS
description = "Development"
SHOW-SERVERSサブコマンドが2015-04-10呼び出された場合、 RETENTION POLICYフィールドに表示される3週間のリカバリーウィンドウの RETENTION POLICY2015-03-20 14:59:42 EDTです。
現時点では、 2015-03-20 14:59:42 EDT 以降に実行されたバックアップはアクティブと見なされます。 2015-03-20 14:59:42 EDTより前に2015-03-20 14:59:42 EDTされたバックアップは、キープとしてマークされたバックアップを除いて時代遅れと見なされます。
-bash-4.1$ date
Fri Apr 10 14:59:39 EDT 2015
-bash-4.1$
-bash-4.1$ bart SHOW-SERVERS -s dev
SERVER NAME : dev
HOST NAME : 127.0.0.1
USER NAME : enterprisedb
PORT : 5445
REMOTE HOST :
RETENTION POLICY : 2015-03-20 14:59:42 EDT
DISK UTILIZATION : 434.53 MB
NUMBER OF ARCHIVES : 22
ARCHIVE PATH : /opt/backup/dev/archived_wals
ARCHIVE COMMAND : cp %p /opt/backup/dev/archived_wals/%f
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
DESCRIPTION : "Development"
次の例では、リカバリ期間保持ポリシー設定は、3か月のリカバリ期間内に取得されたバックアップをアクティブなバックアップと見なします。
[HR]
host = 127.0.0.1
port = 5432
user = postgres
retention_policy = 3 MONTHS
description = "Human Resources"
SHOW-SERVERSサブコマンドが2015-04-10呼び出された場合、 RETENTION POLICYフィールドに表示される3か月の回復ウィンドウの RETENTION POLICY2015-01-10 14:04:23 ESTです。
現時点では、 2015-01-10 14:04:23 EST 以降に行われたバックアップはアクティブと見なされます。 2015-01-10 14:04:23 EST前に行われたバックアップはキープとしてマークされたバックアップを除いて時代遅れと見なされます。
-bash-4.1$ date
Fri Apr 10 15:04:19 EDT 2015
-bash-4.1$
-bash-4.1$ bart SHOW-SERVERS -s hr
SERVER NAME : hr
HOST NAME : 127.0.0.1
USER NAME : postgres
PORT : 5432
REMOTE HOST :
RETENTION POLICY : 2015-01-10 14:04:23 EST
DISK UTILIZATION : 480.76 MB
NUMBER OF ARCHIVES : 26
ARCHIVE PATH : /opt/backup/hr/archived_wals
ARCHIVE COMMAND : scp %p enterprisedb@192.168.2.22:/opt/backup/hr/archived_wals/%f
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
DESCRIPTION : "Human Resources"
次のセクションでは、保存方針に基づいてバックアップを管理する方法について説明します。
 
5.2.4 バックアップの管理
MANAGEサブコマンドは、BARTのコンフィギュレーションファイルに設定さリテンションポリシーに従ってバックアップを評価し、分類するために使用されます。バックアップがBACKUPサブコマンドで最初に作成されたときは、常にアクティブとしてマークされています。 MANAGEサブコマンドを使用すると、アクティブなバックアップは不要とマークされることがあります。古くなったバックアップは削除できます。
以下のセクションでは、バックアップ管理のさまざまな側面について説明します。
5.2.4.1 項では、バックアップステータスと使用されるサブコマンドに応じてバックアップを削除するための規則について説明します。
5.2.4.2 項では、バックアップを廃止としてマークし、廃止とマークされたバックアップをリセットしてアクティブ状態に戻すことによって、バックアップを無期限に保持する方法を示します。
5.2.4.3 項では、不要なバックアップを評価、マーク付け、および削除するための一般的なプロセスを説明しています。
5.2.4.1 保存方針に基づいて許可されている削除
このセクションでは、保存方針の下でバックアップを削除する方法と条件について説明します。
MANAGEサブコマンドを使用して、古いバックアップを削除することをお勧めします。 DELETEサブコマンドは、特別な管理目的にのみ使用してください。
MANAGEサブコマンドを-dオプションと一緒に使用することと、DELETEサブコマンドを使用することとの重要な違いは、以下のとおりです。
MANAGEサブコマンド削除を(それは内部BARTによって記録されている)のみのバックアップステータスは、現在マークされているかに依存しています。 BART構成ファイル内のretention_policyパラメーターの現在の設定は無視されます。
DELETEサブコマンドは、もっぱらの現在の設定に依存しているretention_policy BARTの設定ファイル内のパラメータ。バックアップの現在のアクティブ、廃止、または保持のステータスは無視されます。
したがって、 MANAGEサブコマンドとDELETEサブコマンドの削除動作は、保存方針の異なる側面に基づいています。
MANAGEおよびDELETEサブコマンドの具体的な削除規則は、以下のとおりです。
MANAGEとサブコマンドを-dオプションだけ時代遅れとしてマークされたバックアップを削除することができます。この削除は、BART設定ファイルの現在のretention_policy設定に関係なく行われます。
BART構成ファイルのretention_policyパラメーターで現在設定されている冗長性保持ポリシーでは、マークされた状況に関係なく、バックアップIDまたは名前が-iオプションで指定されている場合は、 DELETEサブコマンドでバックアップを削除できます。指定されたデータベースサーバのバックアップの合計数が、 retention_policyパラメータで現在指定されている冗長バックアップの最大数を超えています。バックアップの合計数が、指定された冗長バックアップの最大数以下である場合は、 -i backupオプションを指定したDELETEを使用して追加のバックアップを削除することはできません。
現在で設定したリカバリ保持ポリシーのもと retention_policyにかかわらず、そのマークされた状態の、BARTの設定ファイル内のパラメータの任意のバックアップをして削除することができDELETEバックアップ識別子または名前がで指定されたサブコマンド-iオプション、および場合バックアップの日付/時刻が、 retention_policyパラメータで現在指定されているリカバリ期間内ではありません。バックアップ日時がリカバリ期間内である場合は、 DELETE-i backupオプションと一緒に使用して削除することはできません。
-i allオプションを指定して DELETEサブコマンドを呼び出すと、保存方針に関係なく、また状況がアクティブ、廃止、または保持のいずれとしてマークされているかに関係なく、すべてのバックアップが削除されます。
次の表は、マークされたステータスに従ったバックアップの削除規則をまとめたものです。 「はい」のエントリは、特定の状況下でバックアップを削除できることを示します。 「いいえ」のエントリは、バックアップを削除できないことを示します。
表5-1ステータス別バックアップの削除許可
No
Yes
No
No
Yes
No
DELETE –i backup
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
注1:指定されたデータベースサーバーのバックアップの合計数が、BART構成ファイルのredundancy_policyパラメーターで現在設定されている指定された最大冗長バックアップの数より大きい場合にのみ、削除が行われます。
注2:バックアップがBART構成ファイルのredundancy_policyパラメーターで現在設定されている回復期間内にない場合にのみ、削除が行われます。
5.2.4.2 無期限保管ステータスのためのバックアップのマーク付け
無期限に保存したい特定のバックアップがある可能性があるため、データベースサーバに適用されている保存方針に基づいてそれらを削除したくない場合があります。
そのようなバックアップは、古いものとしてマークされているものから除外するためにkeepとしてマークすることができます。
次の例に示すように MANAGEサブコマンドを-c keepオプションと一緒に使用して、そのようなバックアップを無期限に保持します。
-bash-4.1$ bart MANAGE -s acctg -i 1428355371389 -c keep
INFO: changing status of backup '1428355371389' of server 'acctg' from 'active' to 'keep'
INFO: 1 WAL file(s) changed
バックアップステータスは、keepとして表示されます。
-bash-4.1$ bart SHOW-BACKUPS -s acctg -i 1428355371389 -t
SERVER NAME : acctg
BACKUP ID : 1428355371389
BACKUP NAME : none
BACKUP STATUS : keep
BACKUP TIME : 2015-04-06 17:22:53 EDT
BACKUP SIZE : 5.71 MB
WAL(S) SIZE : 16.00 MB
NO. OF WALS : 1
FIRST WAL FILE : 0000000100000000000000AA
CREATION TIME : 2015-04-06 17:22:53 EDT
LAST WAL FILE : 0000000100000000000000AA
CREATION TIME : 2015-04-06 17:22:53 EDT
後で、そのようなバックアップを保存方針に基づいて削除の評価が可能な状態に戻すことにした場合は、最初に次のよう-c nokeepオプションを指定して MANAGEサブコマンドを適用して保存状態を解除する必要があります。次の例で示されています。
-bash-4.1$ bart MANAGE -s acctg -i 1428355371389 -c nokeep
INFO: changing status of backup '1428355371389' of server 'acctg' from 'keep' to 'active'
INFO: 1 WAL file(s) changed
バックアップステータスがアクティブに戻ります。
-bash-4.1$ bart SHOW-BACKUPS -s acctg -i 1428355371389 -t
SERVER NAME : acctg
BACKUP ID : 1428355371389
BACKUP NAME : none
BACKUP STATUS : active
BACKUP TIME : 2015-04-06 17:22:53 EDT
BACKUP SIZE : 5.71 MB
WAL(S) SIZE : 16.00 MB
NO. OF WALS : 1
FIRST WAL FILE : 0000000100000000000000AA
CREATION TIME : 2015-04-06 17:22:53 EDT
LAST WAL FILE : 0000000100000000000000AA
CREATION TIME : 2015-04-06 17:22:53 EDT
次に MANAGEサブコマンドがオプションなしで、または-sオプションのみを指定して呼び出されたときには 、現在のretention_policy設定に従って、アクティブ・バックアップが不要とマークされることがあります。
5.2.4.3 古いバックアップの評価、マーク付け、および削除
MANAGEサブコマンドが呼び出されると、冗長保持ポリシーのデータベースサーバーの現在のバックアップ数、またはリカバリウィンドウの保持ポリシーの現在の日時に基づいて、 -sオプションで指定されたデータベースサーバーのアクティブバックアップが評価されます。 -s allを指定した場合、または-sオプションを省略した場合は、すべてのデータベースサーバに対して。
注:現在廃止または保持されているとマークされているバックアップのステータスは変更されません。このようなバックアップを再評価してから分類するには、まずMANAGE -c nokeepオプションをMANAGE -c nokeepしてそれらのステータスをアクティブにリセットする必要があります。詳しくは5.2.2項を参照してください。
このセクションでは、評価、マーキング、および削除のプロセスを2つの例で説明します。1つは冗長性保持ポリシー、もう1つは回復期間保持ポリシーです。
冗長保持ポリシー
次の例では、次のサーバー構成で示すように冗長性保持ポリシーを使用しています。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 BACKUPS
description = "Accounting"
以下は現在のバックアップのセットです。リスト内の最後のバックアップには保存のマークが付けられています。
-bash-4.1$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
acctg 1428768344061 2015-04-11 12:05:46 EDT 5.72 MB 48.00 MB 3 active
acctg 1428684537299 2015-04-10 12:49:00 EDT 5.72 MB 272.00 MB 17 active
acctg 1428589759899 2015-04-09 10:29:27 EDT 5.65 MB 96.00 MB 6 active
acctg 1428502049836 2015-04-08 10:07:30 EDT 55.25 MB 96.00 MB 6 active
acctg 1428422324880 2015-04-07 11:58:45 EDT 54.53 MB 32.00 MB 2 active
acctg 1428355371389 2015-04-06 17:22:53 EDT 5.71 MB 16.00 MB 1 keep
MANAGEサブコマンドを-nオプションを指定して起動し、どのアクティブ・バックアップが保存方針に従って古いものに変更されるかを確認するための予行MANAGEを実行します。
-bash-4.1$ bart MANAGE -s acctg -n
INFO: processing server 'acctg', backup '1428768344061'
INFO: processing server 'acctg', backup '1428684537299'
INFO: processing server 'acctg', backup '1428589759899'
INFO: processing server 'acctg', backup '1428502049836'
INFO: marking backup '1428502049836' as obsolete
INFO: 6 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1428422324880'
INFO: marking backup '1428422324880' as obsolete
INFO: 2 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1428355371389'
1428502049836 は、バックアップ 1428502049836および1428422324880は廃止予定としてマークされます。
また、予行演習ではバックアップの状態は変わりません。時代遅れと見なされる2つのバックアップは、まだアクティブとしてマークされています。
-bash-4.1$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
acctg 1428768344061 2015-04-11 12:05:46 EDT 5.72 MB 48.00 MB 3 active
acctg 1428684537299 2015-04-10 12:49:00 EDT 5.72 MB 272.00 MB 17 active
acctg 1428589759899 2015-04-09 10:29:27 EDT 5.65 MB 96.00 MB 6 active
acctg 1428502049836 2015-04-08 10:07:30 EDT 55.25 MB 96.00 MB 6 active
acctg 1428422324880 2015-04-07 11:58:45 EDT 54.53 MB 32.00 MB 2 active
acctg 1428355371389 2015-04-06 17:22:53 EDT 5.71 MB 16.00 MB 1 keep
MANAGEサブコマンドを呼び出して -nオプションを省略し、バックアップの状況を変更して廃止のマークを付けます。
-bash-4.1$ bart MANAGE -s acctg
INFO: processing server 'acctg', backup '1428768344061'
INFO: processing server 'acctg', backup '1428684537299'
INFO: processing server 'acctg', backup '1428589759899'
INFO: processing server 'acctg', backup '1428502049836'
INFO: marking backup '1428502049836' as obsolete
INFO: 6 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1428422324880'
INFO: marking backup '1428422324880' as obsolete
INFO: 2 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1428355371389'
古くなったバックアップは、さまざまな方法で確認できます。 MANAGEサブコマンドに-lオプションを指定して、 使用されなくなったバックアップをリストします。
-bash-4.1$ bart MANAGE -s acctg -l
INFO: 6 WAL file(s) will be removed
SERVER NAME: acctg
BACKUP ID: 1428502049836
BACKUP STATUS: obsolete
BACKUP TIME: 2015-04-08 10:07:30 EDT
BACKUP SIZE: 55.25 MB
WAL FILE(s): 6
WAL FILE: 000000010000000100000003
WAL FILE: 000000010000000100000002
WAL FILE: 000000010000000100000001
WAL FILE: 000000010000000100000000
WAL FILE: 0000000100000000000000E3
WAL FILE: 0000000100000000000000E2
 
INFO: 2 WAL file(s) will be removed
SERVER NAME: acctg
BACKUP ID: 1428422324880
BACKUP STATUS: obsolete
BACKUP TIME: 2015-04-07 11:58:45 EDT
BACKUP SIZE: 54.53 MB
WAL FILE(s): 2
WAL FILE: 0000000100000000000000E1
WAL FILE: 0000000100000000000000E0
SHOW-BACKUPSサブコマンド STATUSフィールドは現在の状況を表示します。
-bash-4.1$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
acctg 1428768344061 2015-04-11 12:05:46 EDT 5.72 MB 48.00 MB 3 active
acctg 1428684537299 2015-04-10 12:49:00 EDT 5.72 MB 272.00 MB 17 active
acctg 1428589759899 2015-04-09 10:29:27 EDT 5.65 MB 96.00 MB 6 active
acctg 1428502049836 2015-04-08 10:07:30 EDT 55.25 MB 96.00 MB 6 obsolete
acctg 1428422324880 2015-04-07 11:58:45 EDT 54.53 MB 32.00 MB 2 obsolete
acctg 1428355371389 2015-04-06 17:22:53 EDT 5.71 MB 16.00 MB 1 keep
個々のバックアップの詳細は、 SHOW-BACKUPSサブコマンドと-tオプションを使用して表示できます。 BACKUP STATUSフィールドの状況に注意してください。
-bash-4.1$ bart SHOW-BACKUPS -s acctg -i 1428502049836 -t
SERVER NAME : acctg
BACKUP ID : 1428502049836
BACKUP NAME : none
BACKUP STATUS : obsolete
BACKUP TIME : 2015-04-08 10:07:30 EDT
BACKUP SIZE : 55.25 MB
WAL(S) SIZE : 96.00 MB
NO. OF WALS : 6
FIRST WAL FILE : 0000000100000000000000E2
CREATION TIME : 2015-04-08 10:07:30 EDT
LAST WAL FILE : 000000010000000100000003
CREATION TIME : 2015-04-09 10:25:46 EDT
不要なWALファイルを含む不要なバックアップを物理的に削除するには、 -dオプションを指定し MANAGEサブコマンドを使用します。
-bash-4.1$ bart MANAGE -s acctg -d
INFO: removing all obsolete backups of server 'acctg'
INFO: removing obsolete backup '1428502049836'
INFO: 6 WAL file(s) will be removed
INFO: removing WAL file '000000010000000100000003'
INFO: removing WAL file '000000010000000100000002'
INFO: removing WAL file '000000010000000100000001'
INFO: removing WAL file '000000010000000100000000'
INFO: removing WAL file '0000000100000000000000E3'
INFO: removing WAL file '0000000100000000000000E2'
INFO: removing obsolete backup '1428422324880'
INFO: 2 WAL file(s) will be removed
INFO: removing WAL file '0000000100000000000000E1'
INFO: removing WAL file '0000000100000000000000E0'
SHOW-BACKUPSサブコマンド現在アクティブとしてマークされ、残りのバックアップを表示するか、維持します:
-bash-4.1$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
acctg 1428768344061 2015-04-11 12:05:46 EDT 5.72 MB 48.00 MB 3 active
acctg 1428684537299 2015-04-10 12:49:00 EDT 5.72 MB 272.00 MB 17 active
acctg 1428589759899 2015-04-09 10:29:27 EDT 5.65 MB 96.00 MB 6 active
acctg 1428355371389 2015-04-06 17:22:53 EDT 5.71 MB 16.00 MB 1 keep
回復期間保存ポリシー
次の例では、次のサーバー構成で示されているようにリカバリ期間の保存ポリシーを使用しています。
[DEV]
host = 127.0.0.1
port = 5445
user = enterprisedb
archive_command = 'cp %p %a/%f'
retention_policy = 3 DAYS
description = "Development"
以下は現在のバックアップのセットです。リスト内の最後のバックアップには保存のマークが付けられています。
-bash-4.1$ bart SHOW-BACKUPS -s dev
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
dev 1428933278236 2015-04-13 09:54:40 EDT 5.65 MB 16.00 MB 1 active
dev 1428862187757 2015-04-12 14:09:50 EDT 5.65 MB 32.00 MB 2 active
dev 1428768351638 2015-04-11 12:05:54 EDT 5.65 MB 32.00 MB 2 active
dev 1428684544008 2015-04-10 12:49:06 EDT 5.65 MB 224.00 MB 14 active
dev 1428590536488 2015-04-09 10:42:18 EDT 5.65 MB 48.00 MB 3 active
dev 1428502171990 2015-04-08 10:09:34 EDT 5.65 MB 80.00 MB 5 keep
次のように、現在の日付/時刻は2015-04-13 16:46:35 EDTです。
-bash-4.1$ date
Mon Apr 13 16:46:35 EDT 2015
したがって、3日間のリカバリ期間では、keepとマークされているものを除き、2015年4月10日16時46分35秒EDTより前のバックアップは不要と判断されます。
MANAGEサブコマンドを-nオプションを指定して起動し、どのアクティブ・バックアップが保存方針に従って古いものに変更されるかを確認するための予行MANAGEを実行します。
-bash-4.1$ bart MANAGE -s dev -n
INFO: processing server 'dev', backup '1428933278236'
INFO: processing server 'dev', backup '1428862187757'
INFO: processing server 'dev', backup '1428768351638'
INFO: processing server 'dev', backup '1428684544008'
INFO: marking backup '1428684544008' as obsolete
INFO: 14 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: processing server 'dev', backup '1428590536488'
INFO: marking backup '1428590536488' as obsolete
INFO: 3 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: processing server 'dev', backup '1428502171990'
1428684544008 は、バックアップ 1428684544008および14285905364881428684544008とマークされることが示されています。
また、予行演習ではバックアップの状態は変わりません。時代遅れと見なされる2つのバックアップは、まだアクティブとしてマークされています。
-bash-4.1$ bart SHOW-BACKUPS -s dev
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
dev 1428933278236 2015-04-13 09:54:40 EDT 5.65 MB 16.00 MB 1 active
dev 1428862187757 2015-04-12 14:09:50 EDT 5.65 MB 32.00 MB 2 active
dev 1428768351638 2015-04-11 12:05:54 EDT 5.65 MB 32.00 MB 2 active
dev 1428684544008 2015-04-10 12:49:06 EDT 5.65 MB 224.00 MB 14 active
dev 1428590536488 2015-04-09 10:42:18 EDT 5.65 MB 48.00 MB 3 active
dev 1428502171990 2015-04-08 10:09:34 EDT 5.65 MB 80.00 MB 5 keep
MANAGEサブコマンドを呼び出して -nオプションを省略し、バックアップの状況を変更して廃止のマークを付けます。
-bash-4.1$ bart MANAGE -s dev
INFO: processing server 'dev', backup '1428933278236'
INFO: processing server 'dev', backup '1428862187757'
INFO: processing server 'dev', backup '1428768351638'
INFO: processing server 'dev', backup '1428684544008'
INFO: marking backup '1428684544008' as obsolete
INFO: 14 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: processing server 'dev', backup '1428590536488'
INFO: marking backup '1428590536488' as obsolete
INFO: 3 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: processing server 'dev', backup '1428502171990'
古くなったバックアップは、さまざまな方法で確認できます。 MANAGEサブコマンドに-lオプションを指定して、 使用されなくなったバックアップをリストします。
-bash-4.1$ bart MANAGE -s dev -l
INFO: 14 WAL file(s) will be removed
INFO: 1 Unused WAL file(s) will be removed
SERVER NAME: dev
BACKUP ID: 1428684544008
BACKUP STATUS: obsolete
BACKUP TIME: 2015-04-10 12:49:06 EDT
BACKUP SIZE: 5.65 MB
WAL FILE(s): 14
UNUSED WAL FILE(s): 1
WAL FILE: 00000001000000000000002E
WAL FILE: 00000001000000000000002D
WAL FILE: 00000001000000000000002C
WAL FILE: 00000001000000000000002B
WAL FILE: 00000001000000000000002A
WAL FILE: 000000010000000000000029
WAL FILE: 000000010000000000000028
WAL FILE: 000000010000000000000027
WAL FILE: 000000010000000000000026
WAL FILE: 000000010000000000000025
WAL FILE: 000000010000000000000024
WAL FILE: 000000010000000000000023
WAL FILE: 000000010000000000000022
WAL FILE: 000000010000000000000021
UNUSED WAL FILE: 00000001000000000000000F.00000028
 
INFO: 3 WAL file(s) will be removed
INFO: 1 Unused WAL file(s) will be removed
SERVER NAME: dev
BACKUP ID: 1428590536488
BACKUP STATUS: obsolete
BACKUP TIME: 2015-04-09 10:42:18 EDT
BACKUP SIZE: 5.65 MB
WAL FILE(s): 3
UNUSED WAL FILE(s): 1
WAL FILE: 000000010000000000000020
WAL FILE: 00000001000000000000001F
WAL FILE: 00000001000000000000001E
UNUSED WAL FILE: 00000001000000000000000F.00000028
SHOW-BACKUPSサブコマンド STATUSフィールドは現在の状況を表示します。
-bash-4.1$ bart SHOW-BACKUPS -s dev
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
dev 1428933278236 2015-04-13 09:54:40 EDT 5.65 MB 16.00 MB 1 active
dev 1428862187757 2015-04-12 14:09:50 EDT 5.65 MB 32.00 MB 2 active
dev 1428768351638 2015-04-11 12:05:54 EDT 5.65 MB 32.00 MB 2 active
dev 1428684544008 2015-04-10 12:49:06 EDT 5.65 MB 224.00 MB 14 obsolete
dev 1428590536488 2015-04-09 10:42:18 EDT 5.65 MB 48.00 MB 3 obsolete
dev 1428502171990 2015-04-08 10:09:34 EDT 5.65 MB 80.00 MB 5 keep
個々のバックアップの詳細は、 SHOW-BACKUPSサブコマンドと-tオプションを使用して表示できます。 BACKUP STATUSフィールドの状況に注意してください。
-bash-4.1$ bart SHOW-BACKUPS -s dev -i 1428684544008 -t
SERVER NAME : dev
BACKUP ID : 1428684544008
BACKUP NAME : none
BACKUP STATUS : obsolete
BACKUP TIME : 2015-04-10 12:49:06 EDT
BACKUP SIZE : 5.65 MB
WAL(S) SIZE : 224.00 MB
NO. OF WALS : 14
FIRST WAL FILE : 000000010000000000000021
CREATION TIME : 2015-04-10 12:49:06 EDT
LAST WAL FILE : 00000001000000000000002E
CREATION TIME : 2015-04-11 12:02:15 EDT
不要なWALファイルを含む不要なバックアップを物理的に削除するには、 -dオプションを指定し MANAGEサブコマンドを使用します。
-bash-4.1$ bart MANAGE -s dev -d
INFO: removing all obsolete backups of server 'dev'
INFO: removing obsolete backup '1428684544008'
INFO: 14 WAL file(s) will be removed
INFO: 1 Unused WAL file(s) will be removed
INFO: removing WAL file '00000001000000000000002E'
INFO: removing WAL file '00000001000000000000002D'
INFO: removing WAL file '00000001000000000000002C'
INFO: removing WAL file '00000001000000000000002B'
INFO: removing WAL file '00000001000000000000002A'
INFO: removing WAL file '000000010000000000000029'
INFO: removing WAL file '000000010000000000000028'
INFO: removing WAL file '000000010000000000000027'
INFO: removing WAL file '000000010000000000000026'
INFO: removing WAL file '000000010000000000000025'
INFO: removing WAL file '000000010000000000000024'
INFO: removing WAL file '000000010000000000000023'
INFO: removing WAL file '000000010000000000000022'
INFO: removing WAL file '000000010000000000000021'
INFO: removing (unused) WAL file '00000001000000000000000F.00000028'
INFO: removing obsolete backup '1428590536488'
INFO: 3 WAL file(s) will be removed
INFO: removing WAL file '000000010000000000000020'
INFO: removing WAL file '00000001000000000000001F'
INFO: removing WAL file '00000001000000000000001E'
SHOW-BACKUPSサブコマンド現在アクティブとしてマークされ、残りのバックアップを表示するか、維持します:
-bash-4.1$ bart SHOW-BACKUPS -s dev
SERVER NAME BACKUP ID BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
dev 1428933278236 2015-04-13 09:54:40 EDT 5.65 MB 16.00 MB 1 active
dev 1428862187757 2015-04-12 14:09:50 EDT 5.65 MB 32.00 MB 2 active
dev 1428768351638 2015-04-11 12:05:54 EDT 5.65 MB 32.00 MB 2 active
dev 1428502171990 2015-04-08 10:09:34 EDT 5.65 MB 80.00 MB 5 keep
 
5.2.5 増分バックアップの管理
このセクションでは、保存方針の管理が増分バックアップに与える影響について説明します。要約すると、基本的な効果は次のとおりです。
保存方針ルールはフルバックアップに適用されます。バックアップが冗長性保持ポリシーによって使用されなくなった時期の判断は、 完全バックアップの 数によってのみ行われます。最大バックアップ数については、すべての増分バックアップがretention_policy設定に対する比較カウントから除外されます。バックアップがリカバリ期間保存ポリシーによって使用されなくなった時期の判断は、 完全バックアップのバックアップ日時によってのみ行われます。リカバリウィンドウと比較すると、チェーン内の連続する増分バックアップのバックアップ日時は無視されます。
フルバックアップに対してMANAGEおよびDELETEサブコマンドによって適用されるアクションは、チェーン内のすべての増分バックアップに同じ方法で適用されます。
以下は 、増分バックアップのMANAGEサブコマンドとDELETEサブコマンドに関する特定の事項です。
とき MANAGEサブコマンドが呼び出され、フルバックアップに適用されるステータスは、チェーン内のすべての連続した増分バックアップに適用されます。
MANAGEとサブコマンドを-c { keep | nokeep }オプションでは、と増分バックアップのバックアップIDまたはバックアップ名を指定することはできません-i backupオプションを選択します。 -i backupオプションは、フルバックアップのバックアップIDまたはバックアップ名のみを指定できます。オプション-i all使用できます。 MANAGEサブコマンドに-c { keep | nokeep }した場合フルバックアップには-c { keep | nokeep }オプションが適用され、チェーン内のすべての増分バックアップに同じステータス変更が行われます。
DELETEとサブ-s server -i backupオプションは、すべての連続する増分バックアップとともに増分バックアップは、このようにそのバックアップチェーンを短くする、削除された場合には、増分バックアップのバックアップ識別子またはバックアップ名を指定することができます。
増分バックアップの冗長性保持方針の例については、 5.2.5.1 項を参照してください
増分バックアップのリカバリ期間の保存方針の例については、 5.2.5.2 項を参照してください
5.2.5.1 増分バックアップによる冗長性の維持
冗長保持ポリシーが使用され、 MANAGEサブコマンドが呼び出されると、フルバックアップの数がBART構成ファイルのretention_policyパラメーターで指定された最大数を超えると、最も古くアクティブなフルバックアップの状況が廃止に変更されます。
冗長性保持ポリシーについては、 5.2.3.1 項を参照してください
フルバックアップがアクティブから古いものに変更されると、このフルバックアップのチェーン内の連続するすべての増分バックアップもアクティブから古いものに変更されます。
retention_policyパラメーターで指定された数を超えるバックアップの数を判別するときには、比較のために完全バックアップのみがカウントされます。増分バックアップの数は、 retention_policyパラメーター設定に対するこの比較の数に含まれません。
次のサーバー構成で示されているように、3バックアップ冗長性保持ポリシーが有効になっている場合のMANAGEサブコマンドとDELETEサブコマンドの使用例を、以下に示します。
[ACCTG]
host = 192.168.2.24
port = 5445
user = enterprisedb
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
allow_incremental_backups = enabled
retention_policy = 3 BACKUPS
description = "Accounting"
以下は現在のバックアップのセットです。 (これらの例では、より SHOW-BACKUPS方法で関連情報を表示するために SHOW-BACKUPS出力からいくつかの列が省略されています。)
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481749696905 ... 1481749673603 2016-12-14 16:08:17 EST ... active
acctg 1481749673603 ... 1481749651927 2016-12-14 16:07:53 EST ... active
acctg 1481749651927 ... 1481749619582 2016-12-14 16:07:32 EST ... active
acctg 1481749619582 ... none 2016-12-14 16:07:00 EST ... active
バックアップチェーンは1つあります。最初のバックアップは最初のフルバックアップです。
バックアップチェーン: 1481749619582 => 1481749651927 => 1481749673603 => 1481749696905
MANAGE以下で示すように、サブコマンドが呼び出されます。
-bash-4.2$ bart MANAGE -s acctg
INFO: processing server 'acctg', backup '1481749619582'
INFO: 2 Unused WAL file(s) present
INFO: 4 Unused file(s) (WALs included) present, use 'MANAGE -l' for the list
バックアップの結果ステータスは次のとおりです。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481749696905 ... 1481749673603 2016-12-14 16:08:17 EST ... active
acctg 1481749673603 ... 1481749651927 2016-12-14 16:07:53 EST ... active
acctg 1481749651927 ... 1481749619582 2016-12-14 16:07:32 EST ... active
acctg 1481749619582 ... none 2016-12-14 16:07:00 EST ... active
ステータスはすべてのバックアップに対してアクティブのままです。バックアップの総数が3バックアップの冗長性保持ポリシーを超えていても、冗長性保持ポリシーを超えているかどうかを判断するのに使用されるのは、フルバックアップの総数だけです。
2番目のバックアップチェーンを含む追加のフルバックアップが追加されています。バックアップの結果リストを以下に示します。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481750365397 ... none 2016-12-14 16:19:26 EST ... active
acctg 1481750098924 ... 1481749997807 2016-12-14 16:14:59 EST ... active
acctg 1481749997807 ... none 2016-12-14 16:13:18 EST ... active
acctg 1481749992003 ... none 2016-12-14 16:13:12 EST ... active
acctg 1481749696905 ... 1481749673603 2016-12-14 16:08:17 EST ... active
acctg 1481749673603 ... 1481749651927 2016-12-14 16:07:53 EST ... active
acctg 1481749651927 ... 1481749619582 2016-12-14 16:07:32 EST ... active
acctg 1481749619582 ... none 2016-12-14 16:07:00 EST ... active
2番目のバックアップチェーン: 1481749997807 => 1481750098924
MANAGEサブコマンドは、今4つのアクティブなフルバックアップの合計と、呼び出されます。
-bash-4.2$ bart MANAGE -s acctg
INFO: processing server 'acctg', backup '1481750365397'
INFO: processing server 'acctg', backup '1481749997807'
INFO: processing server 'acctg', backup '1481749992003'
INFO: processing server 'acctg', backup '1481749619582'
INFO: marking backup '1481749619582' as obsolete
INFO: 3 incremental(s) of backup '1481749619582' will be marked obsolete
INFO: marking incremental backup '1481749696905' as obsolete
INFO: marking incremental backup '1481749673603' as obsolete
INFO: marking incremental backup '1481749651927' as obsolete
INFO: 4 WAL file(s) marked obsolete
INFO: 2 Unused WAL file(s) present
INFO: 4 Unused file(s) (WALs included) present, use 'MANAGE -l' for the list
最も古いフルバックアップとその一連の増分バックアップは、廃止予定としてマークされています。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481750365397 ... none 2016-12-14 16:19:26 EST ... active
acctg 1481750098924 ... 1481749997807 2016-12-14 16:14:59 EST ... active
acctg 1481749997807 ... none 2016-12-14 16:13:18 EST ... active
acctg 1481749992003 ... none 2016-12-14 16:13:12 EST ... active
acctg 1481749696905 ... 1481749673603 2016-12-14 16:08:17 EST ... obsolete
acctg 1481749673603 ... 1481749651927 2016-12-14 16:07:53 EST ... obsolete
acctg 1481749651927 ... 1481749619582 2016-12-14 16:07:32 EST ... obsolete
acctg 1481749619582 ... none 2016-12-14 16:07:00 EST ... obsolete
-dオプションを指定して MANAGEサブコマンドを呼び出すと、古いバックアップチェーン全体が削除されます。
-bash-4.2$ bart MANAGE -s acctg -d
INFO: removing all obsolete backups of server 'acctg'
INFO: removing obsolete backup '1481749619582'
INFO: 4 WAL file(s) will be removed
INFO: 3 incremental(s) of backup '1481749619582' will be removed
INFO: removing obsolete incremental backup '1481749696905'
INFO: removing obsolete incremental backup '1481749673603'
INFO: removing obsolete incremental backup '1481749651927'
INFO: removing WAL file '000000010000000100000000'
INFO: removing WAL file '0000000100000000000000FF'
INFO: removing WAL file '0000000100000000000000FE'
INFO: removing WAL file '0000000100000000000000FD'
INFO: 16 Unused file(s) will be removed
INFO: removing (unused) file '000000010000000100000004.00000028.backup'
.
.
.
INFO: removing (unused) file '0000000100000000FB00002800000000FC000000.mbm'
以下に、残りのフルバックアップと2番目のバックアップチェーンを示します。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481750365397 ... none 2016-12-14 16:19:26 EST ... active
acctg 1481750098924 ... 1481749997807 2016-12-14 16:14:59 EST ... active
acctg 1481749997807 ... none 2016-12-14 16:13:18 EST ... active
acctg 1481749992003 ... none 2016-12-14 16:13:12 EST ... active
次のセクションでは、リカバリ期間の保存ポリシーの使用例を示します。この次のセクションでは、 MANAGEサブコマンドと他のオプションの使用例、およびDELETEサブコマンドの使用法を示します。
5.2.5.2 増分バックアップによるリカバリ期間の保持
回復期間保存方針が使用され、 MANAGEサブコマンドが呼び出されると、フルバックアップの日付/時刻が回復期間外(つまり、フルバックアップの日付/時間)である場合、アクティブなフルバックアップのステータスは廃止されます。時間は、 MANAGEサブコマンドが呼び出されたときの現在の日付/時刻で定義されている回復期間の開始よりも前で、その後BART構成ファイルのretention_policyパラメーターで設定された時間だけ前に戻ります。
リカバリ期間の保存方針については、 5.2.3.2 項を参照してください
フルバックアップがアクティブから古いものに変更されると、このフルバックアップのチェーン内の連続するすべての増分バックアップもアクティブから古いものに変更されます。
増分バックアップが行われた日付/時刻がまだ回復期間内であるかどうかにかかわらず、増分バックアップの状況は廃止されます。
次の例は、以下のサーバー構成で示されているように、1日のリカバリー期間保存方針が有効な場合のMANAGEおよびDELETEサブコマンドの使用法を示しています。
[ACCTG]
host = 192.168.2.24
port = 5445
user = enterprisedb
cluster_owner = enterprisedb
remote_host = enterprisedb@192.168.2.24
allow_incremental_backups = enabled
retention_policy = 1 DAYS
description = "Accounting"
以下は現在のバックアップのセットです。 (これらの例では、より SHOW-BACKUPS方法で関連情報を表示するために SHOW-BACKUPS出力からいくつかの列が省略されています。)
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... active
acctg 1481559014359 ... 1481554802918 2016-12-12 11:10:14 EST ... active
acctg 1481554802918 ... 1481553914533 2016-12-12 10:00:03 EST ... active
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... active
acctg 1481553914533 ... 1481553088053 2016-12-12 09:45:14 EST ... active
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... active
acctg 1481553088053 ... 1481552078404 2016-12-12 09:31:28 EST ... active
acctg 1481552078404 ... none 2016-12-12 09:14:39 EST ... active
バックアップチェーンは2つあります。次の各チェーンでは、最初のバックアップは最初のフルバックアップです。
最初のバックアップチェーン: 1481552078404 => 1481553088053 => 1481553914533 => 1481554802918 => 1481559014359
2番目のバックアップチェーン: 1481553651165 => 1481554203288 => 1481559303348
MANAGEサブコマンドは、最初のフルバックアップ時に呼び出される1481552078404回復窓の外に落ちます。ときMANAGEサブコマンドが呼び出され、それは2016-12-13 09:20:03 ESTように1日のリカバリ期間の開始を作り、 2016-12-12 09:20:03 EST正確に一日早いです。このバックアップは、 2016-12-12 09:14:39 ESTの開始の約5½分前の2016-12-12 09:14:39 EST2016-12-12 09:14:39 ESTに行われたため、バックアップは廃止されました。
-bash-4.2$ date
Tue Dec 13 09:20:03 EST 2016
 
-bash-4.2$ bart MANAGE -s acctg
INFO: processing server 'acctg', backup '1481553651165'
INFO: processing server 'acctg', backup '1481552078404'
INFO: marking backup '1481552078404' as obsolete
INFO: 4 incremental(s) of backup '1481552078404' will be marked obsolete
INFO: marking incremental backup '1481559014359' as obsolete
INFO: marking incremental backup '1481554802918' as obsolete
INFO: marking incremental backup '1481553914533' as obsolete
INFO: marking incremental backup '1481553088053' as obsolete
INFO: 7 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: 2 Unused file(s) (WALs included) present, use 'MANAGE -l' for the list
最初のバックアップチェーン全体が廃止予定になりました。増分バックアップの日時は、 2016-12-12 09:20:03 EST リカバリ期間の開始後に取得されているため、リカバリ期間内であることに注意してください。ただし 、チェーン内のすべてのバックアップは不要とマークされます。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... active
acctg 1481559014359 ... 1481554802918 2016-12-12 11:10:14 EST ... obsolete
acctg 1481554802918 ... 1481553914533 2016-12-12 10:00:03 EST ... obsolete
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... active
acctg 1481553914533 ... 1481553088053 2016-12-12 09:45:14 EST ... obsolete
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... active
acctg 1481553088053 ... 1481552078404 2016-12-12 09:31:28 EST ... obsolete
acctg 1481552078404 ... none 2016-12-12 09:14:39 EST ... obsolete
次の例は 、チェーンのフルバックアップに対して-c nokeepオプションを指定して MANAGEサブコマンドを呼び出すことによって、バックアップチェーン全体をアクティブ状態に戻す方法を示しています
-bash-4.2$ bart MANAGE -s acctg -c nokeep -i 1481552078404
INFO: changing status of backup '1481552078404' of server 'acctg' from 'obsolete' to 'active'
INFO: status of 4 incremental(s) of backup '1481552078404' will be changed
INFO: changing status of incremental backup '1481559014359' of server 'acctg' from 'obsolete' to 'active'
INFO: changing status of incremental backup '1481554802918' of server 'acctg' from 'obsolete' to 'active'
INFO: changing status of incremental backup '1481553914533' of server 'acctg' from 'obsolete' to 'active'
INFO: changing status of incremental backup '1481553088053' of server 'acctg' from 'obsolete' to 'active'
INFO: 7 WAL file(s) changed
これでバックアップチェーンはアクティブ状態にリセットされました。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... active
acctg 1481559014359 ... 1481554802918 2016-12-12 11:10:14 EST ... active
acctg 1481554802918 ... 1481553914533 2016-12-12 10:00:03 EST ... active
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... active
acctg 1481553914533 ... 1481553088053 2016-12-12 09:45:14 EST ... active
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... active
acctg 1481553088053 ... 1481552078404 2016-12-12 09:31:28 EST ... active
acctg 1481552078404 ... none 2016-12-12 09:14:39 EST ... active
次の例は 、増分バックアップでの DELETEサブコマンドの使用法を示しています。最初のバックアップチェーン内の指定された増分バックアップ1481554802918とそれに続く増分バックアップ1481559014359が削除されます。
-bash-4.2$ bart DELETE -s acctg -i 1481554802918
INFO: deleting backup '1481554802918' of server 'acctg'
INFO: deleting backup '1481554802918'
INFO: 1 incremental backup(s) will be deleted
INFO: deleting incremental backup '1481559014359'
INFO: WALs of deleted backup(s) will belong to prior backup(if any), or will be marked unused
INFO: 2 Unused file(s) will be removed
INFO: removing (unused) file '0000000100000000000000BA'
INFO: removing (unused) file '0000000100000000BA00002800000000BB000000.mbm'
INFO: backup(s) deleted
結果は、増分バックアップ 1481554802918およびその連続バックアップ1481559014359が、 SHOW-BACKUPSサブコマンドによってリストされなくなったことを示しています
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... active
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... active
acctg 1481553914533 ... 1481553088053 2016-12-12 09:45:14 EST ... active
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... active
acctg 1481553088053 ... 1481552078404 2016-12-12 09:31:28 EST ... active
acctg 1481552078404 ... none 2016-12-12 09:14:39 EST ... active
MANAGEサブコマンドが再び呼び出されます。今回は両方のチェーンのフルバックアップがリカバリウィンドウの開始時間から外れたため、両方のバックアップチェーンが廃止されました2016-12-12 09:55:03 ESTです。
-bash-4.2$ date
Tue Dec 13 09:55:03 EST 2016
 
-bash-4.2$ bart MANAGE -s acctg
INFO: processing server 'acctg', backup '1481553651165'
INFO: marking backup '1481553651165' as obsolete
INFO: 2 incremental(s) of backup '1481553651165' will be marked obsolete
INFO: marking incremental backup '1481559303348' as obsolete
INFO: marking incremental backup '1481554203288' as obsolete
INFO: 38 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1481552078404'
INFO: marking backup '1481552078404' as obsolete
INFO: 2 incremental(s) of backup '1481552078404' will be marked obsolete
INFO: marking incremental backup '1481553914533' as obsolete
INFO: marking incremental backup '1481553088053' as obsolete
INFO: 7 WAL file(s) marked obsolete
次の図は、両方のバックアップチェーンが廃止予定としてマークされています。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... obsolete
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... obsolete
acctg 1481553914533 ... 1481553088053 2016-12-12 09:45:14 EST ... obsolete
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... obsolete
acctg 1481553088053 ... 1481552078404 2016-12-12 09:31:28 EST ... obsolete
acctg 1481552078404 ... none 2016-12-12 09:14:39 EST ... obsolete
以下に 、バックアップチェーンを無期限に保持する-c keep MANAGEサブコマンドと-c keepオプションの使用方法を示します-c keepオプションを指定したMANAGEサブコマンドでは、増分バックアップではなく、チェーンのフルバックアップのバックアップIDまたはバックアップ名を指定する必要があります。
-bash-4.2$ bart MANAGE -s acctg -c keep -i 1481553651165
INFO: changing status of backup '1481553651165' of server 'acctg' from 'obsolete' to 'keep'
INFO: status of 2 incremental(s) of backup '1481553651165' will be changed
INFO: changing status of incremental backup '1481559303348' of server 'acctg' from 'obsolete' to 'keep'
INFO: changing status of incremental backup '1481554203288' of server 'acctg' from 'obsolete' to 'keep'
INFO: 38 WAL file(s) changed
以下は、バックアップチェーンのフルバックアップ 1481553651165とそれに続く増分バックアップ1481554203288および1481559303348がステータスを維持するように変更された状態を示しています。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... keep
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... keep
acctg 1481553914533 ... 1481553088053 2016-12-12 09:45:14 EST ... obsolete
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... keep
acctg 1481553088053 ... 1481552078404 2016-12-12 09:31:28 EST ... obsolete
acctg 1481552078404 ... none 2016-12-12 09:14:39 EST ... obsolete
最後に、 -dオプションを指定し MANAGEサブコマンドを使用して、古いバックアップチェーンを削除します。
-bash-4.2$ bart MANAGE -s acctg -d
INFO: removing all obsolete backups of server 'acctg'
INFO: removing obsolete backup '1481552078404'
INFO: 7 WAL file(s) will be removed
INFO: 2 incremental(s) of backup '1481552078404' will be removed
INFO: removing obsolete incremental backup '1481553914533'
INFO: removing obsolete incremental backup '1481553088053'
INFO: removing WAL file '0000000100000000000000C1'
INFO: removing WAL file '0000000100000000000000C0'
INFO: removing WAL file '0000000100000000000000BF'
INFO: removing WAL file '0000000100000000000000BE'
INFO: removing WAL file '0000000100000000000000BD'
INFO: removing WAL file '0000000100000000000000BC'
INFO: removing WAL file '0000000100000000000000BB'
INFO: 48 Unused file(s) will be removed
INFO: removing (unused) file '0000000100000000000000FA'
.
.
.
INFO: removing (unused) file '0000000100000000000000BB.00000028.backup'
次のように、keep状態のバックアップチェーンだけが残ります。
-bash-4.2$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID ... BACKUP PARENT BACKUP TIME ... STATUS
 
acctg 1481559303348 ... 1481554203288 2016-12-12 11:15:03 EST ... keep
acctg 1481554203288 ... 1481553651165 2016-12-12 09:50:03 EST ... keep
acctg 1481553651165 ... none 2016-12-12 09:40:51 EST ... keep
 
5.3 基本的なBARTサブコマンドの使い方
BARTはBART_HOME /binディレクトリにあるbartプログラムを、希望のサブコマンドと適切なサブコマンドオプションを指定して呼び出すことによって使用されます。 BARTで利用可能なサブコマンドは次のとおりです。
CHECK-CONFIG。 BART構成ファイル内のパラメーターの設定、およびWALアーカイブおよびバックアップのためのデータベースサーバーの適切な設定を確認してください。 5.4.1項を参照してください。
その中に。 、BARTバックアップカタログのディレクトリを作成しPostgresの設定archive_command BARTの設定からパラメータをarchive_commandパラメータ、およびbackupinfoファイルを再構築。 5.4.2項を参照してください。
バックアップ。フルバックアップまたは増分バックアップを取ります。 5.4.3項を参照してください。
ショーサーバー BARTによって管理されているデータベースサーバを表示します。 5.4.4項を参照してください。
ショーバック BARTによって作成されたバックアップに関する情報を表示します。 5.4.5項を参照してください。
確認CHKSUM。フルバックアップのチェックサムを確認します。 5.4.6項を参照してください。
管理します。保存方針を使用してバックアップを管理します。アーカイブされたWALファイルを圧縮します。 5.4.7項を参照してください。
リストア。バックアップを復元し、必要に応じてポイントインタイムリカバリのためにアーカイブされたWALファイルを復元するためのrestore_commandを含む適切なrecovery.confファイルを生成します。 5.4.8項を参照してください。
削除します。バックアップを削除します。 5.4.9項を参照してください。
BART WALスキャナーの使用方法と使用方法については、 5.5 項を参照してください
bartプログラムの指定の直後に与えることができるいくつかの一般的なBARTオプションがあります
一般的なBARTオプションに従って、もしあれば、BARTサブコマンドを指定できます。サブコマンドを呼び出すとき、サブコマンド名は大文字と小文字を区別しません(つまり、サブコマンドは大文字、小文字、または大/小文字混合で指定できます)。
各サブコマンドには、サブコマンドの後に指定されている独自の適用可能なオプションがいくつかあります。すべてのオプションは、1文字と複数文字の両方の形式で使用できます。
このセクションで別の方法で指定されている場合を除いて、オプションキーワードは通常小文字でなければなりません。
BARTを呼び出すための一般的な構文は次のとおりです。
bart [ gen_option ]... [ subcmd ] [ subcmd_option ]...
BARTを呼び出すとき、現在のユーザはセクション 4.1の ステップ2で説明されているようにBARTユーザアカウントでなければなりません
BART_HOME /binディレクトリをBARTユーザアカウントのPATH環境変数に含めることをお勧めしますが、 bartプログラムは現在の作業ディレクトリとしてBART_HOME /binから呼び出すことができます。呼び出し手順は次のようになります。
cd BART_HOME /bin
export PATH=.:$PATH
./bart [ gen_option ]... [ subcmd ] [ subcmd_option ]...
注意:コマンドexport PATH=.:$PATH現在の作業ディレクトリを含むために必要とされるBART_HOME /bin中にPATH 。特定のBARTサブコマンドに対してbartプログラムを呼び出すと、 BART_HOME /bin内にあるbart-scannerプログラムが呼び出されるため、これは必須です。
注: BARTサブコマンドの実行が次のエラーメッセージで失敗した場合は、 LD_LIBRARY_PATHlibpqライブラリディレクトリを含めるように設定する必要があります。
./bart: symbol lookup error: ./bart: undefined symbol: PQping
BARTユーザアカウント LD_LIBRARY_PATH環境変数を、 libpqライブラリを含むディレクトリを含めるように設定します。次の例に示すように、このディレクトリはPOSTGRES_INSTALL_HOME /libです。
export LD_LIBRARY_PATH=/opt/PostgresPlus/9.5AS/lib/:$LD_LIBRARY_PATH
PATHおよびLD_LIBRARY_PATH環境変数の設定は、BARTユーザーアカウントのプロファイルに入れることをお勧めします。セクション4.1のステップ3を参照してください。
以下は、上記の構文図でgen_option として示されている一般的なBARTオプションです。
オプション
-h 、 - --help
BARTの使用法に関する一般的な構文と情報を表示します。
-v 、 - --version
BARTのバージョン情報を表示します。
-d 、-- --debug
BARTサブコマンドの実行中にデバッグ出力を表示します。
-c 、 - --config-path config_file_path
BART設定ファイルへのフルディレクトリパスとして config_file_path 指定し ます。デフォルトのBART構成ファイル BART_HOME /etc/bart.cfg を使用したくない場合は、このオプションを使用して /etc/bart.cfg
次の例は、BARTを呼び出すための前述の方法を示しています。これらの例では、BARTユーザーアカウントは bartuserです。
$ su bartuser
Password:
$ export LD_LIBRARY_PATH=/opt/PostgresPlus/9.5AS/lib/:$LD_LIBRARY_PATH
$ cd /usr/edb/bart/bin
$ export PATH=.:$PATH
$ ./bart SHOW-SERVERS
現在の作業ディレクトリからBARTを実行します。
$ su bartuser
Password:
$ export LD_LIBRARY_PATH=/opt/PostgresPlus/9.5AS/lib/:$LD_LIBRARY_PATH
$ export PATH=/usr/edb/bart/bin:$PATH
$ bart SHOW-SERVERS
BART_HOME /etc/bart.cfg 以外のBART設定ファイルを使用します
$ su bartuser
Password:
$ export LD_LIBRARY_PATH=/opt/PostgresPlus/9.5AS/lib/:$LD_LIBRARY_PATH
$ export PATH=/usr/edb/bart/bin:$PATH
$ bart -c /home/bartuser/bart.cfg SHOW-SERVERS
次の節では、BARTサブコマンドについて説明します。
 
5.4 BARTサブコマンド
このセクションでは、BARTサブコマンドの構文と使用法について説明します。
すべてのサブコマンドはヘルプオプション( -h 、 - --help )をサポートします 。 helpオプションが指定されていると、その特定のサブコマンドに関する情報が表示されます。サブコマンド自体は実行されません。
以下は、 BACKUPサブコマンドのhelpオプションの例です
-bash-4.2$ bart BACKUP --help
bart: backup and recovery tool
 
Usage:
bart BACKUP [OPTION]...
 
Options:
-h, --help Show this help message and exit
-s, --server Name of the server or 'all' (full backups only) to specify all
servers
-F, --format=p|t Backup output format (tar (default) or plain)
-z, --gzip Enables gzip compression of tar files
-c, --compress-level Specifies the compression level (1 through 9, 9 being best
compression)
 
--backup-name Specify a friendly name for the current backup
--parent Specify parent backup for incremental backup
--check Verify checksum of required mbm files
注:以下のセクションでは、サブコマンド・オプションを分かりやすくするために、構文図からhelpオプションを省略しています。
わかりやすくするために、構文図ではオプションの単一文字形式のみも示しています。 オプションのサブセクションでは、オプションの単一文字と複数文字の両方の形式をリストアップ。
 
5.4.1 チェック設定
CHECK-CONFIGサブコマンドは、BARTのコンフィギュレーション・ファイルのパラメータ設定だけでなく、そのため、データベース・サーバーの設定をチェック-sオプションが指定されています。
bart CHECK-CONFIG [ –s server_name ]
ときに -sオプションが省略されている、などのパラメータを含むグローバルセクション、 bart_hostbackup_path 、およびpg_basebackup_pathチェックされます。
-sオプションが指定されると、指定されたサーバーセクションのパラメーターがチェックされます。さらに 、データベースサーバーの特定の postgresql.confパラメータを正しく設定し、データベースサーバーを特定のプロセスに対してアクティブにする必要があります。これらの要件には以下が含まれます。
cluster_ownerパラメータは、データベースクラスタディレクトリを所有するユーザアカウントに設定する必要があります。
pg_hba.confファイルには、BARTので指定されたデータベースのスーパーユーザのための複製エントリ含まれている必要がありuserパラメータを。
postgresql.confファイル archive_modeパラメータを有効にする必要があります。
archive_command中のパラメータpostgresql.auto.confpostgresql.confファイルを設定する必要があります。
BART構成ファイル allow_incremental_backupsパラメーターは、増分バックアップをとるデータベースサーバーに対して有効にする必要があります。
CHECK-CONFIG必要な構成が正しく設定されていない場合、サブコマンドはエラーメッセージを表示します。
オプション
-s 、-- --server server_name
server_nameは、正しく設定されているかどうかを確認するデータベースサーバの名前です。このオプションを省略すると、BART設定ファイルのグローバルセクションの設定がチェックされます。
次の例は、BART設定ファイルのグローバルセクションの正常なチェックを示しています。
bash-4.1$ bart CHECK-CONFIG
INFO: Verifying that pg_basebackup is executable
INFO: success - pg_basebackup(/opt/PostgresPlus/9.5AS/bin/pg_basebackup) returns version 9.500000
次の例は、データベースサーバの正常なチェックを示しています。
bash-4.1$ bart CHECK-CONFIG -s mktg
INFO: Checking server mktg
INFO: Verifying cluster_owner and ssh/scp connectivity
INFO: success
INFO: Verifying user, host, and replication connectivity
INFO: success
INFO: Verifying that user is a database superuser
INFO: success
INFO: Verifying that cluster_owner can read cluster data files
INFO: success
INFO: Verifying that you have permission to write to vault
INFO: success
INFO: /opt/backup/mktg
INFO: Verifying database server configuration
INFO: success
INFO: Verifying that WAL archiving is working
INFO: success
INFO: Verifying that bart-scanner is configured and running
INFO: success
 
5.4.2 INIT
INITサブコマンドは、BARTバックアップカタログのディレクトリを作成します。 INITは、BART構成ファイルのサーバーセクションにあるBART archive_commandパラメータの設定に基づいてPostgresのarchive_command構成パラメータを設定します。 INITサブコマンドはBART backupinfoファイルも再作成します。
bart INIT [ –s { server_name | all } ] [ -o ]
[ -r [ -i { backup_id | backup_name | all } ] ]
注: BART BACKUPサブコマンドの進行中は、 INITサブコマンドを呼び出さないでください。バックアップ処理によって影響を受けるバックアップはスキップされ、 INITサブコマンドによって無視されます。
とき INITサブコマンドが呼び出され、いくつかの異なるアクションを同時に実行することができます。以下に、特定の条件およびオプションのもとで実行されるアクションを要約します。
とき INITサブコマンドが呼び出され、次のアクションが常に実行されています。
-sオプションで指定されたサーバー 、または-s allが指定されているか-sオプションが省略されている場合はすべてのサーバーについて、BARTバックアップカタログのディレクトリ構造は、 archived_walsサブディレクトリまで存在しない場合は完成します。
とき INITサブコマンドは、-rオプションなしで起動され、以下のアクションが常に実行されています。
-sオプションで指定されたサーバー、または -s allが指定されているか-sオプションが省略されている場合はすべてのサーバーに対して 、Postgres archive_command構成パラメーターを設定しようとします。場合archive_commandパラメータがすでに設定されている(つまり、 archive_commandいずれかでコマンド文字列に設定されているpostgresql.confファイルまたはpostgresql.auto.confファイル)、既存archive_command設定はBARTに置き換えされていないarchive_commandない限り設定-oオプションも指定されています。追加情報についてはセクション4.2.3.2を参照してください。
とき INITサブコマンドは、-rオプションを指定して起動され、以下のアクションが常に実行されています。
-sオプションで指定されたサーバー 、または-s allが指定されているか-sオプションが省略されている場合はすべてのサーバーに対して、backupinfoファイルはすべてのバックアップに対して再作成されます。 -iオプションが含まれていると、指定されたバックアップ用にbackupinfoファイルが再作成されます。
BARTのbackupinfoファイルの名前 backupinfo最初にによって作成されたBACKUPサブコマンドとBARTで使用されるバックアップ情報が含まれています。
とき INIT -r起動され、BARTは、バックアップディレクトリの内容を使用してbackupinfoファイルを再構築します。
注:バックアップが最初にユーザー定義のバックアップ名で作成され、その後INIT -rオプションがそのbackupinfoファイルを再作成した場合、そのユーザー定義のバックアップ名は使用できなくなります。したがって、将来のバックアップへの参照では、整数のバックアップ識別子を使用する必要があります。
バックアップサブディレクトリ内のbackupinfoファイルの場所を次に示します。
[root@localhost acctg]# pwd
/opt/backup/acctg
[root@localhost acctg]# ls -l
total 4
drwx------ 2 enterprisedb enterprisedb 38 Oct 26 10:21 1477491569966
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Oct 26 10:19 archived_wals
[root@localhost acctg]# ls -l 1477491569966
total 61144
-rw-rw-r-- 1 enterprisedb enterprisedb 703 Oct 26 10:19 backupinfo
-rw-rw-r-- 1 enterprisedb enterprisedb 62603776 Oct 26 10:19 base.tar
backupinfoファイルの内容は次のとおりです。
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1477491569966
BACKUP NAME: none
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/acctg/1477491569966
BACKUP SIZE: 59.70 MB
BACKUP FORMAT: tar
BACKUP TIMEZONE:
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 1
ChkSum File
84b3eeb1e3f7b3e75c2f689570d04f10 base.tar
 
TABLESPACE(s): 0
START WAL LOCATION: 2/A5000028 (file 0000000100000002000000A5)
STOP WAL LOCATION: 2/A50000C0 (file 0000000100000002000000A5)
CHECKPOINT LOCATION: 2/A5000028
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2016-10-26 10:19:30 EDT
LABEL: pg_basebackup base backup
STOP TIME: 2016-10-26 10:19:30 EDT
 
TOTAL DURATION: 0 sec(s)
backupinfoファイルが見つからない場合は、BARTサブコマンドが呼び出されたときに次のエラーメッセージが表示されます。
-bash-4.2$ bart SHOW-BACKUPS
ERROR: 'backupinfo' file does not exist for backup '1477491569966'
please use 'INIT -r' to generate the file
BACKUPサブコマンドが正常に完了しなかった場合、backupinfoファイルが欠落している可能性があります
オプション
-s 、 - --server { server_name | all }
server_nameは、 INITアクションが適用されるデータベースサーバの名前です。 allを指定した場合、またはオプションを省略した場合、アクションはすべてのサーバーに適用されます。
-o 、 - --override
既存の、アクティブPostgresの上書きする archive_commandのコンフィギュレーションパラメータ設定postgresql.confファイルやpostgresql.auto.conf BART使用してファイルarchive_command BARTの設定ファイルにパラメータを。 INIT生成したアーカイブコマンド文字列はpostgresql.auto.confファイルに書き込まれます。 注意:場合archive_mode構成パラメータがに設定されているoff 、その後、 -oオプションは、Postgresが設定するために使用する必要がありますarchive_command BART使用archive_command場合でも、BARTの設定ファイル内のパラメータarchive_command 、現在では設定されていないpostgresql.confもでpostgresql.auto.conf
-r 、 - --rebuild
backupinfoファイルを再構築します。このファイルは、各バックアップサブディレクトリにあるbackupinfo という名前のテキストファイルです
-i 、 - --backupid { backup_id | backup_name | all }
backup_idは整数のバックアップIDです。 backup_nameは、バックアップ用のユーザー定義の英数字名です。 allを指定した場合、またはオプションを省略した場合は、-sオプションで指定したデータベースサーバのすべてのバックアップのbackupinfoファイルが再作成されます。 -iオプションは、 -rオプションと一緒にしか使用できません。
例1(archive_command)
次の例では、BARTバックアップカタログディレクトリを完成させ、デフォルトのBARTアーカイブコマンドフォーマットscp %p %h:%a/%fを使用してPostgresの archive_commandを設定します。デフォルトのBARTアーカイブコマンドフォーマットは、BART archive_commandパラメータが明示的に含まれていない場合、またはBART設定ファイルのサーバセクション内にコマンド文字列が割り当てられている場合に使用されます。
以下はBART設定ファイルです。
[BART]
bart_host= bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = repuser
cluster_owner = enterprisedb
description = "Accounting"
データベースサーバ archive_modeおよびarchive_commandパラメータは、次のように設定されています。
edb=# SHOW archive_mode;
archive_mode
--------------
on
(1 row)
 
edb=# SHOW archive_command;
archive_command
-----------------
(1 row)
INITサブコマンドが呼び出されます。 archive_modeonarchive_commandが設定さonいないため、 -oオプションは必要ありません。
[bartuser@localhost ~]$ bart INIT
INFO: setting archive_command for server 'acctg'
WARNING: archive_command is set. server restart is required
BARTバックアップカタログのディレクトリ構造が完成しました。
[root@localhost opt]# pwd
/opt
[root@localhost opt]# ls -l backup
total 4
drwx------ 3 bartuser bartuser 4096 Apr 3 16:44 acctg
[root@localhost opt]# ls -l backup/acctg
total 4
drwx------ 2 bartuser bartuser 4096 Apr 3 16:44 archived_wals
データベースサーバ設定をリロードします。 (データベースサーバの再起動は、 archive_commandパラメータのみをリセットする必要はありません 。)
[root@localhost opt]# service ppas-9.5 reload
Postgresの archive_commandが次のように設定されました。
edb=# SHOW archive_command;
archive_command
------------------------------------------------------------------
scp %p bartuser@192.168.2.22:/opt/backup/acctg/archived_wals/%f
(1 row)
新しいコマンド文字列は postgresql.auto.confファイルに書き込まれます。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'scp %p bartuser@192.168.2.22:/opt/backup/acctg/archived_wals/%f'
例2(archive_command)
次の例では、BART設定ファイルのBART archive_command = 'cp %p %a/%f'パラメータからPostgresの archive_commandパラメータをリセットして、既存のアクティブなアーカイブコマンドを上書きします。
以下はBART設定ファイルです。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup_edb
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = repuser
cluster_owner = enterprisedb
archive_command = 'cp %p %a/%f'
description = "Accounting"
データベースサーバ archive_modeおよびarchive_commandパラメータは、次のように設定されています。
edb=# SHOW archive_mode;
archive_mode
--------------
on
(1 row)
 
edb=# SHOW archive_command;
archive_command
------------------------------------------------------------------
scp %p bartuser@192.168.2.22:/opt/backup/acctg/archived_wals/%f
(1 row)
INITサブコマンドがで呼び出され-o現在のPostgresの上書きするオプションarchive_command設定を。
-bash-4.1$ bart INIT -s acctg -o
INFO: setting archive_command for server 'acctg'
WARNING: archive_command is set. server restart is required
データベースサーバ設定をリロードします。 (データベースサーバの再起動は、 archive_commandパラメータのみをリセットする必要はありません 。)
[root@localhost tmp]# service ppas-9.5 reload
Postgresの archive_commandが次のように設定されました。
edb=# SHOW archive_command;
archive_command
-----------------------------------------------
cp %p /opt/backup_edb/acctg/archived_wals/%f
(1 row)
新しいコマンド文字列は postgresql.auto.confファイルに書き込まれます。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'cp %p /opt/backup_edb/acctg/archived_wals/%f'
例(backupinfoオプションの再構築)
次の例では、データベースサーバ acctg 指定されたバックアップの acctg ファイルを再構築します
-bash-4.1$ bart INIT -s acctg -r -i 1428346620427
INFO: rebuilding BACKUPINFO for backup '1428346620427' of server 'acctg'
INFO: backup checksum: ced59b72a7846ff8fb8afb6922c70649 of base.tar
次の例では、すべてのデータベースサーバのすべてのバックアップのbackupinfoファイルを再構築します。
-bash-4.1$ bart INIT -r
INFO: rebuilding BACKUPINFO for backup '1428347191544' of server 'acctg'
INFO: backup checksum: 1ac5c61f055c910db314783212f2544f of base.tar
INFO: rebuilding BACKUPINFO for backup '1428346620427' of server 'acctg'
INFO: backup checksum: ced59b72a7846ff8fb8afb6922c70649 of base.tar
INFO: rebuilding BACKUPINFO for backup '1428347198335' of server 'dev'
INFO: backup checksum: a8890dd8ab7e6be5d5bc0f38028a237b of base.tar
INFO: rebuilding BACKUPINFO for backup '1428346957515' of server 'dev'
INFO: backup checksum: ea62549cf090573625d4adeb7d919700 of base.tar
 
5.4.3 バックアップ
BACKUPサブコマンドは、フルバックアップまたは増分バックアップを作成するために使用されます。
bart BACKUP –s { server_name | all } [ -F { p | t } ]
[ -z ] [ –c compression_level ]
[ --parent { backup_id | backup_name } ]
[ --backup-name backup_name ]
[ --thread-count number_of_threads ]
[ { --with-pg_basebackup | --no-pg_basebackup } ]
[ --check ]
デフォルトでは、ターゲットフォーマットはtarファイルです。
バックアップは backup_path / server_name / backup_id によって形成されたディレクトリに保存され backup_pathここで、 backup_pathはBART構成ファイルのbackup_pathパラメーターに割り当てられた値、 server_nameは構成ファイルにリストされているデータベースサーバーの小文字の名前backup_id 。 BARTによって特定のバックアップに割り当てられた整数のバックアップID。
フルバックアップおよびユーザー定義のテーブルスペースのMD5チェックサムも、tarバックアップのために保存されます。
一方で BACKUPサブコマンドが進行中で、他のプロセスがアクセスしたり、影響を受けたバックアップを妨害する許可されません。したがって、バックアップの進行中に発行された次のサブコマンド( INITSHOW-BACKUPSVERIFY-CHKSUMMANAGE 、およびDELETEはスキップされ、無視されます。
バックアップを実行する前に、BARTはBARTバックアップカタログにバックアップを完全に保存するのに十分なディスク容量があることを確認します。 BARTが十分なディスク容量がないことを検出すると、次のようにエラーメッセージが表示されます。
edb@localhost bin]$ ./bart backup -s mktg -Ft
 
WARNING: xlog_method is empty, defaulting to global policy
ERROR: backup failed for server 'mktg'
free disk space is not enough to backup the server 'mktg'
space available 13.35 GB, approximately required 14.65 GB
このディスク容量の不足が検出されても、バックアップファイルはBARTバックアップカタログにコピーされません。
注:バックアップ・ファイルをコピーする前に使用可能な十分なディスク・スペースがないかどうかを確認して警告するこの機能はBACKUPサブコマンドで提供されていますが、 RESTOREサブコマンドにはこれと同じ機能はありません。したがって、使用可能なディスクスペースが十分にないと、ファイルのコピー中にRESTOREサブコマンドがエラーを引き起こす可能性があります。
postgresql.confファイル、必ずwal_keep_segmentsそうでなければ、の使用中に次のエラーが発生する可能性があり、構成パラメータが十分大きな値に設定されているBACKUPサブコマンド:
ERROR: backup failed for server 'mktg'
command failed with exit code 1
pg_basebackup: could not get transaction log end position from server: ERROR: requested WAL segment 00000001000000D50000006B has already been removed
wal_keep_segments構成パラメーターを低く設定すると、BART BACKUPサブコマンドがそれらをBARTバックアップカタログに保存する機会を得る前に、いくつかのWALファイルが削除される可能性があります。
wal_keep_segmentsパラメータについては、 wal_keep_segments入手可能なPostgreSQLコアドキュメントを参照してください。
https://www.postgresql.org/docs/11/static/runtime-config-replication.html
BART構成ファイルで、パラメータ設定 xlog_method=streamが特定のデータベースサーバーに適用される場合、そのデータベースサーバーに対してバックアップの作成と並行してトランザクションログのストリーミングが実行されます。それ以外の場合、トランザクションログファイルはバックアップの完了時に収集されます。 。 xlog_methodグローバル設定についてはセクション4.1を参照してください。データベースサーバによるxlog_method設定については、 4.2.5項を参照してください。
注:トランザクションログストリーミング方式を使用する場合は、プレーンテキストバックアップ形式の-F pオプションをBACKUPサブコマンドで指定する必要があります。
オプション
-s 、 - --server { server_name | all }
server_nameは、BART構成ファイルで指定されているとおりにバックアップするデータベースサーバーの名前です。 allを指定した場合、すべてのサーバーがバックアップされます。 注: allが指定されていて、BART構成ファイルにリストされているデータベースサーバーへの接続を開くことができない場合、そのデータベースサーバーのバックアップはスキップされますが、バックアップ操作は他のデータベースサーバーに対して続行されます。データベースサーバ接続が失敗すると、次のエラーメッセージが表示されます。
ERROR: backup failed for server 'mktg'
connection to the server failed: could not connect to server: Connection refused
Is the server running on host "172.16.114.132" and accepting
TCP/IP connections on port 5444?
-F 、 - --format { p | t }
バックアップファイルの形式を指定します。プレーンテキストの場合はp 、tarの場合はt使用してください 。このオプションを省略した場合、デフォルトはtar形式です。 注:増分バックアップをとる場合は、 -F pオプションを指定する必要があります。
-z 、 - --gzip
デフォルトの圧縮レベルを使用して、tarファイル出力にgzip圧縮を使用することを指定します。デフォルトの圧縮レベルは通常6です。このオプションはtarフォーマットにのみ適用できます。
-c--compress-level compression_level --compress-level compression_level
tarファイル出力のgzip圧縮レベルを指定します。 compression_levelは1から9までの数字で、9が最高の圧縮率です。このオプションはtarフォーマットにのみ適用可能です。
--parent { backup_id | --parent { backup_name }
backup_idは、親バックアップのバックアップIDです。 backup_nameは、親バックアップのユーザー定義の英数字名です。増分バックアップをとる場合は、このオプションを指定してください。親は、現在呼び出されている増分バックアップの前に作成されたバックアップです。親バックアップは、フルバックアップまたは増分バックアップのいずれかです。増分バックアップはプレーンテキスト形式でのみ取ることができるため、 –F pオプションも指定する必要があります。 注意:増分バックアップはスタンバイデータベースサーバーでは実行できません。増分バックアップの詳細については、 2.1項を参照してください。
--backup-name backup_name
バックアップに割り当てられるユーザー定義のわかりやすい名前。これは英数字の文字列で、バックアップの実行時にタイムスタンプ値に置き換えられる次の変数が含まれます。1) %year - 4桁の年、2) %month - 2桁のmonth、3) %day - 2 - 桁の日、4) %hour - 2桁の時、5) %minute - 2桁の分、および6) %second - 2桁の秒。バックアップ名にパーセント記号( % )を文字として含めるには、英数字ストリングに%%を指定します。スペース文字を含む場合は、ストリングを一重引用符( ' )または二重引用符( " )で囲みます。ただし、他のサブコマンドで-iオプションを使用して参照する場合は、バックアップ名を引用符で囲む必要があります。バックアップ名の長さは49文字です。
このオプションは、BART設定ファイルのserverセクションにある backup_nameパラメータを上書きします。 --backup-nameオプションが指定されておらず、BART構成ファイルでこのデータベースサーバーに対してbackup_nameパラメーターが設定されていない場合、バックアップは、BART割り当ての整数バックアップIDによってのみ他のBARTサブコマンドで参照できます。
--thread-count number_of_threads
場合 --thread-countオプションが指定され、 number_of_threadsワーカースレッドの数は、バックアップ用のブロックをコピーするには、並列に実行することです。
注: 並列バックアップがN個のワーカースレッドで実行されている場合、サーバーとのN + 1個の同時接続が開始されます。
場合 --thread-countオプションが省略され、その後、 thread_countこのデータベース・サーバーに適用BARTの設定ファイル内のパラメータが使用されています。このデータベースサーバーに対してthread_countが有効になっていない場合は、BART構成ファイルのグローバルセクションにあるthread_count設定が使用されます。これも設定されていない場合、デフォルトのスレッド数は1です。 thread_countパラメータについては、セクション4.1および4.2.5を参照してください。
--with-pg_basebackup
フルバックアップを取るためにpg_basebackupを使用することを指定します。有効なスレッドカウントの数は、BART設定ファイルのthread_countパラメータで指定されているように無視されます(セクション4.1および4.2.5を参照)。 注:フルバックアップを取る際に、有効なスレッド数が1より大きい場合、-- --with-pg_basebackupオプションが指定されていない限り、 pg_basebackupユーティリティはフルバックアップを取るために使用されません(パラレルワーカースレッドが使用されます)。 BACKUPサブコマンド。
--no-pg_basebackup
フルバックアップを取るためにpg_basebackup使用しないことを指定します。 注:フルバックアップを取る場合、有効なスレッド数が1しかない場合は、 --no-pg_basebackupオプションがBACKUPサブコマンドで指定されていない限り、 pg_basebackupユーティリティを使用してフルバックアップを取ります。
--check
増分バックアップを実行する前に、必要なMBMファイルがBARTバックアップカタログに存在することを確認してください。増分バックアップを正常に実行できること、または失敗することを知らせるメッセージが表示されます。 --parent時にオプションを指定する必要があります--checkオプションが使用されています。 --checkオプションが指定されている場合、実際の増分バックアップは行われません。
次の例では、gzip圧縮を使用してデフォルトのtar形式でフルバックアップを作成します。チェックサムは、フルバックアップおよびtarフォーマットバックアップのユーザー定義テーブルスペースに対して生成されます。
-bash-4.2$ bart BACKUP -s mktg -z
DEBUG: Server: acctg, No. Backups 8
DEBUG: Server: hr, Now: 2016-10-27 10:41:07 EDT, RetentionWindow: 345600 (secs) ==> 96 hour(s)
DEBUG: Exec Command: /opt/PostgresPlus/9.5AS/bin/pg_basebackup --version
INFO: creating backup for server 'mktg'
INFO: backup identifier: '1477579267918'
DEBUG: internal backup Command to be execute: '/opt/PostgresPlus/9.5AS/bin/pg_basebackup -D /opt/backup/mktg/1477579267918 -X fetch -P -Ft -z -d "host=192.168.2.24 port=5443 user=repuser" '
55006/55006 kB (100%), 3/3 tablespaces
 
INFO: backup completed successfully
DEBUG: Exec Command: tar -C /opt/backup/mktg/1477579267918 -xzf /opt/backup/mktg/1477579267918/base.tar.gz backup_label
WARNING: log_timezone is not set in the server, using the local timezone information
DEBUG: calculate checksum for backup '/opt/backup/mktg/1477579267918'
DEBUG: calculating checksum of file '/opt/backup/mktg/1477579267918/17283.tar.gz'
INFO: backup checksum: 4f69a5f2ed7092aede490de040e685fb of 17283.tar.gz
DEBUG: calculating checksum of file '/opt/backup/mktg/1477579267918/17284.tar.gz'
INFO: backup checksum: 103e1e39003e0eb6acad11d4f791be45 of 17284.tar.gz
DEBUG: calculating checksum of file '/opt/backup/mktg/1477579267918/base.tar.gz'
INFO: backup checksum: 6b5efb3e701ac30372db74e3ad8eac21 of base.tar.gz
WARNING: cannot get the tablespace(s) information for backup '1477579267918'
DEBUG: start time: 1477582868, stop time: 1477582870, duration: 2
DEBUG: Backup Info file created at '/opt/backup/mktg/1477579267918/backupinfo'
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1477579267918
BACKUP NAME: none
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/mktg/1477579267918
BACKUP SIZE: 5.45 MB
BACKUP FORMAT: tar.gz
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 3
ChkSum File
4f69a5f2ed7092aede490de040e685fb 17283.tar.gz
103e1e39003e0eb6acad11d4f791be45 17284.tar.gz
6b5efb3e701ac30372db74e3ad8eac21 base.tar.gz
 
TABLESPACE(s): 4294967295
 
START WAL LOCATION: 000000010000000200000051
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2016-10-27 10:41:08 EDT
STOP TIME: 2016-10-27 10:41:10 EDT
TOTAL DURATION: 2 sec(s)
フルバックアップを含むディレクトリを次に示します。
-bash-4.2$ pwd
/opt/backup
-bash-4.2$ ls -l mktg
total 4
drwx------ 2 enterprisedb enterprisedb 79 Oct 27 10:41 1477579267918
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Oct 27 10:41 archived_wals
次の例は、トランザクションログのストリーミング中にフルバックアップを作成する方法を示しています。
ストリーミングを使用する場合は -F pオプションをBACKUPサブコマンドと一緒に指定する必要があります。
-bash-4.2$ bart BACKUP -s ACCTG -F p
DEBUG: Server: acctg, No. Backups 8
DEBUG: Server: hr, Now: 2016-10-27 10:46:36 EDT, RetentionWindow: 345600 (secs) ==> 96 hour(s)
DEBUG: Exec Command: /opt/PostgresPlus/9.5AS/bin/pg_basebackup --version
INFO: creating backup for server 'acctg'
INFO: backup identifier: '1477579596637'
DEBUG: internal backup Command to be execute: '/opt/PostgresPlus/9.5AS/bin/pg_basebackup -D /opt/backup/acctg/1477579596637/base -X stream -P -Fp -d "host=127.0.0.1 port=5444 user=enterprisedb" '
40145/40145 kB (100%), 1/1 tablespace
 
INFO: backup completed successfully
WARNING: log_timezone is not set in the server, using the local timezone information
DEBUG: start time: 1477583196, stop time: 1477583197, duration: 1
DEBUG: Backup Info file created at '/opt/backup/acctg/1477579596637/backupinfo'
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1477579596637
BACKUP NAME: acctg_2016-10-27T10:46:36
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/acctg/1477579596637
BACKUP SIZE: 54.50 MB
BACKUP FORMAT: plain
XLOG METHOD: stream
BACKUP CHECKSUM(s): 0
TABLESPACE(s): 0
START WAL LOCATION: 0000000100000001000000EC
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2016-10-27 10:46:36 EDT
STOP TIME: 2016-10-27 10:46:37 EDT
TOTAL DURATION: 1 sec(s)
次の例は、 - backup --backup-nameオプションを使用したユーザー定義のバックアップ名の割り当てを示しています。
-bash-4.2$ bart BACKUP -s acctg --backup-name acctg_%year-%month-%day
INFO: creating backup for server 'acctg'
INFO: backup identifier: '1482700280852'
60944/60944 kB (100%), 1/1 tablespace
 
INFO: backup completed successfully
WARNING: log_timezone is not set in the server, using the local timezone information
INFO: backup checksum: e47107a0677dcc5acb8de40d66058e65 of base.tar
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1482700280852
BACKUP NAME: acctg_2016-12-25
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/acctg/1482700280852
BACKUP SIZE: 59.52 MB
BACKUP FORMAT: tar
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 1
ChkSum File
e47107a0677dcc5acb8de40d66058e65 base.tar
 
TABLESPACE(s): 0
START WAL LOCATION: 000000010000000100000045
STOP WAL LOCATION: 000000010000000100000045
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2016-12-25 16:11:21 EST
STOP TIME: 2016-12-25 16:11:21 EST
TOTAL DURATION: 0 sec(s)
以下に、-- --parentオプションを指定して作成された増分バックアップを示します。プレーンテキスト形式でも-F pオプションを指定する必要があります。
-bash-4.1$ bart BACKUP -s hr -F p --parent hr_full_1 --backup-name hr_incr_1
INFO: creating incremental backup for server 'hr'
INFO: checking mbm files /opt/backup/hr/archived_wals
INFO: new backup identifier generated 1490819642608
INFO: reading directory /opt/backup/hr/archived_wals
INFO: all files processed
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
INFO: incremental backup completed successfully
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1490819642608
BACKUP NAME: hr_incr_1
BACKUP PARENT: 1490819418664
BACKUP LOCATION: /opt/backup/hr/1490819642608
BACKUP SIZE: 16.53 MB
BACKUP FORMAT: plain
BACKUP TIMEZONE: US/Eastern
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 0
TABLESPACE(s): 0
START WAL LOCATION: 000000010000000000000007
STOP WAL LOCATION: 000000010000000000000007
BACKUP METHOD: pg_start_backup
BACKUP FROM: master
START TIME: 2017-03-29 16:34:04 EDT
STOP TIME: 2017-03-29 16:34:05 EDT
TOTAL DURATION: 1 sec(s)
 
5.4.4 ショーサーバ
SHOW-SERVERSサブコマンドは、BARTの設定ファイルにリストされた管理データベースサーバの情報を表示します。
bart SHOW-SERVERS [ –s { server_name | all } ]
デフォルトのアクションはすべてのサーバーを表示することです。
オプション
-s 、 - --server { server_name | all }
server_nameは、BART構成情報を表示するデータベースサーバの名前です。 allを指定した場合、またはオプションを省略した場合は、すべてのデータベースサーバの情報が表示されます。
次の例は、BARTによって管理されているすべてのデータベースサーバを示しています。
-bash-4.2$ bart SHOW-SERVERS
SERVER NAME : acctg
BACKUP FRIENDLY NAME: acctg_%year-%month-%dayT%hour:%minute
HOST NAME : 127.0.0.1
USER NAME : enterprisedb
PORT : 5444
REMOTE HOST :
RETENTION POLICY : 6 Backups
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/acctg/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Accounting"
 
SERVER NAME : hr
BACKUP FRIENDLY NAME: hr_%year-%month-%dayT%hour:%minute
HOST NAME : 192.168.2.24
USER NAME : postgres
PORT : 5432
REMOTE HOST : postgres@192.168.2.24
RETENTION POLICY : 6 Backups
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/hr/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Human Resources"
 
SERVER NAME : mktg
BACKUP FRIENDLY NAME: mktg_%year-%month-%dayT%hour:%minute
HOST NAME : 192.168.2.24
USER NAME : repuser
PORT : 5444
REMOTE HOST : enterprisedb@192.168.2.24
RETENTION POLICY : 6 Backups
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/mktg/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Marketing"
 
5.4.5 ショーバック
SHOW-BACKUPSディスプレイに管理するデータベースサーバーのバックアップ情報をサブコマンド。
bart SHOW-BACKUPS [ –s { server_name | all } ]
[ -i { backup_id | backup_name | all } ]
[ -t ]
すべてのオプションが省略されている場合、デフォルトのアクションは、以下の注で説明されているように、例外を除いてすべてのサーバーのすべてのバックアップを表示することです。
注: BART BACKUPサブコマンドの進行中にSHOW-BACKUPSが呼び出されると、バックアップ処理の影響を受けるバックアップは、表示されているバックアップ情報に進行中の状況を表示します。
オプション
-s 、 - --server { server_name | all }
server_nameは、バックアップ情報を表示するデータベースサーバの名前です。 allを指定した場合、またはオプションを省略した場合は、すべてのデータベースサーバのバックアップ情報が表示されます。
-i 、 - --backupid { backup_id | backup_name | all }
backup_idは整数のバックアップIDです。 backup_nameは、バックアップ用のユーザー定義の英数字名です。 allを指定した場合、またはオプションを省略した場合は、該当するデータベースサーバのすべてのバックアップ情報が表示されます。
-t 、 - --toggle
より包括的なバックアップ情報をリスト形式で表示します。省略した場合、デフォルトはより見やすい表形式です。
次の例は、データベースサーバ dev からのバックアップを示しています
-bash-4.2$ bart SHOW-BACKUPS -s dev
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME
BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
 
dev 1477579596637 dev_2016-10-27T10:46:36 none 2016-10-27 10:46:37 EDT 54.50 MB 96.00 MB 6 active
次の例は、 -tオプションを使用した詳細情報を示しています。
-bash-4.2$ bart SHOW-BACKUPS -s dev -i 1477579596637 -t
SERVER NAME : dev
BACKUP ID : 1477579596637
BACKUP NAME : dev_2016-10-27T10:46:36
BACKUP PARENT : none
BACKUP STATUS : active
BACKUP TIME : 2016-10-27 10:46:37 EDT
BACKUP SIZE : 54.50 MB
WAL(S) SIZE : 80.00 MB
NO. OF WALS : 5
FIRST WAL FILE : 0000000100000001000000EC
CREATION TIME : 2016-10-27 10:46:37 EDT
LAST WAL FILE : 0000000100000001000000F0
CREATION TIME : 2016-10-27 11:22:01 EDT
次の例は、増分バックアップとその親バックアップのリストを示しています。
-bash-4.2$ bart SHOW-BACKUPS
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME
BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
 
acctg 1477580293193 none acctg_2016-10-27 2016-10-27 10:58:13 EDT 16.45 MB 16.00 MB 1 active
acctg 1477580111358 acctg_2016-10-27 none 2016-10-27 10:55:11 EDT 59.71 MB 16.00 MB 1 active
以下に、増分バックアップと親バックアップの詳細な詳細情報を示します。
-bash-4.2$ bart SHOW-BACKUPS -t
SERVER NAME : acctg
BACKUP ID : 1477580293193
BACKUP NAME : none
BACKUP PARENT : acctg_2016-10-27
BACKUP STATUS : active
BACKUP TIME : 2016-10-27 10:58:13 EDT
BACKUP SIZE : 16.45 MB
WAL(S) SIZE : 16.00 MB
NO. OF WALS : 1
FIRST WAL FILE : 0000000100000002000000D9
CREATION TIME : 2016-10-27 10:58:13 EDT
LAST WAL FILE : 0000000100000002000000D9
CREATION TIME : 2016-10-27 10:58:13 EDT
 
SERVER NAME : acctg
BACKUP ID : 1477580111358
BACKUP NAME : acctg_2016-10-27
BACKUP PARENT : none
BACKUP STATUS : active
BACKUP TIME : 2016-10-27 10:55:11 EDT
BACKUP SIZE : 59.71 MB
WAL(S) SIZE : 16.00 MB
NO. OF WALS : 1
FIRST WAL FILE : 0000000100000002000000D8
CREATION TIME : 2016-10-27 10:55:12 EDT
LAST WAL FILE : 0000000100000002000000D8
CREATION TIME : 2016-10-27 10:55:12 EDT
 
5.4.6 ベリファイチェックサム
VERIFY-CHKSUMサブコマンドは、指定されたデータベース・サーバーまたはすべてのデータベース・サーバのフルバックアップと任意のユーザー定義の表領域のMD5チェックサムを検証します。
bart VERIFY-CHKSUM
[ –s { server_name | all } ]
[ -i { backup_id | backup_name | all } ]
チェックサムは、バックアップの現在のチェックサムとバックアップが取られたときのチェックサムを比較することによって検証されます。 VERIFY-CHKSUMサブコマンドは、プレーンな形式のバックアップには適用されません。 tar形式のバックアップにのみ使用されます。
注: BART BACKUPサブコマンドの進行中にVERIFY-CHKSUMが呼び出されると、バックアップ処理の影響を受けるバックアップはスキップされ、 VERIFY-CHKSUMサブコマンドによって無視されます。
オプション
-s 、 - --server { server_name | all }
server_nameは、tarバックアップチェックサムを検証するデータベースサーバの名前です。 allを指定した場合、または-sオプションを省略した場合、チェックサムはすべてのデータベースサーバに対して検証されます。
-i 、 - --backupid { backup_id | backup_name | all }
backup_idは、チェックサムをユーザー定義の表領域と一緒に検証する、tar形式のフルバックアップの整数のバックアップ識別子です。 backup_nameは、フルバックアップのユーザー定義の英数字名です。 allを指定した場合、または-iオプションを省略した場合は、関連するデータベースサーバーのすべてのtarバックアップのチェックサムが検証されます。
次の例では、指定されたデータベースサーバのすべてのtar形式のバックアップのチェックサムを確認します。
-bash-4.1$ bart VERIFY-CHKSUM -s acctg -i all
SERVER NAME BACKUP ID VERIFY
acctg 1430239348243 OK
acctg 1430232284202 OK
acctg 1430232016284 OK
acctg 1430231949065 OK
acctg 1429821844271 OK
 
5.4.7 MANAGE
MANAGEサブコマンド評価し、マークを、および保存ポリシーに基づいたバックアップを削除します。 MANAGEサブコマンドは、 wal_compressionパラメーターに基づいてアーカイブWALファイルの圧縮も呼び出します。
bart MANAGE [ –s { server_name | all } ]
[ -l ] [ -d ]
[ -c { keep | nokeep }
-i { backup_id | backup_name | all } ]
[ -n ]
注: BART BACKUPサブコマンドの進行中にMANAGEサブコマンドを呼び出さないでください。バックアップ処理によって影響を受けるバックアップはスキップされ、 MANAGEサブコマンドによって無視されます。
保存方針の適用は 、BART設定ファイルのretention_policyパラメータに依存します。保存ポリシーに従ってバックアップを評価し、そのステータスをマークし、不要なバックアップを削除するなど、バックアップの管理はMANAGEサブコマンドで実行されます。保存方針管理については、 5.2項を参照してください。
WAL圧縮は 、BART設定ファイルのwal_compressionパラメータによって制御されます。このパラメータの設定については、セクション4.1および4.2.5を参照してください。
とき MANAGEサブコマンドが呼び出され、いくつかの異なるアクションを同時に実行することができます。以下に、特定の条件およびオプションのもとで実行されるアクションを要約します。
とき MANAGEサブコマンドはオプションなしでのみで呼び出される-sを指定するためのオプションallまたは特定のデータベース・サーバを、以下のアクションが実行されます。
-sオプションで指定されたサーバーの場合、または-s allが指定されているか-sオプションが省略されている場合はすべてのサーバーの場合、アクティブなバックアップは保存方針に従って廃止予定としてマークされます。
MANAGEサブコマンドを呼び出す前に不要とマークされた、または保持されたすべてのバックアップは、同じ前の状況でマークされたままになります。
-sオプション以外の他のオプションを指定し MANAGEサブコマンドを呼び出すと、以下のアクションが実行されます。
で指定したサーバの -sオプション、またはすべてのサーバーの場合は-s all指定されているか、 -sオプションが省略され、実行されたアクションは、他の指定されたオプション(つまり、によって決定される-l古いバックアップを一覧表示するには、 -d不要なバックアップを削除する場合は-c 、バックアップをアクティブ状態に維持するか元の状態に戻す場合は-c 、すべてのアクションの予行-nを実行する場合は-n )。
MANAGEサブコマンドを呼び出す前に廃止または保持されていたすべてのバックアップは-cオプション( -nオプションなし)を指定して、または特定のバックアップのバックアップ状況を変更しない限り、同じ前状況でマークされたままになります。 -iオプション
以下は、WAL圧縮を使用する際の追加の考慮事項です。
アーカイブWALファイルの圧縮は、増分バックアップをとるデータベースサーバーに対しては許可されていません。つまり、パラメータ wal_compressionallow_incremental_backups両方を同じデータベースサーバに有効にすることはできません。
RESTOREサブコマンドが呼び出されたとき、 -cオプションが指定されている場合、またはcopy_wals_during_restore BART構成パラメータのenabled設定がデータベースサーバに対して有効である場合は、次の処理が行われます。圧縮されている場合、アーカイブWALファイルはBARTに格納されます。バックアップカタログとWALファイルの復元先はBARTホストを基準としたリモートホスト上にあり、アーカイブされたWALファイルはネットワークを介してリモートホストに圧縮形式で送信されますが、gzip圧縮プログラムはRESTORE操作を実行するときにリモートホストへのログインに使用されるリモートユーザーアカウントのPATHでアクセス可能です。このリモートユーザーは、BART設定ファイルのremote_hostパラメータ( 4.2.5項を参照)またはRESTORE -rオプション( 5.4.8項を参照)のいずれかで指定されます。圧縮WALファイルを送信すると、ネットワークトラフィックが減少します。圧縮されたWALファイルがネットワークを介して送信された後、 RESTOREサブコマンドはポイントインタイムリカバリ操作のためにファイルを解凍します。
とき RESTOREサブコマンドなしで起動された-cオプションとの無効設定copy_wals_during_restoreのために必要なBARTの設定パラメータデータベース・サーバに対して有効である、その後、任意の圧縮、アーカイブWALファイルRESTORE操作は、BARTのバックアップカタログで圧縮されていないです。データベースサーバのアーカイブリカバリが開始されたときに、圧縮されていないWALファイルをrecovery.confファイルのrestore_commandによってリモートホストにストリーミングできます。
オプション
-s 、 - --server { server_name | all }
server_nameは、アクションが適用されるデータベースサーバの名前です。 allを指定した場合、または-sオプションを省略した場合、アクションはすべてのデータベースサーバに適用されます。
-l 、 - --list-obsolete
不要とマークされたバックアップをリストします。
-d 、 - --delete-obsolete
不要とマークされたバックアップを削除します。この操作により、バックアップとそのアーカイブされたWALファイルおよび増分バックアップ用のMBMファイルが物理的に削除されます。
-c 、 - --change-status { keep | nokeep }
無期限に保持する keepバックアップのステータスを変更します 。現在のマークされているステータスに関係なく、バックアップのステータスをアクティブステータスに戻すには、 nokeepを指定します。その後、バックアップは再評価され、その後のMANAGEサブコマンドの使用によって、保存方針に従って古いとマークされる可能性があります。 注: -cオプションを使用するときは、 –iオプションを含める必要があります。
-i 、 - --backupid { backup_id | backup_name | all }
backup_idは整数のバックアップIDです。 backup_nameは、バックアップ用のユーザー定義の英数字名です。 allを指定した場合、アクションはすべてのバックアップに適用されます。 注: -iオプションは、 -cオプションと一緒にしか使用できません。
-n 、 - --dry-run
操作が実行されたかのように結果を表示しますが、実際には変更は行われません。つまり、実際にアクションを実装する前に結果を確認できるように、テスト実行が実行されます。したがって、 -dオプションと一緒に指定された-nは、どのバックアップを削除するかを表示しますが、実際にはバックアップを削除しません。 -nオプションを-cオプションと一緒に指定すると、keepまたはnokeepアクションが表示されますが、実際にはバックアップは現在の状況から変更されません。他のオプションを指定せずに、または-sオプションのみを指定して、 -n単独で指定すると、どのアクティブ・バックアップが不要とマークされるかが表示されますが、実際にはバックアップ状況は変更されません。さらに、データベースサーバーでWAL圧縮が有効になっていても、圧縮されていないアーカイブWALファイルでは圧縮は実行されません。
次の例では、指定されたデータベースサーバーに対してドライランを実行し、どのアクティブバックアップが保存方針に従って古いと評価されたかを表示しますが、実際にはバックアップステータスを変更しません。
-bash-4.2$ bart MANAGE -s acctg -n
INFO: processing server 'acctg', backup '1482770807519'
INFO: processing server 'acctg', backup '1482770803000'
INFO: marking backup '1482770803000' as obsolete
INFO: 1 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1482770735155'
INFO: marking backup '1482770735155' as obsolete
INFO: 2 incremental(s) of backup '1482770735155' will be marked obsolete
INFO: marking incremental backup '1482770780423' as obsolete
INFO: marking incremental backup '1482770763227' as obsolete
INFO: 3 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: 2 Unused file(s) (WALs included) present, use 'MANAGE -l' for the list
次の例では、指定されたデータベースサーバーの保存方針に従って、アクティブバックアップを不要としてマークします。
-bash-4.2$ bart MANAGE -s acctg
INFO: processing server 'acctg', backup '1482770807519'
INFO: processing server 'acctg', backup '1482770803000'
INFO: marking backup '1482770803000' as obsolete
INFO: 1 WAL file(s) marked obsolete
INFO: processing server 'acctg', backup '1482770735155'
INFO: marking backup '1482770735155' as obsolete
INFO: 2 incremental(s) of backup '1482770735155' will be marked obsolete
INFO: marking incremental backup '1482770780423' as obsolete
INFO: marking incremental backup '1482770763227' as obsolete
INFO: 3 WAL file(s) marked obsolete
INFO: 1 Unused WAL file(s) present
INFO: 2 Unused file(s) (WALs included) present, use 'MANAGE -l' for the list
次の例では、指定されたデータベースサーバに対して不要とマークされたバックアップを一覧表示します。
-bash-4.2$ bart MANAGE -s acctg -l
SERVER NAME: acctg
BACKUP ID: 1482770803000
BACKUP STATUS: obsolete
BACKUP TIME: 2016-12-26 11:46:43 EST
BACKUP SIZE: 59.52 MB
WAL FILE(s): 1
WAL FILE: 000000010000000100000055
SERVER NAME: acctg
BACKUP ID: 1482770735155
BACKUP STATUS: obsolete
BACKUP TIME: 2016-12-26 11:45:35 EST
BACKUP SIZE: 59.52 MB
INCREMENTAL BACKUP(s): 2
BACKUP ID: 1482770780423
BACKUP PARENT: 1482770735155
BACKUP STATUS: obsolete
BACKUP TIME: 2016-12-26 11:45:35 EST
BACKUP SIZE: 59.52 MB
BACKUP ID: 1482770763227
BACKUP PARENT: 1482770735155
BACKUP STATUS: obsolete
BACKUP TIME: 2016-12-26 11:45:35 EST
BACKUP SIZE: 59.52 MB
WAL FILE(s): 3
WAL FILE: 000000010000000100000054
WAL FILE: 000000010000000100000053
WAL FILE: 000000010000000100000052
UNUSED FILE(s): 2
UNUSED FILE: 000000010000000100000051
UNUSED FILE: 0000000100000001510000280000000152000000.mbm
次の例では、指定されたデータベースサーバの古いバックアップを削除します。
-bash-4.2$ bart MANAGE -s acctg -d
INFO: removing all obsolete backups of server 'acctg'
INFO: removing obsolete backup '1482770803000'
INFO: 1 WAL file(s) will be removed
INFO: removing WAL file '000000010000000100000055'
INFO: removing obsolete backup '1482770735155'
INFO: 3 WAL file(s) will be removed
INFO: 2 incremental(s) of backup '1482770735155' will be removed
INFO: removing obsolete incremental backup '1482770780423'
INFO: removing obsolete incremental backup '1482770763227'
INFO: removing WAL file '000000010000000100000054'
INFO: removing WAL file '000000010000000100000053'
INFO: removing WAL file '000000010000000100000052'
INFO: 8 Unused file(s) will be removed
INFO: removing (unused) file '000000010000000100000056.00000028.backup'
INFO: removing (unused) file '000000010000000100000056'
INFO: removing (unused) file '000000010000000100000055.00000028.backup'
INFO: removing (unused) file '000000010000000100000054.00000028.backup'
INFO: removing (unused) file '000000010000000100000053.00000028.backup'
INFO: removing (unused) file '000000010000000100000052.00000028.backup'
INFO: removing (unused) file '000000010000000100000051'
INFO: removing (unused) file '0000000100000001510000280000000152000000.mbm'
次の例では、指定されたバックアップを無期限に保持するためにstatusを保持するように変更します。
-bash-4.2$ bart MANAGE -s acctg -c keep -i 1482770807519
INFO: changing status of backup '1482770807519' of server 'acctg' from 'active' to 'keep'
INFO: 1 WAL file(s) changed
 
-bash-4.2$ bart SHOW-BACKUPS -s acctg -i 1482770807519 -t
SERVER NAME : acctg
BACKUP ID : 1482770807519
BACKUP NAME : none
BACKUP PARENT : none
BACKUP STATUS : keep
BACKUP TIME : 2016-12-26 11:46:47 EST
BACKUP SIZE : 59.52 MB
WAL(S) SIZE : 16.00 MB
NO. OF WALS : 1
FIRST WAL FILE : 000000010000000100000057
CREATION TIME : 2016-12-26 11:52:47 EST
LAST WAL FILE : 000000010000000100000057
CREATION TIME : 2016-12-26 11:52:47 EST
次の例では、指定されたバックアップをアクティブ状態にリセットします。
-bash-4.2$ bart MANAGE -s acctg -c nokeep -i 1482770807519
INFO: changing status of backup '1482770807519' of server 'acctg' from 'keep' to 'active'
INFO: 1 WAL file(s) changed
-bash-4.2$ bart SHOW-BACKUPS -s acctg -i 1482770807519 -t
SERVER NAME : acctg
BACKUP ID : 1482770807519
BACKUP NAME : none
BACKUP PARENT : none
BACKUP STATUS : active
BACKUP TIME : 2016-12-26 11:46:47 EST
BACKUP SIZE : 59.52 MB
WAL(S) SIZE : 16.00 MB
NO. OF WALS : 1
FIRST WAL FILE : 000000010000000100000057
CREATION TIME : 2016-12-26 11:52:47 EST
LAST WAL FILE : 000000010000000100000057
CREATION TIME : 2016-12-26 11:52:47 EST
次の例では、以下に示すようにBART構成ファイルのenabled wal_compressionパラメータを使用しています。
[ACCTG]
host = 127.0.0.1
port = 5445
user = enterprisedb
cluster_owner = enterprisedb
allow_incremental_backups = disabled
wal_compression = enabled
description = "Accounting"
場合 MANAGEサブコマンドが呼び出され、次のメッセージがWALファイル圧縮が行われていることを示す表示されます。
-bash-4.2$ bart MANAGE -s acctg
INFO: 4 WAL file(s) compressed
WARNING: 'retention_policy' is not set for server 'acctg'
アーカイブ形式のWALファイルを圧縮形式で次に示します。
-bash-4.2$ pwd
/opt/backup/acctg
-bash-4.2$ ls -l archived_wals
total 160
-rw------- 1 enterprisedb enterprisedb 27089 Dec 26 12:16 00000001000000010000005B.gz
-rw------- 1 enterprisedb enterprisedb 305 Dec 26 12:17 00000001000000010000005C.00000028.backup
-rw------- 1 enterprisedb enterprisedb 27112 Dec 26 12:17 00000001000000010000005C.gz
-rw------- 1 enterprisedb enterprisedb 65995 Dec 26 12:18 00000001000000010000005D.gz
-rw------- 1 enterprisedb enterprisedb 305 Dec 26 12:18 00000001000000010000005E.00000028.backup
-rw------- 1 enterprisedb enterprisedb 27117 Dec 26 12:18 00000001000000010000005E.gz
 
5.4.8 復元
RESTOREサブコマンドは、指定されたディレクトリの場所に指定されたデータベース・サーバーのバックアップとそのアーカイブWALファイルを復元します。適切な場合RESTOREオプションが指定されている、 recovery.confファイルは回復の設定パラメータで生成されます。
bart RESTORE –s server_name -p restore_path
[ –i { backup_id | backup_name } ]
[ -r remote_user @ remote_host_address ]
[ -w number_of_workers ]
[ -t timeline_id ]
[ { -x target_xid | -g target_timestamp } ]
[ -c ]
次の URLにあるPostgreSQLコアドキュメントに記載されている情報を確認してください(特にセクション 25.3.4 「連続アーカイブバックアップを使用した回復」を参照)。
https://www.postgresql.org/docs/11/static/continuous-archiving.html
この参考資料は、基礎となるポイントインタイムリカバリプロセス、および BARTによって recovery.conf ファイルに 生成されるリストアオプションの意味と使用法についての詳細な情報を提供し ます。
注意: リモート・データベース・サーバーに増分バックアップをリストアする際の特別な要件 については、 2.1.5.2 項を参照してください
注:バックアップの復元先となるホストに、バックアップとそのアーカイブWALファイルに十分なディスクスペースがあることを確認してください。 RESTOREサブコマンドには、バックアップファイルを復元する前に十分なディスクスペースがあるかどうかを検出する機能はありません。したがって、使用可能なディスクスペースが十分にないと、ファイルのコピー中にRESTOREサブコマンドがエラーを引き起こす可能性があります。
復元操作を実行する手順は次のとおりです。
手順1:復元操作を実行するPostgresデータベースサーバーを停止します。
ステップ2:データディレクトリのpg_xlogサブディレクトリをpg_xlogて、BARTバックアップカタログ( backup_path / server_name /archived_wals )にまだアーカイブされていないWALファイルを必ず保存してください。
アーカイブされていないファイルがいくつかある場合は、それらを一時的な場所に保存します。 RESTOREサブコマンドを完了した後、データベースサーバを再起動する前に、 pg_xlog これらのファイルを復元した pg_xlogサブディレクトリにコピーする必要があります。
ステップ3:現在のデータディレクトリと新しいディレクトリのどちらに復元するかを決めます。
現在のデータディレクトリに復元している場合は、データディレクトリの下のすべてのファイルとサブディレクトリを削除します。たとえば、Postgresデータベースサーバーの初期インストールの場合、このディレクトリは POSTGRES_INSTALL_HOME /dataです。
新しいディレクトリに復元する場合は、バックアップしたデータベースクラスタを復元するディレクトリを作成します。 BARTユーザーアカウント、 remote_host設定パラメータで指定されたユーザーアカウント 、または使用する場合はRESTOREサブコマンドの--remote-hostオプションでデータディレクトリに書き込みできることを確認してください
ステップ4:ステップ3で説明したのと同じプロセスを表スペースに対して実行します。BART構成ファイルのtablespace_pathパラメーターには、表スペース・データ・ファイルの復元先の表スペース・ディレクトリー・パスを含める必要があります。詳細は項4.2.4を参照してください。
手順5:復元操作を実行するために使用するタイムラインIDを特定します。
利用可能なタイムラインIDは、左から右へ読んでいるWALファイル名の最初のゼロでない数字によって識別することができます。
次の例では、1が利用可能なすべてのWALファイルの唯一のタイムラインIDです。
-bash-4.1$ pwd
/opt/backup/acctg/archived_wals
-bash-4.1$ ls -l
total 49160
-rw------- 1 ... ... 16777216 Mar 29 13:47 000000010000000000000003
-rw------- 1 ... ... 302 Mar 29 13:47 000000010000000000000003.00000028.backup
-rw------- 1 ... ... 16777216 Mar 29 13:48 000000010000000000000004
-rw------- 1 ... ... 302 Mar 29 13:48 000000010000000000000004.00000028.backup
-rw------- 1 ... ... 16777216 Mar 29 14:07 000000010000000000000005
手順6:復元操作に使用するバックアップを特定し、バックアップIDまたはバックアップ名を取得します。最新の(つまり最新の)バックアップを使用したい場合は、 -iオプションを省略することができ、 RESTOREサブコマンドはデフォルトでそのバックアップを使用します。
次の例のように、 バックアップは SHOW-BACKUPSサブコマンドでリストできます
-bash-4.1$ bart SHOW-BACKUPS -s acctg
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
acctg 1490809695281 acctg_2017-03-29T13:48 none 2017-03-29 13:48:17 EDT 6.10 MB 32.00 MB 2 active
ステップ7: BART RESTOREサブコマンドを実行してください。
任意の場合 -t timeline_id-x target_xid 、または-g target_timestampオプションが与えられ、その後、 recovery.confファイルが指定したオプションに対応するリカバリ設定パラメータを用いて生成されます。つまり、データベースサーバーの再起動時にポイントインタイムリカバリが実行されます。
-t timeline_id-x target_xid 、および-g target_timestampオプションを指定しないと、最小限のrecovery.confファイルが生成されます。アーカイブからのファイルの復元は行われず、アーカイブの回復は整合性がとれるまで行われます。
BARTで使用される基本的なコマンドを表示するには、-- --debugオプションを使用してください
注:無効な値がオプションに指定された場合、無効なオプションの組み合わせが指定されている場合(両方の場合など、又は-x target_xid-g target_timestampオプションが与えられている)、エラーメッセージがBARTによって生成されません。無効なオプションは受け入れられ、 recovery.confファイルに渡されます。このファイルは、再起動時にデータベースサーバによって処理されます。
RESTORE サブコマンド を使用するときは、有効なオプションが指定されていることを確認してください
次の例では、 -iオプションを省略して、デフォルトの最新のバックアップを使用しています。
-bash-4.1$ bart --debug RESTORE -s acctg -p /opt/restore
DEBUG: Server: Global, No of Retained Backups 6
DEBUG: Exec Command: set -o pipefail; test -d /opt/restore && echo "exists"
DEBUG: Exec Command: set -o pipefail; touch /opt/restore/tmp-1490809695281 && echo "exists"
DEBUG: Exec Command: set -o pipefail; rm -f /opt/restore/tmp-1490809695281
DEBUG: Exec Command: set -o pipefail; ls -A /opt/restore
INFO: restoring backup '1490809695281' of server 'acctg'
DEBUG: restoring backup to /opt/restore
DEBUG: restore command: cat /opt/backup/acctg/1490809695281/base.tar.gz | tar -C /opt/restore -xzf -
DEBUG: Exec Command: set -o pipefail; cat /opt/backup/acctg/1490809695281/base.tar.gz | tar -C /opt/restore -xzf -
INFO: base backup restored
DEBUG: Exec Command: set -o pipefail; echo "
archive_mode = off" | cat >> /opt/restore/postgresql.conf
INFO: archiving is disabled
DEBUG: Exec Command: set -o pipefail; chmod 0700 /opt/restore
INFO: permissions set on $PGDATA
INFO: restore completed successfully
注意: -cオプションが指定されている場合、またはcopy_wals_during_restore BART構成パラメータのenabled設定がこのデータベースサーバに対して有効である場合は、次の処理が行われます。
データベースクラスタを -p restore_pathオプションで指定されたディレクトリに復元するほかに 、バックアップのアーカイブされたWALファイルがBARTバックアップカタログからサブディレクトリrestore_path /archived_walsコピー/archived_walsます。
場合は recovery.confファイルが生成され、に設定されたコマンド文字列restore_commandパラメータは、このからWALファイルを取得しarchived_walsにサブディレクトリの相対をrestore_pathよう親ディレクトリ: restore_command = 'cp archived_wals/%f %p'
手順8:手順2で保存したWALファイルをrestore_path /pg_xlogサブディレクトリにコピーします。
手順9:復元されたデータベースクラスタの復元されたディレクトリとデータファイルをディレクトリrestore_pathます。
すべてのファイルとディレクトリは、データベースサーバの起動に使用する予定のユーザアカウントが所有している必要があります。このユーザーアカウントは通常Postgresのユーザーアカウント( enterprisedbまたはpostgres )ですが、他のユーザーアカウントでもかまいません。必要に応じて、 restore_pathディレクトリー、そのファイル、およびそのサブディレクトリーのユーザーとグループの所有権を再帰的に変更します。
データベースサーバを起動するユーザアカウントには、ディレクトリアクセス権限だけが必要です。他のグループやユーザーがディレクトリにアクセスすることはできません。
ステップ10: Point-in-Timeリカバリを実行している場合は、 restore_pathディレクトリにあるrecovery.confファイルを調べて、指示された時点にリカバリするための適切なパラメータ設定が含まれていることを確認します。それ以外の場合、 recovery.confファイルは、クラスタが整合性を保つまでのみリカバリするように設定する必要があります。どちらの場合でも、設定は必要に応じて変更できます。
ステップ11:この時点ではWALアーカイブは無効になっています。
BART RESTOREサブコマンドは、 postgresql.confファイルの最後にarchive_mode = offパラメータを追加します。
このパラメータが追加されたファイルの終わりを次に示します。
# Add settings for extensions here
archive_mode = off
WALアーカイブを有効にしてデータベースサーバを再起動する場合は、必ずこの追加パラメータを削除してください。
元の archive_modeパラメータは、 postgresql.confファイルの初期設定の最後の場所にあります。
手順12:データベースサーバを起動してリカバリを開始します。完了したら、データベースサーバのログファイルを調べて、リカバリが成功したことを確認します。
注:バックアップを元のデータベースクラスタが存在していた場所とは異なるデータベースクラスタディレクトリに復元する場合、バックアップがある新しいディレクトリの場所を反映するようにサポートサービススクリプトを更新しないと、データベースクラスタの場所に依存する特定の操作が失敗する可能性があります。復元されました。
サービススクリプトの使用方法と変更方法については、次の Webサイトで入手可能な『EDB Postgres Advanced Serverインストールガイド』を 参照してください
https://www.enterprisedb.com/resources/product-documentation
次の表はRHEL 6 / CentOS 6用のサービススクリプトの一覧です。
表5–2 RHEL 6 / CentOS 6のデータベースクラスタの場所を含むスクリプト
 
 
注: RHEL 7 / CentOS 7でAdvanced Server 9.6のサービスユニットファイルを変更する前に、 『 EDB Postgres Advanced Server 9.6インストールガイド 』の「 3.5.2 CentOSまたはRedHat 7.xでのデータディレクトリの場所の変更」の手順を参照してください。 。 RHEL 7 / CentOS 7のAdvanced Server 10については、 『 EDB Postgres Advanced Server 10インストールガイド』のセクション3.3.3の同じトピックを参照してください。
次の表に、RHEL 7 / CentOS 7のサービスユニットファイルとスクリプトを示します。
表5–3 RHEL 7 / CentOS 7のデータベースクラスタの場所を含むユニットファイルおよびスクリプト
オプション
-s 、-- --server server_name
server_nameは、復元するデータベースサーバの名前です。
-p 、 - --restore-path restore_path
restore_pathは、データベースサーバーのバックアップを復元するディレクトリパスです。ディレクトリは空で、適切な所有権と特権が割り当てられている必要があります。
-i 、 - --backupid { backup_id | backup_name }
backup_idは、復元に使用されるバックアップの整数のバックアップIDです。 backup_nameは、バックアップ用のユーザー定義の英数字名です。このオプションを省略すると、デフォルトで最新の(つまり最新の)バックアップが使用されます。
-r--remote-host remote_user --remote-host remote_user @ remote_host_address --remote-host remote_user remote_host_address
remote_userは、パスワードなしのSSH / SCPログイン接続を受け入れるリモートデータベースサーバーホストのユーザーアカウントで、バックアップを復元するディレクトリの所有者です。 remote_host_addressは、バックアップの復元先となるリモートホストのIPアドレスです。このデータベースサーバのremote_hostパラメータがBART設定ファイルに設定されていない場合は、このオプションを指定する必要があります。 注: BARTユーザー・アカウントが、 -pオプションで指定されたrestore_pathディレクトリーを所有するオペレーティング・システム・アカウントと同じでない場合は、 remote_host BART構成パラメーターまたはRESTOREサブコマンドの-rオプションを使用してrestore_pathディレクトリー所有者を指定する必要があります。 BARTホストと同じホスト上のディレクトリに復元するとき。 remote_hostパラメータについては、 4.2.5項を参照してください。
-w, --workers number_of_workers
number_of_workersは、増分バックアップの変更ブロックを復元場所にストリーミングするために並行して実行するワーカープロセスの数の指定です。たとえば、4つのワーカープロセスが指定されている場合、復元ホスト上の4つの受信側プロセスとBARTホスト上の4つのストリーマプロセスが使用されます。各ストリーマプロセスの出力は受信機プロセスの入力に接続されている。受信機はそれが修正されたブロックファイルを必要とするポイントに到達すると、それはそれらの修正されたブロックをその入力から取得する。この方法では、変更されたブロックファイルはリストアホストディスクに書き込まれません。 -wオプションを省略した場合、デフォルトは1ワーカープロセスです。
-t--target-tli timeline_id
timeline_idは、ポイントインタイムリカバリのためにアーカイブされたWALファイルを再生するために使用されるタイムラインの整数の識別子です。
-x--target-xid target_xid --target-xid target_xid
target_xidは、時点までのトランザクションを決定するトランザクションIDの整数IDです。ポイントインタイムリカバリが必要な場合は、 -x target_xidまたは-g target_timestampオプションのtarget_xidか一方のみを含める必要があります。
-g--target-timestamp target_timestamp --target-timestamp target_timestamp
target_timestampは、ポイントインタイムtarget_timestamptarget_timestampとする時点までの時点を決定するタイムスタンプです。ポイントインタイムリカバリが必要な場合は、 -x target_xidまたは-g target_timestampオプションのtarget_xidか一方のみを含める必要があります。
-c 、 - --copy-wals
指定した場合、アーカイブされたWALファイルはBARTバックアップカタログからディレクトリ restore_path /archived_wals コピー /archived_walsます。 BARTがポイントインタイムリカバリ用のrecovery.confファイルを生成した場合、 restore_commandはデータベースサーバのアーカイブリカバリのためにrestore_path /archived_walsからWALファイルを取得します。 -cオプションが省略され、BART構成ファイルのcopy_wals_during_restoreパラメーターがこのデータベースサーバーに適した方法で有効になっていない場合、デフォルトのアクションは、 recovery.confファイルのrestore_commandがアーカイブWALファイルを直接取得するために生成されます。 BARTバックアップカタログから。 copy_wals_during_restoreパラメーターについては、セクション4.1および4.2.5を参照してください。
次の例では 、タイムスタンプ2015-12-15 10:47:00までにデータベースサーバ mktg/opt/restoreディレクトリに/opt/restore
-bash-4.1$ bart RESTORE -s mktg -i 1450194208824 -p /opt/restore -t 1 -g '2015-12-15 10:47:00'
INFO: restoring backup '1450194208824' of server 'mktg'
INFO: restoring backup to enterprisedb@192.168.2.24:/opt/restore
INFO: base backup restored
INFO: WAL file(s) will be streamed from the BART host
INFO: creating recovery.conf file
INFO: archiving is disabled
INFO: tablespace(s) restored
生成された recovery.confファイルの内容は次のとおりです。
restore_command = 'scp -o BatchMode=yes -o PasswordAuthentication=no enterprisedb@192.168.2.22:/opt/backup/mktg/archived_wals/%f %p'
recovery_target_time = '2015-12-15 10:47:00'
recovery_target_timeline = 1
以下は復元されたファイルとサブディレクトリを表示します。
[root@localhost restore]# pwd
/opt/restore
[root@localhost restore]# ls -l
total 108
-rw------- 1 enterprisedb enterprisedb 208 Dec 15 10:43 backup_label
drwx------ 6 enterprisedb enterprisedb 4096 Dec 2 10:38 base
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 10:42 dbms_pipe
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 11:00 global
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_clog
-rw------- 1 enterprisedb enterprisedb 4438 Dec 2 10:38 pg_hba.conf
-rw------- 1 enterprisedb enterprisedb 1636 Nov 10 15:38 pg_ident.conf
drwxr-xr-x 2 enterprisedb enterprisedb 4096 Dec 15 10:42 pg_log
drwx------ 4 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_multixact
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 10:42 pg_notify
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_serial
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_snapshots
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 10:42 pg_stat
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 10:43 pg_stat_tmp
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_subtrans
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 11:00 pg_tblspc
drwx------ 2 enterprisedb enterprisedb 4096 Nov 10 15:38 pg_twophase
-rw------- 1 enterprisedb enterprisedb 4 Nov 10 15:38 PG_VERSION
drwx------ 2 enterprisedb enterprisedb 4096 Dec 15 11:00 pg_xlog
-rw------- 1 enterprisedb enterprisedb 23906 Dec 15 11:00 postgresql.conf
-rw-r--r-- 1 enterprisedb enterprisedb 217 Dec 15 11:00 recovery.conf
次の例では、 copy_wals_during_restoreパラメータを有効にし RESTORE操作を実行し 、アーカイブされたWALファイルをローカルのrestore_path /archived_walsディレクトリにコピーします。
-bash-4.1$ bart RESTORE -s hr -i hr_2017-03-29T13:50 -p /opt/restore_pg95 -t 1 -g '2017-03-29 14:01:00'
INFO: restoring backup 'hr_2017-03-29T13:50' of server 'hr'
INFO: base backup restored
INFO: copying WAL file(s) to postgres@192.168.2.24:/opt/restore_pg95/archived_wals
INFO: creating recovery.conf file
INFO: archiving is disabled
INFO: permissions set on $PGDATA
INFO: restore completed successfully
生成された recovery.confファイルの内容は次のとおりです。
restore_command = 'cp archived_wals/%f %p'
recovery_target_time = '2017-03-29 14:01:00'
recovery_target_timeline = 1
以下は復元されたファイルとサブディレクトリを表示します。
-bash-4.1$ pwd
/opt/restore_pg95
-bash-4.1$ ls -l
total 128
drwxr-xr-x 2 postgres postgres 4096 Mar 29 14:27 archived_wals
-rw------- 1 postgres postgres 206 Mar 29 13:50 backup_label
drwx------ 5 postgres postgres 4096 Mar 29 12:25 base
drwx------ 2 postgres postgres 4096 Mar 29 14:27 global
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_clog
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_commit_ts
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_dynshmem
-rw------- 1 postgres postgres 4212 Mar 29 13:18 pg_hba.conf
-rw------- 1 postgres postgres 1636 Mar 29 12:25 pg_ident.conf
drwxr-xr-x 2 postgres postgres 4096 Mar 29 13:45 pg_log
drwx------ 4 postgres postgres 4096 Mar 29 12:25 pg_logical
drwx------ 4 postgres postgres 4096 Mar 29 12:25 pg_multixact
drwx------ 2 postgres postgres 4096 Mar 29 13:43 pg_notify
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_replslot
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_serial
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_snapshots
drwx------ 2 postgres postgres 4096 Mar 29 13:43 pg_stat
drwx------ 2 postgres postgres 4096 Mar 29 13:50 pg_stat_tmp
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_subtrans
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_tblspc
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_twophase
-rw------- 1 postgres postgres 4 Mar 29 12:25 PG_VERSION
drwx------ 3 postgres postgres 4096 Mar 29 14:27 pg_xlog
-rw------- 1 postgres postgres 169 Mar 29 13:24 postgresql.auto.conf
-rw-r--r-- 1 postgres postgres 21458 Mar 29 14:27 postgresql.conf
-rw-r--r-- 1 postgres postgres 118 Mar 29 14:27 recovery.conf
 
5.4.9 削除
DELETEサブコマンドは、そのアーカイブWALファイルと一緒に指定したバックアップのBARTのバックアップカタログからサブディレクトリとデータファイルを削除します。
bart DELETE –s server_name
-i { all |
[']{ backup_id | backup_name },... }[']
}
[ -n ]
特定のデータベースサーバーを指定する必要があります。
注: BART BACKUPサブコマンドの進行中はDELETEサブコマンドを呼び出さないでください。バックアップ処理によって影響を受けるバックアップはスキップされ、 DELETEサブコマンドによって無視されます。
保存方針のデータベースサーバーでは、特定のバックアップが削除されない場合があります。許可されているバックアップの削除については、 5.2.4.1 項を参照してください
オプション
-s 、-- --server server_name
server_nameは、バックアップを削除するデータベースサーバの名前です。
-i 、 - --backupid { all | [']{ backup_id | backup_name },... }['] }
backup_idは、削除するバックアップの整数のバックアップIDです。 backup_nameは、バックアップ用のユーザー定義の英数字名です。複数のバックアップ識別子とバックアップ名をカンマ区切りリストで指定できます。各コンマの前後に空白がある場合は、リストを一重引用符で囲む必要があります。 allを指定した場合は、指定したデータベースサーバーのすべてのバックアップとそれらのアーカイブWALファイルが削除されます。
-n 、 - --dry-run
削除が行われたかのように結果を表示しますが、実際にはファイルの物理的な削除は行われません。つまり、実際にアクションを開始する前に潜在的な結果を確認できるように、テスト実行が実行されます。
次の例では、指定したデータベースサーバーからバックアップを削除します。
$ bart DELETE -s acctg -i acctg_2015-04-15T16:00:24
INFO: deleting backup 'acctg_2015-04-15T16:00:24' of server 'acctg'
INFO: deleting backup '1429128024311'
INFO: 4 WAL file(s) will be removed
INFO: 1 Unused WAL file(s) will be removed
INFO: deleting WAL file '00000001000000010000004E'
INFO: deleting WAL file '00000001000000010000004D'
INFO: deleting WAL file '00000001000000010000004B'
INFO: deleting WAL file '00000001000000010000004A'
INFO: deleting (unused) WAL file '000000010000000100000042.00000028'
INFO: backup(s) deleted
削除後、データベースサーバのBARTバックアップカタログには、削除されたバックアップIDに対応するディレクトリが含まれなくなりました。 archived_walsサブディレクトリには、もはやバックアップのWALファイルが含まれていません。
$ pwd
/opt/backup/acctg
$ ls -l
total 8
drwx------ 2 enterprisedb enterprisedb 4096 Apr 20 10:09 1429219568720
drwx------ 2 enterprisedb enterprisedb 4096 Apr 20 10:21 archived_wals
$ ls -l archived_wals
total 49164
-rw------- 1 enterprisedb enterprisedb 305 Apr 15 16:00 00000001000000010000004A.00000028.backup
-rw------- 1 enterprisedb enterprisedb 16777216 Apr 16 17:26 00000001000000010000004F
-rw------- 1 enterprisedb enterprisedb 305 Apr 16 17:26 00000001000000010000004F.00000028.backup
-rw------- 1 enterprisedb enterprisedb 16777216 Apr 17 15:09 000000010000000100000050
-rw------- 1 enterprisedb enterprisedb 16777216 Apr 17 15:14 000000010000000100000051
-rw------- 1 enterprisedb enterprisedb 305 Apr 17 15:14 000000010000000100000052.00000028.backup
次の例では、データベースサーバから複数のバックアップを削除します。
$ bart DELETE -s acctg -i 1428355371389,1428422324880,acctg_2015-04-17T15:14:33
INFO: deleting backup '1428355371389' of server 'acctg'
INFO: deleting backup '1428355371389'
INFO: 1 WAL file(s) will be removed
INFO: deleting WAL file '0000000100000000000000AA'
INFO: backup(s) deleted
INFO: deleting backup '1428422324880' of server 'acctg'
INFO: deleting backup '1428422324880'
INFO: 2 WAL file(s) will be removed
INFO: 1 Unused WAL file(s) will be removed
INFO: deleting WAL file '0000000100000000000000E1'
INFO: deleting WAL file '0000000100000000000000E0'
INFO: deleting (unused) WAL file '0000000100000000000000AA.00000028'
INFO: backup(s) deleted
INFO: deleting backup 'acctg_2015-04-17T15:14:33' of server 'acctg'
INFO: deleting backup '1429298073247'
INFO: 1 WAL file(s) will be removed
INFO: deleting WAL file '000000010000000100000052'
INFO: backup(s) deleted
次の例でも複数のバックアップが削除されますが、カンマ区切りリストにはスペース文字が含まれるため、リスト全体を一重引用符で囲む必要があります。
$ bart DELETE -s acctg -i '1428502049836, 1428589759899, 1428684537299'
INFO: deleting backup '1428502049836' of server 'acctg'
INFO: deleting backup '1428502049836'
INFO: 6 WAL file(s) will be removed
INFO: deleting WAL file '000000010000000100000003'
INFO: deleting WAL file '000000010000000100000002'
INFO: deleting WAL file '000000010000000100000001'
INFO: deleting WAL file '000000010000000100000000'
INFO: deleting WAL file '0000000100000000000000E3'
INFO: deleting WAL file '0000000100000000000000E2'
INFO: backup(s) deleted
INFO: deleting backup '1428589759899' of server 'acctg'
INFO: deleting backup '1428589759899'
INFO: 6 WAL file(s) will be removed
INFO: 1 Unused WAL file(s) will be removed
INFO: deleting WAL file '000000010000000100000009'
INFO: deleting WAL file '000000010000000100000008'
INFO: deleting WAL file '000000010000000100000007'
INFO: deleting WAL file '000000010000000100000006'
INFO: deleting WAL file '000000010000000100000005'
INFO: deleting WAL file '000000010000000100000004'
INFO: deleting (unused) WAL file '0000000100000000000000E2.00000028'
INFO: backup(s) deleted
INFO: deleting backup '1428684537299' of server 'acctg'
INFO: deleting backup '1428684537299'
INFO: 17 WAL file(s) will be removed
INFO: 2 Unused WAL file(s) will be removed
INFO: deleting WAL file '000000010000000100000024'
INFO: deleting WAL file '000000010000000100000023'
INFO: deleting WAL file '000000010000000100000022'
INFO: deleting WAL file '000000010000000100000021'
INFO: deleting WAL file '000000010000000100000020'
INFO: deleting WAL file '00000001000000010000001F'
INFO: deleting WAL file '00000001000000010000001E'
INFO: deleting WAL file '00000001000000010000001D'
INFO: deleting WAL file '00000001000000010000001C'
INFO: deleting WAL file '00000001000000010000001B'
INFO: deleting WAL file '00000001000000010000001A'
INFO: deleting WAL file '000000010000000100000019'
INFO: deleting WAL file '000000010000000100000018'
INFO: deleting WAL file '000000010000000100000017'
INFO: deleting WAL file '000000010000000100000016'
INFO: deleting WAL file '000000010000000100000015'
INFO: deleting WAL file '000000010000000100000014'
INFO: deleting (unused) WAL file '000000010000000100000004.00000028'
INFO: deleting (unused) WAL file '00000001000000010000000A.00000028'
INFO: backup(s) deleted
 
5.5 BART WALスキャナーを実行する
BART WALスキャナーはBART_HOME /binディレクトリーにあるbart-scannerプログラムを呼び出すことによって使用されます。
bart-scanner
[ -d ]
[ -c config_file_path ]
{ –h |
-v |
--daemon |
-p mbm_file |
wal_file |
RELOAD |
STOP }
わかりやすくするために、多文字形式もサポートされている場合、構文図には1文字形式のオプションのみが示されています。 オプションのサブセクションのリストの両方のオプションの単一文字と複数文字の形。
WALスキャナは各WALファイルを処理して、対応する修正ブロックマップ(MBM)ファイル内の修正ブロックを見つけて記録する。
デフォルトの方法では、新しいWALファイルが BARTバックアップカタログのarchived_walsディレクトリに到着するたびにWALスキャナに通知されます 。その後、WALファイルをスキャンしてMBMファイルを作成します。このアプローチは、WALファイルがrsyncユーティリティを使用してBARTバックアップカタログに出荷されている場合や、特定のプラットフォームの場合など、場合によっては機能しません。
その結果、WALファイルは archived_walsディレクトリにコピーされますが、WALスキャナはそれを認識していないため、それらをスキャンしてMBMファイルを生成することはありません。これにより、増分バックアップが失敗します。
これは 、BART設定ファイルのscan_intervalパラメータを使用して行われるタイマーベースのWALスキャン方法を使用することで回避できます(セクション4.1および4.2.5を参照)。 scan_intervalの値は、WALスキャナが新しいWALファイルを検索してスキャンするまでの秒数です。
WALスキャンの詳細については、 4.2.3 項を参照してください
場合 bart-scannerプログラムが起動され、それが有効で各データベース・サーバ用に別のプロセスをフォークallow_incremental_backupsパラメーター。 allow_incremental_backupsパラメータについては、セクション4.2.5を参照してください。
WALスキャナープロセスは、 - --daemonオプションの使用方法に応じて、フォアグラウンドまたはバックグラウンドで実行できます。
場合は --daemonオプションが省略され、その後、WALスキャナプロセスがフォアグラウンドで実行されます。すべての出力メッセージは、プログラムを実行している端末およびBARTログファイルで見ることができます。 BART設定ファイルのlogfileパラメータについては、 4.1項を参照してください。
場合は --daemonオプションが指定され、その後、WALスキャナプロセスはバックグラウンドで実行されます。すべての出力メッセージはBARTログファイルで見ることができます。
WALスキャナーを起動するとき、現在のユーザーはセクション 4.1の ステップ2で説明されているようにBARTユーザーアカウントでなければなりません
場合 BART_HOME /binディレクトリには、BARTのユーザーアカウントの中に含まれていないPATH環境変数、そしてBART_HOME /bin WALスキャナを呼び出すときに現在の作業ディレクトリでなければなりません。一般的な呼び出し構文は次のようになります。
cd BART_HOME /bin
./bart-scanner option
注: WALスキャナープログラムの呼び出しに失敗した場合は、 BARTユーザーアカウントの LD_LIBRARY_PATH環境変数をlibpqライブラリを含むディレクトリを含めるように設定する必要があります。 LD_LIBRARY_PATH設定については、 5.3項を参照してください。
オプション
-h 、 - --help
WALスキャナーの使用法に関する一般的な構文と情報を表示します。
-v 、 - --version
WALスキャナーのバージョン情報を表示します。
-d 、-- --debug
WALスキャナーの実行中にデバッグオプションを表示します。
-c 、 - --config-path config_file_path
BART設定ファイルへのフルディレクトリパスとして config_file_path 指定し ます。デフォルトのBART構成ファイル BART_HOME /etc/bart.cfg を使用したくない場合は、このオプションを使用して /etc/bart.cfg
--daemon
バックグラウンドプロセスとしてWALスキャナーを実行します。
-p 、 - --print mbm_file
内容を印刷するMBMファイルへのフルディレクトリパス。アーカイブパスディレクトリ backup_path / server_name /archived_wals は、MBMファイルが含まれています。 注: このオプションは、発生した可能性がある問題をデバッグするためにEnterpriseDBサポートチームを支援するために使用されます。
wal_file
スキャンするWALファイルへのフルディレクトリパス。アーカイブパスディレクトリ backup_path / server_name /archived_wals は、WALファイルが含まれています。アーカイブパス内のWALファイルにそのMBMファイルがない場合に使用します。
RELOAD
BART設定ファイルを再読み込みしてください。キーワードRELOADは大文字と小文字を区別しません。 このオプションはWALスキャナーの起動後に設定ファイルを変更する場合に役立ちます。それは設定ファイルをリロードし、それに応じてWALスキャナを調整します。たとえば、増分バックアップを許可するサーバーセクションがBART設定ファイルから削除されると、そのサーバーに関連付けられているプロセスは停止します。同様に、増分バックアップを許可するサーバーが追加された場合、そのサーバーのWALファイルをスキャンするために新しいWALスキャナープロセスが起動されます。
STOP
WALスキャナーを停止します。キーワード STOP は大文字と小文字を区別しません。
次の例は、対話形式で実行するためのWALスキャナの起動を示しています。 WALスキャナは、まだスキャンされていないアーカイブパス内の既存のWALファイルのスキャンを開始します(つまり、WALファイルに対応するMBMファイルはありません)。
-bash-4.2$ bart-scanner
INFO: process created for server 'acctg', pid = 5287
INFO: going to parse backlog of WALs, if any.
INFO: WAL file to be processed: 0000000100000000000000ED
INFO: WAL file to be processed: 0000000100000000000000EE
INFO: WAL file to be processed: 0000000100000000000000EF
INFO: WAL file to be processed: 0000000100000000000000F0
INFO: WAL file to be processed: 0000000100000000000000F1
以下は、WALファイル用に作成されたMBMファイルを示すアーカイブパスの内容です。 (ファイルのユーザー名とグループ名は、WALファイルとMBMファイルをよりわかりやすい方法でリストするために例から削除されています。)
[root@localhost archived_wals]# pwd
/opt/backup/acctg/archived_wals
[root@localhost archived_wals]# ls -l
total 81944
-rw------- 1 ... ... 16777216 Dec 20 09:10 0000000100000000000000ED
-rw------- 1 ... ... 16777216 Dec 20 09:06 0000000100000000000000EE
-rw------- 1 ... ... 16777216 Dec 20 09:11 0000000100000000000000EF
-rw------- 1 ... ... 16777216 Dec 20 09:15 0000000100000000000000F0
-rw------- 1 ... ... 16777216 Dec 20 09:16 0000000100000000000000F1
-rw------- 1 ... ... 305 Dec 20 09:16 0000000100000000000000F1.00000028.backup
-rw-rw-r-- 1 ... ... 161 Dec 20 09:18 0000000100000000ED00002800000000EE000000.mbm
-rw-rw-r-- 1 ... ... 161 Dec 20 09:18 0000000100000000EE00002800000000EF000000.mbm
-rw-rw-r-- 1 ... ... 161 Dec 20 09:18 0000000100000000EF00002800000000F0000000.mbm
-rw-rw-r-- 1 ... ... 161 Dec 20 09:18 0000000100000000F000002800000000F1000000.mbm
-rw-rw-r-- 1 ... ... 161 Dec 20 09:18 0000000100000000F100002800000000F2000000.mbm
対話的に実行されているWALスキャナを停止するには 、WALスキャナを実行している端末でcntrl-C入力するか 、またはSTOPオプションを指定して別の端末からbart-scannerプログラムを呼び出します。
-bash-4.2$ bart-scanner STOP
-bash-4.2$
対話的にWALスキャナーを実行していた端末は、停止後に次のように表示されます。
-bash-4.2$ bart-scanner
INFO: process created for server 'acctg', pid = 5287
INFO: going to parse backlog of WALs, if any.
INFO: WAL file to be processed: 0000000100000000000000ED
INFO: WAL file to be processed: 0000000100000000000000EE
INFO: WAL file to be processed: 0000000100000000000000EF
INFO: WAL file to be processed: 0000000100000000000000F0
INFO: WAL file to be processed: 0000000100000000000000F1
INFO: bart-scanner stopped
-bash-4.2$
次の例は、 - --daemonオプションを指定して、WALスキャナーを起動してバックグラウンドプロセスとして実行する方法を --daemonます。
-bash-4.2$ bart-scanner --daemon
-bash-4.2$
WALスキャナーはバックグラウンドプロセスとして実行されます。 BART設定ファイルのallow_incremental_backupsパラメータでWALスキャンが有効になっているデータベースサーバーごとに個別のバックグラウンドプロセスもあります。
-bash-4.2$ ps -ef | grep bart
enterpr+ 4340 1 0 09:48 ? 00:00:00 bart-scanner --daemon
enterpr+ 4341 4340 0 09:48 ? 00:00:00 bart-scanner --daemon
enterpr+ 4415 3673 0 09:50 pts/0 00:00:00 grep --color=auto bart
WALスキャナープロセスを停止するには、 stopオプションを付けてWALスキャナーを起動します。
-bash-4.2$ bart-scanner STOP
-bash-4.2$
WALファイルを個別にスキャンする必要がある場合は、次のようにします。
-bash-4.2$ bart-scanner /opt/backup/acctg/archived_wals/0000000100000000000000FF
-bash-4.2$
EnterpriseDBサポートチームが発生した問題のデバッグを支援するために MBMファイルの内容を印刷する必要が ある場合は 、次の例のように -p オプションを 使用し てファイルを指定します。
-bash-4.2$ bart-scanner -p /opt/backup/acctg/archived_wals/0000000100000000FF0000280000000100000000.mbm
 
Header:
Version: 1.0:90500:1.2.0
Scan Start: 2016-12-20 10:02:11 EST, Scan End: 2016-12-20 10:02:11 EST, Diff: 0 sec(s)
Start LSN: ff000028, End LSN: 100000000, TLI: 1
flags: 0, Check Sum: f9cfe66ae2569894d6746b61503a767d
 
 
Path: base/14845/16384
NodeTag: BLOCK_CHANGE
Relation: relPath base/14845/16384, isTSNode 0, Blocks
*...................................................................................................
First modified block: 0
Total modified blocks: 1
 
Path: base/14845/16391
NodeTag: BLOCK_CHANGE
Relation: relPath base/14845/16391, isTSNode 0, Blocks
*...................................................................................................
First modified block: 0
Total modified blocks: 1
6 ローカルおよびリモートデータベースサーバを使用したサンプルBARTシステム
このセクションでは、ローカルデータベースサーバーとリモートデータベースサーバーの両方で構成されるサンプルBART管理バックアップおよびリカバリシステムについて説明します。システムを設定および操作するための完全な手順が示されています。
設定手順の説明については、セクション 4を 参照してください 。操作手順およびBARTサブコマンドについては、セクション5を参照してください。
このサンプルシステムの環境は次のとおりです。
以下の間では、パスワードなしのSSH / SCP接続が必要です。
次のセクションでは、フルバックアップのみをとるためのこのシステムの設定手順と操作を示します。 (増分バックアップもサポートするには 、目的のデータベースサーバーに対してallow_incremental_backupsパラメーターを有効にして 、WALスキャナープログラムを使用してください。)
 
6.1 BART設定ファイル
次のコードスニペットは、以下の例でBART設定ファイルで使用されている設定を示しています。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
retention_policy = 6 BACKUPS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
cluster_owner = enterprisedb
backup_name = acctg_%year-%month-%dayT%hour:%minute
archive_command = 'cp %p %a/%f'
description = "Accounting"
 
[MKTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
backup_name = mktg_%year-%month-%dayT%hour:%minute
remote_host = enterprisedb@192.168.2.24
description = "Marketing"
 
[HR]
host = 192.168.2.24
port = 5432
user = postgres
cluster_owner = postgres
backup_name = hr_%year-%month-%dayT%hour:%minute
remote_host = postgres@192.168.2.24
copy_wals_during_restore = enabled
description = "Human Resources"
 
6.2 SSH / SCPパスワードレス接続
このセクションでは、認証された公開鍵ファイルを使用してパスワードなしのSSH / SCP接続がどのように確立されたかを示します。
6.2.1 BARTユーザアカウント用の公開鍵ファイルの生成
BARTのユーザーアカウントがある enterprisedbのホームディレクトリと/opt/PostgresPlus/9.5AS
公開鍵ファイルの生成は以下の通りです。まず、 BARTユーザのホームディレクトリに.sshサブディレクトリを作成し .ssh
[root@localhost 9.5AS]# pwd
/opt/PostgresPlus/9.5AS
[root@localhost 9.5AS]# mkdir .ssh
[root@localhost 9.5AS]# chown enterprisedb .ssh
[root@localhost 9.5AS]# chgrp enterprisedb .ssh
[root@localhost 9.5AS]# chmod 700 .ssh
[root@localhost 9.5AS]# ls -la | grep ssh
drwx------ 2 enterprisedb enterprisedb 4096 Apr 23 13:02 .ssh
.sshディレクトリにアクセスできるグループまたは他のユーザーがいないことを確認してください
公開鍵ファイルを生成します。
[user@localhost ~]$ su - enterprisedb
Password:
-bash-4.1$ pwd
/opt/PostgresPlus/9.5AS
-bash-4.1$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/opt/PostgresPlus/9.5AS/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /opt/PostgresPlus/9.5AS/.ssh/id_rsa.
Your public key has been saved in /opt/PostgresPlus/9.5AS/.ssh/id_rsa.pub.
The key fingerprint is:
de:65:34:d6:b1:d2:32:3c:b0:43:c6:a3:c0:9f:f4:64 enterprisedb@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| . .+ . |
| o .oE+ o o |
| + *o.X + |
| + .+ * |
| S o |
| . . o |
| . . |
| |
| |
+-----------------+
以下は、結果のファイルです。 id_rsa.pubは、BARTユーザーアカウントenterprisedbの公開鍵ファイルです。
-bash-4.1$ ls -l .ssh
total 8
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:04 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:04 id_rsa.pub
 
6.2.2 ローカルAdvanced ServerとBARTホスト間のアクセス設定
Advanced ServerデータベースがBARTユーザーアカウントと同じホストにあり、Advanced Serverデータベースクラスタの所有者もBARTユーザーアカウントである場合この場合はenterprisedb )、パスワードなしのSSH / SCP接続を確立する必要があります。自分自身と同じユーザーアカウント。
6.2.1示すように公開鍵ファイルが生成されたばかりのBARTホストで、既存の任意の認証済み鍵ファイルに公開鍵ファイルを追加して、認証済み鍵ファイルを作成します。
BARTユーザアカウントとしてBARTホストにログインし、公開鍵ファイル id_rsa.pubを同じ.sshディレクトリ内のauthorized_keysファイルに追加します
[user@localhost ~]$ su - enterprisedb
Password:
Last login: Thu Mar 23 10:27:35 EDT 2017 on pts/0
-bash-4.2$ pwd
/opt/PostgresPlus/9.5AS
-bash-4.2$ ls -l .ssh
total 12
-rw------- 1 enterprisedb enterprisedb 1675 Mar 23 09:54 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Mar 23 09:54 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 345 Mar 23 10:05 known_hosts
-bash-4.2$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
-bash-4.2$ ls -l .ssh
total 16
-rw-rw-r-- 1 enterprisedb enterprisedb 416 Mar 23 10:33 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Mar 23 09:54 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Mar 23 09:54 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 345 Mar 23 10:05 known_hosts
authorized_keysファイルには、以下で設定されたファイルのパーミッション600を持っている必要がありchmod 600コマンド、そうでない場合は、パスワードレス接続は失敗します。
-bash-4.2$ chmod 600 ~/.ssh/authorized_keys
-bash-4.2$ ls -l .ssh
total 16
-rw------- 1 enterprisedb enterprisedb 416 Mar 23 10:33 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Mar 23 09:54 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Mar 23 09:54 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 345 Mar 23 10:05 known_hosts
パスワードなしの接続をテストします。 sshコマンドを使用して 、パスワードの入力を求められることなく、現在ログインしているのと同じユーザーアカウント( enterprisedb )にアクセスできることを確認します。
-bash-4.2$ ssh enterprisedb@127.0.0.1
Last login: Thu Mar 23 10:27:50 2017
-bash-4.2$ exit
logout
Connection to 127.0.0.1 closed.
6.2.3 リモートAdvanced ServerからBARTホストへのアクセスを設定する
リモートホスト192.168.2.24で 、BARTホスト192.168.2.22上のBARTユーザーアカウントenterprisedbにアクセスするためのリモートデータベースサーバーユーザーアカウント enterprisedb の公開鍵ファイルを作成します
これは、セクション 4.2.1.3で 説明したシナリオ1の場合です。
リモートホスト上にユーザーアカウントenterprisedb .sshディレクトリを作成し .ssh
[root@localhost 9.5AS]# pwd
/opt/PostgresPlus/9.5AS
[root@localhost 9.5AS]# mkdir .ssh
[root@localhost 9.5AS]# chown enterprisedb .ssh
[root@localhost 9.5AS]# chgrp enterprisedb .ssh
[root@localhost 9.5AS]# chmod 700 .ssh
[root@localhost 9.5AS]# ls -la | grep ssh
drwx------ 2 enterprisedb enterprisedb 4096 Apr 23 13:08 .ssh
ユーザーアカウント enterprisedb リモートホストで公開鍵ファイルを生成します
[user@localhost ~]$ su - enterprisedb
Password:
-bash-4.1$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/opt/PostgresPlus/9.5AS/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /opt/PostgresPlus/9.5AS/.ssh/id_rsa.
Your public key has been saved in /opt/PostgresPlus/9.5AS/.ssh/id_rsa.pub.
The key fingerprint is:
15:27:1e:1e:61:4b:48:66:67:0b:b2:be:fc:ea:ea:e6 enterprisedb@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| ..=.@.. |
| =.O O |
| . * |
| . . |
| . S |
| . . |
| o |
| . . |
| +Eoo.. |
+-----------------+
生成された公開鍵ファイル id_rsa.pubを、BARTホスト192.168.2.22上のBARTユーザアカウントenterprisedbコピーします
-bash-4.1$ scp ~/.ssh/id_rsa.pub enterprisedb@192.168.2.22:/tmp/tmp.pub
The authenticity of host '192.168.2.22 (192.168.2.22)' can't be established.
RSA key fingerprint is b8:a9:97:31:79:16:b8:2b:b0:60:5a:91:38:d7:68:22.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.22' (RSA) to the list of known hosts.
enterprisedb@192.168.2.22's password:
id_rsa.pub
BARTユーザーアカウントとしてBARTホストにログインし、一時公開鍵ファイル /tmp/tmp.pubをBARTユーザーアカウントが所有するauthorized_keysファイルに追加します。
-bash-4.1$ ssh enterprisedb@192.168.2.22
enterprisedb@192.168.2.22's password:
Last login: Tue Apr 21 17:03:24 2015 from 192.168.2.22
-bash-4.1$ pwd
/opt/PostgresPlus/9.5AS
-bash-4.1$ cat /tmp/tmp.pub >> ~/.ssh/authorized_keys
-bash-4.1$ ls -l .ssh
total 12
-rw-rw-r-- 1 enterprisedb enterprisedb 416 Apr 23 13:15 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:04 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:04 id_rsa.pub
authorized_keysファイルには、以下で設定されたファイルのパーミッション600を持っている必要がありchmod 600コマンド、そうでない場合は、パスワードレス接続は失敗します。
-bash-4.1$ chmod 600 ~/.ssh/authorized_keys
-bash-4.1$ ls -l .ssh
total 12
-rw------- 1 enterprisedb enterprisedb 416 Apr 23 13:15 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:04 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:04 id_rsa.pub
-bash-4.1$ rm /tmp/tmp.pub
-bash-4.1$ exit
logout
Connection to 192.168.2.22 closed.
パスワードなしの接続をテストします。リモートホストから、パスワードの入力を求められることなくBARTユーザアカウントでBARTホストにログインできることを確認します。
-bash-4.1$ ssh enterprisedb@192.168.2.22
Last login: Thu Apr 23 13:14:48 2015 from 192.168.2.24
-bash-4.1$ exit
logout
Connection to 192.168.2.22 closed.
 
6.2.4 BARTホストからリモートAdvanced Serverへのアクセスを設定する
BARTホスト192.168.2.22で 、リモートホスト192.168.2.24上のリモートデータベースサーバユーザアカウントenterprisedbにアクセスするためのBARTユーザアカウント enterprisedb の公開鍵ファイルをコピーします
これは、セクション 4.2.1.3で 説明したシナリオ2の場合です。
以下に、BARTホストのBARTユーザの .sshディレクトリにある現在のSSH鍵ファイルをリストします。
[user@localhost ~]$ su - enterprisedb
Password:
-bash-4.1$ pwd
/opt/PostgresPlus/9.5AS
-bash-4.1$ ls -l .ssh
total 12
-rw------- 1 enterprisedb enterprisedb 416 Apr 23 13:15 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:04 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:04 id_rsa.pub
BARTホスト上のBARTユーザアカウントenterprisedb の公開鍵ファイル id_rsa.pub6.2.1項で生成され、192.168.2.24のリモートAdvanced Serverホストにコピーされます。
-bash-4.1$ scp ~/.ssh/id_rsa.pub enterprisedb@192.168.2.24:/tmp/tmp.pub
The authenticity of host '192.168.2.24 (192.168.2.24)' can't be established.
RSA key fingerprint is 59:41:fb:0c:ae:64:3d:3f:a2:d9:90:95:cf:2c:99:f2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.24' (RSA) to the list of known hosts.
enterprisedb@192.168.2.24's password:
id_rsa.pub
リモートホスト enterprisedbユーザーアカウントにログインし、公開鍵ファイルをその.sshディレクトリの下にあるリモートenterprisedbユーザーアカウントのauthorized_keysファイルにコピーし.ssh
-bash-4.1$ ssh enterprisedb@192.168.2.24
enterprisedb@192.168.2.24's password:
Last login: Tue Apr 21 09:53:18 2015 from 192.168.2.22
-bash-4.1$ pwd
/opt/PostgresPlus/9.5AS
-bash-4.1$ ls -l .ssh
total 12
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:11 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:11 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 394 Apr 23 13:12 known_hosts
-bash-4.1$ cat /tmp/tmp.pub >> ~/.ssh/authorized_keys
authorized_keys のファイル許可を調整してください
-bash-4.1$ chmod 600 ~/.ssh/authorized_keys
-bash-4.1$ ls -l .ssh
total 16
-rw------- 1 enterprisedb enterprisedb 416 Apr 23 13:26 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:11 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:11 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 394 Apr 23 13:12 known_hosts
-bash-4.1$ rm /tmp/tmp.pub
-bash-4.1$ exit
logout
Connection to 192.168.2.24 closed.
BARTホストにログインしている間に、BARTホストからリモートAdvanced Serverホストへのパスワードなしの接続をテストします。
-bash-4.1$ ssh enterprisedb@192.168.2.24
Last login: Thu Apr 23 13:25:53 2015 from 192.168.2.22
-bash-4.1$ exit
logout
Connection to 192.168.2.24 closed.
 
6.2.5 リモートPostgreSQLからBARTホストへのアクセス設定
リモートホスト192.168.2.24で 、BARTホスト192.168.2.22上のBARTユーザーアカウントenterprisedbにアクセスするためのリモートデータベースサーバーユーザーアカウント postgres の公開鍵ファイルを作成します
これは、セクション 4.2.1.3で 説明したシナリオ1の場合です。
リモートホストにユーザーアカウントpostgres .sshディレクトリを作成し .ssh
[root@localhost 9.5]# cd /opt/PostgreSQL/9.5
[root@localhost 9.5]# mkdir .ssh
[root@localhost 9.5]# chown postgres .ssh
[root@localhost 9.5]# chgrp postgres .ssh
[root@localhost 9.5]# chmod 700 .ssh
[root@localhost 9.5]# ls -la | grep ssh
drwx------ 2 postgres postgres 4096 Apr 23 13:32 .ssh
生成された公開鍵ファイル id_rsa.pub 作成し、BARTホスト192.168.2.22上のBARTユーザアカウントenterprisedbコピーします
[user@localhost ~]$ su - postgres
Password:
-bash-4.1$ pwd
/opt/PostgreSQL/9.5
 
-bash-4.1$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/opt/PostgreSQL/9.5/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /opt/PostgreSQL/9.5/.ssh/id_rsa.
Your public key has been saved in /opt/PostgreSQL/9.5/.ssh/id_rsa.pub.
The key fingerprint is:
1f:f8:76:d6:fc:a5:1a:c5:5a:66:66:01:d0:a0:ca:ba postgres@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| o+. |
| . .. |
| . . |
| . . . . . |
| o S . O |
| . o . @ |
| . + = o .|
| . . o . o.|
| E ... .|
+-----------------+
 
-bash-4.1$ ls -l .ssh
total 8
-rw------- 1 postgres postgres 1671 Apr 23 13:36 id_rsa
-rw-r--r-- 1 postgres postgres 412 Apr 23 13:36 id_rsa.pub
 
-bash-4.1$ scp ~/.ssh/id_rsa.pub enterprisedb@192.168.2.22:/tmp/tmp.pub
The authenticity of host '192.168.2.22 (192.168.2.22)' can't be established.
RSA key fingerprint is b8:a9:97:31:79:16:b8:2b:b0:60:5a:91:38:d7:68:22.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.22' (RSA) to the list of known hosts.
enterprisedb@192.168.2.22's password:
id_rsa.pub
BARTユーザーアカウントとしてBARTホストにログインし、一時公開鍵ファイル /tmp/tmp.pub BARTユーザーアカウントが所有するauthorized_keysファイルに追加します。
-bash-4.1$ ssh enterprisedb@192.168.2.22
enterprisedb@192.168.2.22's password:
Last login: Thu Apr 23 13:19:25 2015 from 192.168.2.24
-bash-4.1$ pwd
/opt/PostgresPlus/9.5AS
-bash-4.1$ cat /tmp/tmp.pub >> ~/.ssh/authorized_keys
-bash-4.1$ ls -l .ssh
total 16
-rw------- 1 enterprisedb enterprisedb 828 Apr 23 13:40 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:04 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:04 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 394 Apr 23 13:24 known_hosts
-bash-4.1$ rm /tmp/tmp.pub
-bash-4.1$ exit
logout
Connection to 192.168.2.22 closed.
authorized_keysファイルが示されているようにファイル許可600を持っていることを確認してください 、そうでなければパスワードなしの接続は失敗します。
パスワードなしの接続をテストします。ユーザアカウント postgres としてログインしている間にリモートホストから、パスワードの入力を求められることなくBARTユーザアカウントでBARTホストにログインできることを確認します。
-bash-4.1$ pwd
/opt/PostgreSQL/9.5
-bash-4.1$ ssh enterprisedb@192.168.2.22
Last login: Thu Apr 23 13:40:10 2015 from 192.168.2.24
-bash-4.1$ exit
logout
Connection to 192.168.2.22 closed.
 
6.2.6 BARTホストからリモートPostgreSQLへのアクセスを設定する
BARTホスト192.168.2.22で 、リモートホスト192.168.2.24上のリモートデータベースサーバのユーザアカウントpostgresにアクセスするためのBARTユーザアカウント enterprisedb の公開鍵ファイルをコピーします
これは、セクション 4.2.1.3で 説明したシナリオ2の場合です。
以下に、BARTホストのBARTユーザの .sshディレクトリにある現在のSSH鍵ファイルをリストします。
[user@localhost ~]$ su - enterprisedb
Password:
-bash-4.1$ ls -l .ssh
total 16
-rw------- 1 enterprisedb enterprisedb 828 Apr 23 13:40 authorized_keys
-rw------- 1 enterprisedb enterprisedb 1675 Apr 23 13:04 id_rsa
-rw-r--r-- 1 enterprisedb enterprisedb 416 Apr 23 13:04 id_rsa.pub
-rw-r--r-- 1 enterprisedb enterprisedb 394 Apr 23 13:24 known_hosts
BARTホスト上のBARTユーザアカウントenterprisedb の公開鍵ファイル id_rsa.pub6.2.1項で生成され、192.168.2.24のリモートPostgreSQLホストにコピーされます。
-bash-4.1$ scp ~/.ssh/id_rsa.pub postgres@192.168.2.24:/tmp/tmp.pub
postgres@192.168.2.24's password:
id_rsa.pub
リモートホスト postgresユーザーアカウントにログインし、公開鍵ファイルを.sshディレクトリの下のpostgresauthorized_keysファイルにコピーし.ssh
-bash-4.1$ ssh postgres@192.168.2.24
postgres@192.168.2.24's password:
Last login: Mon Jan 26 18:08:36 2015 from 192.168.2.19
-bash-4.1$ pwd
/opt/PostgreSQL/9.5
-bash-4.1$ cat /tmp/tmp.pub >> ~/.ssh/authorized_keys
authorized_keys のファイル許可を調整してください
-bash-4.1$ ls -l .ssh
total 16
-rw-rw-r-- 1 postgres postgres 416 Apr 23 13:52 authorized_keys
-rw------- 1 postgres postgres 1671 Apr 23 13:36 id_rsa
-rw-r--r-- 1 postgres postgres 412 Apr 23 13:36 id_rsa.pub
-rw-r--r-- 1 postgres postgres 394 Apr 23 13:36 known_hosts
-bash-4.1$ chmod 600 ~/.ssh/authorized_keys
-bash-4.1$ ls -l .ssh
total 16
-rw------- 1 postgres postgres 416 Apr 23 13:52 authorized_keys
-rw------- 1 postgres postgres 1671 Apr 23 13:36 id_rsa
-rw-r--r-- 1 postgres postgres 412 Apr 23 13:36 id_rsa.pub
-rw-r--r-- 1 postgres postgres 394 Apr 23 13:36 known_hosts
-bash-4.1$ rm /tmp/tmp.pub
-bash-4.1$ exit
logout
Connection to 192.168.2.24 closed.
BARTホストからリモートPostgreSQLホストへのパスワードなしの接続をテストします。
[user@localhost ~]$ su - enterprisedb
Password:
-bash-4.1$ ssh postgres@192.168.2.24
Last login: Thu Apr 23 13:52:25 2015 from 192.168.2.22
-bash-4.1$ exit
logout
Connection to 192.168.2.24 closed.
 
6.3 レプリケーションデータベースユーザ
このセクションでは、レプリケーションデータベースユーザーの確立方法を説明します。
すべてのデータベースサーバーは、レプリケーションデータベースユーザーとしてスーパーユーザーを使用する必要があります。
各データベースサーバの複製データベースユーザは 、次のようにBART設定ファイルのuserパラメータで指定されます。
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb <=== Replication Database User
cluster_owner = enterprisedb
backup_name = acctg_%year-%month-%dayT%hour:%minute
archive_command = 'cp %p %a/%f'
description = "Accounting"
 
[MKTG]
host = 192.168.2.24
port = 5444
user = repuser <=== Replication Database User
cluster_owner = enterprisedb
backup_name = mktg_%year-%month-%dayT%hour:%minute
remote_host = enterprisedb@192.168.2.24
description = "Marketing"
 
[HR]
host = 192.168.2.24
port = 5432
user = postgres <=== Replication Database User
cluster_owner = enterprisedb
backup_name = hr_%year-%month-%dayT%hour:%minute
remote_host = postgres@192.168.2.24
copy_wals_during_restore = enabled
description = "Human Resources"
BARTユーザーアカウントがバックアップを開始したときに各データベースサーバーへのパスワードアクセスを要求されないようにするために、 .pgpassファイルには次のエントリが含まれています。このファイルは、ホームディレクトリ/opt/PostgresPlus/9.5AS/.pgpassあるBARTユーザーアカウントenterprisedb/opt/PostgresPlus/9.5AS/.pgpass
127.0.0.1:5444:*:enterprisedb:password
192.168.2.24:5444:*:repuser:password
192.168.2.24:5432:*:postgres:password
192.168.2.24でMKTG接続している間に、次のCREATE ROLEコマンドを使用してレプリケーションデータベースのスーパーユーザーを作成します。
CREATE ROLE repuser WITH LOGIN SUPERUSER PASSWORD 'password';
ローカルAdvanced Server pg_hba.confファイルACCTGは、次のように設定されています。
# TYPE DATABASE USER ADDRESS METHOD
 
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host template1 enterprisedb 127.0.0.1/32 md5
host edb enterprisedb 127.0.0.1/32 md5
#host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication enterprisedb md5
host replication enterprisedb 127.0.0.1/32 md5
リモートのAdvanced Server MKTG pg_hba.confファイルは、次のように設定されています。
# TYPE DATABASE USER ADDRESS METHOD
 
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host template1 repuser 192.168.2.22/32 md5
host all enterprisedb 127.0.0.1/32 md5
#host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication enterprisedb md5
host replication repuser 192.168.2.22/32 md5
リモートPostgreSQLサーバHR pg_hba.confファイルは次のように設定されています。
# TYPE DATABASE USER ADDRESS METHOD
 
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host template1 postgres 192.168.2.22/32 md5
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres md5
host replication postgres 192.168.2.22/32 md5
 
6.4 WALアーカイブ設定パラメータ
WALアーカイブを有効にするため postgresql.confファイル内のパラメータを以下に示します。
ローカルのAdvanced Server postgresql.confファイルACCTGは、次のように設定されています。
wal_level = archive
archive_mode = on # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
 
max_wal_senders = 3
とき INITサブコマンドが呼び出され、Postgresのarchive_commandで構成パラメータpostgresql.auto.confファイルはBARTに基づいて設定されるarchive_command BART構成ファイル内にパラメータ:
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
retention_policy = 6 BACKUPS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
 
[ACCTG]
host = 127.0.0.1
port = 5444
user = enterprisedb
cluster_owner = enterprisedb
backup_name = acctg_%year-%month-%dayT%hour:%minute
archive_command = 'cp %p %a/%f'
description = "Accounting"
postgresql.auto.conf後にファイルには、次が含まれているINITサブコマンドが呼び出されます。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'cp %p /opt/backup/acctg/archived_wals/%f'
archive_command使用しcp代わりにコマンドscp BARTのバックアップカタログがこのデータベースクラスタおよびバックアップカタログを所有しているBARTユーザーアカウント、ローカルにあるので、 enterprisedb 、Advanced Serverを実行している同じユーザーアカウントです。その結果、アーカイブ操作中にディレクトリのアクセス権が競合することはありません。
リモートのAdvanced Server MKTG postgresql.confファイルは、次のように設定されています。
wal_level = archive
archive_mode = on # allows archiving to be done
# (change requires restart)
archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
 
max_wal_senders = 3
とき INITサブコマンドが呼び出され、Postgresのarchive_commandで構成パラメータpostgresql.auto.confファイルがデフォルトで設定され、BARTのBARTフォーマットはarchive_commandそれが明示的にBARTの設定ファイルでこのデータベース・サーバー用に設定されていないので、パラメータを:
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
retention_policy = 6 BACKUPS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
.
.
.
[MKTG]
host = 192.168.2.24
port = 5444
user = repuser
cluster_owner = enterprisedb
backup_name = mktg_%year-%month-%dayT%hour:%minute
remote_host = enterprisedb@192.168.2.24
description = "Marketing"
デフォルトのBART archive_commandフォーマットは次のとおりです。
archive_command = 'scp %p %h:%a/%f'
INITサブコマンドが呼び出された後 postgresql.auto.confファイルには、以下が含まれます。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'scp %p enterprisedb@192.168.2.22:/opt/backup/hr/archived_wals/%f'
archive_command使用scp BARTのバックアップカタログがこのデータベースクラスタに対してリモートであるため、コマンドを。 BARTユーザーアカウントenterprisedbscpコマンドで指定されます。これは、アーカイブされたWALファイルがコピーされるBARTバックアップカタログを所有するユーザーアカウントだからです。その結果、アーカイブ操作中にディレクトリのアクセス権が競合することはありません。
リモートPostgreSQLサーバーHR postgresql.confファイルは、次のように設定されています。
wal_level = archive
archive_mode = on # allows archiving to be done
# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
 
max_wal_senders = 3
とき INITサブコマンドが呼び出され、Postgresのarchive_commandで構成パラメータpostgresql.auto.confファイルがデフォルトで設定され、BARTのBARTフォーマットはarchive_commandそれが明示的にBARTの設定ファイルでこのデータベース・サーバー用に設定されていないので、パラメータを:
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
retention_policy = 6 BACKUPS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
.
.
.
[HR]
host = 192.168.2.24
port = 5432
user = postgres
cluster_owner = postgres
backup_name = hr_%year-%month-%dayT%hour:%minute
remote_host = postgres@192.168.2.24
copy_wals_during_restore = enabled
description = "Human Resources"
デフォルトのBART archive_commandフォーマットは次のとおりです。
archive_command = 'scp %p %h:%a/%f'
INITサブコマンドが呼び出された後 postgresql.auto.confファイルには、以下が含まれます。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'scp %p enterprisedb@192.168.2.22:/opt/backup/hr/archived_wals/%f'
archive_command使用scp BARTのバックアップカタログがこのデータベースクラスタに対してリモートであるため、コマンドを。 BARTユーザーアカウントenterprisedbscpコマンドで指定されます。これは、アーカイブされたWALファイルがコピーされるBARTバックアップカタログを所有するユーザーアカウントだからです。その結果、アーカイブ操作中にディレクトリのアクセス権が競合することはありません。
6.5 BARTバックアップカタログ(backup_path)
backup_path構成パラメーターで指定されたディレクトリーを作成してください。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup
retention_policy = 6 BACKUPS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
BARTユーザーアカウントが所有していることを確認してください。
[root@localhost opt]# pwd
/opt
[root@localhost opt]# mkdir backup
[root@localhost opt]# chown enterprisedb backup
[root@localhost opt]# chgrp enterprisedb backup
[root@localhost opt]# chmod 700 backup
[root@localhost opt]# ls -l | grep backup
drwx------ 2 enterprisedb enterprisedb 4096 Apr 23 15:36 backup
BART INITサブコマンドを使用してディレクトリ構造を完成させ、Postgresのarchive_command設定パラメータを設定します。
注: BARTサブコマンドを呼び出す前に、BARTユーザアカウントのホームディレクトリの下にプロファイルを設定して、 LD_LIBRARY_PATHおよびPATH環境変数を設定してください。詳しくはセクション4.1のステップ3をご覧ください。
注: archive_modeoff場合、またはPostgresのarchive_commandパラメーターがすでに設定されていてオーバーライドする必要がある場合は、 -oオプションをINITサブコマンドと一緒に指定して、Postgresのarchive_command構成パラメーターを強制的に設定します。
[user@localhost ~]$ su - enterprisedb
Password:
-bash-4.1$ bart INIT -o
INFO: setting archive_command for server 'acctg'
WARNING: archive_command is set. server restart is required
INFO: setting archive_command for server 'hr'
WARNING: archive_command is set. server restart is required
INFO: setting archive_command for server 'mktg'
WARNING: archive_command is set. server restart is required
BART SHOW-SERVERSサブコマンドは次のように表示します。
-bash-4.1$ bart SHOW-SERVERS
SERVER NAME : acctg
BACKUP FRIENDLY NAME: acctg_%year-%month-%dayT%hour:%minute
HOST NAME : 127.0.0.1
USER NAME : enterprisedb
PORT : 5444
REMOTE HOST :
RETENTION POLICY : 6 Backups
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/acctg/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Accounting"
 
SERVER NAME : hr
BACKUP FRIENDLY NAME: hr_%year-%month-%dayT%hour:%minute
HOST NAME : 192.168.2.24
USER NAME : postgres
PORT : 5432
REMOTE HOST : postgres@192.168.2.24
RETENTION POLICY : 6 Backups
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/hr/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Human Resources"
 
SERVER NAME : mktg
BACKUP FRIENDLY NAME: mktg_%year-%month-%dayT%hour:%minute
HOST NAME : 192.168.2.24
USER NAME : repuser
PORT : 5444
REMOTE HOST : enterprisedb@192.168.2.24
RETENTION POLICY : 6 Backups
DISK UTILIZATION : 0.00 bytes
NUMBER OF ARCHIVES : 0
ARCHIVE PATH : /opt/backup/mktg/archived_wals
ARCHIVE COMMAND : (disabled)
XLOG METHOD : fetch
WAL COMPRESSION : disabled
TABLESPACE PATH(s) :
INCREMENTAL BACKUP : DISABLED
DESCRIPTION : "Marketing"
 
-bash-4.1$ cd /opt/backup
-bash-4.1$ pwd
/opt/backup
-bash-4.1$ ls -l
total 12
drwxrwxr-x 3 enterprisedb enterprisedb 4096 Mar 29 13:16 acctg
drwxrwxr-x 3 enterprisedb enterprisedb 4096 Mar 29 13:16 hr
drwxrwxr-x 3 enterprisedb enterprisedb 4096 Mar 29 13:16 mktg
-bash-4.1$ ls -l acctg
total 4
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Mar 29 13:16 archived_wals
-bash-4.1$ ls -l hr
total 4
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Mar 29 13:16 archived_wals
-bash-4.1$ ls -l mktg
total 4
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Mar 29 13:16 archived_wals
注: [ ARCHIVE PATHフィールドには、WALファイルがコピーされる場所へのフルディレクトリパスが表示されます。このディレクトリパスは、 postgresql.confファイルのPostgres archive_commandパラメータまたは各データベースサーバのpostgresql.auto.confファイルに指定されているディレクトリパスと一致する必要があります。
 
6.6 WALアーカイブを使用したデータベースサーバの起動
BARTバックアップカタログのディレクトリ構造が完了したら、各データベースサーバを再起動して、データベースサーバからWALファイルのアーカイブを開始します。
BARTホスト192.168.2.22上で:
[root@localhost data]# service ppas-9.5 restart
リモートホスト192.168.2.24の場合:
[root@localhost data]# service ppas-9.5 restart
 
[root@localhost data]# service postgresql-9.5 restart
可能であれば、BARTバックアップカタログで、WALファイルがアーカイブされていることを確認してください。
データベースサーバーの構成設定でarchive_timeoutパラメータを使用して新しいセグメントファイルに切り替えるようにWALアーカイブを設定する頻度によっては、アーカイブされたWALファイルが頻繁に表示されないことがあります。
データベースサーバのログファイルにアーカイブ関連のエラーがないことを確認します。
 
6.7 フルバックアップをとる
次のコードスニペットは、データベースサーバーの最初のフルバックアップを示しています。
-bash-4.1$ bart BACKUP -s acctg -z
INFO: creating backup for server 'acctg'
INFO: backup identifier: '1490809695281'
60776/60776 kB (100%), 1/1 tablespace
 
INFO: backup completed successfully
INFO: backup checksum: 37f3defb98ca88dcf05079815555dfc2 of base.tar.gz
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1490809695281
BACKUP NAME: acctg_2017-03-29T13:48
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/acctg/1490809695281
BACKUP SIZE: 6.10 MB
BACKUP FORMAT: tar.gz
BACKUP TIMEZONE: US/Eastern
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 1
ChkSum File
37f3defb98ca88dcf05079815555dfc2 base.tar.gz
 
TABLESPACE(s): 0
START WAL LOCATION: 000000010000000000000004
STOP WAL LOCATION: 000000010000000000000004
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2017-03-29 13:48:15 EDT
STOP TIME: 2017-03-29 13:48:17 EDT
TOTAL DURATION: 2 sec(s)
 
 
-bash-4.1$ bart BACKUP -s mktg -z
INFO: creating backup for server 'mktg'
INFO: backup identifier: '1490809751193'
61016/61016 kB (100%), 1/1 tablespace
 
INFO: backup completed successfully
INFO: backup checksum: 8b010e130a105e76d01346bb56dfcf14 of base.tar.gz
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1490809751193
BACKUP NAME: mktg_2017-03-29T13:49
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/mktg/1490809751193
BACKUP SIZE: 6.13 MB
BACKUP FORMAT: tar.gz
BACKUP TIMEZONE: US/Eastern
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 1
ChkSum File
8b010e130a105e76d01346bb56dfcf14 base.tar.gz
 
TABLESPACE(s): 0
START WAL LOCATION: 000000010000000100000085
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2017-03-29 13:49:11 EDT
STOP TIME: 2017-03-29 13:49:14 EDT
TOTAL DURATION: 3 sec(s)
 
 
-bash-4.1$ bart BACKUP -s hr -z
INFO: creating backup for server 'hr'
INFO: backup identifier: '1490809824946'
38991/38991 kB (100%), 1/1 tablespace
 
INFO: backup completed successfully
INFO: backup checksum: 277e8a1a80ba3474f541eb316a417c9a of base.tar.gz
INFO:
BACKUP DETAILS:
BACKUP STATUS: active
BACKUP IDENTIFIER: 1490809824946
BACKUP NAME: hr_2017-03-29T13:50
BACKUP PARENT: none
BACKUP LOCATION: /opt/backup/hr/1490809824946
BACKUP SIZE: 2.59 MB
BACKUP FORMAT: tar.gz
BACKUP TIMEZONE: US/Eastern
XLOG METHOD: fetch
BACKUP CHECKSUM(s): 1
ChkSum File
277e8a1a80ba3474f541eb316a417c9a base.tar.gz
 
TABLESPACE(s): 0
START WAL LOCATION: 000000010000000000000002
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2017-03-29 13:50:25 EDT
STOP TIME: 2017-03-29 13:50:26 EDT
TOTAL DURATION: 1 sec(s)
次のコードスニペットは、各データベースサーバーの各バックアップに対して作成されたバックアップディレクトリを示しています。バックアップIDは、バックアップディレクトリ名として使用されます。
-bash-4.1$ cd /opt/backup
-bash-4.1$ ls -l
total 12
drwxrwxr-x 4 enterprisedb enterprisedb 4096 Mar 29 13:48 acctg
drwxrwxr-x 4 enterprisedb enterprisedb 4096 Mar 29 13:50 hr
drwxrwxr-x 4 enterprisedb enterprisedb 4096 Mar 29 13:49 mktg
-bash-4.1$ ls -l acctg
total 8
drwx------ 2 enterprisedb enterprisedb 4096 Mar 29 13:48 1490809695281
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Mar 29 13:48 archived_wals
-bash-4.1$ ls -l hr
total 8
drwx------ 2 enterprisedb enterprisedb 4096 Mar 29 13:50 1490809824946
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Mar 29 13:50 archived_wals
-bash-4.1$ ls -l mktg
total 8
drwx------ 2 enterprisedb enterprisedb 4096 Mar 29 13:49 1490809751193
drwxrwxr-x 2 enterprisedb enterprisedb 4096 Mar 29 13:49 archived_wals
6.8 ポイントインタイムリカバリ
以下は、リモートPostgreSQLデータベースサーバでのポイントインタイムリカバリ操作を示しています。
次のテーブルは、WALアーカイブが有効になっている間に約2分間隔で作成されました。
postgres=# \dt
List of relations
Schema | Name | Type | Owner
--------+----------------+-------+----------
public | hr_rmt_t1_1356 | table | postgres
public | hr_rmt_t1_1358 | table | postgres
public | hr_rmt_t1_1400 | table | postgres
public | hr_rmt_t1_1402 | table | postgres
public | hr_rmt_t1_1404 | table | postgres
public | hr_rmt_t1_1406 | table | postgres
(6 rows)
テーブル名 hr_rmt_t n _ hhmiでは、 nはアクティブなタイムラインを表します。 hhmiは、テーブルが作成されたおおよその時間です。たとえば、 hr_rmt_t1_1356は、タイムライン#1がアクティブな間、午後1時56分に作成されました。
その後、PostgreSQLデータベースサーバが停止しました。
作成されたがまだアーカイブされていないWALファイルを特定して保存する必要があります。
以下は、BARTバックアップカタログにアーカイブされたWALファイルです。
-bash-4.1$ ls -l hr/archived_wals
total 49156
-rw------- 1 enterprisedb enterprisedb 16777216 Mar 29 13:50 000000010000000000000001
-rw------- 1 enterprisedb enterprisedb 16777216 Mar 29 13:50 000000010000000000000002
-rw------- 1 enterprisedb enterprisedb 302 Mar 29 13:50 000000010000000000000002.00000028.backup
-rw------- 1 enterprisedb enterprisedb 16777216 Mar 29 14:07 000000010000000000000003
以下は現在のPostgreSQLサーバのWALファイルのリストです。アーカイブされていないものは太字で表示されます。
-bash-4.1$ cd /opt/PostgreSQL/9.5/data/pg_xlog
-bash-4.1$ pwd
/opt/PostgreSQL/9.5/data/pg_xlog
-bash-4.1$ ls -l
total 49160
-rw------- 1 postgres postgres 302 Mar 29 13:50 000000010000000000000002.00000028.backup
-rw------- 1 postgres postgres 16777216 Mar 29 14:07 000000010000000000000003
-rw------- 1 postgres postgres 16777216 Mar 29 14:07 000000010000000000000004
-rw------- 1 postgres postgres 16777216 Mar 29 13:50 000000010000000000000005
drwx------ 2 postgres postgres 4096 Mar 29 14:07 archive_status
アーカイブされていないWALファイルのコピーは一時的な場所に保存されます。
-bash-4.1$ mkdir /tmp/unarchived_pg95_wals
-bash-4.1$ pwd
/opt/PostgreSQL/9.5/data/pg_xlog
bash-4.1$ cp -p 000000010000000000000004 /tmp/unarchived_pg95_wals
bash-4.1$ cp -p 000000010000000000000005 /tmp/unarchived_pg95_wals
bash-4.1$ ls -l /tmp/unarchived_pg95_wals
total 32768
-rw------- 1 postgres postgres 16777216 Mar 29 14:07 000000010000000000000004
-rw------- 1 postgres postgres 16777216 Mar 29 13:50 000000010000000000000005
リモートホスト上に、PostgreSQLデータベースクラスタの復元先となるディレクトリが作成されます。この復元パスは 、ユーザーアカウントpostgresが所有する/opt/restore_pg95です。
[user@localhost ~]$ su root
Password:
[root@localhost user]# cd /opt
[root@localhost opt]# mkdir restore_pg95
[root@localhost opt]# chown postgres restore_pg95
[root@localhost opt]# chgrp postgres restore_pg95
[root@localhost opt]# chmod 700 restore_pg95
[root@localhost opt]# ls -l
total 16
drwxr-xr-x 4 root daemon 4096 Mar 29 12:10 PostgresPlus
drwxr-xr-x 3 root daemon 4096 Mar 29 12:25 PostgreSQL
drwx------ 2 postgres postgres 4096 Mar 29 14:15 restore_pg95
drwxr-xr-x. 2 root root 4096 Nov 22 2013 rh
BART設定ファイルでは、リモートユーザとリモートホストのIPアドレス postgres@192.168.2.24remote_hostパラメータで設定されていることにremote_hostください。 BART構成ファイルに指定されていない場合は、 RESTOREサブコマンドを指定するときにこの情報を--remote-hostオプションで指定する必要があります(例えば、 bart RESTORE --remote-host postgres@192.168.2.24 )。
[HR]
host = 192.168.2.24
port = 5432
user = postgres
cluster_owner = postgres
backup_name = hr_%year-%month-%dayT%hour:%minute
remote_host = postgres@192.168.2.24
copy_wals_during_restore = enabled
description = "Human Resources"
SHOW-BACKUPSサブコマンドを使用して、 RESTOREサブコマンドで使用するバックアップを識別してください
SERVER NAME BACKUP ID BACKUP NAME BACKUP PARENT BACKUP TIME BACKUP SIZE WAL(s) SIZE WAL FILES STATUS
acctg 1490809695281 acctg_2017-03-29T13:48 none 2017-03-29 13:48:17 EDT 6.10 MB 32.00 MB 2 active
hr 1490809824946 hr_2017-03-29T13:50 none 2017-03-29 13:50:26 EDT 2.59 MB 32.00 MB 2 active
mktg 1490809751193 mktg_2017-03-29T13:49 none 2017-03-29 13:49:14 EDT 6.13 MB 64.00 MB 4 active
SHOW-BACKUPSサブコマンド -tオプションは追加のバックアップ情報を表示します。
-bash-4.1$ bart SHOW-BACKUPS -s hr -i 1490809824946 -t
SERVER NAME : hr
BACKUP ID : 1490809824946
BACKUP NAME : hr_2017-03-29T13:50
BACKUP PARENT : none
BACKUP STATUS : active
BACKUP TIME : 2017-03-29 13:50:26 EDT
BACKUP SIZE : 2.59 MB
WAL(S) SIZE : 32.00 MB
NO. OF WALS : 2
FIRST WAL FILE : 000000010000000000000002
CREATION TIME : 2017-03-29 13:50:31 EDT
LAST WAL FILE : 000000010000000000000003
CREATION TIME : 2017-03-29 14:07:35 EDT
復旧は2017-03-29 14:01:00までのタイムライン1を使用して行われます。
-bash-4.1$ bart RESTORE -s hr -i hr_2017-03-29T13:50 -p /opt/restore_pg95 -t 1 -g '2017-03-29 14:01:00'
INFO: restoring backup 'hr_2017-03-29T13:50' of server 'hr'
INFO: base backup restored
INFO: copying WAL file(s) to postgres@192.168.2.24:/opt/restore_pg95/archived_wals
INFO: creating recovery.conf file
INFO: archiving is disabled
INFO: permissions set on $PGDATA
INFO: restore completed successfully
以下は、復元パスディレクトリ /opt/restore_pg95 復元されたバックアップファイルを示しています
-bash-4.1$ pwd
/opt/restore_pg95
-bash-4.1$ ls -l
total 128
drwxr-xr-x 2 postgres postgres 4096 Mar 29 14:27 archived_wals
-rw------- 1 postgres postgres 206 Mar 29 13:50 backup_label
drwx------ 5 postgres postgres 4096 Mar 29 12:25 base
drwx------ 2 postgres postgres 4096 Mar 29 14:27 global
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_clog
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_commit_ts
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_dynshmem
-rw------- 1 postgres postgres 4212 Mar 29 13:18 pg_hba.conf
-rw------- 1 postgres postgres 1636 Mar 29 12:25 pg_ident.conf
drwxr-xr-x 2 postgres postgres 4096 Mar 29 13:45 pg_log
drwx------ 4 postgres postgres 4096 Mar 29 12:25 pg_logical
drwx------ 4 postgres postgres 4096 Mar 29 12:25 pg_multixact
drwx------ 2 postgres postgres 4096 Mar 29 13:43 pg_notify
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_replslot
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_serial
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_snapshots
drwx------ 2 postgres postgres 4096 Mar 29 13:43 pg_stat
drwx------ 2 postgres postgres 4096 Mar 29 13:50 pg_stat_tmp
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_subtrans
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_tblspc
drwx------ 2 postgres postgres 4096 Mar 29 12:25 pg_twophase
-rw------- 1 postgres postgres 4 Mar 29 12:25 PG_VERSION
drwx------ 3 postgres postgres 4096 Mar 29 14:27 pg_xlog
-rw------- 1 postgres postgres 169 Mar 29 13:24 postgresql.auto.conf
-rw-r--r-- 1 postgres postgres 21458 Mar 29 14:27 postgresql.conf
-rw-r--r-- 1 postgres postgres 118 Mar 29 14:27 recovery.conf
保存されたアーカイブされていないWALファイルを復元パスの pg_xlogサブディレクトリ( /opt/restore_pg95/pg_xlog )にコピーします
-bash-4.1$ pwd
/opt/restore_pg95/pg_xlog
-bash-4.1$ ls -l
total 16388
-rw------- 1 postgres postgres 16777216 Mar 29 13:50 000000010000000000000002
drwx------ 2 postgres postgres 4096 Mar 29 14:27 archive_status
-bash-4.1$ ls -l /tmp/unarchived_pg95_wals
total 32768
-rw------- 1 postgres postgres 16777216 Mar 29 14:07 000000010000000000000004
-rw------- 1 postgres postgres 16777216 Mar 29 13:50 000000010000000000000005
-bash-4.1$ cp -p /tmp/unarchived_pg95_wals/* .
-bash-4.1$ ls -l
total 49156
-rw------- 1 postgres postgres 16777216 Mar 29 13:50 000000010000000000000002
-rw------- 1 postgres postgres 16777216 Mar 29 14:07 000000010000000000000004
-rw------- 1 postgres postgres 16777216 Mar 29 13:50 000000010000000000000005
drwx------ 2 postgres postgres 4096 Mar 29 14:27 archive_status
点検 /opt/restore_pg95/recovery.confそれが正しい回復設定が含まれていることを確認するために、ファイルを:
restore_command = 'cp archived_wals/%f %p'
recovery_target_time = '2017-03-29 14:01:00'
recovery_target_timeline = 1
BART構成ファイルのcopy_wals_during_restoreパラメータがデータベースサーバーhrに対してenabledに設定されているため、 /opt/restore_pg95 archived_walsサブディレクトリから復元します。
データベースサーバを起動して、ポイントインタイムリカバリ操作を開始します。
[user@localhost ~]$ su postgres
Password:
bash-4.1$ cd /opt/restore_pg95
bash-4.1$ /opt/PostgreSQL/9.5/bin/pg_ctl start -D /opt/restore_pg95 -l /opt/restore_pg95/pg_log/logfile
server starting
データベースサーバのログファイルを調べて、操作によってエラーが発生しなかったことを確認します。
2017-03-29 14:33:23 EDT LOG: database system was interrupted; last known up at 2017-03-29 13:50:25 EDT
2017-03-29 14:33:23 EDT LOG: starting point-in-time recovery to 2017-03-29 14:01:00-04
2017-03-29 14:33:23 EDT LOG: restored log file "000000010000000000000002" from archive
2017-03-29 14:33:23 EDT LOG: redo starts at 0/2000098
2017-03-29 14:33:23 EDT LOG: consistent recovery state reached at 0/20000C0
2017-03-29 14:33:23 EDT LOG: restored log file "000000010000000000000003" from archive
2017-03-29 14:33:23 EDT LOG: recovery stopping before commit of transaction 1762, time 2017-03-29 14:02:28.100072-04
2017-03-29 14:33:23 EDT LOG: redo done at 0/303F390
2017-03-29 14:33:23 EDT LOG: last completed transaction was at log time 2017-03-29 14:00:43.351333-04
cp: cannot stat `archived_wals/00000002.history': No such file or directory
2017-03-29 14:33:23 EDT LOG: selected new timeline ID: 2
cp: cannot stat `archived_wals/00000001.history': No such file or directory
2017-03-29 14:33:23 EDT LOG: archive recovery complete
2017-03-29 14:33:23 EDT LOG: MultiXact member wraparound protections are now enabled
2017-03-29 14:33:23 EDT LOG: database system is ready to accept connections
2017-03-29 14:33:23 EDT LOG: autovacuum launcher started
回復したデータベースクラスタに存在するテーブルは次のとおりです。
postgres=# \dt
List of relations
Schema | Name | Type | Owner
--------+----------------+-------+----------
public | hr_rmt_t1_1356 | table | postgres
public | hr_rmt_t1_1358 | table | postgres
public | hr_rmt_t1_1400 | table | postgres
(3 rows)
回復は2017-03-29 14:01:00までであったため、14:01の後に作成された次のテーブルは存在しません。
public | hr_rmt_t1_1402 | table | postgres
public | hr_rmt_t1_1404 | table | postgres
public | hr_rmt_t1_1406 | table | postgres
注: BART RESTORE操作はpostgresql.confファイルの最後にarchive_mode = offパラメータを追加することによってWALアーカイブを停止します。ファイル内のこの最後のパラメータは、ファイル内の同じパラメータの他の以前の設定をオーバーライドします。最後の設定を削除し、データベースサーバーを再起動してWALアーカイブを開始します。
# Add settings for extensions here
 
archive_mode = off
7. BARTをアンインストールする
BARTバックアップカタログ内のバックアップファイルとアーカイブされたWALファイルを永久に保存するか、単に削除するかを決定します。 BARTをアンインストールしてもこれらのファイルには影響しません。たとえば、BART DELETEサブコマンド( 5.4.9項を参照)を使用してすべてのファイルを削除したり、Linuxコマンドrm –rf /opt/backupを使用してBARTバックアップカタログ/opt/backupを削除したり/opt/backup
BARTをアンインストールするには、 rootユーザーとして次のコマンドを呼び出します。
yum remove edb-bartます。
例を以下に示します。
[root@localhost ~]# yum remove edb-bart
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package edb-bart.x86_64 0:2.3.0-1.rhel7 will be erased
--> Finished Dependency Resolution
base/7/x86_64 | 3.6 kB 00:00:00
edb-repos | 2.4 kB 00:00:00
edbas10/7/x86_64 | 2.5 kB 00:00:00
enterprisedb-dependencies/7/x86_64 | 2.5 kB 00:00:00
enterprisedb-tools/7/x86_64 | 2.5 kB 00:00:00
epel/x86_64/metalink | 16 kB 00:00:00
extras/7/x86_64 | 3.4 kB 00:00:00
updates/7/x86_64 | 3.4 kB 00:00:00
 
Dependencies Resolved
 
========================================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================================
Removing:
edb-bart x86_64 2.3.0-1.rhel7 installed 2.1 M
 
Transaction Summary
========================================================================================================================================================================================
Remove 1 Package
 
Installed size: 2.1 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : edb-bart-2.3.0-1.rhel7.x86_64 1/1
/sbin/ldconfig: File /lib/libpq.so.5.8 is empty, not checked.
Verifying : edb-bart-2.3.0-1.rhel7.x86_64 1/1
 
Removed:
edb-bart.x86_64 0:2.3.0-1.rhel7
 
Complete!
8. 最近の是正
このリリースでは、以下の問題が修正されています。
wal _ levellogical設定されている場合、 BART check - configコマンドはエラーをスローしていました。 wal _ level logicalはbart-scannerに有効なので、エラーチェックは削除されました。
ログ内のエラーは sorry, too many connections already BARTはサーバーにすばやく続けて何度も再接続しようとするため、バックアップ中にsorry, too many connections already気付いています。これは修正されました。
表領域名が PG _ BART始まるネストした表領域ではbackupinfoファイルが同じバックアップの表領域情報を複数回リストしています。 BARTが実際にバックアップの一部であるものより多くのテーブルスペースのパスを復元することを期待しているため、これはユーザーがバックアップを復元しようとするとエラーを引き起こします。これは修正されました。
このバージョンでは 、WALセグメントが複数のWALファイルにまたがる部分的なレコードで終わっている bart - scannerが中止されるバグを修正しています。
とき bart show - backupsコマンドが実行された、最終更新時刻は、バックアップ時間として表示されていました。これは修正され、バックアップ停止時間がバックアップ時間として表示されるようになりました。