サードパーティーソフトウェア

pgAudit (PostgreSQL 監査ロギングツール)

本記事では、PostgreSQL 監査ロギングツール「pgAudit」のインストール方法、監査ログ取得方法について紹介します。

pgAudit とは

pgAudit は PostgreSQL で監査ログを取得するためのオープンソースソフトウェアで、PostgreSQL の拡張機能として実装されています。監査する対象として設定した内容は、PostgreSQL ログに混在して出力されます。

続きを読む

Barman(PostgreSQL PITR 補助ツール)

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

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

続きを読む

oracle_fdw を使ってみる(後編)

oracle_fdw 紹介の後編です。
前編では oracle_fdw を PostgreSQL に導入・外部サーバ定義・ユーザマッピング・外部テーブル定義を順に行い Oracleデータベース上のテーブルに PostgreSQL からアクセスする流れを紹介しました。
今回は、機能をもう少し深堀りをしていきます。

続きを読む

pg_hint_plan (PostgreSQL 実行計画制御ツール)

更新日:2024年12月27日

1. pg_hint_planとは

pg_hint_plan は PostgreSQL のクエリの実行計画を制御するためのモジュールです。本モジュールにより、他のリレーショナルデータベースで一般的な機能であるヒント句を PostgreSQL で利用することが可能になります。ヒント句とは実行されるクエリの実行計画の決定をプランナに任せきりにせず、プランナに実行計画を直接指示することを可能とする機能です。

続きを読む

pg_bigm (bi-gram インデックス)

更新日: 2024年12月27日

1. pg_bigm とは

pg_bigm は PostgreSQL に文字列の中間一致検索に使える GIN 方式のインデックスを提供するオープンソースの拡張モジュールです。以下のような B-tree インデックスを適用できない問い合わせを高速化することができます。

続きを読む

pg_rman (PostgreSQL のバックアップ/リストア管理ツール)

更新日:2025年1月17日

pg_rman とは

pg_rman とは PostgreSQL のバックアップ/リストア管理ツールです。

PostgreSQL 付属のバックアップ手段にはダンプ(SQL文による論理バックアップ)と PITR(Point In Time Recovery) があります。ダンプはリストアしてもバックアップした時点の状態まで戻ってしまいますが、PITR を用いればバックアップした時点から稼働時の直前まで任意の時点の状態にリストアできるといった利点があります。しかし、PITR のバックアップ/リストアは煩雑な手順が必要となります。

pg_rman は PITR の機能を簡易なコマンドで扱うことができます。また、バックアップの世代管理ができることも魅力の一つです。

続きを読む

oracle_fdw を使ってみる(前編)

更新日時: 2020年3月16日

PostgreSQLには、標準SQLの拡張である SQL/MED (“Management of External Data”)に沿った外部データアクセスの仕組みが備わっています。外部データの種類に応じた外部データラッパー( Foreign Data Wrapper 、FDW)を適用することで、様々な外部データをPostgreSQL内のテーブルと同様に扱うことができます。

oracle_fdw は外部データラッパーの1つで Oracle Database に対応しています。oracle_fdw を使用することで、Oracle Database のテーブルやビューを PostgreSQL 上のSQLから読み書きできるようになります。

oracle_fdwはバージョン9.1以降のPostgreSQLおよびバージョン10.1以上のOracle Client(および Oracle Instant Client)で利用可能です。Oracle Database のサーバ側バージョンは、使用するOracle Clientが対応していれば大丈夫です。

本記事ではoracle_fdw の導入方法、使用方法を紹介します。続いて公開予定の後編の記事では、実際の使用にあたって気になる「こんなことをしたらどうなる?」「どの程度 PostgreSQL側で、どの程度Oracle側で処理されるの?」「データ型の違いはどうなるの?」といった様々な挙動の詳細に迫ります。

続きを読む

pg_bulkload (データの高速読み込みツール)

1. pg_bulkload とは

pg_bulkload は PostgreSQL に大量のデータを高速にロードすることができるツールです。

pg_bulkload 自体はそのバージョンにもよりますが、 PostgreSQL 8.3 以降で使用が可能です。PostgreSQL 9.6 に対応したものは pg_bulkload 3.1.10 以降です。最近の PostgreSQL との対応バージョンについての詳細は、pg_bulkload 3.1.X のリリースノートまたは導入する pg_bulkload バージョンのドキュメントを確認してください。本文書では、PostgreSQL 9.6.2 と pg_bulkload 3.1.13 を Linux 上で使用した場合のコマンド例などを紹介しています。

続きを読む

psqlODBC (PostgreSQLむけODBCドライバ)

更新日:2023年4月25日

1. psqlODBC とは

psqlODBCはオープンソースソフトウェアとして開発されている PostgreSQL の ODBC ドライバです。完全ではありませんが ODBC 3.0 に対応しています。ほかに商用製品のドライバも存在しますが、大部分の用途では psqlODBC を使用すれば十分といえます。psqlODBC の難点としては、公式ドキュメントの記述量が少ないこと、利用方法を解説した文書が少ない、あるいは、ひどく古いバージョンを前提とした公開文書が多く、取捨選択が難しいことがあります。

本文書は、PostgreSQL 9.6.2 と psqlODBC 09.06.0100 を使って、psqlODBC の Linux 上と Windows 上での使い方を解説します。2023年 4月時点で、psqlODBC 13.02.0000 までリリースされています。バージョン 13.02.0000 までで変更された点について加筆しています。スクリーンショットは変更していませんが、設定パラメータの表には新たなパラメータも記載しています。

続きを読む