PostgreSQL におけるマテリアライズドビューの高速更新技術(Incremental View Maintenance)の提案

SRA OSS は PostgreSQL 関連サービスを提供しているだけではなく、PostgreSQL の開発にも参加しています。過去には再帰SQLの実装や、ラージオブジェクトの64bit化などを行ってきました。

そして、最近は Incremental View Maintenance という機能の実装を提案することを検討しています(2018年12月末にPostgreSQL開発MLにて議論開始)。これはマテリアライズドビューの更新を高速に行うための技術です。PostgreSQLが大規模システムの採用が増加する中、マテリアライズドビューの利用は増えていると考えており、またその高速リフレッシュは喫緊の課題であると考えています。

これに関する発表を昨年の10月にポルトガルのリスボンで開催された PostgreSQL Conference Europe (PGConf.EU) 2018 で発表してきました(レポートはこちら)。本記事では、その内容について解説します。

続きを読む

Barman(PostgreSQL PITR 補助ツール)

Barman とは PostgreSQL のPITR(ポイントインタイムリカバリ)を簡単に管理してくれるツールです。

PITRとはバックアップ/リストア方式の一つで、過去の指定した時点の状態に復元することが可能です。PITRは、データベースクラスタの物理コピー(ベースバックアップと呼びます)を取得し、以降のデータ変更が書き出される WALファイルを継続的に保存する(保存したものをWALアーカイブやアーカイブログと呼びます)ことで実現されます。現在稼働しているデータベースクラスタを障害やオペレーションミスから復旧したい場合には、保存していたベースバックアップにWALアーカイブを適用することで、ベースバックアップ取得時点からWALアーカイブが適用できる限りの任意の時点に復元することができます。

PITR は PostgreSQL のバックアップ方式としてよく用いられる手法ですが、DB 管理者が考慮すべきことや操作手順が増え、運用管理の手間が増えます。例えば、PITR の運用はベースバックアップの世代管理や、溜まり続ける古いアーカイブログファイルの削除は PostgreSQL の本体機能として備わっておらず、DB 管理者がそのような処理を行うスクリプトを用意しなければなりません。バックアップからのリカバリ作業も DB 管理者が手動で煩雑な手順を実施する必要があります。

続きを読む

PostgreSQL 11.1 に関する技術情報

このリリースは 11.0 からの修正リリース(2018年11月8日リリース)です。

11.x からのアップデートではダンプ、リストアは不要です。
しかしながら、pg_stat_statements拡張を使っている場合は修正を適用するための操作が必要です。
以下の関連する項目を参照してください。

続きを読む

PostgreSQL 10.6 に関する技術情報

このリリースは 10.5 からの修正リリース(2018年11月8日リリース)です。

10.x からのアップデートではダンプ、リストアは不要です。
しかしながら、pg_stat_statements拡張を使っている場合は修正を適用するための操作が必要です。
以下の関連する項目を参照してください。
また、10.4 より前のバージョンからアップデートを行う場合は 10.4 に関する技術情報を参照してください。

続きを読む

PostgreSQL 9.6.11 に関する技術情報

このリリースは 9.6.10 からの修正リリース(2018年11月8日リリース)です。

9.6.x からのアップデートではダンプ、リストアは不要です。
しかしながら、9.6.9 より前のバージョンからアップデートを行う場合は 9.6.9 に関する技術情報を参照してください。

続きを読む

PostgreSQL 9.5.15 に関する技術情報

このリリースは 9.5.14 からの修正リリース(2018年11月8日リリース)です。

9.5.x からのアップデートではダンプ、リストアは不要です。
しかしながら、9.5.13 より前のバージョンからアップデートを行う場合は 9.5.13 に関する技術情報を参照してください。

続きを読む

PostgreSQL 9.4.20 に関する技術情報

このリリースは 9.4.19 からの修正リリース(2018年11月8日リリース)です。

9.4.x からのアップデートではダンプ、リストアは不要です。
しかしながら、9.5.18 より前のバージョンからアップデートを行う場合は 9.5.18 に関する技術情報を参照してください。

続きを読む

PostgreSQL 9.3.25 に関する技術情報

このリリースは 9.3.24 からの修正リリース(2018年11月8日リリース)です。

9.3.x からのアップデートではダンプ、リストアは不要です。
しかしながら、9.3.23 より前のバージョンからアップデートを行う場合は 9.3.23 に関する技術情報を参照してください。

続きを読む

DRBD9 の 3台構成クラスタ

DRBD9では、以前のバージョンに比べて3台以上のクラスタをより簡単に構築できるようになりました。DRBD8では、2台構成のクラスタを階層化するスタック構成を使用して3台以上のクラスタを組むことができましたが、構成が複雑になり、柔軟性にも欠けるものでした。
また、drbdmanageにより簡単にDRBDクラスタの管理ができるようになりました。
本記事では、drbdmanageを使用して3台構成のDRBDクラスタを構築する方法について紹介します。

なお、新しい管理ツールとしてLINSTORが現在開発されており(2018年11月現在β版)、将来はLINSTORへの移行が予定されています。LINSTORを用いたDRBDクラスタの構築については後日改めて公開する予定です。

1. 導入手順

本記事では以下の手順で導入を行います。

  1. 必要なソフトウェアのインストール
  2. ssh、LVMの設定
  3. クラスタの初期化
  4. 2台目のノードの追加
  5. ボリュームの追加
  6. 3台目のノードの追加およびボリュームのアサイン

続きを読む

DRBD9 と Pacemaker の構成

本記事では、Linuxの分散ストレージシステムであるDRBDの最新版であるDRBD9とPacemakerを組み合わせた構成について、基本的な構成でのインストール手順およびDRBD8の場合との違いなどについて解説していきます。

1. DRBD9について

DRBDは複数台のLinuxサーバで、ネットワーク経由で共有ストレージを構築するためのシステムです。

DRBD9はDRBD8.xから以下のような機能が強化されています。

  • 自動プロモーション機能によりマウント時に自動でプライマリへの昇格・セカンダリへの降格が行えるようになった
  • drbdmanage コマンドによりノードやボリュームの追加・削除が簡単に行えるようになった
  • 1階層で最大31ノードまでの多ノード構成が可能(DRBD8まではスタック構成のみ可)

特に、自動プロモーション機能によりPacemakerでクラスタを組む場合に大幅に設定を簡略化できるようになりました。

続きを読む