2017年5月24日水曜日

PostgreSQL の認証とその性能

PostgreSQL の認証システムはバージョンによって大きな変更はありませんが、少しずつ強化されてきました。今回はサポートされる認証方式の特徴と比較的よく利用される認証方式の性能を簡単に紹介します。

■ PostgreSQL 認証の基本

PostgreSQL の認証はデータベースクラスタディレクトリ内にある pg_hba.conf によって行います。基本的な形式は


local      DATABASE  USER  METHOD  [OPTIONS]
host       DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
hostssl    DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
hostnossl  DATABASE  USER  ADDRESS  METHOD  [OPTIONS]

のような形式です。今回は設定方法などは詳しく解説しないので、詳しくは 第 19章クライアント認証(https://www.postgresql.jp/document/9.4/html/client-authentication.html)を参照してください。

2017年2月21日火曜日

PostgreSQL 9.4のContribモジュール

こんにちは。

PostgreSQL 9.4 から追加された Contrib モジュールは 3 つですが、ソースコードに付属する全ての Contrib モジュールを簡単に紹介します。

◆ PostgreSQL 9.4 の Contrib モジュール

♦ PostgreSQL 9.4 の Contrig モジュールは 45 個あります。

Appendix F. Additional Supplied Modules

http://www.postgresql.org/docs/9.4/static/contrib.html

2016年9月5日月曜日

1グラム(Unigram)の全文検索

こんにちは。

今回は 1 グラムの全文検索を利用できるようにします。

■ 1 グラム(Unigram) の全文検索

1 グラムの全文検索は文字列を一文字単位で分割しインデックスします。PostgreSQL の場合、デフォルトで備わっている機能で利用できます。文字列を一文字単位で分割し、GIN でインデックスし、検索するだけです。以下に手順を示します。

2016年8月31日水曜日

PostgreSQLのバックアップとリストア

こんにちは。

データベースにとってバックアップは最後の命綱です。バックアップとリストアを完全に理解することは安全なデータベース運用には欠かせません。今回は PostgreSQL9.3 を用いて、バックアップとリストアの全機能を簡単に紹介します。

■ データベースのバックアップとリストア

PostgreSQL では以下の方法が利用できます。

  • ファイルのバックアップ (ただし、オフラインバックアップのみ)
  • ファイルシステムのスナップショット (オンラインバックアップ可能)
  • pg_dump / pg_dumpall コマンドによるバックアップ (オンラインバックアップ可能)
  • アーカイブログによるバックアップ (非同期にバックアップ & 任意時点へのリカバリ可能)

レプリケーションもバックアップの一種と考えることも可能です。しかし、レプリケーションの場合

  • 操作ミス、攻撃などによるデータ破壊が発生した場合に対応できない

という欠点があります。ディスクのミラーリングなどの冗長性確保をデータのバックアップととらえないことと同様に、ここではレプリケーションはバックアップには入れないことにします。ここでは説明しませんが、レプリケーションを行いながらアーカイブログを利用したバックアップを行うことも簡単です。

2015年12月7日月曜日

Dockerも始めました2 ~Kubernetes編~

 こんにちは、北野です。今回は、前回のDockerの流れに乗り、コンテナ管理システム「Kubernetes」について調べてみました。

Kubernetesとは

 Kubernetesは、Dockerをはじめとするコンテナクラスタ管理システムです(長くてわかりづらい綴りなので「k8s」と略されることもあります)。Go言語で作成され、Apacheライセンスで配布されているオープンソースソフトウェアです(ソースコードは、https://github.com/googlecloudplatform/kubernetesにあります)。

 名前はギリシャ語の単語で、ネット上での情報を調べた限り、「クーバネィテス」もしくは「クーベルネィテス」というのが近い読み方のようです。意味は「船の操舵手」なのですが、Dockerのシンボルがクジラなので捕鯨船からの連想なのか、コンテナを運ぶ輸送船からの連想なのかは不明です。

2015年11月4日水曜日

Dockerも始めました

 こんにちは、北野です。前回はVagrantについて書きましたが、今回はもう1つの注目仮想技術である、「Docker」について調べてみました。

Dockerとは

  Docker は、Linuxのコンテナ系技術を利用してアプリケーションのビルド、デプロイ、実行を行うコンテナ管理ソフトウェアです。Docker社(旧dotCloud社)のSolomon Hykes氏によってGo言語で作成され、Apacheライセンスで配布されているオープンソースソフトウェアです(ソースコードは、https://github.com/docker/docker にあります)。

 Dockerは2014年6月のバージョン1.0のリリースを機に名称変更が行われ、前述した技術(多くの人がDockerと呼んでいるコンテナ管理技術)は、現在は「Docker Engine」が正式名称となっています。このDocker Engineに、アプリケーションの開発や配布を行うためのWebサービス「Docker Hub」、API、サードパーティによるエコシステムを含めたプラットフォーム全体の総称が「Docker」となりました。

2015年10月19日月曜日

PostgreSQL 9.5のBRINインデックス

こんにちは。

2015 年秋にリリース予定の PostgreSQL 9.5 には BRIN (Block Range INdex) と呼ばれる新しいインデックスが追加されます。名前の通り、まとまった単位のブロックに含まれている値をインデックスする仕組みを提供します。ブロックとは PostgreSQL のデータ保存単位の 1 つで、内部的に一まとまり (デフォルト 8 KB) の領域として管理されている物です。デフォルトでは 128 ブロック、つまり 1 MB分の領域に含まれているインデックス対象のカラムのデータをインデックスします。