EDB Postgres™バックアップ/リカバリ ガイド
 
 
 
 
 
 
 
 
 
EDB Postgres™バックアップおよびリカバリ2.2
2018年12月3日
 
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.2を作成するために、BART 2.1に次の機能が追加されました。
BARTでは、 pg_basebackupを必要とするスタンバイサーバを除き、PostgreSQL pg_basebackupユーティリティプログラムを使用して、データベースサーバからフルベースバックアップを取る必要がなくなりました 。これにより、次の点で説明されているようにフルバックアップをとるためのパフォーマンスが向上します。
複数の並列ワーカースレッドを使用して完全バックアップを実行できるようになり、バックアップ時間が短縮されます。ワーカ・スレッドの数は、 BACKUPサブコマンドの-thread-countオプション( 5.4.3項を参照)、またはBART構成ファイルのthread_countパラメータ( 4.1項および4.2.5項を参照)によって指定されます。複数のプロセスは、 BACKUPサブコマンド-zまたは-cオプションを使用して完全バックアップを実行して、圧縮された並列tarバックアップを提供する場合に、圧縮操作にも使用されます。
BARTは、 pg_basebackupユーティリティー・プログラムを使用して、スタンバイ・サーバーから完全バックアップを 取得します。増分バックアップはスタンバイサーバから取得できないことに注意してください。
BACKUPサブコマンドは現在、フルバックアップを取るためのpg_basebackupの使用を強制--with-pg_basebackupオプションをサポートしています。
BACKUPサブコマンドは現在、スタンバイサーバ以外のフルバックアップを取るためのpg_basebackupの使用を防止--no-pg_basebackupオプションをサポートしています。代わりに、ワーカースレッドプロセスは、第2の箇条書きポイントで前述したように使用されます。
増分バックアップの復元は、 RESTOREサブコマンドと-wオプションを使用して、指定した数の並列ワーカープロセスで実行できるようになりました。以前は、単一のワーカープロセスのみが使用されていました。これにより、増分バックアップの復元時間が短縮されます。詳細は、 5.4.8項を参照してください。
BART構成ファイルには、WALファイルの強制スキャンが発生するまでの秒数を指定する scan_intervalパラメータが含まれるようになりました。既定では、BARTスキャナプログラムは、存在が検出された場合にのみ、アーカイブされたWALファイルをスキャンするため、スキャンが失われ、必要なMBMファイルが存在しなくなる可能性があります。スキャンを強制するためにscan_intervalパラメータを使用できるようになりました。 BARTスキャナの詳細については、セクション5.5を参照してください。 scan_intervalパラメータについては、 4.1および4.2.5項を参照してください。
1.2 このガイドで使用される表記規則
このマニュアルでは、さまざまなコマンド、文、プログラム、例などの意味と使用法を明確にするために、特定の表記規則が使用されています。このセクションでは、これらの規則の概要を説明します。
以下の説明では、 用語は、言語キーワード、ユーザ提供値、リテラルなどの任意の単語または単語群を指す。用語の正確な意味は、それが使用される文脈に依存する。
イタリック体のフォントで は、通常、最初に定義された文章に新しい用語が導入されています。
固定幅(単間隔)フォント は、 SQL コマンド、例で使用されている特定のテーブルとカラム名、プログラミング言語キーワード など、文字通り与えなければならない用語に使用され ます 。たとえば、 SELECT * FROM emp;
イタリック固定幅フォント は、ユーザーが実際の使用で値を置き換える必要がある用語に使用されます。たとえば、 DELETE FROM table_name ;
角括弧[]は、囲まれた用語の1つまたはいずれかが置換されている可能性があることを示します。たとえば、 [a | b]は 、「 a 」または「 b 」のいずれかを選択するか、またはどちらも選択しないことを意味します。
中括弧{}は、囲まれた選択肢のうちの1つを指定する必要があることを示します。たとえば、 {a | b}は 、 " a "または " b "のうちの1つを指定する必要があることを意味します。
楕円形...は、前の項が繰り返されるかもしれないことを示します。たとえば、 [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 です。 xはバージョン10以前のバージョンです。それ以降のバージョンでは、PostgreSQLコミュニティパッケージを使用してください。バージョン10以前のバージョンの対話式インストーラを使用してAdvanced Server Linuxをインストールする場合、デフォルトは/ opt / PostgresPlus / xになり ます。 X ASまたは/ opt / EDB / x x 。 RPMパッケージを使用してAdvanced Server Linuxをインストールする場合、デフォルトは/ usr / ppas- x です。 Xまたは/ usr / EDB / x x 。製品のバージョン番号はxで表されます。 xまたはxx (バージョン10以降)
2 概要
BARTは、Postgresデータベースサーバで提供される継続的なアーカイブとポイントインタイムリカバリのための簡単なインタフェースを提供します。これは、以下のプロセスで構成されます。
完全バックアップに似ているが、すべての完全リレーションファイルではなく以前のバックアップ以降に変更されたリレーションファイルのブロックを含む、 ブロックレベルの増分バックアップ と呼ばれるデータベースクラスタの変更されたイメージのキャプチャ
データベースファイルへの変更を継続的に記録するWrite-Ahead Logセグメント (WALファイル)のアーカイブ
実行連続し、同じバックアップチェーンに存在するブロックレベルの増分バックアップ、およびWALファイルと一緒にフルバックアップを使用して、タイムラインに対して指定されたトランザクションIDやタイムスタンプにポイントインタイムリカバリ (PITR)を
WALファイルとポイントインタイムリカバリに関する詳細情報は、次のURLにある PostgreSQLコアマニュアルに 記載されてい ます
https://www.postgresql.org/docs/10/static/continuous-archiving.html
ブロックレベルの増分バックアップについては、 2.2 項を参照してください
ブロックレベルの増分バックアップは、単に 増分バックアップ と呼ばれ ます
一般的な バックアップとは、フルバックアップと増分バックアップの両方を指します。両者を区別する必要がある場合は、 フルバックアップまたは増分バックアップという用語が使用されます。
注:スタンバイサーバーの場合、フルバックアップのみが実行されます。スタンバイ・サーバーからの増分バックアップは実行できません。スタンバイサーバの詳細については、次のURLにあるPostgreSQLコアマニュアルを参照してください。
https://www.postgresql.org/docs/10/static/high-availability.html
スタンバイサーバを完全バックアップする場合、BARTはPostgreSQLの pg_basebackupユーティリティプログラムを使用します
pg_basebackupの 詳細については、 次のURLにあるPostgreSQL Core Documentationを参照してください。
https://www.postgresql.org/docs/10/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にあります 。フルバックアップとは、データベースクラスタのコピーです。 注:データベースクラスタとデータベースサーバという用語は、このドキュメントでは多少の互換性がありますが、単一のデータベースサーバで複数のデータベースクラスタを実行できます。
Postgresユーザーアカウント。 Advanced ServerまたはPostgreSQLデータベースサーバを実行し、データベースクラスタディレクトリを所有するLinuxオペレーティングシステムユーザアカウント。デフォルトでは、Oracleデータベースと互換性のあるAdvanced Serverがインストールされている場合、Postgresのユーザーアカウントはenterprisedbです。デフォルトでは、PostgreSQLユーザアカウントはPostgreSQLデータベースと互換性のあるAdvanced Server用のpostgresです。 PostgreSQLデータベースサーバの場合、このユーザアカウントは一般にpostgresです。 注意: BART設定パラメータcluster_ownerは、各データベースサーバのPostgresユーザアカウントに設定する必要があります。詳細は、 4.2.5項を参照してください。
レプリケーションデータベースユーザー。 BARTによって管理されるデータベースサーバごとに、複写データベースユーザとして動作するようにデータベーススーパーユーザを選択する必要があります。このデータベースユーザーは、バックアップをとるときにデータベースサーバーに接続するために使用されます。この目的のために、初期Postgresデータベースサーバインストール( enterprisedbまたはpostgres )で作成されたデータベーススーパーユーザを使用することができます。 注意: BART構成パラメータのユーザーは、各データベースサーバーのこのレプリケーションデータベースユーザーに設定する必要があります。詳細は、 4.2.5項を参照してください。
セキュアシェル(SSH)/セキュアコピー(SCP)。ホスト間でのログイン(SSH)やホスト間のファイル(SCP)のコピーに使用されるLinuxユーティリティープログラム。実際には、SSHまたはSCP操作が行われるユーザーアカウントである有効なユーザーアカウントを指定する必要があります。
4 章では、これらのコンポーネントのすべてをBARTとともに設定および使用する方法について説明します。
2.1 前提条件
このセクションでは、サポートされているデータベースサーバーのバージョン、必要なサポートソフトウェアなどについて説明します。
2.1.1 サポートされているプラットフォームとデータベースのバージョン
BARTは、次のプラットフォームにインストールできます。
注: BARTは現在、64ビットプラットフォームでのみ動作します。
BARTによって管理できるPostgresデータベースのバージョンは、次のとおりです。
注意: Advanced Serverバージョン10のinitdb -wal-segsizeオプションを使用して作成できるように、デフォルトサイズ16 MB以外のWALセグメントファイルサイズを含むデータベースクラスタからバックアップを取ることができます。
Advanced Server initdb -wal-segsizeオプションの詳細については、次のEnterpriseDB Webサイトから入手可能な「 EDB Postgres Advanced Server 10.0 Guide 」の第3.7項「カスタマイズ可能なWALセグメントファイルサイズ」を参照してください。
https://www.enterprisedb.com/resources/product-documentation
2.1.2 必要なソフトウェア
次のコンポーネントは、BARTホスト、および増分バックアップを復元するリモートデータベースサーバーホスト(これらのリモートホストにはBARTのインストールも必要)にインストールする必要があります。
Postgresの libpqライブラリ
Postgres pg_basebackupスタンバイサーバからバックアップを取得し、特定の条件でデータベースサーバからフルバックアップを取るためのユーティリティプログラム
BARTホストコンポーネントは、EnterpriseDB RPMパッケージを使用してインストールされます。これらのコンポーネントのインストール手順については、 3.2 項を参照してください
さらに、次のコンポーネントを有効にしてアクティブにする必要があります。
SSHとSCPについては、 4.2.1 項を参照してください
2.1.3 pg_basebackupの制限事項
BARTは 、次の状況下でpg_basebackupユーティリティー・プログラムを使用して完全バックアップを 行います。
--with-pg_basebackupオプションはpg_basebackupの使用を強制するためのBACKUPサブコマンドで指定されている(セクションを参照5.4.3を
有効なスレッド数の数は1であり、 --no-pg_basebackupオプションはBACKUPサブコマンドで指定されていません。 BART構成ファイルのthread_countパラメータの設定については、 4.1および4.2.5項を参照してください。
BART設定ファイルのグローバルセクションでは、 pg_basebackup_path パラメータは、 pg_basebackupプログラムへの完全なディレクトリパスを指定します。このパラメータの詳細は、 4.1項を参照してください。
pg_basebackup についての情報は、以下にあるPostgreSQL Core Documentationを参照してください。
https://www.postgresql.org/docs/10/static/app-pgbasebackup.html
使用には制限があります pg_basebackupバージョンとのPostgresデータベース・サーバーのバージョンによってpg_basebackupが
データベースサーバは 、データベースサーバのバージョンと同じか、それより新しいバージョンのpg_basebackup使用してのみバックアップできます。たとえば、 pg_basebackupバージョン9.5はデータベースサーバーバージョン9.5をバックアップできますが、データベースサーバーバージョン9.6のバックアップには使用できません。
2.2 ブロックレベル増分バックアップ
このセクションでは、単に増分バックアップと呼ばれるブロックレベルの増分バックアップの基本的な概念について説明します。増分バックアップは、BARTのためのユニークなユーティリティです。
増分バックアップには、フルバックアップを使用する方法よりも多くの利点があります。
一般に、保持ポリシー管理などのすべてのBART機能は、増分バックアップと完全バックアップに適用されます。増分バックアップに適用される保存ポリシー管理については、第 5.2.5 項を参照してください。
 
2.2.1 増分バックアップの制限と要件
増分バックアップには次の制限事項があります。
増分バックアップは、スタンバイ・データベース・サーバで撮影することはできません。スタンバイ・データベース・サーバーからフル・バックアップのみを取ることができます。
増分バックアップを実装する前に、次の要件を満たす必要があります。
BART構成ファイルでは、 cluster_ownerパラメータを、増分バックアップを実行するデータベースクラスタのディレクトリを所有するLinuxオペレーティングシステムのユーザーアカウントに設定する必要があります。 allow_incremental_backupsパラメータを有効にする必要があります。詳細は、 4.2.5項を参照してください。
パスワードなしのSSH / SCP接続は、BARTホスト上のBARTユーザーアカウントとデータベースサーバー上のcluster_ownerユーザーアカウントとの間で確立する必要があります。 注:このパスワードなしのSSH / SCP接続は、BARTとデータベースサーバーが同じホスト上で実行され、BARTユーザーアカウントとcluster_ownerユーザーアカウントが同じアカウントであっても確立する必要があります。詳細は、 4.2.1項を参照してください。
BARTバックアップカタログが存在するBARTホストに加えて、増分バックアップを復元するすべてのリモートデータベースサーバーにもBARTパッケージをインストールする必要があります。増分バックアップを復元するためには、 BARTのプログラムは、増分バックアップを復元するRESTOREサブコマンドを使用するときにBARTの設定ファイル内のREMOTE_HOSTパラメータまたは-rオプションで指定されたリモートユーザーがリモートホスト上で実行可能でなければなりません。リモートホスト上の増分バックアップのリストアについては、第2.2.5.2項を参照してください。
リモートデータベースサーバ上の増分バックアップを復元するには、パスワードなしのSSH / SCP接続を、BARTホスト上のBARTユーザアカウントから 、BART設定ファイルのremote_hostパラメータで指定されたリモートホスト上のリモートユーザに確立する必要がありますRESTOREサブコマンドを使用して増分バックアップをリストアするときは、 -rオプションを使用します。リモートホスト上の増分バックアップのリストアについては、第2.2.5.2項を参照してください。
増分バックアップを実行するデータベースサーバでは、BARTバックアップカタログでアーカイブされたWALファイルを圧縮することはできません。これらのデータベースサーバーでは、BART構成ファイル wal_compression設定を有効にしないでください。グローバルセクションまたはサーバーセクションでパラメーターが変更されていない限り、既定の設定は無効です。 wal_compressionパラメータの詳細は、 4.1および4.2.5項を参照してください。
次のセクションでは、基本的な増分バックアップの概念の概要を説明します。
 
2.2.2 概念の概要
増分バックアップを使用するには、次の手順を実行します。
1。
2。
3。
最初の完全バックアップは、 BACKUPサブコマンドを使用して行う必要があります 。このフルバックアップは、最初の増分バックアップの親を確立します。
4。
5。
増分バックアップは、 BACKUPサブコマンドを使用して--parentオプションを使用して実行され 、以前の完全バックアップまたは増分バックアップのバックアップ識別子または名前を指定します。すべてのバックアップが同じタイムラインに属している限り、以前のバックアップは親として選択できます。
6。
7。
増分バックアップのリストア・プロセスは、フル・バックアップのリストアと同じ方法でRESTOREサブコマンドを使用して呼び出されます-iオプションは、リストアする増分バックアップのバックアップ識別子または名前を指定します。リストアプロセスは、チェーンを開始する最初の完全バックアップが識別されるまで、過去の親増分バックアップのチェーンを元に戻すことから始まります。この完全バックアップは、 -pオプションで指定された場所にリストアされるディレクトリおよびファイルの初期セットを提供します。
8。
以下のセクションでは、これらの手順に関する追加情報を提供します。
 
2.2.3 WALスキャン - 増分バックアップの準備
親バックアップからどのブロックが変更されたかを判断するために、親バックアップの時点から増分バックアップの開始までに作成されたWALファイルは、WALスキャナープログラム bart-scanner によってスキャンされ ます
WALスキャナは、WALファイルからどのブロックが変更されたかを判断し、その情報を 修正ブロックマップ (MBM)ファイルと呼ばれるファイルに記録します。各WALファイルに対して1つのMBMファイルが作成されます。
MBMファイルは、アーカイブパスディレクトリに格納されます。 backup_path / server_name / archived_wals ここで、 backup_path はBART構成ファイルのグローバル・セクションで指定されたBARTバックアップ・カタログの親ディレクトリであり、 server_name BART構成ファイル のサーバー・セクションのこのデータベース・サーバーで指定されたデータベース・サーバー名の小文字の変換です。これは、アーカイブされた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が付いています。
増分バックアップの準備として、WALファイルをBARTバックアップカタログにコピーするとすぐにスキャンする必要があります。したがって、WALスキャナは、データベースクラスタからのWALファイルがBARTバックアップカタログにアーカイブされるとすぐに実行する必要があります。
BARTバックアップカタログにまだスキャンされていないWALファイルが含まれている場合、WALスキャナを起動するとこれらのファイルのスキャンが開始されます。
WALファイルがスキャンされずにMBMファイルが見つからなかった場合、WALスキャナを使用して、スキャンする個々のWALファイルを指定することができます。
注: rsyncユーティリティを使用してWALファイルをBARTバックアップカタログにコピーするなどの特定の状況では、WALスキャナプログラムによってMBMファイルのスキャンと作成のためにWALファイルが失われている可能性があります。 BART構成ファイルのscan_intervalパラメータを使用して、BARTバックアップカタログのアーカイブディレクトリにWALファイルを強制的にスキャンし、MBMファイルが確実に生成されるようにします。セクションを参照してください4.14.2.5 、および5.5の情報のために。
WALスキャナの使用方法については、 5.5 項を参照してください
 
2.2.4 増分バックアップの実行
親バックアップの時点で増分バックアップの開始までに作成されたWALファイルには、その時間間隔中に変更されたブロックの情報が含まれています。その情報は、WALスキャナによって各WALファイルのMBMファイルに統合されています。
関連するWALファイルのMBMファイルが読み込まれ、その情報が変更されたブロックをデータベースクラスタからBARTバックアップカタログにコピーするために使用されます。一般的な完全バックアップと比較すると、リレーション・ファイルの数とサイズは、増分バックアップでは大幅に少なくなります。
比較のため、以下は、 1つのデータベースのフルバックアップのアーカイブ ベースサブディレクトリにコピーされたファイルの簡略リストです
[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 ...
対照的に、次の増分バックアップの同じデータベースのアーカイブされた 基本サブディレクトリの内容は次のとおりです
[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.2.5 増分バックアップの復元
増分バックアップを復元するには、増分バックアップを復元するホストに応じて、追加のセットアップ要件が必要になることがあります。
BARTホスト。 増分バックアップをBARTがインストールされているのと同じホストにリストアする場合は、復元プロセスの概要は第 2.2.5.1 項を 参照してください
リモートホスト。増分バックアップをBARTがインストールされていないリモートホストにリストアする場合は、リストアプロセスはセクション2.2.5.1に記載されている情報に従いますが、さらにセクション2.2.5.2の要件を確立する必要があります。
リモートホスト上の復元ディレクトリ内の適切な場所に変更されたブロックを復元するために、リモートホスト上のBARTプログラムの実行中に増分バックアップ結果のサブコマンドの呼び出しを復元するため、BARTプログラムは、リモートホスト上で使用可能でなければなりません。
次のセクションでは、一般的な増分バックアップの復元プロセスについて説明します。
2.2.5.1 増分バックアップの一般的なリストア処理
RESTOREサブコマンドは、-iオプションを指定してそのバックアップ識別子または名前を指定することで、増分バックアップを復元するために使用されます。すべてのRESTOREオプションは、完全バックアップをリストアする場合と同じ方法で使用されます。
まず、バックアップチェーンの最初から完全バックアップからのすべてのファイルが復元されます。
増分バックアップごとに、CBMファイルを使用して増分バックアップからブロックを識別して復元します。
新しい関係またはデータベースがCBMファイルで識別されると、関連するリレーションファイルがコピーされます。リレーションまたはデータベースの削除を示す統合ブロックマップ情報が見つかった場合、関連するファイルはリストアディレクトリから削除されます。同様に、表切り捨ての指示がある場合、関連ファイルは切り捨てられます。
増分バックアップのリストアにRESTOREサブコマンドを使用する方法については、第 5.4.8 項を参照してください 。また、 RESTOREサブコマンドの-wオプションを使用して、変更されたブロックをリストア・ホストにストリーミングする複数の並列ワーカー・プロセスを指定します。
2.2.5.2 リモート・ホストでの増分バックアップのリストア
BARTがインストールされていないリモートホストで増分バックアップを復元する場合は、次の手順を実行する必要があります。
ステップ1:インクリメンタルバックアップを復元するリモートホストにBARTをインストールします。 3.2項の手順を使用して、このリモートホストにBARTをインストールします。
注:リモートホストにインストールされている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.2.6 バックアップチェーンの作成
バックアップチェーンは、フルバックアップとその連続増分バックアップの全てからなるバックアップのセットです。チェーン内のすべての増分バックアップの親バックアップを元に戻すと、その単一の完全バックアップになります。
2つ以上の連続するインクリメンタルバックアップの行である「複数フォーク」バックアップチェーンを使用することができます。これらのチェーンはすべて同じフルバックアップから開始されます。したがって、チェーン内には複数の増分バックアップの親として機能するバックアップがあります。
増分バックアップのリストアは最初にフル・バックアップをリストアすることに依存するため、 RESTOREサブコマンドで指定された増分バックアップを含むすべての連続増分バックアップが重要です。
保持ポリシー管理の動作は、チェーン内の完全バックアップとそれに続くすべての増分バックアップに、1つのバックアップと同じ方法で適用されます。したがって、保持ポリシー管理を使用しても、バックアップチェーンが分割されるわけではありません。増分バックアップの保存方針の管理については、 5.2.5 項を参照してください。
バックアップチェーンの例を次に示します。
allow_incremental_backupsパラメータが記載されているデータベース・サーバ上の増分バックアップを可能にするために、BARTの設定ファイルで有効に設定されています:
[BART]
bart_host= enterprisedb@192.168.2.27
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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"
BALバックアップカタログに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フィールドには何も含まれていない ことに注意してください 。増分バックアップごとに、 BACKUP PARENTフィールドには、親のバックアップのバックアップ識別子または名前が含まれます。
BACKUPサブコマンドと同じ方法で2番目のバックアップチェーンが作成されます。次の例は、フルバックアップfull_2と増分バックアップincr_2-aincr_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-1、親としてincr_1-Bを示し、incr_1-、incr_1-B、full_1から成る鎖におけるバックアップの2行目にそのバックアップからの分岐で結果、次のリストに示すように、 incr_1-b-1incr_1-b-2 、およびincr_1-b-
-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サブコマンドとそのオプションを使用して行います。次のように、リストアする増分バックアップのバックアップ識別子またはバックアップ名を指定します。
-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のインストールとアンインストール
BARTはRPMパッケージとして提供されています。 Yumパッケージマネージャを使用してBARTをインストールします。
Yumの使用については、YumプロジェクトのWebサイトを参照してください。
http://yum.baseurl.org/
EDB-BARTパッケージは、様々なコンポーネントのEDBヤムリポジトリにアクセスするためのURLが含まEDB-レポリポジトリRPMを使用してインストールされています。このリポジトリRPMは、 EDB Yum Repositoryの Webサイトにアクセスすると表示されます。
EDB Yum Repositoryへのクレデンシャルを要求するには、次のWebサイトを参照してください。
https://www.enterprisedb.com/repository-access-request
EDB Yumリポジトリの使用については、以下のEnterpriseDB Webサイトから入手可能なEDB Postgres Advanced Serverインストールガイドの 第3章を参照してください
https://www.enterprisedb.com/resources/product-documentation
現在BART 2.0またはBART 2.1がインストールされているホストにBART 2.2をインストールする場合は、別の手順に従ってください。次のセクションでは、これらのルールについて概説します。
以前のBARTバージョンがホストにインストールされていない場合は、セクション 3.2 に直接進みます。
3.1 以前のBART 2.xバージョンを実行しているホストへのBART 2.2のインストール
ホスト上で実行されている以前のBART 2.xバージョンに応じて、BART 2.2をインストールする基本的なプロセスは次のとおりです。
BART 2.1がホスト上にある場合は、Yum upgradeコマンドを使用して、 BART 2.1をBART 2.2にアップグレードします。
BART 2.0およびBART 2.1に関して、次の制限が適用されることに注意してください。
BART 2.2を使用する場合 、BART構成ファイルのbackup_pathパラメータで指定されたBARTバックアップカタログは、バックアップカタログとして BART 2.0またはBART 2.1で使用されたものと同じであってはなりません。つまり、BART 2.2を使用した新しいフルバックアップと増分バックアップは、新しいBARTバックアップカタログに保存する必要があります。
以下のセクションでは、BART 2.1およびBART 2.0からのアップグレードプロセスについて説明します。
以前のBARTバージョンを使用して増分バックアップがリストアされたリモートホストでは、BARTホストと同じ方法で同じインストールプロセスを実行する必要があります。
 
3.1.1 BART 2.1からBART 2.2へのアップグレード
すでにBART 2.1を使用している場合は、次の手順を実行してBART 2.2にアップグレードします。
手順1: BART 2.1構成ファイルのコピーを作成して、アップグレード処理中に失われた場合に備えておくことをお勧めします。デフォルトの場所とファイル名は/usr/edb/bart/etc/bart.cfgディレクトリです。
ステップ2:ステップ3でBART 2.2にアップグレードする前に、BART 2.1 WALスキャナプログラムbart-scannerを停止する必要があります.WALスキャナコマンドの使用については、セクション5.5を参照してください。 BARTユーザーアカウントとして、次のコマンドを実行してWALスキャナを停止します。
バートスキャナSTOP
手順3: rootユーザーとして、 yum upgradeコマンドを使用してBART 2.2にアップグレードします
次の構文では、 yumコマンドを使用して、現在の作業ディレクトリにダウンロードされたBART RPMパッケージファイルを更新します。ローカルパッケージファイルは、完全なRPMパッケージファイル名を使用してインストールされます。
yumのアップグレードedb-bart-2.2。 x - x .rhel7.x86_64.rpm
BART RPMパッケージをEDB Yum Repository Webサイトから直接更新するには、パッケージ名のみを指定します。
yum upgrade edb-bart
次に、アップグレードの例を示します。
[root@localhost ~]# yum upgrade edb-bart-2.2.0-1.rhel7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining edb-bart-2.2.0-1.rhel7.x86_64.rpm: edb-bart-2.2.0-1.rhel7.x86_64
Marking edb-bart-2.2.0-1.rhel7.x86_64.rpm as an update to edb-bart-2.1.0-1.rhel7.x86_64
Resolving Dependencies
--> Running transaction check
---> Package edb-bart.x86_64 0:2.1.0-1.rhel7 will be updated
---> Package edb-bart.x86_64 0:2.2.0-1.rhel7 will be an update
--> Finished Dependency Resolution
 
Dependencies Resolved
 
=================================================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================================================
Updating:
edb-bart x86_64 2.2.0-1.rhel7 /edb-bart-2.2.0-1.rhel7.x86_64 2.1 M
 
Transaction Summary
=================================================================================================================================================================================
Upgrade 1 Package
 
Total size: 2.1 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.2.0-1.rhel7.x86_64 1/2
/sbin/ldconfig: File /lib/libpq.so.5.8 is empty, not checked.
Cleanup : edb-bart-2.1.0-1.rhel7.x86_64 2/2
/sbin/ldconfig: File /lib/libpq.so.5.8 is empty, not checked.
Verifying : edb-bart-2.2.0-1.rhel7.x86_64 1/2
Verifying : edb-bart-2.1.0-1.rhel7.x86_64 2/2
 
Updated:
edb-bart.x86_64 0:2.2.0-1.rhel7
 
Complete!
ステップ4:親の/ usr / edb / bartディレクトリにあるBART 2.1ファイルは、BART 2.2ファイルに置き換えられます。 / usr / edb / bart / etcディレクトリにあるBART構成ファイルbart.cfgが、BART 2.1で使用されていた元のファイルであることを確認します。存在しない場合は、手順1で保存した構成ファイルを使用できます。
BART 2.2構成ファイル backup_pathパラメータが、既存のBART 2.1バックアップカタログではなく、新しいディレクトリに設定されていることを確認してください
注意: BART 2.2で使用するためのBART構成ファイルの要件は、BARTサブコマンドを呼び出すホスト(BARTホスト)にBART 2.2をインストールする場合にのみ適用されます。増分バックアップを復元するリモートホスト(つまりBARTホストではない)にBART 2.2をインストールする場合は、BART 2.2 etcサブディレクトリの内容にbartを追加する必要はありません。 cfgファイル。
手順5: PATH環境変数の設定に、 〜/ .bashrcまたは〜/ .bash_profileファイル内の次のユーザーアカウントのBART 2.2 binサブディレクトリのディレクトリの場所が含まれていることを確認します。
注:両方のバージョンは/ usr / edb / bart / binを使用しているので、 PATH設定はBART 2.1と同じに設定する必要があります。
手順6: BART 2.2を使用して増分バックアップを復元するすべてのリモートホストで、このセクションで説明するインストールプロセスを繰り返して、BART 2.2にアップグレードします。リモートホスト上の増分バックアップの復元の詳細については、第2.2.5.2項を参照してください。
BART 2.2にアップグレードした後、増分バックアップを実行する前に、システムの新しいフルバックアップを取る必要があります。 BART 2.2では、以前のバージョンのBARTで親バックアップをとった増分バックアップは実行できません。
 
3.1.2 BART 2.0をBART 2.2に置き換える
現在BART 2.0(たとえば、BART 2.0または2.0.1)がインストールされている場合、BART 2.2を使用してこれらの以前のバージョンを直接アップグレードすることはできません。
BART 2.2は 、BART 2.0と は別のディレクトリにインストールされ ます。あなたは必要です 次に BART 2.0 削除します。
増分バックアップがBART 2.0を使用してリストアされたリモートホストでは、BARTホストと同様の方法で、同じBART 2.2インストールとBART 2.0削除プロセスを実行する必要があります。
セクション 3.2 では、ステップ5とステップ7〜10がBART 2.0の置き換えに適用されます。
BART 2.2にアップグレードした後、増分バックアップを実行する前に、システムの新しいフルバックアップを取る必要があります。 BART 2.2では、以前のバージョンのBARTで親バックアップをとった増分バックアップは実行できません。
3.2 BARTのインストール
BARTには、 libpqライブラリやBoostライブラリを含むいくつかの依存関係が必要です。これらのコンポーネントはすべて、EnterpriseDB RPMで使用できます。
これらのコンポーネントとBART製品のインストールを実行する手順は次のとおりです。
ステップ1: edb-repoとして示されているすべてのEnterpriseDB RPMのリポジトリをEDB Yum RepositoryのWebサイトにダウンロードします。
rootユーザーとして、次の例に示すように、次のコマンドを発行してリポジトリー構成RPMをインストールします。
[root@localhost ~]# rpm -ivh edb-repo-latest.noarch.rpm
Preparing... ########################################### [100%]
1:edb-repo ########################################### [100%]
ステップ2: Linuxオペレーティングシステムに応じてインストールする必要のあるライブラリが含まれているEPELパッケージ( Enterprise Linux用のExtra Packages )をインストールします。
yum install epel-release *
ステップ3:ディレクトリ/etc/yum.repos.dに、リポジトリ設定ファイルedb.repoが作成されます。このファイルはEnterpriseDBリポジトリのリストを含むテキストファイルであり、それぞれが[ repository_name ]というテキストで始まるエントリで示されます
これらのリポジトリのいずれかにあるパッケージへのアクセスは、リポジトリエントリで次のように編集してリポジトリを有効にして行います。
EDB Yumリポジトリに要求された資格情報を使用してbaseurlパラメータ <username>:<password>プレースホルダの代わりにユーザ名とパスワードを入力します。
有効なパラメータの設定をenabled = 1に 変更します
次のリポジトリを有効にする必要があります。
Advanced Server 9.6以降用のリポジトリ edbas xx最新バージョンが推奨されます。
リポジトリ enterprisedb-tools
リポジトリの エンタープライズ依存関係
たとえば、 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(オプション):サーバクライアントパッケージを使用してpg_basebackupユーティリティプログラムをインストールします。まだpg_basebackupプログラムをBARTホストにインストールしておらず、後でPostgreSQLデータベースサーバまたはAdvanced ServerをBARTホストにインストールする予定がない場合は、インストールして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!
ステップ5: BART 2.0が現在ホストにインストールされている場合は、BART 2.0構成ファイルのコピーを保存します(デフォルトのディレクトリとファイル名は/usr/edb/bart2.0/etc/bart.cfg )。
BART 2.2をインストールした後は、この同じ設定ファイルをBART 2.2に使用できますが、BART 2.0で使用されているのと同じディレクトリではなく、BARTバックアップカタログに新しいディレクトリを使用するようにしてください。
ステップ6: BART RPMパッケージをインストールします。 Yumを使用すると、BARTに必要なすべての依存関係がインストールされます。これらのパッケージは、 edb.repoリポジトリ設定ファイルで有効にしたリポジトリからアクセスされます。
次の構文では、 yumコマンドを使用して、現在の作業ディレクトリにダウンロードされたBART RPMパッケージファイルをインストールします。ローカルパッケージファイルは、完全なRPMパッケージファイル名を使用してインストールされます。
yumはedb-bart-2.2をインストールします。 x - x .rhel7.x86_64.rpm
BART RPMパッケージをEDB Yum Repository Webサイトから直接インストールするには、パッケージ名のみを指定します。
yum install edb-bart
例を以下に示します。
[root@localhost ~]# yum install edb-bart-2.2.0-1.rhel7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining edb-bart-2.2.0-1.rhel7.x86_64.rpm: edb-bart-2.2.0-1.rhel7.x86_64
Marking edb-bart-2.2.0-1.rhel7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package edb-bart.x86_64 0:2.2.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.2.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.2.0-1.rhel7.x86_64 1/1
/sbin/ldconfig: File /lib/libpq.so.5.8 is empty, not checked.
Verifying : edb-bart-2.2.0-1.rhel7.x86_64 1/1
 
Installed:
edb-bart.x86_64 0:2.2.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.2.0
BART20-REL-2_0_0-GA-184-g0b44eb8-dirty
Mon Mar 12 07:22:00 UTC 2018
ステップ7: BART 2.0もホストにインストールされている場合は、それを削除する必要があります。 BART 2.0を削除するには、次のコマンドを使用します。
yumはedb-bart20を削除します
BART 2.0を使用していた場合は、ステップ8〜11を続行します。それ以外の場合は、第 4 章で説明する構成プロセスから開始します
ステップ8:新しく作成された/ usr / edb / bart / etcディレクトリに、ステップ5でBART 2.0から保存した構成ファイルbart.cfgを配置します。 (これは、設定ファイルのデフォルトの場所であることに注意してください。-cオプションは、BARTで使用できる別の設定ファイルの名前や場所を指定するには、サブコマンド。節を参照してください5.3情報のために。)
BART 2.2構成ファイル backup_pathパラメータが、既存のBART 2.0バックアップカタログではなく、新しいディレクトリに設定されていることを確認してください
注意: BART 2.2で使用するためのBART構成ファイルの要件は、BARTサブコマンドを呼び出すホスト(BARTホスト)にBART 2.2をインストールする場合にのみ適用されます。増分バックアップを復元するリモートホスト(つまりBARTホストではない)にBART 2.2をインストールする場合は、BART 2.2 etcサブディレクトリの内容にbartを追加する必要はありません。 cfgファイル。
手順9: BART 2.2 binサブディレクトリのディレクトリ位置を〜/ .bashrcまたは〜/ .bash_profileファイルに含めるようにPATH環境変数の設定を調整します。
手順10: BART 2.2を使用して増分バックアップを復元するすべてのリモートホストにBART 2.2をインストールするには、このセクションで説明するインストールプロセスを繰り返します。リモートホスト上の増分バックアップの復元の詳細については、第2.2.5.2項を参照してください。
ステップ11: BART 2.2を使用してバックアップを取ることができるはずです。
3.3 SLES 12ホストへのBARTのインストール
このセクションには、SLES 12ホストにBARTをインストールするための特別な手順が記載されています。
zypperパッケージマネージャを使用して、SLES 12ホストにBARTをインストールできます。 zypperはパッケージをインストールするときにパッケージの依存関係を満たすように試みますが、EnterpriseDBでホストされていない特定のリポジトリにアクセスする必要があります。
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ディレクトリに作成します 。ファイルの名前は次のとおりです。
edbas96suseレポ
edbaspendenciesレポ
edbastoolsレポ
リポジトリ設定ファイルを作成したら zypper refreshコマンドを使用してSLESホストのメタデータを更新し、EnterpriseDBリポジトリをインクルードします。
/etc/zypp/repos.d#zypper refresh
リポジトリ 'SLES12-12-0'は最新です。
リポジトリ 'SLES12-Pool'は最新です。
リポジトリ 'SLES12-Updates'は最新のものです。
リポジトリの取得EDB Postgres Advanced Server 9.6 12 - x86_64 'メタデータ----------------------- [\]
'https://zypp.enterprisedb.com/9.6/suse/suse-12-x86_64'に必要な認証
ユーザー名:
パスワード:
リポジトリの取得EDB Postgres Advanced Server 9.6 12 - x86_64 'メタデータ................................... [done ]
ビルドリポジトリ 'EDB Postgres Advanced Server 9.6 12 - x86_64'キャッシュ.......................... [done]
すべてのリポジトリがリフレッシュされました。
...
入力を求められたら 、ユーザーパスワード 、EnterpriseDBのリポジトリ用の接続の資格情報を提供しています。資格情報が必要な場合は、次のWebサイトを参照してください。
https://www.enterprisedb.com/repository-access-request
EDB Postgres Advanced Serverまたはサポートコンポーネントをインストールする前に、SUSEEConnectとSUSE Package Hub拡張をSLESホストに追加し、ホストをSUSEに登録してSUSEリポジトリにアクセスできるようにする必要があります。次のコマンドを使用します。
ジッパーインストールSUSEConnect
SUSEConnect -p PackageHub / 12 / x86_64
SUSEConnect -p sle-sdk / 12 / x86_64
SUSEホストの登録の詳細については、以下を参照してください。
https://www.suse.com/support/kb/doc/?id=7016626
次に、アーカイブ・リポジトリを追加し、リポジトリ・メタデータを更新します。
SUSEConnect -p sle-sdk / 12 / x86_64
zypper addrepo https://download.opensuse.org/repositories/Archiving/SLE_12_SP3/Archiving.repo
ジッパーリフレッシュ
次に、zypperユーティリティを使用してBARTをインストールできます。
zypper install edb-bart
3.4 BARTのアンインストール
バックアップファイルとアーカイブされたWALファイルをBARTバックアップカタログに恒久的に保存するか、または単に削除するかを決定します。 BARTをアンインストールしても、これらのファイルには影響しません。すべてのファイルをBART DELETEサブコマンド( 5.4.9項を参照)で削除するか、またはLinuxコマンドrm -rf / opt / backupを使用してBARTバックアップカタログ/ opt / backupを削除します
ルートユーザーが次のコマンドを呼び出すと、 BARTをアンインストールするには
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.2.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.2.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.2.0-1.rhel7.x86_64 1/1
/sbin/ldconfig: File /lib/libpq.so.5.8 is empty, not checked.
Verifying : edb-bart-2.2.0-1.rhel7.x86_64 1/1
 
Removed:
edb-bart.x86_64 0:2.2.0-1.rhel7
 
Complete!
4 構成
BARTの主な設定手順は次のとおりです。
次のセクションでは、BARTの初期設定手順について説明します。
4.1 BARTホストの設定
このセクションでは、BARTホストの基本的な設定手順について説明します。これらの手順を実行すると、これらの設定に対応するBART構成ファイル( BART_HOME /etc/bart.cfg )にパラメータがあります。手順を進めるときに、これらのパラメータをBART構成ファイルに設定します。
注意:パラメータを設定する必要があるbart.cfgファイルを作成するために、bart.cfg.sampleファイルを使用してください。
以下は、明示的に設定する必要がある、BART構成ファイルの最小必須パラメーターの例です。
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/bin/pg_basebackup
データベースサーバごとに、最小BARTパラメータ設定は次のとおりです。
[HR]
host = 192.168.2.24
port = 5432
user = postgres
cluster_owner = postgres
注: ポート・パラメーターの設定は、データベース・サーバーが5444以外のポートでlistenする場合にのみ必要です。
他のすべてのパラメータは、デフォルトのアクションを使用します。
この章の各項では、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のバージョンに応じて適用される制限については、 2.1.3項を参照してください。このパラメータは必須です。
xlog_method。 BACKUPサブコマンドによるpg_basebackupの実行中にトランザクションログを収集する方法を決定します。バックアップが完了した後にトランザクションログファイルを収集するようにフェッチするように設定します。フルバックアップの作成と並行してトランザクションログをストリーム配信するように設定しますstreamが使用されている場合、影響を受けるデータベースサーバのpostgresql.confファイルのmax_wal_senders設定パラメータは、トランザクションログのストリーミングの追加セッションを考慮する必要があります(つまり、設定は最低2でなければなりません)。 BART構成ファイルのサーバー・セクションのxlog_methodパラメーターの設定は、その特定のデータベース・サーバーのグローバル・セクションのxlog_methodの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのxlog_methodの設定が使用されます。いずれかのセクションでxlog_methodパラメーターが指定されていない場合、デフォルトはfetchです。
retention_policy。アクティブなバックアップが不要とマークされ、削除の候補になるべき時期を決定します。設定は、 max_number BACKUPSmax_number DAYSmax_number WEEKS 、またはmax_number MONTHSのいずれかです 。max_numberは正の整数です。キーワードBACKUPSDAYSWEEKS 、およびMONTHSがすべて省略された場合、指定された整数はデフォルトでmax_number BACKUPSとして解釈されます。 BART構成ファイルのサーバー・セクション内の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構成ファイルのサーバー・セクションのwal_compressionパラメーターの設定は、その特定のデータベース・サーバーのグローバル・セクションのwal_compressionの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのwal_compressionの設定が使用されます。どちらのセクションでもwal_compressionパラメーターが指定されていない場合、デフォルトは無効です。 WAL圧縮にMANAGEサブコマンドを使用する方法については、第5.4.7項を参照してください。
copy_wals_during_restore。 RESTOREサブコマンドを呼び出すときに、アーカイブされたWALファイルの収集方法を決定します。データベースサーバのアーカイブリカバリに先立って、 有効に設定すると、アーカイブされたWALファイルがBARTバックアップカタログからrestore_path / archived_walsディレクトリにコピーされます。データベースサーバのアーカイブリカバリ中に、BARTバックアップカタログからアーカイブされたWALファイルを直接取得するには、 無効に設定しますrecovery.confファイルのBARTによって生成されたrestore_commandパラメータには、2つのオプションのどちらが使用されているかが反映されています。 -cオプションを指定してRESTOREサブコマンドを実行すると、アーカイブされたWALファイルがBARTバックアップカタログからrestore_path / archived_walsディレクトリにコピーされ、BART構成ファイルのcopy_wals_during_restoreパラメータの設定が上書きされます。 -cオプションを指定せずにRESTOREサブコマンドを実行すると、アーカイブされたWALファイルの取得方法が決まります。BART構成ファイルのserverセクションのcopy_wals_during_restoreパラメータを明示的に設定すると、グローバルセクションのcopy_wals_during_restoreの設定が上書きされます。その特定のデータベースサーバー。サーバーセクションで省略された場合は、グローバルセクションのcopy_wals_during_restoreの設定が使用されます。いずれかのセクションでcopy_wals_during_restoreパラメータが明示的に設定されていない場合、デフォルトは無効です。詳細は、 5.4.8項を参照してください。
ログファイル。 BARTログファイルへのパスを指定します。 bartプログラムからの出力がこのファイルに書き込まれます。このパラメータはオプションです。 logfile =の後にログファイルへのパスが指定されていない場合、またはパラメータがコメントアウトされている場合、BARTはログファイルを作成しません。 注意: BARTの使用中に、BARTログファイルに関するエラーメッセージが表示されるのは、通常、現在のBARTユーザーアカウントが所有していない既存のログファイルが存在するためです。問題を解決するには、既存のログファイルを削除または名前を変更し、BARTに現在のBARTユーザーアカウントが所有する新しいログファイルを作成させる。
scanner_logfile。 WALスキャナログファイルへのパスを指定します。 bart-scannerプログラムからの出力がこのファイルに書き込まれます。このパラメータはオプションです。 scanner_logfile =の後にログファイルへのパスが指定されていない場合、またはパラメータがコメントアウトされている場合、BARTはWALスキャナログファイルを作成しません。 注: WALスキャナの使用中に、WALスキャナログファイルに関するエラーメッセージが表示されるのは、通常、現在のBARTユーザーアカウントが所有していない既存のログファイルが存在するためです。問題を解決するには、既存のログファイルを削除または名前を変更し、BARTに現在のBARTユーザーアカウントが所有する新しいログファイルを作成させる。
スレッド数。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、データベース・サーバーからBARTバックアップ・カタログへブロックをコピーするワーカー・スレッドの数を指定します。ワーカー・スレッドがデータ・ファイルをデータベース・サーバーからBARTバックアップ・カタログにコピーするフル・バックアップにも同じアプローチが適用されます。 BACKUPサブコマンドが-zまたは-cオプションで指定されている場合、圧縮されたバックアップを並列に提供するために、フルバックアップをとるときに圧縮操作に同じ一連のプロセスが使用されます。 注:圧縮操作は増分バックアップには適用されません。 BACKUPサブコマンドが--thread-countオプションで呼び出された場合、このオプションで指定されたワーカー・スレッドの数は、BART構成ファイル内のthread_countパラメータの設定を上書きします。 BACKUPサブコマンドが--thread-countオプションなしで呼び出された場合、使用されるワーカー・スレッドの数は次のように決定されます。BART構成ファイルのserverセクションのthread_countパラメータの設定は、グローバル・セクションのthread_countの設定を上書きしますその特定のデータベースサーバのためのものです。サーバーセクションで省略された場合、グローバルセクションのthread_countの設定が使用されます。いずれかのセクションでthread_countパラメータが指定されていない場合、デフォルトは1です。 注意:フルバックアップをとるとき、実際のスレッド数が1にすぎない場合は、 BACKUPサブコマンドで--no-pg_basebackupオプションを指定しないかぎり、 pg_basebackupユーティリティを使用して完全バックアップを実行します。
バッチサイズ。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、変更されたブロックをデータベース・サーバーからBARTバックアップ・カタログにコピーするために使用されるメモリーのブロック数を指定します。各ブロックは8192バイトです。指定できる最大値は131072 (131072 * 8192 = 1 GB)です。最小許容値は1です (1 * 8192 = 8192バイト)。 pg_read_binary_file()を実行しているときにサーバーがメモリ不足を起こしていると言うと、設定を減らしてください。 BART構成ファイルのサーバー・セクション内のbatch_sizeパラメーターの設定は、その特定のデータベース・サーバーのグローバル・セクション内のbatch_sizeの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのbatch_sizeの設定が使用されます。 batch_sizeパラメーターがどちらのセクションにも指定されていない場合、デフォルト値の49142 (49142 * 8192 = 3 / 8GB)が使用されます。
scan_interval。 BARTバックアップカタログのアーカイブディレクトリにあるWALファイルのスキャンを強制的に実行するまでの秒数を指定します。 BART構成ファイルのサーバー・セクションのscan_intervalパラメーターの設定は、その特定のデータベース・サーバーのグローバル・セクションのscan_intervalの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのscan_intervalの設定が使用されます。いずれかのセクションでscan_intervalパラメータが指定されていない場合は、デフォルト値の0が使用されます。つまり、ブルートフォーススキャンは開始されません。
次に、グローバルセクションの例を示します。
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/bin/pg_basebackup
retention_policy = 3 MONTHS
logfile = /tmp/bart.log
scanner_logfile = /tmp/bart_scanner.log
以下の手順は、必要な構成パラメーターの決定方法を示しています。
手順1: pg_basebackupユーティリティプログラムがBARTホストにインストールされていることを確認します。まだ実行していない場合は、セクション3.2を参照してください。
BART構成ファイルで、次の例に示すように、 pg_basebackup_pathパラメータをpg_basebackupプログラムの場所に設定します
[BART]
bart_host = bartuser@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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ユーザーは現在の作業ディレクトリから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 = /opt/PostgresPlus/9.5AS/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によってサブディレクトリがまだ作成されていない場合は、設定ファイルにリストされている各データベースサーバのサブディレクトリが作成されます。
ステップ5: ログファイル設定パラメータをデフォルト値の/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の基本的なメカニズムは、SSH(Secure Shell)およびSCP(Secure Copy)Linuxユーティリティー・プログラムを使用して、バックアップおよびWALファイルをBART管理対象データベース・サーバーからBARTホストにコピーし、バックアップをリストアすることです。
クライアント/サーバーのSSHおよびSCP接続は、接続を確立するときにパスワードの入力を要求してはなりません。
パスワードのない接続は 、ターゲットサーバに接続するクライアントユーザアカウントの公開鍵のリストである 認可された公開鍵の 使用によって達成されます。
各クライアントユーザーアカウントはパブリックキーを生成します。パブリックキーは、ターゲットサーバー上のターゲットユーザーアカウントの許可された公開キーリストに追加する必要があります。
指示は次のセクションに分かれています。
4.2.1.1 項では、SSHサーバー・デーモンを実行しているサーバーで公開鍵認証の使用を最初に有効にする必要がある方法の例を示します。
セクション 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 ]
サービス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サブディレクトリがあるかどうかを確認します 。そうでない場合は、次のように作成します。
mkdir .ssh
chown ユーザー .ssh
chgrp usergroup .ssh
chmod 700 .ssh
どこ ユーザーは、ユーザーアカウント名とユーザーグループは、ユーザーの関連するグループです。
ステップ3:次のコマンドで公開鍵ファイルを生成します。すべてのデフォルトのプロンプトを受け入れ、プロンプトが表示されたらパスフレーズを指定しないでください。
ssh-keygen -t rsa
id_rsa.pub という名前の公開鍵ファイルは、 .sshサブディレクトリに作成されます
ステップ4:システム環境で使用可能な手段を使用して、ターゲットサーバ上にファイルid_rsa.pubのコピーを作成します。
たとえば、公開鍵ファイルを生成したばかりのクライアントにログインしているときは、SCPを使用してターゲットサーバ上に一時的なコピーを作成します。
scp〜 / .ssh / id_rsa.pub target_user @ host_address :tmp.pub
ステップ5:システム環境で可能な手段を使用して、ターゲットサーバにtarget_userとしてログインします。
たとえば、クライアントにログインしているときに、SSHを使用してターゲットサーバにログインします。
ssh target_user @ host_address
手順6:ターゲットユーザーアカウントのホームディレクトリに移動し 、既存の.sshサブディレクトリがあるかどうかを確認します 。そうでない場合は、手順2に示すように作成します。
ステップ7:一時的なクライアントの公開鍵ファイルtmp.pubをauthorized_keysという名前の許可鍵ファイルに追加します。既存の許可キーファイルが存在しない場合は、新しいファイルを作成しますが、既存の承認キーファイルを完全に置き換えないでください。
cat tmp.pub >>〜/ .ssh / authorized_keys
authorized_keysファイルは、グループや他のユーザーではなく、ファイル所有者のみがアクセスできるようにしてくださいauthorized_keysファイルに必要なアクセス許可設定(600)がないか、または新しく作成された場合は、次のようにファイルアクセス権を変更します。
chmod 600〜/ .ssh / authorized_keys
ステップ8:一時公開鍵ファイルtmp.pubを削除します。
rm tmp.pub
さて、 ユーザ としてクライアントシステムにログインすると、次のようなコマンドを入力したときにパスワードの入力を求められません。
ssh target_user @ host_address
または
scp ファイル名 target_user @ host_address directory_path
または
scp target_user @ host_address directory_path / file ファイル名
4.2.1.3 パスワードなしの必須BART接続
BARTの使用には、パスワードなしのSSH / SCP接続が必要な2つのシナリオがあります。
1。
2。
BITホスト(SSH / SCPクライアント)から各BART管理対象データベースサーバー(ターゲットSSH / SCPサーバー)まで、増分バックアップを取ったり、フルバックアップ、アーカイブWALファイル、および変更されたブロックの復元をサポートします。 BART RESTOREサブコマンドが指定されています。 注:特定のデータベース・サーバー・ホストからバックアップを取って別のデータベース・サーバー・ホストにリストアする場合は、パスワードのないSSH / SCP接続をBARTホストから、バックアップ先のデータベース・サーバー・ホストに構成する必要がありますBARTホストからバックアップをリストアするデータベースサーバーホストにも適用されます。
シナリオ1の場合、 ssh-keygen -t rsaコマンドで公開鍵ファイル( id_rsa.pub )が生成されるSSHクライアントがデータベースサーバーです。公開鍵ファイルは、データベースサーバを実行しているユーザアカウントによって生成されます。
〜/ .ssh / authorized_keysファイルに公開鍵ファイルを追加する対象のSSHサーバは、BARTホストです。 authorized_keysファイルは、BARTユーザーアカウントのホームディレクトリにあります。
シナリオ2の場合、 ssh-keygen -t rsaコマンドで公開鍵ファイル( id_rsa.pub )が生成される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ファイルには、最低限、次の例のrepuserのために示したようにtemplate1データベースへのアクセス権を持つようにレプリケーションデータベースのユーザーを許可する必要があります。
レプリケーションデータベースユーザーがデータベース 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_basebackupをスタンバイサーバなどのバックアップに使用する場合は、レプリケーションデータベースユーザをpg_hba.confファイルに複製データベース接続として含めて、この例の最後のエントリに示すようにする必要があります。
次のように、データベース・サーバーの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ファイルを使用する ことです。
たとえば、 bartuserは、BARTのユーザーアカウントで、その後、/home/bartuser/.pgpassに位置.pgpassファイルには、次のエントリが含まれている必要があります。
192.168.2.24:5444:*:repuser:password
ときしたがって、 bartuserは、BARTBACKUP、複製データベースユーザのパスワード、repuserを実行し、ポート5444上で192.168.2.24で実行されているデータベース・サーバに接続するためにbartuser.pgpassファイルから取得されます。
各BARTのエントリが含まれている必要があり.pgpassファイルには、データベース・サーバとそれに対応するレプリケーションデータベースのユーザーとパスワードを管理していました。
4.2.3 WALアーカイブの有効化
BARTがバックアップおよびリカバリ管理を実行するデータベースサーバでは、WALアーカイブを有効にする必要があります。
WALアーカイブについての背景情報については、以下の PostgreSQL Core Documentationを 参照してください
https://www.postgresql.org/docs/10/static/continuous-archiving.html
4.2.3.1 項で は、一般的な手動構成プロセスについて説明します。
4.2.3.2 項で は、より自動化された代替アプローチについて説明します。
4.2.3.1 WALアーカイブ構成
WALアーカイブを有効にするに は、 postgresql.conf ファイル で次の設定パラメータを設定する必要があり ます。
Postgres 9.5の場合はwal_levelを、Postgres 9.6以降の場合はレプリカ設定ます
archive_modeonに 設定し ます
archive_command設定して 、WALファイルをBARTバックアップカタログにコピーします。
設定したバックアップのために利用できる少なくとも一つのセッションを残すのに十分高い値にmax_wal_sendersをxlog_method =ストリームパラメータ設定は、BARTの構成ファイルで決定されるように、このデータベース・サーバで使用する場合、トランザクション・ログ・ストリーミングのための追加のセッションを考慮しなければならない設定max_wal_sendersは (つまり、設定が2の最小値でなければなりません) 。 xlog_methodパラメータの詳細は、 4.1および4.2.5項を参照してください。
注:このセクションで説明するarchive_command設定パラメータは、 postgresql.confファイルにあります。このPostgres archive_commandパラメータは、 BART archive_commandパラメータとは異なる方法で使用されます。このパラメータは、BART設定ファイルのサーバセクションで設定できますが、特定の条件下でのみ設定できます。
BART SHOW-SERVERSサブコマンドによって表示されるアーカイブパスのフィールドには、postgresql.confファイル内のPostgres にarchive_command設定パラメータで指定されたWALファイルをコピーする必要があり、完全なディレクトリパスを示しています。
-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"
次の例では、 SALは、 bartuserユーザーアカウントとして192.168.2.22にあるBARTホストのディレクトリ / opt / backup / acctg / archived_walsWALファイルをコピーします。
使用 bartuserアカウントは、操作がbartuserが所有BARTのバックアップカタログにコピーすることができます。
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 = /opt/PostgresPlus/9.5AS/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設定を上書きします。さらに、 postgresql.confまたはpostgresql.auto.confファイルにPostgres archive_commandの既存の設定がなくても、 archive_mode設定パラメータがoffに設定さている場合は、 -oオプションを使用してコマンド文字列を生成する必要があります。
注意: 4.2.3.1項で説明したように、 postgresql.confファイルでPostgresのarchive_commandパラメータを設定し、その特定の設定を使用する場合は、 INITサブコマンドを実行するときに-oオプションを指定しないでください。そうでない場合は、Postgresのarchive_command設定が上書きされますこのセクションで説明されている自動構成プロセスに従って実行されます。
デフォルト以外のアーカイブコマンドを使用すると、BART設定ファイルのserverセクションにBART archive_commandパラメータを目的のコマンド文字列で設定することができます。
この例では、BART archive_commandパラメータを明示的に設定して、次のBART構成ファイルを使用します。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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ファイル 、postgresql.confファイルに必要なWALアーカイブの設定を完了します。
Postgres 9.5の場合はwal_levelを、Postgres 9.6以降の場合はレプリカ設定ます
archive_modeonに 設定し ます
設定したバックアップのために利用できる少なくとも一つのセッションを残すのに十分高い値にmax_wal_sendersをxlog_method =ストリームパラメータ設定は、BARTの構成ファイルで決定されるように、このデータベース・サーバで使用する場合、トランザクション・ログ・ストリーミングのための追加のセッションを考慮しなければならない設定max_wal_sendersは (つまり、設定が2の最小値でなければなりません) 。 xlog_methodパラメータの詳細は、 4.1および4.2.5項を参照してください。
WALアーカイブを開始する準備ができたら、データベースサーバーを再起動します。
データベースサーバが再起動されると、 SHOW-SERVERSサブコマンド ARCHIVE COMMANDフィールドに、アクティブなPostgres archiveコマンドが次のように表示されます。
-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 )バックアップファイル形式を使用する必要があります。
pg_basebackupでフルバックアップを取るトランザクションログストリーミング( xlog_method = BART構成ファイルのストリーム )は、 -F pオプションがBACKUPサブコマンドで指定されているかぎり使用できます。したがって、トランザクション・ログ・ストリーミングは、ユーザー定義の表領域を含むデータベース・クラスタで使用できます。
バックアップする予定の特定のデータベース・クラスタに CREATE TABLESPACEコマンドで作成された表領域が含まれている場合は、BART RESTORE操作を実行する前にBART構成ファイルにtablespace_pathパラメータを設定してください。
tablespace_pathパラメータを使用すると 、表領域を復元したい先のディレクトリパスを指定します。
tablespace_pathパラメータは次の形式を取ります。
OID_1 = tablespace_path_1 ; OID_2 = 表スペース _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にそれぞれ1664416645です。後で前述の例で示したものと同じ場所に表領域をリストアする場合は、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オプションを指定している場合)、指定された表スペース・ディレクトリーが指定されたリモート・ホスト上に存在している必要があります。
ディレクトリは、メインフルバックアップを復元するディレクトリパスに必要とされるように、データベースサーバ(通常はPostgreSQLユーザアカウント)を起動する予定のユーザアカウントが所有していなければなりません。 。
次に、表領域を含むリモート・ホスト上のデータベース・クラスタのバックアップおよびリストアの例を示します。
注:この例では、表スペース使用の影響を受けるステップを強調しています。データベースクラスタのバックアップとリストアに必要な完全なプロセスについては、第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 = /opt/PostgresPlus/9.5AS/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設定ファイルのサーバセクションにエントリが必要です。
次のパラメータは、サーバーセクションのデータベースサーバーに適用されます。
[サーバーの名前]。 構成ファイルのサーバー・セクション内のデータベース・サーバーの項目を識別します。これは、BARTを使用してデータベースサーバを参照するための名前です。名前は、BARTサブコマンドオプションで参照されるときに大文字小文字を区別しません。この名前の小文字変換を使用して、このデータベースサーバーのバックアップファイルとWALファイルを格納するためのBARTバックアップカタログにサブディレクトリを作成します。このパラメータは必須です。
バックアップ名。ユーザー定義のわかりやすい名前をデータベース・サーバーのバックアップに割り当てるためのテンプレート。テンプレートは、バックアップが取られたときのタイムスタンプ値によって置換される次の変数を含むことができる英数字の文字列である: - 4桁の年、2)%月 - 2桁の月、3)%の 1 日目 )%の年間 - 4) %時間 - 2桁時間、5) - 2桁分、および6) %秒 - 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オペレーティングシステムのユーザーアカウント。これは通常、Oracleデータベース、またはPostgreSQLデータベースクラスタ用とPostgreSQLデータベースとの互換性モードでインストールAdvanced Serverのデータベースクラスタ用のpostgresとの互換性モードでインストールAdvanced Serverのデータベース・クラスタのためのEnterpriseDBされます。このパラメータは必須です。
リモートホスト。バックアップが復元されるリモートサーバーの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という形式で指定します OID = tablespace_path ... backupをremote_hostパラメータで指定されたようなリモート・ホストにリストアする場合は、表スペース・パスがリモート・ホスト上に存在する必要があります。このパラメータはオプションです。
retention_policy。アクティブなバックアップが不要とマークされ、削除の候補になるべき時期を決定します。設定は、 max_number BACKUPSmax_number DAYSmax_number WEEKS 、またはmax_number MONTHSのいずれかです 。max_numberは正の整数です。キーワードBACKUPSDAYSWEEKS 、およびMONTHSがすべて省略された場合、指定された整数はデフォルトでmax_number BACKUPSとして解釈されます。 BART構成ファイルのサーバー・セクション内のretention_policyパラメーターの設定は、グローバル・セクション内のretention_policyの設定をオーバーライドします。サーバーセクションで省略すると、グローバルセクションのretention_policyの設定が使用されます。いずれかのセクションでretention_policyパラメーターが指定されていない場合、 MANAGEサブコマンドを使用すると、追加のバックアップは廃止とマークされません。保持ポリシーを使用したバックアップの管理については、 5.2節を参照してください。
xlog_method。 BACKUPサブコマンドによるpg_basebackupの実行中にトランザクションログを収集する方法を決定します。バックアップが完了した後にトランザクションログファイルを収集するようにフェッチするように設定します。フルバックアップの作成と並行してトランザクションログをストリーム配信するように設定しますstreamを使用する場合、このデータベースサーバのpostgresql.confファイルのmax_wal_senders設定パラメータは、トランザクションログのストリーミングのための追加セッションを考慮する必要があります(つまり、設定は最低2でなければなりません)。 BART構成ファイルのサーバー・セクションのxlog_methodパラメーターの設定は、グローバル・セクションのxlog_methodの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのxlog_methodの設定が使用されます。いずれかのセクションでxlog_methodパラメーターが指定されていない場合、デフォルトはfetchです。
wal_compression。 MANAGEサブコマンドが呼び出されたときに、BARTバックアップカタログでアーカイブされたWALファイルの圧縮を有効にします。アーカイブされたWALSファイルをgzip形式で圧縮するには、 enabledに設定します。ファイルを圧縮解除したままにするには、 disabledに設定します。 注意: gzip圧縮プログラムは、BARTユーザーアカウントのPATHになければなりません。 注:増分バックアップを実行するデータベースサーバーでは、アーカイブされたWALファイルの圧縮は許可されていません。 BART構成ファイルのサーバー・セクションのwal_compressionパラメーターの設定は、グローバル・セクションのwal_compressionの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのwal_compressionの設定が使用されます。どちらのセクションでもwal_compressionパラメーターが指定されていない場合、デフォルトは無効です。 WAL圧縮にMANAGEサブコマンドを使用する方法については、第5.4.7項を参照してください。
copy_wals_during_restore。 RESTOREサブコマンドを呼び出すときに、アーカイブされたWALファイルの収集方法を決定します。データベースサーバのアーカイブリカバリに先立って、 有効に設定すると、アーカイブされたWALファイルがBARTバックアップカタログからrestore_path / archived_walsディレクトリにコピーされます。データベースサーバのアーカイブリカバリ中に、BARTバックアップカタログからアーカイブされたWALファイルを直接取得するには、 無効に設定しますrecovery.confファイルのBARTによって生成されたrestore_commandパラメータには、2つのオプションのどちらが使用されているかが反映されています。 -cオプションを指定してRESTOREサブコマンドを実行すると、アーカイブされたWALファイルがBARTバックアップカタログからrestore_path / archived_walsディレクトリにコピーされ、BART構成ファイルのcopy_wals_during_restoreパラメータの設定が上書きされます。 -cオプションを指定せずにRESTOREサブコマンドを実行すると、アーカイブされたWALファイルのリストア方法が決まります。BART構成ファイルのserverセクションのcopy_wals_during_restoreパラメータの設定は、グローバル・セクションのcopy_wals_during_restoreの設定を上書きします。サーバーセクションで省略された場合は、グローバルセクションのcopy_wals_during_restoreの設定が使用されます。いずれかのセクションでcopy_wals_during_restoreパラメータが明示的に設定されていない場合、デフォルトは無効です。詳細は、 5.4.8項を参照してください。
allow_incremental_backups。インクリメンタルバックアップ用のWALスキャナの使用を有効にします。 --parentオプションを指定してBACKUPサブコマンドを呼び出したときに増分バックアップを取ることを許可します。増分バックアップを許可するには、 enabledに設定します。増分バックアップを許可しないようにするには、 無効に設定して、フルバックアップのみを許可します。 allow_incremental_backupsパラメーターを指定しないと、デフォルトは使用不可になります 。増分バックアップを取るためのBACKUPサブコマンドの使用については、 5.4.3項を参照してください。 WALスキャナの実行については、 5.5項を参照してください。増分バックアップの一般的な情報については、セクション2.2を参照してください。
スレッド数。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、データベース・サーバーからBARTバックアップ・カタログへブロックをコピーするワーカー・スレッドの数を指定します。ワーカー・スレッドがデータ・ファイルをデータベース・サーバーからBARTバックアップ・カタログにコピーするフル・バックアップにも同じアプローチが適用されます。 BACKUPサブコマンドが-zまたは-cオプションで指定されている場合、圧縮されたバックアップを並列に提供するために、フルバックアップをとるときに圧縮操作に同じ一連のプロセスが使用されます。 注:圧縮操作は増分バックアップには適用されません。 BACKUPサブコマンドが--thread-countオプションで呼び出された場合、このオプションで指定されたワーカー・スレッドの数は、BART構成ファイル内のthread_countパラメータの設定を上書きします。 BACKUPサブコマンドが--thread-countオプションなしで呼び出された場合、使用されるワーカー・スレッドの数は次のように決定されます。BART構成ファイルのserverセクションのthread_countパラメータの設定は、グローバル・セクションのthread_countの設定を上書きします。サーバーセクションで省略された場合、グローバルセクションのthread_countの設定が使用されます。いずれかのセクションでthread_countパラメータが指定されていない場合、デフォルトは1です。 注意:フルバックアップをとるとき、実際のスレッド数が1にすぎない場合は、 BACKUPサブコマンドで--no-pg_basebackupオプションを指定しないかぎり、 pg_basebackupユーティリティを使用して完全バックアップを実行します。
バッチサイズ。増分バックアップのためにBACKUPサブコマンドが呼び出されたときに、変更されたブロックをデータベース・サーバーからBARTバックアップ・カタログにコピーするために使用されるメモリーのブロック数を指定します。各ブロックは8192バイトです。指定できる最大値は131072 (131072 * 8192 = 1 GB)です。最小許容値は1です (1 * 8192 = 8192バイト)。 pg_read_binary_file()を実行しているときにサーバーがメモリ不足を起こしていると言うと、設定を減らしてください。 BART構成ファイルのサーバー・セクション内のbatch_sizeパラメーターの設定は、グローバル・セクション内のbatch_sizeの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのbatch_sizeの設定が使用されます。 batch_sizeパラメーターがどちらのセクションにも指定されていない場合、デフォルト値の49142 (49142 * 8192 = 3 / 8GB)が使用されます。
scan_interval。 BARTバックアップカタログのアーカイブディレクトリにあるWALファイルのスキャンを強制的に実行するまでの秒数を指定します。 BART構成ファイルのサーバー・セクションでのscan_intervalパラメーターの設定は、グローバル・セクション内のscan_intervalの設定をオーバーライドします。サーバーセクションで省略された場合、グローバルセクションのscan_intervalの設定が使用されます。いずれかのセクションでscan_intervalパラメータが指定されていない場合は、デフォルト値の0が使用されます。つまり、ブルートフォーススキャンは開始されません。
説明。データベースサーバーの説明。このパラメータはオプションです。
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.
 
