dbtsブログ
このエントリーをはてなブックマークに追加

【dbts2021 レポート】PostgreSQLのエンタープライズ利用に最適!富士通が培った高信頼技術を細かく解説

DB(データ管理)
【dbts2021 レポート】PostgreSQLのエンタープライズ利用に最適!富士通が培った高信頼技術を細かく解説

こんにちは、コンサルティング本部の尾崎です。 db tech showcase 2021 1日目のD4のセッションである「PostgreSQLのエンタープライズ利用に最適!富士通が培った高信頼技術を細かく解説」のレポートをお届けします。

スピーカー名:富士通株式会社 齊藤 嵩 様

セッション概要:

PostgreSQLのエンタープライズ利用では、信頼性を担保する仕組みが非常に重要となります。
本セッションでは、バックアップ・リカバリーおよび富士通社が機能強化した冗長化の仕組みにおいて、データベース設計で押さえておきたいポイント(バックアップ・リカバリー方式の選択指針、その基本的な利用方法、監視対象の選択、トラブル時の復旧方法)を解説します。

はじめに

富士通では、オープンソースソフトウェアのPostgreSQLをエンジンとし、富士通のデータベース技術とノウハウを使って導入・運用のしやすさを向上させ、「セキュリティ」「性能」「信頼性」を強化したデータベースである、FUJITSU Enterprise Postgres(以下FEP)を提供しています。 本セッションでは、FEPサポートへの問い合わせ件数トップ2を占める「バックアップ・リカバリー」と「DB多重化」について、ご解説いただきました。

バックアップ・リカバリー

PostgreSQLのバックアップは大きく分けて、論理バックアップと物理バックアップの二つに分類できます。どちらのバックアップを選択するかは、「どのような事象に備えるのか」によって決定されます。例えば、テーブルの論理破壊や、別サーバへのデータ移行に対しての備えとしてバックアップを取得する場合、論理バックアップを行う必要があります。一方、ハードウェア障害や、データベースの破壊に対する対策としてバックアップを取得する場合は、物理バックアップを行う必要があります。

PostgreSQLは、「どの範囲までをバックアップ対象とするのか」によっての具体的なバックアップ方法を決定することができます。例えば、データベース単位の論理バックアップを取得したい場合は、pg_dumpコマンドを使います。

pgx_dmpallコマンド
FEPでは、pgx_dmpallコマンドを使って物理バックアップをオンラインバックアップで取得できます。これはFEP独自のバックアップ取得方法です。pgx_dmpallコマンドで取得したバックアップはpgx_rcvallコマンドによって指定した任意の日時へのリカバリを実施することが可能です。(ポイントインタイムリカバリー)

以下にpgx_dmpallコマンドでのバックアップの特徴を挙げます。

  • 継続的なアーカイブによるオンラインバックアップを簡単操作で実施できる。
  • バックアップとしてデータベースクラスタとテーブル空間、二重化したトランザクションログを格納するため、仮にデータベースクラスタ及びトランザクションログの両方が壊れたとしても異常発生直前の状態までの復旧が可能。
    → バックアップデータ格納先には、データ格納先の二倍以上の容量が必要となる。
  • 古いクラスタデータや不要なアーカイブログは自動で削除する。
    → 定期的なベースバックアップがあれば、WALファイルの肥大化/圧迫化を軽減できる。

データベース多重化

データベースの多重化運用とは、プライマリサーバからスタンバイサーバにデータを同期反映(ストリーミングレプリケーション)し、複製されたデータベースを維持する運用を指します。
Mirroring Controller(以下MC)により、プライマリサーバとスタンバイサーバの相互監視が実現されます。また、仮にどちらかのサーバに異常が発生して相互監視ができなかった場合でも、第三者サーバである裁定サーバ経由でMCが死活監視を行うため、自動縮退によって業務の続行が可能となっています。


多重化されたDBのセットアップ

  • arbitration.conf
    裁定サーバの設定ファイル。このファイルには、フェンシング処理を行うためのパラメータを含みます。フェンシング処理とは、異常発生した疑いがあるプライマリサーバ/スタンバイサーバのOS/サーバを裁定サーバが自動で停止させる処理のことを指します。
  • サーバ識別子.conf
    プライマリサーバ/スタンバイサーバの設定ファイル。このファイルで設定したパラメータによって、裁定サーバを用いた自動縮退が実行されます。また、自動縮退を行うためのOS/サーバの静止監視における異常監視に関する各種パラメータも設定します。
  • postgresql.conf
    プライマリサーバ/スタンバイサーバの設定ファイル。MCがトランザクションの送受信の異常監視をするための設定を含みます。このファイルに含まれる以下のパラメータを適切にチューニングすることで、多重化運用の状態の安定化を図れます。
    • max_wal_size...自動WALチェックポイント間にWALが増加する最大サイズ
    • wal_keep_size...pg_walディレクトリに保持しておくWALセグメントの最小値

まとめ

データを守るDBを構築するために、以下のポイントについて今回のセッションでご説明いただきました。

バックアップ・リカバリー

  • バックアップ対象や復旧時点を考慮して、バックアップ方法を選択する必要があること。
  • 定期的なバックアップを実施することで十分な領域を確保する必要があること。

DB多重化

  • DBの障害による影響を最小限にするために、MCによる障害の検知、自動切換え及び自動切り離し機能が提供されていること。
  • 多重化の状態を安定させるためにパラメータの設計を適切に行う必要があること。

聴講した感想

PostgreSQLについてはまだ勉強したことがなかったので、自分が聞くにはまだ難しいかもしれないと思いながら参加しましたが、スライド資料が一目で見て分かりやすく、今どの部分を説明しているのか、その説明がさっきまでの説明のどことリンクしているのか、という点がすぐに分かり、身構えていたよりも理解しやすく感じました。
また、どの説明をする際も最初に全体的な話をしたのちにFEP独自の機能を解説してくださっていたので、「他のDBと比較してこのDBにはこういう特徴がある」という点が分かりやすかったです。

db tech showcase2021のアーカイブ動画・資料を12月末まで公開しております! 閲覧はこちらからご覧ください。

https://eventregist.com/e/TvkwJoawl5Dy
一覧に戻る