#[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.
 
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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。
CHECK-CONFIGサブコマンドを-sオプションなしで実行します。 CHECK-CONFIGサブコマンドは、 -sオプションを指定してサーバーを指定せずに使用すると、BART構成ファイルのグローバル・セクションのパラメーターを検査します。
2。
まだ実行していない場合は、 INITサブコマンドを実行してBARTバックアップカタログの作成を完了します。その結果、バックアップとWALファイルが保存される完全なディレクトリ構造になります。このステップは原因ターゲットアーカイブのディレクトリが存在しないために、有効なWALアーカイブとデータベースサーバを再起動する前に、postgresql.confファイルまたはpostgresql.auto.confファイルにarchive_commandパラメータにそうでない場合は、コピー操作失敗を行わなければなりません。ディレクトリー構造が完成したら、 アーカイブ・パスと呼ばれるserver_name / archived_walsという最下位レベルのサブディレクトリーが各データベース・サーバーごとに存在する必要があります。
3。
アーカイブを有効にしてPostgresデータベースサーバを起動します。各データベースサーバーのserver_name / archived_walsアーカイブパスにWALファイルが表示されていることを確認します。 (アーカイブ頻度は他のpostgresql.conf設定パラメータに依存します。)Postgresデータベースサーバのログファイルをチェックして、アーカイブエラーがないことを確認します。バックアッププロセス中に作成されるWALファイルが確実にアーカイブされるように、バックアップを取る前に、アーカイブを操作する必要があります。
4。
5。
サーバ名を指定する-sオプションを使用して、各データベースサーバのBART CHECK-CONFIGサブコマンドを実行します。これにより、バックアップを取るためにデータベースサーバーが適切に構成されます。
6。
実行できるその他のBART管理プロセスがいくつかあります。
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とバックアップ名をリストします。最新のバックアップを復元する場合を除き、バックアップIDまたはバックアップ名を指定するRESTOREサブコマンドの-iオプションを省略する場合を除き、適切なバックアップIDまたはバックアップ名をBART RESTOREサブコマンドとともに指定する必要があります。
4。
適切なオプションを指定してBART RESTOREサブコマンドを実行します。バックアップは、 -p restore_pathオプションで指定されたディレクトリにリストアされます。さらに、 RESTOREサブコマンド-cオプションが指定されている場合、またはcopy_wals_during_restore BART設定パラメータの有効な設定がデータベースサーバに適用可能な場合、BARTバックアップカタログから必要なアーカイブWALファイルがrestore_path / archived_walsサブディレクトリにコピーされます。 注意: restore_pathディレクトリとそのサブディレクトリとファイルは、適切なPostgresユーザーアカウント( enterprisedbpostgresなど )が所有していることを確認してください。また、Postgresユーザーアカウントだけがrestore_pathディレクトリへのアクセス権を持っていることを確認してください。必要な場合は、 chown -R enterprisedb:enterprisedb restore_pathまたはchmod 700 restore_pathなどの適切な調整を行います。
5。
ステップ2の BAL バックアップカタログにアーカイブされていなかったWALファイルを restore_path / pg_xlogサブディレクトリにコピーします。
6。
Point-in-Timeリカバリ用に生成された場合は、 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ファイルを変更します。
8。
BARTサブコマンドの詳細については、 5.4 項を参照してください
5.2 保持ポリシーを使用したバックアップの管理
BARTを使用している間、バックアップの数が大幅に増加する可能性があります。これにより、管理者が不要になった最も古いバックアップを削除するプロセスを定期的に実行しない限り、最終的にディスク領域の消費量が大きくなります。
バックアップがいつ古いものであるかを判断し、実際にそのようなバックアップを削除するこのプロセスは、次の基本的な手順で実行され、最終的に自動化されます。
1。
BART構成ファイルで保持ポリシーを決定して設定します。 保持ポリシーは、バックアップが不要とみなされたときに決定するルールです。保持ポリシーはすべてのサーバにグローバルに適用できます( 4.1項を参照)。ただし、各サーバはグローバル保持ポリシーを独自のポリシーで上書きできます( 4.2.5項を参照)。
2。
MANAGEサブコマンドを使用して、保存方針に従ってバックアップを分類および管理します。このような機能には、現在の時点で廃止予定とみなされるべきアクティブなバックアップを決定すること、無期限に保存するバックアップを選択すること、および不要なバックアップを物理的に削除することが含まれます。廃止されたバックアップが削除されると、そのバックアップのアーカイブされたWALファイルとともにBACKUPサブコマンドで取得されたバックアップが削除されます。
3。
保持ポリシーが決定され、確認されたら、cronジョブを作成して定期的に MANAGEサブコマンドを実行してバックアップを評価し、不要なバックアップを一覧表示および/または削除することができます
完全バックアップと比較して、増分バックアップに保持ポリシー管理を適用する方法には違いがあります。
フルバックアップに適用される保存ポリシー管理が増分バックアップにどのように影響するかについては、 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つのタイプがあります。
冗長性保持ポリシー。 冗長性保持ポリシーは、指定されたサーバに保持する最新のバックアップの最大数に依存します。バックアップの数がその最大数を超えると、最も古いバックアップは廃止されたものとみなされます(keepとマークされたバックアップを除く)。 5.2.3.1項では、このタイプの保持ポリシーについて説明します。
リカバリウィンドウの保持ポリシー。 リカバリウィンドウの保存ポリシーは、バックアップをアクティブにしなければならない場合の時間枠(リカバリウィンドウ)に依存します。リカバリウィンドウを定義する境界は、現在の日付/時刻(リカバリウィンドウの終了境界)と、指定された時間(リカバリウィンドウの開始境界)の過去の日付/時刻です。バックアップが取られた日時がリカバリウィンドウ内にある場合(つまり、バックアップ日時がリカバリウィンドウの開始日時以降である場合)、バックアップはアクティブとみなされます。そうでない場合は、古いものとみなされます(keepとマークされたバックアップを除く)。 5.2.3.2項では、このタイプの保持ポリシーについて説明します。
したがって、リカバリウィンドウの保持ポリシーでは、リカバリウィンドウの時間枠が動的にシフトするため、リカバリウィンドウの最後は常に MANAGEサブコマンドの実行時の現在の日付/時刻になります。将来の時点でMANAGEサブコマンドを実行すると、リカバリウィンドウの開始境界が前方に移動します。
将来のある時点で、バックアップが取られた日時は、リカバリウィンドウの開始境界より早くなります。これは、アクティブなバックアップの状態が時代遅れとみなされる場合です。
SHOW-SERVERSサブコマンドを実行すると、いつでもリカバリウィンドウの開始境界を確認できますSHOW-SERVERSサブコマンドのRETENTION POLICYフィールドには、回復ウィンドウの開始境界が表示されます。
5.2.2 バックアップ・ステータスのマーク付け
バックアップが最初に BACKUPサブコマンドで作成されると、バックアップは常にアクティブな状態で記録されます。
特定の時点でMANAGEサブコマンドを使用することによってのみ 、活動状態のバックアップが評価され、その状態を保存方針に従って時代遅れに変更する必要があるかどうかを判断することができます。
さらに、オプションが指定されていないか、 -sオプション(データベースサーバを指定する)だけで、アクティブバックアップが評価され、 マーク付けされる (つまり、BARTによって内部的に記録される) MANAGEサブコマンドが呼び出された場合時代遅れのオプションでのMANAGEサブコマンドの使用方法については、 5.4.7項を参照してください。
バックアップが廃止とマークされると、次の手順を実行しない限り、バックアップをアクティブに戻すことはできません。
MANAGEサブコマンドを使用して、バックアップ識別子または-iオプションとともに-cオプションを指定します。この特定のバックアップを無期限に保つには-c keepを使用します。それ以外の場合は-c nokeepを使用します。
-c nokeepオプションを使用した場合 、バックアップの状態はactiveに戻されます。次にMANAGEサブコマンドを使用すると、BART構成ファイルの現在の保持ポリシーに基づいて、その状態を古いものに戻す必要があるかどうかを判断するために、バックアップが再評価されます。
場合がありますバックアップの現在、マークの状態、そのretention_policy設定に従ってバックアップをマークし、その後、あなたはそれをコメントアウトすることでretention_policyパラメータを変更したり、無効にするにはretention_policyパラメータは、特定の方法で設定されている、あなたが管理サブコマンドを実行します現在のretention_policy設定と矛盾している可能性があります。
現在の retention_policy設定と一致するようにバックアップステータスを変更する場合は、次の手順を実行します。
新しい保存ポリシーのもとで廃止予定と見なされなくなった現在廃止とマークされたバックアップがある場合は 、そのようなバックアップのために-c nokeepオプションを指定してMANAGEサブコマンドを実行して、廃止ステータスをアクティブステータスに変更します。 -i allオプションを指定することもできます。これにより、現在保持されているものを含め、すべてのバックアップがアクティブな状態に戻されます。
オプションを指定しないか、 -sオプションのみを指定し MANAGEサブコマンドを実行すると、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を 設定し ます。ここで、 max_numberは、最新のバックアップの最大数を指定する正の整数です。
追加の制限事項は次のとおりです。
キーワード BACKUPSは、常に複数の形式(たとえば、 1 BACKUPS )で指定する必要があります。
BARTは max_number に2,147,483,647の最大整数値を受け入れますが、システム環境に基づいて現実的で実用的な値を常に使用する必要があります。
すべてのキーワードの場合、冗長性の保持ポリシーは、保持ポリシーのデフォルトのタイプである :以下の例で示すようにバックアップ 、およびMAX_NUMBER整数ヶ月省略されています
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バックアップ冗長性保持ポリシー:
-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 WEEKS設定すると、開始日時リカバリ・ウィンドウの境界をmax_numberで指定された週数で定義し、現在の日付/時刻から時刻を戻します。
max_number MONTHS設定すると、開始日時リカバリウィンドウの境界をmax_numberで指定された月の数として定義し、現在の日付/時刻から時刻を戻します。
追加の制限事項は次のとおりです。
キーワード DAYSWEEKS 、およびMONTHSは、常に複数の形式(たとえば、 1 DAYS1 WEEKS 、または1 MONTHS )で指定する必要があります。
BARTは max_number に2,147,483,647の最大整数値を受け入れますが、システム環境に基づいて現実的で実用的な値を常に使用する必要があります。
バックアップの日付/時間が2番目の精度まで回復ウィンドウの日付/時間の開始以上であれば、バックアップはアクティブと見なされます。
次のように実際の計算されたリカバリウィンドウを表示するには、いくつかの方法があります。
-nオプションを指定してMANAGEサブコマンドを使用してデバッグモード( -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サブコマンドは、2015年4月17日に-nオプションと一緒にデバッグモードで起動され、次の結果が表示されます。
-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日間の復旧ウィンドウに変換されます。
サーバー 開発者の場合、504時間は21日(3週間)の復旧ウィンドウに変換されます。
サーバー hrの場合、2160時間は90日(3か月)の復旧ウィンドウに変換されます。
注: max_number MONTHSの設定の場合、計算された回復期間の合計日数は、現在の日付/時刻から先月の実際の日数に依存します。したがって、 max_number MONTHSは必ずしもmax_number x 30 DAYSと正確に等しいとは限りません。たとえば、現在の日付/時刻が3月の場合、1カ月の復旧期間は前の月が2月であるため28日に相当するため、3月31日の現在の日付については、しかし、典型的な結果は、回復の開始ウィンドウの境界の月の日が、 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"
RETENTION POLICYフィールドに表示される3日間の復旧ウィンドウの開始は、 2015-04-10で SHOW-SERVERSサブコマンドが呼び出されると、 2015-04-07 14:57:36 EDTになります
現在の時点では、 2015-04-07 14:57:36 EDT 以降のバックアップはアクティブと見なされます。 2015-04-07 14:57:36 EDTより前に取られたバックアップは、keepとマークされたバックアップを除いて、廃止されたとみなされます。
-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"
RETENTION POLICYフィールドに表示される3週間のリカバリー・ウィンドウの開始 時刻は、 2015-04-10で SHOW-SERVERSサブコマンドが呼び出されると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"
RETENTION POLICYフィールドに表示される3ヶ月の回復ウィンドウの開始は、 2015-04-10で SHOW-SERVERSサブコマンドが呼び出されたときに2015-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サブコマンドは、特別な管理目的でのみ使用してください。
DELETEサブコマンドを使用した場合と比較して、MANAGEサブコマンドと-dオプションを使用する場合の重要な違いは次のとおりです。
サブコマンドの削除を管理する (つまり、内部BARTによって記録されている)のみのバックアップステータスは、現在マークされているかに依存しています。 BART構成ファイルのretention_policyパラメータの現在の設定は無視されます。
DELETEサブコマンドは、もっぱらBARTの設定ファイルのretention_policyパラメータの現在の設定に依存しています。バックアップの現在のアクティブ、廃止、または保持状態は無視されます。
したがって、 MANAGEサブコマンドおよびDELETEサブコマンドの削除動作は、保持ポリシーのさまざまな側面に基づいています。
MANAGEおよびDELETEサブコマンドの特定の削除ルールは次のとおりです。
-dオプションとサブコマンドを管理するだけで時代遅れとしてマークされたバックアップを削除することができます。この削除は、BART構成ファイルの現在のretention_policy設定に関係なく行われます。
BART構成ファイルのretention_policyパラメータで現在設定されている冗長性保持ポリシーの下で、マークされた状態に関係なくバックアップは、バックアップ識別子または名前が-iオプションで指定されている場合はDELETEサブコマンドで削除できます。指定されたデータベース・サーバーの合計バックアップ数は、 retention_policyパラメーターで現在指定されている冗長バックアップの最大数よりも大きくなります。バックアップの合計数が、指定された最大冗長バックアップ数以下の場合、 -i backupオプションを指定してDELETEを使用して追加のバックアップを削除することはできません。
BART構成ファイルのretention_policyパラメータで現在設定されているリカバリ・ウィンドウ保存ポリシーでは、マークされた状態に関係なくバックアップが行われます。バックアップ識別子または名前が-iオプションで指定されている場合はDELETEサブコマンドで削除できます。バックアップ日時がretention_policyパラメーターで現在指定されているリカバリー・ウィンドウ内にない。バックアップ日時がリカバリ・ウィンドウ内にある場合は、 -i backupオプションを指定してDELETEを使用して削除することはできません。
-i allオプションを指定して DELETEサブコマンドを呼び出すと、保持ポリシーに関係なく、ステータスがアクティブ、廃止、または保持のいずれであるかに関係なく、すべてのバックアップが削除されます。
次の表は、マークされたステータスに従ってバックアップの削除ルールをまとめたものです。 「はい」と入力すると、指定された状況下でバックアップが削除される可能性があります。 「いいえ」のエントリは、バックアップが削除されないことを示します。
表5-1ステータス別の許容可能なバックアップ削除
DELETE -i backup
注1:削除は、指定されたデータベースサーバーの合計バックアップ数が、BART構成ファイルのredundancy_policyパラメーターで現在設定されている冗長バックアップの最大数より大きい場合にのみ発生します。
注2:削除は、バックアップがBART構成ファイルのredundancy_policyパラメータで現在設定されているリカバリ・ウィンドウ内にない場合にのみ発生します。
5.2.4.2 無期限のキープ状態のバックアップのマーク
バックアップを無期限にしたい場合があります。そのため、データベースサーバーに適用されている保持ポリシーに基づいて削除を実行したくない場合があります。
そのようなバックアップは、古いものとしてマークされないようにするために、keepとマークすることができます。
次の例のように、バックアップを無期限に保持するには、 -c keepオプションとともにMANAGEサブコマンドを使用します。
-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
次回、オプションを指定しないで、または-sオプションのみを指定し MANAGEサブコマンドを呼び出すと、現行のretention_policy設定に従ってアクティブバックアップが廃止とマークされることがあります。
5.2.4.3不要なバックアップの評価、マーキング、および削除
冗長性保持ポリシーのデータベースサーバの現在のバックアップ数または回復ウィンドウの保存ポリシーの現在の日付/時刻に基づいて、 MANAGEサブコマンドが呼び出されると、 -sオプションで指定されたデータベースサーバのアクティブバックアップが評価されるか、 -s allが指定されている場合、または-sオプションが省略されている場合は、すべてのデータベースサーバに対して
注:現在廃止または保持とマークされているバックアップの状態は変更されません。このようなバックアップを再評価して分類するには、 MANAGE -c nokeepオプションを使用して、その状態を最初にアクティブにリセットする必要があります。詳細については、 5.2.2項を参照してください。
このセクションでは、冗長性保持ポリシーの最初のものと回復ウィンドウの保存ポリシーの2つ目の例の2つの例による評価、マーキング、および削除プロセスについて説明します。
冗長性保持ポリシー
次の例では、次のサーバー構成に示すように、冗長保持ポリシーを使用しています。
[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
-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'
ドライランで は、バックアップ 14285020498361428422324880は廃止とマークされます。
また、ドライランはバックアップの状態を変更しないことに注意してください。廃止予定と見なされる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
-nオプションを省略し MANAGEサブコマンドを実行して、バックアップのステータスを変更し、古いものとしてマークします。
-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'
時代遅れのバックアップは、さまざまな方法で確認できます。廃止されたバックアップをリストするには、 -lオプションとともにMANAGEサブコマンドを使用します。
-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ファイルを含む不要なバックアップを物理的に削除するには MANAGEサブコマンドと-dオプションを使用します。
-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-バックアップはサブコマンド現在アクティブとしてマークされ、残りのバックアップを表示するか、維持します:
-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日間のリカバリウィンドウでは、2015-04-10 16:46:35 EDT以前のバックアップは、[keep]とマークされたものを除き、古いものとして評価されます。
-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'
ドライ運転では、バックアップ 14286845440081428590536488は廃止とマークされます。
また、ドライランはバックアップの状態を変更しないことに注意してください。廃止予定と見なされる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
-nオプションを省略し MANAGEサブコマンドを実行して、バックアップのステータスを変更し、古いものとしてマークします。
-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'
時代遅れのバックアップは、さまざまな方法で確認できます。廃止されたバックアップをリストするには、 -lオプションとともにMANAGEサブコマンドを使用します。
-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ファイルを含む不要なバックアップを物理的に削除するには MANAGEサブコマンドと-dオプションを使用します。
-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-バックアップはサブコマンド現在アクティブとしてマークされ、残りのバックアップを表示するか、維持します:
-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サブコマンドが呼び出され、フルバックアップに適用されるステータスは、チェーン内のすべての連続した増分バックアップに適用されます。
-c {続けるとサブコマンドを管理 | nokeep}オプションは、 -i backupオプションを使用して増分バックアップのバックアップ識別子またはバックアップ名を指定することはできません。 -i backupオプションは、フルバックアップのバックアップ識別子またはバックアップ名のみを指定できます。オプション-i allを使用することができます。 MANAGEサブコマンドを-c {keep | nokeep}オプションがフルバックアップに適用されている場合、チェイン内のすべての増分バックアップに対して同じ状態が変更されます。
バックアップオプションは、すべての連続する増分バックアップとともに増分バックアップは、このようにそのバックアップチェーンを短くする、削除された場合には、増分バックアップのバックアップ識別子またはバックアップ名を指定することが許可されている-i -s サーバDELETEサブコマンド。
増分バックアップの冗長保持ポリシーの例については、 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出力から省略されています)。
-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
次のセクションでは、回復ウィンドウの保存ポリシーを使用した例を示します。 DELETEサブコマンドの使用法とともに他のオプションとともにMANAGEサブコマンドの使用例をこの次のセクションで示します。
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出力から省略されています)。
-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に正確に1日早く開始されます。このバックアップは、 2016-12-12 09:14:39 EST (リカバリウィンドウの開始前約 5分半)で行われ、バックアップが不要になりました。
-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オプションを指定したMANAGEサブコマンドでは、チェーンのフルバックアップのバックアップ識別子またはバックアップ名を指定する必要があり、増分バックアップは指定しないでください。
-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'
次のように、キープ状態のバックアップチェーンのみが残ります。
-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バックアップカタログのディレクトリを作成しますBART にarchive_commandパラメータの設定からのPostgres にarchive_commandのパラメータを設定し、backupinfoファイルを再構築。 5.4.2節を参照してください。
バックアップ。フルバックアップまたは増分バックアップを取る。 5.4.3項を参照してください。
SHOW-SERVERS。 BARTによって管理されるデータベースサーバを表示します。 5.4.4節を参照してください。
ショウバック。 BARTによって取得されたバックアップの情報を表示します。 5.4.5項を参照してください。
証明書 - CHKSUM。フルバックアップのチェックサムを確認します。 5.4.6項を参照してください。
MANAGE。保存ポリシーを使用してバックアップを管理します。アーカイブされたWALファイルを圧縮します。 5.4.7項を参照してください。
リストア。バックアップを復元し、オプションでPoint-in-TimeリカバリのアーカイブWALファイルを復元するためのrecovery.confファイルを生成します。 5.4.8項を参照してください。
DELETE。バックアップを削除します。 5.4.9節を参照してください。
BART WALスキャナの使用方法と情報については、 5.5 項を参照してください
バートプログラムの指定に続いてすぐに与えられる多くの一般的なBARTオプションがあります
一般的なBARTオプションの後に、指定されている場合は、BARTサブコマンドを指定できます。サブコマンドを呼び出すとき、サブコマンド名は大文字小文字を区別しません(つまり、サブコマンドは大文字、小文字、または大文字と小文字を区別して指定できます)。
各サブコマンドには、サブコマンドの後に指定された独自の適用可能なオプションが多数あります。すべてのオプションは、単一文字と複数文字の両方の形式で使用できます。
オプションのキーワードは、この章で別に指定する場合を除いて、通常小文字でなければなりません。
BARTを呼び出す一般的な構文は次のとおりです。
バート[ gen_option ] ... [ subcmd ] [ subcmd_option ] ...
BARTを起動するときは、 4.1 項の手順2で説明したように、現在のユーザーがBARTユーザーアカウントでなければなりません
ことをお勧めしますが BART_HOME / binディレクトリには、BARTのユーザーアカウントのPATH環境変数に含まれ、BARTのプログラムは、現在の作業ディレクトリとしてBART_HOME /ビンから呼び出すことができます。呼び出しの手順は次のようになります。
cd BART_HOME / bin
export PATH =。:$ PATH
./bart [ gen_option ] ... [ subcmd ] [ subcmd_option ] ...
注意: コマンドexport PATHを=:$ PATHには、PATHに現在の作業ディレクトリBART_HOME /ビンを含むために必要とされます。これは、特定のBARTサブコマンドに対するbartプログラムの呼び出しが、 BART_HOME / binにあるbart-scannerプログラムを呼び出すので必要です。
注意: BARTサブコマンドの実行に失敗し、次のエラーメッセージが表示される場合は、 LD_LIBRARY_PATHを libpqライブラリディレクトリを含めるように設定する必要があります。
./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
config_file_path を、BART構成ファイルへの完全なディレクトリー・パスとして 指定し ます。デフォルトのBART設定ファイル BART_HOME /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サブコマンドのヘルプ・オプションの例を示します
-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オプションを省略しています。
わかりやすくするために、構文図にはオプションの1文字の形式だけが示されています。 オプションのサブセクションでは、オプションの単一文字と複数文字の両方の形式をリストアップ。
5.4.1 CONFIGを確認する
CHECK-configサブコマンドは、BARTのコンフィギュレーション・ファイルのパラメータ設定だけでなく、-sオプションが指定されているデータベース・サーバーの構成をチェック。
バートCHECK-CONFIG [-s サーバ名 ]
ときに -sオプションが省略され、bart_host、BACKUP_PATH、およびpg_basebackup_pathなどのパラメータを含むグローバルセクションでは、チェックされます。
-sオプションが指定されると、指定されたサーバーセクションのパラメーターが検査されます。さらに 、データベースサーバの特定の postgresql.confパラメータを適切に設定する必要があり、特定のプロセスに対してデータベースサーバを有効にする必要があります。これらの要件には、以下が含まれます。
cluster_ownerパラメータは、データベースクラスタディレクトリを所有するユーザアカウントに設定する必要があります。
pg_hba.confファイルは、BARTのユーザパラメータで指定されたデータベースのスーパーユーザのための複製エントリを含める必要があります。
postgresql.confファイル archive_modeパラメータを有効にする必要があります。
postgresql.auto.confまたはpostgresql.confファイル archive_commandパラメータを設定する必要があります。
増分バックアップを実行するデータベースサーバーでは、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ファイルも再構築します。
バートINIT [-s { サーバー名 |すべて}} [-o]
[-r [-i { backup_id | バックアップ名 |すべて } ] ]
注: 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項を参照してください。
-rオプションを指定し INITサブコマンドを起動すると、次のアクションが常に実行されます。
-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は、 INITアクションが適用されるデータベース・サーバーの名前です。 allが指定されている場合、またはオプションが省略されている場合、アクションはすべてのサーバーに適用されます。
-o 、-- override
既存の、アクティブPostgresのオーバーライド postgresql.confファイルやBART設定ファイルでBART にarchive_commandパラメータを使用してpostgresql.auto.confファイルにarchive_command構成パラメータの設定を。 INIT生成アーカイブコマンド文字列は、 postgresql.auto.confファイルに書き込まれます。 注意: にarchive_mode構成パラメータオフに設定されている場合は、-oオプションは、Postgresがにarchive_commandが現在postgresql.confの中にも、PostgreSQLの設定されていない場合でも、BART にarchive_command BART構成ファイル内のパラメータ使用にarchive_commandを設定するために使用する必要があります.auto.conf
-r 、-- rebuild
backupinfoファイルを再構築します。このファイルは、各バックアップサブディレクトリにあるbackupinfo という名前のテキストファイルです
-i 、-- backupid { backup_id | バックアップ名 |すべて }
backup_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 = /opt/PostgresPlus/9.5AS/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_modeオンでarchive_commandが設定されていないため、 -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 = /opt/PostgresPlus/9.5AS/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サブコマンドは、現在のPostgres にarchive_command設定を上書きするには-oオプションで呼び出されます。
-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オプションの再構築)
次の例では、指定されたバックアップの backupinfo ファイルをデータベース・サーバー 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サブコマンドは、フルバックアップまたは増分バックアップを作成するために使用されます。
バートBACKUP -s { サーバー名 | all} [-F {p | t}]
[-z] [-c compression_level ]
[--parent { backup_idこの | バックアップ名 }]
[--backup-name backup_name ]
[--thread-count number_of_threads ]
[{--with-pg_basebackup | --no-pg_basebackup}]
[ - チェック]
デフォルトでは、ターゲット形式はtarファイルです。
バックアップは、 backup_path / server_name / backup_id構成される ディレクトリに保存され ます。ここで、 backup_pathはBART構成ファイルのbackup_pathパラメータに割り当てられた値、 server_nameは構成ファイルにリストされているデータベースサーバーの小文字名、 backup_idはBARTによって特定のバックアップに割り当てられた整数、バックアップ識別子。
完全バックアップの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ファイル 、そうしないと、BACKUPサブコマンドの使用中に次のエラーが発生する可能性があり、wal_keep_segments設定パラメータが十分大きな値に設定されている確認してください。
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パラメータの詳細については、 次のURLにあるPostgreSQL Core Documentationを参照してください。
https://www.postgresql.org/docs/10/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は、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
tarファイル出力のgzip圧縮レベルを指定します。 compression_levelは1から9までの数字で、9が最良の圧縮です。このオプションは、tar形式にのみ適用されます。
--parent { backup_id | バックアップ名 }
backup_idは、親バックアップの整数、バックアップ識別子です。 backup_nameは、親バックアップのユーザー定義英数字名です。インクリメンタルバックアップを実行するには、このオプションを指定します。親は、現在インクリメンタルバックアップが呼び出される前に取られたバックアップです。親バックアップは、完全バックアップまたは増分バックアップのいずれかにすることができます。インクリメンタルバックアップはプレーンテキスト形式でしか実行できないため、 -F pオプションも指定する必要があります。 注:増分バックアップは、スタンバイ・データベース・サーバーでは実行できません。増分バックアップの詳細については、第2.2項を参照してください。
--backup-name backup_name
バックアップに割り当てるユーザー定義のわかりやすい名前。 1) %年 - 4桁の年、2) %の月 - 2桁の月、3) %の日 - 2 バックアップの実行時にタイムスタンプの値で置き換えられる以下の変数を含む英数字の文字列です。 4) %時間 - 2桁時間、5) %分 - 2桁分、および6) %秒 - 2桁秒。バックアップ名にパーセント記号( )を文字として含めるには、英数字の文字列に%%を指定します。スペース文字を使用する場合は、文字列を一重引用符( ' )または二重引用符( " )で囲みますが、他のサブコマンドで-iオプションを使用して参照する場合は、バックアップ名を引用符で囲む必要があります。バックアップ名の長さは49文字です。
このオプションは、BART構成ファイルのserverセクションのbackup_nameパラメータよりも優先されます。 --backup-nameオプションが指定されておらず、 backup_nameパラメータがBART設定ファイルのこのデータベースサーバに設定されていない場合、バックアップは他のBARTサブコマンドでBARTによって割り当てられた整数バックアップ識別子でのみ参照できます。
--thread-count number_of_threads
場合 --thread-countオプションを指定すると、number_of_threadsは、ワーカースレッドの数は、バックアップ用のブロックをコピーするには、並列に実行することです。 --thread-countオプションを省略すると、このデータベースサーバに適用可能なBART設定ファイルのthread_countパラメータが使用されます。このデータベースサーバーで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にすぎない場合は、 BACKUPサブコマンドで--no-pg_basebackupオプションを指定しないかぎり、 pg_basebackupユーティリティを使用して完全バックアップを実行します。
- チェック
増分バックアップを取る前に、必要なMBMファイルがBARTバックアップカタログに存在することを確認します。インクリメンタルバックアップが正常に実行されるか、失敗するかを通知するメッセージが表示されます。 --checkオプションが使用されている場合--parentオプションを指定する必要があります。 --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-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
SHOW-SERVERSサブコマンドは、BARTの設定ファイルにリストされた管理データベースサーバの情報を表示します。
バートSHOW-SERVERS [-s { server_name |すべて } ]
デフォルトのアクションは、すべてのサーバーを表示することです。
オプション
-s 、-- server { サーバー名 |すべて }
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-バックアップはディスプレイに管理するデータベースサーバーのバックアップ情報をサブコマンド。
BART SHOW-BACKUPS [-s { SERVER_NAME |すべて } ]
[-i { backup_id | バックアップ名 |すべて } ]
[-t]
すべてのオプションが省略されている場合、デフォルトのアクションは、次の注記で説明されている例外を除いて、すべてのサーバーのすべてのバックアップを表示することです。
注: BART BACKUPサブコマンドの実行中にSHOW-BACKUPSが呼び出されると、バックアッププロセスの影響を受けたバックアップは、表示されたバックアップ情報の進行状況を示します。
オプション
-s 、-- server { サーバー名 |すべて }
server_nameは、バックアップ情報が表示されるデータベース・サーバーの名前です。 allを指定するか、オプションを省略すると、すべてのデータベースサーバのバックアップ情報が表示されます。
-i 、-- backupid { backup_id | バックアップ名 |すべて }
backup_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)
VERIFY-CHKSUMサブコマンドは、指定されたデータベース・サーバーまたはすべてのデータベース・サーバのフルバックアップと任意のユーザー定義の表領域のMD5チェックサムを検証します。
バート・ヴェリフ・キクサム
[-s { server_name |すべて } ]
[-i { backup_id | バックアップ名 |すべて } ]
チェックサムは、バックアップの現在のチェックサムと、バックアップが取られたときのチェックサムを比較することによって検証されます。
VERIFY-CHKSUMサブコマンドは、プレーンな形式のバックアップには適用されません。これは、tar形式のバックアップにのみ使用されます。
注: BART BACKUPサブコマンドの実行中にVERIFY-CHKSUMが呼び出されると、バックアッププロセスの影響を受けるバックアップはスキップされ、 VERIFY-CHKSUMサブコマンドによって無視されます。
オプション
-s 、-- server { サーバー名 |すべて }
server_nameは、tarバックアップ・チェックサムが検証されるデータベース・サーバーの名前です。 allを指定した場合、または-sオプションを省略した場合、チェックサムはすべてのデータベースサーバで検証されます。
-i 、-- backupid { backup_id | バックアップ名 |すべて }
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サブコマンドは、 wal_compressionパラメーターに基づいて、アーカイブされたWALファイルに対して圧縮を呼び出します。
bart MANAGE [-s { server_name |すべて } ]
[-l] [-d]
[-c {keep |いいえ
-i { backup_id | バックアップ名 |すべて } ]
[-n]
注: BART BACKUPサブコマンドの実行中に、 MANAGEサブコマンドを呼び出さないでください。バックアップ処理の影響を受けるバックアップは、 MANAGEサブコマンドによってスキップされ無視されます。
保持ポリシーの適用は 、BART構成ファイルのretention_policyパラメータに依存します。保存方針に従ってバックアップを評価する、状態をマークする、不要なバックアップを削除するなどのバックアップの管理は、 MANAGEサブコマンドを使用して実行されます。保持ポリシー管理の詳細については、セクション5.2を参照してください。
WAL圧縮は 、BART構成ファイルのwal_compressionパラメータによって制御されます。このパラメータの設定については、 4.1および4.2.5項を参照してください。
とき MANAGEサブコマンドが呼び出され、いくつかの異なるアクションを同時に実行することができます。以下は、特定の条件およびオプションの下で実行されるアクションをまとめたものです。
オプションを指定しないでMANAGEサブコマンドを呼び出した場合、またはすべてのデータベースサーバまたは特定のデータベースサーバを指定する-sオプションのみを指定した場合は、次の処理が実行されます。
-sオプションで指定されたサーバー 、または-s allが指定されているか、 -sオプションが省略されている場合はすべてのサーバーに対して、アクティブなバックアップは保存方針に従って廃止とマークされます。
廃止とマークされたか、または MANAGEサブコマンドを呼び出す前に保持されたすべてのバックアップは、以前の同じ状態でマークされたままです。
とき MANAGEサブコマンドは-sオプション以外の他のオプションを指定して起動され、次のアクションが実行されます。
で指定されたサーバーの場合 、-sオプション、またはすべてのサーバーの-sすべてが指定されているか、-sオプションが省略された場合は、実行されたアクションは、他の指定されたオプション(つまり、古いバックアップを一覧表示する-lで、によって決定されます- dは古くなったバックアップを削除し、 -cはバックアップをアクティブな状態に保つか戻すか、 -nは任意のアクションを実行します)。
時代遅れとマークされた、または MANAGEサブコマンドを呼び出す前に保持されたすべてのバックアップは-cオプション( -nオプションなし)を指定して、特定のバックアップまたは-iオプション。
WAL圧縮を使用する場合の追加の考慮事項は次のとおりです。
増分バックアップを実行するデータベースサーバでは、アーカイブされたWALファイルの圧縮は許可されません。言い換えれば、パラメータ wal_compressionallow_incremental_backupsの両方で、同じデータベースサーバで有効なエフェクトを使用することはできません。
gzip圧縮プログラムは、BARTホストにインストールし 、BARTユーザーアカウントのPATHからアクセス可能である必要があります。
-cオプションが指定されているか、またはcopy_wals_during_restore BART設定パラメータの有効な設定がデータベースサーバで有効になっている場合、 RESTOREサブコマンドが呼び出されると、次のアクションが発生します。圧縮されている場合、アーカイブされたWALファイルはBARTバックアップカタログとWALファイルを復元する場所がBARTホストに関連するリモートホスト上にある場合、アーカイブされたWALファイルはネットワーク経由でリモートホストに圧縮形式で送信されますが、gzip圧縮プログラムRESTORE操作を実行するときにリモートホストにログインするために使用されるリモートユーザーアカウントのPATHでアクセス可能です。このリモートユーザーは、BART構成ファイル( 4.2.5項を参照)またはRESTORE -rオプション( 5.4.8項を参照)のremote_hostパラメータで指定します。圧縮されたWALファイルを送信すると、ネットワークトラフィックが減少します。圧縮されたWALファイルがネットワーク経由で送信された後、 RESTOREサブコマンドはポイントインタイムリカバリ操作用のファイルを解凍します。
-cオプションを指定せずにRESTOREサブコマンドを実行したときに、 copy_wals_during_restore BART構成パラメータの無効設定がデータベースサーバーで有効になっている場合、 RESTORE操作に必要な圧縮されアーカイブされたWALファイルはBARTバックアップカタログで解凍されます。圧縮解除されたWALファイルは、データベースサーバのアーカイブリカバリが開始されるときに、 recovery.confファイルのrestore_commandによってリモートホストにストリーミングされます。
オプション
-s 、-- server { サーバー名 |すべて }
server_nameは、アクションが適用されるデータベース・サーバーの名前です。 allが指定された場合、または-sオプションが省略された場合、アクションはすべてのデータベースサーバに適用されます。
-l 、-- list-obsolete
廃止とマークされたバックアップを一覧表示します。
-d 、-- delete-obsolete
廃止とマークされたバックアップを削除します。このアクションは、アーカイブされたWALファイルと増分バックアップ用のMBMファイルとともに、バックアップを物理的に削除します。
-c 、-- change-status {keep |いいえ
バックアップの状態を無期限に保持する よう変更しますnokeepを指定すると、現在のマークされたステータスにかかわらず、バックアップのステータスをアクティブなステータスに戻すことができます。その後、バックアップを再評価し、後でMANAGEサブコマンドを使用することにより、保存方針に従って廃止にマークすることができます。 注: -cオプションを使用する場合は、 -iオプションも指定する必要があります。
-i 、-- backupid { backup_id | バックアップ名 |すべて }
backup_idは整数のバックアップ識別子です。 backup_nameは、バックアップ用のユーザー定義の英数字名です。 allを指定した場合、アクションはすべてのバックアップに適用されます。 注: -iオプションは、 -cオプションとのみ使用する必要があります。
-n 、-- dry-run
操作が実行されたかのように結果を表示しますが、実際には変更はありません。つまり、実際にアクションを実装する前に結果を確認できるように、テスト実行が実行されます。したがって、 -dオプション -nを指定すると、削除されるバックアップが表示されますが、実際にはバックアップは削除されません。 -cオプションを指定して-nオプションを指定すると、keepまたはnokeepアクションが表示されますが、実際には現在の状態からバックアップは変更されません。他のオプションを指定しないで-nオプションのみを指定するか、 -sオプションのみを指定すると、アクティブなバックアップは廃止とマークされますが、実際にバックアップの状態は変更されません。さらに、データベースサーバーで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'
次の例では、指定したバックアップを変更して、ステータスを無制限に保持するように変更します。
-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構成ファイルの有効な 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 | バックアップ名 }]
[-r remote_user @ remote_host_address ]
[-w number_of_workers ]
[-t timeline_id ]
[{-x target_xid | -g target_timestamp }]
[-c]
次のサイトにある PostgreSQLコア文書に 記載されている情報を確認してください(特に25.3.4項「連続アーカイブバックアップを使用したリカバリ」を参照)
https://www.postgresql.org/docs/10/static/continuous-archiving.html
この参考資料は、基本的なポイントインタイムリカバリプロセス、および BARTによって recovery.conf ファイルに 生成されるリストアオプションの意味と使用法に関する詳細情報を提供し ます。
注: 増分バックアップをリモート・データベース・サーバーにリストアするときの特別な要件 については、第 2.2.5.2 項を参照してください
注:バックアップを復元するホストに、バックアップ用の十分なディスクスペースとそのアーカイブWALファイルが含まれていることを確認してください。 RESTOREサブコマンドには、バックアップファイルをリストアする前に十分なディスク容量があるかどうかを検出する機能がありません。したがって、使用可能なディスク容量が不足している場合、ファイルのコピー中にRESTOREサブコマンドを実行するとエラーが発生する可能性があります。
リストア操作を実行する手順は次のとおりです。
ステップ1:リストア操作を実行するPostgresデータベースサーバを停止します。
ステップ2:データディレクトリのpg_xlogサブディレクトリを調べ 、まだアーカイブされていないWALファイルをBARTバックアップカタログ( backup_path / server_name / archived_wals )に保存してください
アーカイブされていないファイルがある場合は、一時的な場所に保存します。これらのファイルは、 後で RESTOREサブコマンドを実行した後、データベースサーバーを再起動する前に、復元された 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ファイル名の最初の非ゼロ桁によって識別することができます。
次の例では、使用可能なすべてのWALファイルで1が唯一のタイムライン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設定パラメータの有効な設定がこのデータベースサーバで有効な場合は、次の操作が行われます。
-p restore_pathオプションで指定されたディレクトリにデータベースクラスタを復元することに加えて 、バックアップのアーカイブWALファイルは、BARTバックアップカタログからサブディレクトリrestore_path / archived_walsにコピーされます。
場合は recovery.confのファイルが生成され、 このrestore_commandパラメータで設定したコマンド文字列は、としてrestore_pathの親ディレクトリにこのarchived_walsサブディレクトリの相対からWALファイルを取得します。 このrestore_command =「cpはarchived_wals /%fが%P」
ステップ8:ステップ2の保存されたWALファイルをrestore_path / pg_xlogサブディレクトリにコピーします。
手順9:復元されたデータベースクラスタの復元されたディレクトリとデータファイルを、ディレクトリrestore_pathで検査します。
すべてのファイルとディレクトリは、データベースサーバーの起動に使用するユーザーアカウントが所有している必要があります。このユーザーアカウントは通常、Postgresユーザーアカウント( enterprisedbまたはpostgres )ですが、他のユーザーアカウントでも構いません。必要に応じてrestore_pathディレクトリ、そのファイル、およびそのサブディレクトリのユーザーとグループの所有権を再帰的に変更します。
データベースサーバーを起動するユーザーアカウントに対してのみ、ディレクトリアクセス権限が必要です。他のグループやユーザーは、そのディレクトリにアクセスすることはできません。
手順10: 1つが生成されている場合は、 restore_pathディレクトリにある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:データベースサーバを起動してリカバリを開始します。完了後、データベース・サーバーのログ・ファイルを調べて、リカバリーが正常に行われたことを確認します。
注意:元のデータベースクラスタとは異なるデータベースクラスタディレクトリにバックアップが復元された場合、データベースクラスタの場所に依存する特定の操作は、サポートするサービススクリプトが更新されていない場合、復元されました。
サービススクリプトの使用方法と変更方法については、次の URL にある「 EDB Postgres Advanced Serverインストールガイド」を 参照してください
https://www.enterprisedb.com/resources/product-documentation
Advanced Server 9.5のドキュメントの9.5バージョン、Advanced Server 9.6の9.6ドキュメントバージョン、およびAdvanced Server 10の10ドキュメントバージョンを参照してください。
次の表に、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_idは、リストアに使用されるバックアップのバックアップ識別子です。 backup_nameは、バックアップ用のユーザー定義の英数字名です。このオプションを省略すると、デフォルトでは最新のバックアップ(最新のバックアップ)が使用されます。
-r-- remote -host remote_user @ remote_host_address
remote_userは、パスワードなしのSSH / SCPログイン接続を受け入れ、バックアップを復元するディレクトリの所有者であるリモートデータベースサーバーホスト上のユーザーアカウントです。 remote_host_addressは、バックアップを復元するリモートホストのIPアドレスです。このデータベースサーバーのremote_hostパラメーターがBART構成ファイルで設定されていない場合は、このオプションを指定する必要があります。 注意: BARTユーザー・アカウントが、 -pオプションで指定されたrestore_pathディレクトリを所有するオペレーティング・システム・アカウントと同じでない場合は、 restore_pathディレクトリ所有者を指定するために、 remote_host BART構成パラメータまたはRESTOREサブコマンド-rオプションを使用する必要があります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は、ポイントインタイムリカバリに含まれるトランザクションまでを決定するトランザクションIDの整数識別子です。 Point-in-Timeリカバリが必要な場合は、 -x target_xidオプションまたは-g target_timestampオプションのいずれかのみを含める必要があります。
-g-- target -timestamp target_timestamp
target_timestampは、ポイントインタイムリカバリに含まれるポイントまでのポイントを決定するタイムスタンプです。 Point-in-Timeリカバリが必要な場合は、 -x target_xidオプションまたは-g target_timestampオプションのいずれかのみを含める必要があります。
-c 、-- copy-wals
指定すると、アーカイブされたWALファイルがBARTバックアップカタログからディレクトリ restore_path / archived_walsに コピー されます。 Point-in-Timeリカバリ用のrecovery.confファイルをBARTが生成する場合、 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項を参照してください。
次の例では、データベースサーバ mktgをタイムスタンプ2015-12-15 10:47:00まで/ 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
DELETEサブコマンドは、そのアーカイブWALファイルと一緒に指定したバックアップのBARTのバックアップカタログからサブディレクトリとデータファイルを削除します。
バートDELETE -s サーバ名
-i {すべて|
['] { バックアップID | バックアップ名 }、...} [']
}
[-n]
特定のデータベースサーバーを指定する必要があることに注意してください。
注: BART BACKUPサブコマンドの実行中に、 DELETEサブコマンドを呼び出さないでください。バックアップ処理の影響を受けるバックアップは、 DELETEサブコマンドによってスキップされ無視されます。
保存ポリシーの下にあるデータベースサーバーの場合、特定のバックアップが削除されないことがあります。許可されたバックアップの削除については、 5.2.4.1 項を参照してください
オプション
-s 、-- server server_name
server_nameは、バックアップを削除するデータベースサーバーの名前です。
-i 、-- backupid {すべて| ['] { バックアップID | backup_name }、...} [']}
backup_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プログラムを呼び出すことによって使用されます。
バートスキャナー
[-d]
[-c config_file_path ]
{-h |
-v |
- デーモン|
-p mbm_file |
wal_file |
リロード|
やめる }
わかりやすくするために、構文図には、複数文字の書式がサポートされている場合のオプションの1文字形式のみが示されています。 オプションのサブセクションのリストの両方のオプションの単一文字と複数文字の形。
WALスキャナは、各WALファイルを処理して、対応する修正ブロックマップ(MBM)ファイル内の修正ブロックを見つけて記録する。
デフォルトの方法は、新しいWALファイルが BARTバックアップカタログのarchived_walsディレクトリに到着するたびに、WALスキャナに通知が送られるようにすることです。次に、WALファイルをスキャンし、MBMファイルを生成します。このアプローチは、場合によっては動作しません。たとえば、WALファイルがrsyncユーティリティを使用してBARTバックアップカタログに出荷されている場合や、特定のプラットフォームの場合には出荷されます。
この結果、WALファイルは archived_walsディレクトリにコピーされますが、WALスキャナはそれを認識しないため、スキャンしてMBMファイルを生成しません。その結果、増分バックアップが失敗します。
これは 、BART構成ファイル(セクション4.1および4.2.5を参照)でscan_intervalパラメータを使用して実行されるタイマーベースのWALスキャンアプローチを使用することで回避できますscan_intervalの値は、WALスキャナが新しいWALファイルを検索してスキャンするまでの秒数です。
WALスキャンの詳細については、セクション 0参照してください
場合 BARTスキャナプログラムが起動され、それは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環境変数に含まれていないWALスキャナーを呼び出すときに、その後、BART_HOME / binには、現在の作業ディレクトリでなければなりません。一般的な呼び出しの構文は次のようになります。
cd BART_HOME / bin
./bart-scanner オプション
注意: 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
config_file_path を、BART構成ファイルへの完全なディレクトリー・パスとして 指定し ます。デフォルトのBART設定ファイル BART_HOME /etc/bart.cfg を使用しない場合は、このオプションを使用します
- デーモン
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ファイルがない場合に使用します。
リロード
BART構成ファイルを再ロードします。キーワードRELOADは大文字と小文字を区別しません。 このオプションはWALスキャナの起動後に設定ファイルを変更する場合に便利です 。設定ファイルがリロードされ、それに応じてWALスキャナが調整されます。たとえば、増分バックアップを許可するサーバーセクションがBART構成ファイルから削除された場合、そのサーバーに接続されたプロセスは停止します。同様に、増分バックアップを許可するサーバが追加された場合、そのサーバのWALファイルをスキャンするための新しいWALスキャナプロセスが起動されます。
やめる
WALスキャナを停止します。キーワード STOP は大文字小文字を区別しません。
次の例は、対話形式で実行するWALスキャナの起動を示しています。 WALスキャナは、まだスキャンされていない(つまり、WALファイルに対応するMBMファイルがない)アーカイブパス内の既存の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
以下は、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$
次の例は、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スキャナプロセスを停止するには、 停止オプションを使用して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$
MBRファイルの内容を表示 して、発生した可能性のある問題をデバッグするためにEnterpriseDBサポートチームを支援する必要がある場合は 、次の例のように -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 = /opt/PostgresPlus/9.5AS/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サブディレクトリを作成し ます
[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ファイルは、次のchmod 600コマンドで設定されたファイルのパーミッション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ディレクトリを作成し ます
[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ファイルは、次のchmod 600コマンドで設定されたファイルのパーミッション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.pubは6.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ファイルにコピーします
-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ディレクトリを作成し ます
[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.pubは6.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ファイルにコピーします
-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です
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のACCTG 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 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 pg_hba.confファイルMKTGは、次のように設定されています。
# 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サーバ pg_hba.confファイルHRは、次のように設定されています。
# 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アーカイブ構成パラメータ
postgresql.confファイルのWALアーカイブを有効にするパラメータは次のとおりです。
ローカル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 = /opt/PostgresPlus/9.5AS/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"
INITサブコマンドが呼び出された後postgresql.auto.confファイルの内容は次のとおりです。
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
archive_command = 'cp %p /opt/backup/acctg/archived_wals/%f'
BARTのバックアップカタログがこのデータベースクラスタおよびバックアップカタログ、EnterpriseDBのを所有しているBARTのユーザーアカウントにローカルであるためにarchive_commandはなく、SCPcpコマンドを使用して、Advanced Serverを実行している同じユーザーアカウントです。その結果、アーカイブ操作中にディレクトリアクセス権の競合が発生しません。
リモートAdvanced Server postgresql.confファイルMKTGは、次のように設定されています。
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
ときに 、それが明示的にBARTの設定ファイルでこのデータベース・サーバー用に設定されていないので、INITサブコマンドが呼び出され、Postgresのにarchive_command postgresql.auto.confファイルの構成パラメータがデフォルトで設定され、BARTのBARTフォーマットは、パラメータをにarchive_command:
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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'
BARTのバックアップカタログがこのデータベースクラスタに対してリモートであるためにarchive_commandは、scp コマンドを使用しています。 BARTユーザーアカウントenterprisedbは、アーカイブされたWALファイルがコピーされるBARTバックアップカタログを所有するユーザーアカウントであるため、 scpコマンドで指定されます。その結果、アーカイブ操作中にディレクトリアクセス権の競合が発生しません。
リモートPostgreSQLサーバ postgresql.confファイルHRは、次のように設定されています。
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
ときに 、それが明示的にBARTの設定ファイルでこのデータベース・サーバー用に設定されていないので、INITサブコマンドが呼び出され、Postgresのにarchive_command postgresql.auto.confファイルの構成パラメータがデフォルトで設定され、BARTのBARTフォーマットは、パラメータをにarchive_command:
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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'
BARTのバックアップカタログがこのデータベースクラスタに対してリモートであるためにarchive_commandは、scp コマンドを使用しています。 BARTユーザーアカウントenterprisedbは、アーカイブされたWALファイルがコピーされるBARTバックアップカタログを所有するユーザーアカウントであるため、 scpコマンドで指定されます。その結果、アーカイブ操作中にディレクトリアクセス権の競合が発生しません。
6.5 BARTバックアップカタログ(backup_path)
backup_path構成パラメーターで指定されたディレクトリーを作成します。
[BART]
bart_host= enterprisedb@192.168.2.22
backup_path = /opt/backup
pg_basebackup_path = /opt/PostgresPlus/9.5AS/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を参照してください。
注: -oオプションはINITサブコマンドで指定され、 archive_modeオフの場合、またはPostgresのarchive_commandパラメータがすでに設定されているため、上書きする必要がある場合は、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ファイルがアーカイブされていることを確認します。
アーカイブされたWALファイルは、WALアーカイブがデータベースサーバー設定のarchive_timeoutパラメータで新しいセグメントファイルに切り替わる頻度に応じて、頻繁に表示されないことがあります。
データベースサーバーのログファイルにアーカイブ関連のエラーがないことを確認します。
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は、テーブルが作成されたおおよその時間です。たとえば、タイムライン#1がアクティブな間にhr_rmt_t1_1356が約1:56 PMに作成されました。
その後、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パラメータで設定されていることに注意してください。 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"
使用 RESTOREサブコマンドを使用するバックアップを識別するために、SHOW-BACKUPSサブコマンド
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-バックアップ-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
タイムライン1を使用して2017-03-29 14:01:00にリカバリします。
-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に対して有効に設定されているため、 / opt / restore_pg95 archived_walsサブディレクトリからリストアされることに注意してください
Point-in-Timeリカバリ操作を開始するには、データベースサーバーを起動します。
[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