サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
lets.postgresql.jp
SRA OSS, Inc. 日本支社 石井 達夫 はじめに 本記事は2013年のPostgreSQL Advent Calendar の 12/17 の記事です。pgpool-IIに多数のクライアント同時に接続すると、極端にレスポンスが落ちることがあります。ここではその原因と改善方法について考えます。 pgpool-IIはpre-fork型のアーキテクチャ pgpool-IIは、複数のPostgreSQLを使ったクラスタシステムを構築できるミドルウェアです。pgpool-IIでは、num_init_childrenというパラメータの数だけあらかじめプロセスを起動(pre-fork)しておきます。クライアントからの接続要求があると、そのプロセスの一つがカーネルから選択され、クライアントからの接続を受付けて、処理を開始します。これはApacheなどと同じ方式で、あらかじめプロセスをフォークして
NTT オープンソースソフトウェアセンタ 笠原 辰仁 稼動統計情報を取得してみよう では、実際に稼動統計情報を取得してみましょう。稼動統計情報は、PostgreSQLのテーブルやビューの形で提供されています。pg_stat_* という名称のテーブル/ビューがそれらに当たります。そのため、取得にはSQLを用います。なお、psqlの\dコマンドなどでpg_stat_*のビュー定義を見てみると、pg_stat_get_*() 関数で各種情報が取得されていることが分かると思います。稼動統計情報を直接取得するには関数を使うのですが、それをビュー経由でユーザが閲覧できるようになっています。本項では、pg_stat_*で提供されているビューを読み解いていくことにします。 それでは、前ページの冒頭で紹介した情報について具体的に解説していきます。下記は稼動統計情報の中でも多用される情報ですので、覚えておくと
(3) インストールの確認 インストールしてどんなファイルができたのか?などを確認します。 『postgres』というアカウント が作成されていることを、「id」コマンドや「finger」コマンドで確認します。(各種 ID やホームディレクトリは、以下の例と異なる可能性があります。) [root @server1 ~]# id postgres uid=26(postgres) gid=26(postgres) 所属グループ=26(postgres) [root @server1 ~]# finger postgres Login: postgres Name: PostgreSQL Server Directory: /var/lib/pgsql Shell: /bin/bash Never logged in. No mail. No Plan. 「/usr/」にインストールされ、さま
各サーバマシンには、執筆時点で最新の pgpool-II 3.0.1 と PostgreSQL 9.0.2 をインストールします。pgpool-II のインストール方法については第2回の記事を参考にしてください。 以降、pgpool-II と PostgreSQL は「/usr/local」にインストールされており、データベースクラスタは「/var/pgsql/pgdata」にあるものとします。 また、Slony-I のデーモン slon は、マスタサーバとスレーブサーバで動かします。 PostgreSQLの設定 まず、pgpool-II と Slony-I からの接続を許可するため、マスタサーバとスレーブサーバの pg_hba.conf ファイルに次の1行を追加します。今回は簡易的にパスワード認証を使用せず、trust 認証を使用します。 host all all 192.168.1.0
前回までで、Ubuntuに付属するPostgreSQLパッケージのインストールと使用方法を解説しました。 このページでは、Ubuntu独自のPostgreSQLパッケージの内容をもう少し詳しく説明し、 コミュニティ版との違いやデータベースの設定方法を解説します。 1. コミュニティ版との主な違い Ubuntu では、PostgreSQLの設定方法がPostgreSQLのマニュアルにかかれているものとは若干違います。 1.1 initdb がない PostgreSQLのプログラムをインストールした後でまず行わなければならないのは「データベースクラスタ」の初期化です。 データベースクラスタとは、PostgreSQLサーバが管理するデータベースの集まりのことで、 実際にはファイルシステムの指定した場所にデータベースを構成するファイルなどが格納されるようになっています。 このデータベースクラスタの
NTT オープンソースソフトウェアセンタ 笠原 辰仁 稼動統計情報とは、PostgreSQLが独自に収集・記録している情報です。性能やDB内で起こっている問題などを把握する上で、とても重要です。DBMSでの稼動状況を確認・把握するのに非常に便利なので、この情報を活用し、問題の早期発見やチューニング方法の選択に役立てましょう。 稼動統計情報で分かること 稼動統計情報を活用すると、DBMSを運用する上でとても便利な情報が得られます。特に有用なものを紹介します。なお、稼動統計情報の内容はPostgreSQLのバージョンで若干異なり、新しいバージョンほど得られる情報が増えています。詳しくは「有用な情報を持つテーブル/ビュー」を見てください。 DB単位のコミット数やロールバック数 DB毎に、トランザクションのコミット回数やロールバック回数が分かります。それぞれ、スループットとエラー発生数と置き換える
NTT オープンソースソフトウェアセンタ 板垣 貴裕 2009年7月1日、PostgreSQL 8.4 がリリースされました。以前のバージョンから1年5ヶ月ぶりのリリースです。数多くの新機能が盛り込まれていますが、大まかに以下のカテゴリに分けて紹介します。今回は、応用SQL、大規模対応に引き続き、運用管理に関する新機能をご紹介します。 応用SQL 大規模対応 運用管理 その他の情報 その他の新機能 次のバージョンへ先送りされた機能 公式のリリースノートは PostgreSQL 8.4プレスキットを参照してください。ソースコードと各プラットホーム向けのバイナリもダウンロードできるようになっています。 応用SQLに関する新機能 応用SQLに関する機能では、特に「再帰SQL」と「Window関数」への対応が大きいでしょう。 PostgreSQL は標準SQLに良く準拠していると評価されることが多
PostgreSQL 開発の実際 実際に PostgreSQL に機能を追加/改良/修正するときに,開発コミュニティの中でどのようにして処理されていくのかを見てみましょう. まずはディスカッション PostgreSQL の開発コミュニティでは,意志決定の際にディスカッションが重視されます. PostgreSQL の開発においてもそれは例外ではなく,開発者は,実現したい機能の仕様について,メーリングリスト上で説明することが求められます.これはコアメンバであっても例外ではありません. これをさぼっていきなりパッチを送りつけても,まずコミュニティに受け入れられることはありません.英語でのディスカッションはなかなか大変ですが,相当ひどい英語でも結構皆さん我慢してつき合ってくれますので,臆せず挑戦しましょう. 議論の際に使われるメーリングリストは,「pgsql-hackers」というものです.このメ
メインコンテンツに移動 機能、分析、性能チューニング、運用監視など技術的な話題を扱います。 ブックナビゲーション 入門向けの記事 技術的な記事 PostgreSQL13の新機能 PostgreSQL 8.4 の新機能 PostgreSQL 9.0 の新機能 PostgreSQL 9.1 の新機能 PostgreSQL 9.2 の新機能 PostgreSQL 9.3 の新機能 PostgreSQL 9.4の新機能 PostgreSQL 9.5の新機能 PostgreSQL 9.6の新機能 PostgreSQL10の新機能 PostgreSQL11の新機能 PostgreSQL12の新機能 PostgreSQL14の新機能 PostgreSQL15の新機能 PostgreSQL16の新機能 pgpool-II 3.2 の新機能 pgpool-II 3.3 の watchdog 機能 pgpoo
NTT オープンソースソフトウェアセンタ 板垣貴裕 データベース・サイジング サイジングとは、サービスの開始前に、想定される負荷や格納されるデータ量を見積り、十分な性能や規模のサーバおよびストレージを用意することです。 今回は、サイジングの要素のうち、ストレージサイズの計算方法を紹介します。 データファイルの構成 PostgreSQL はデータベース・クラスタと呼ばれるディレクトリの下に、複数のディレクトリやファイルを作成します。 容量の多くを占めるのはアプリケーションが使うテーブルやインデックスになるでしょうが、それ以外にも管理領域やログのためのディスク領域が必要になります。
NTT オープンソースソフトウェアセンタ 笠原 辰仁 この記事は、gihyo.jp & Let's Postgres 連動企画「今こそ!PostgreSQL」の第6回記事です。第6回目は、PostgreSQLのエラーメッセージや内部情報を見て、発生している問題の特定とその対策となるチューニングを紹介します。なお、トラブルの発生・予兆を適切に捕捉するためにも、ログの設定や稼動統計情報の監視をしておきましょう。 エラーメッセージについて トラブルと対策の前にエラーメッセージのレベルについて説明しておきます。PostgreSQLは複数のエラーレベルを影響範囲や深刻度によって使い分けています。エラーレベルそれぞれの解釈の仕方を下記の表にまとめてみました。 データベース管理者は、深刻な状況である PANIC と、性能情報を含む LOG レベルのメッセージに注意しましょう。一方、アプリケーション開発者
この記事は、PostgreSQL とは何か、リレーショナルデータベースとは何かをわかりやすく説明するためのものです。 もしあなたがデータベースについて聞いたことがない、あるいは、言葉くらいしか知らないのであれば、そして、これからデータベースに関わっていくのであれば、ぜひこの記事を注意深くお読みいただきたいと思います。 記事の記述内容で分かりにくい、不適切な部分、もっと知りたいことなどございましたら、ぜひ著者までご一報下さい。なるべく早い時期にこの記事に反映したいと思います。 【第1回】データベースとデータベース管理システム 1.1 データベース管理システムが扱うデータ 1.2 データーベース管理システムとアプリケーション 1.3 データベース管理システムはデータベースを守る 1.4 データベースを使うと何人もの人が同時にデータベースを使える 【第2回】PostgreSQL って何? 【第3
NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL でロケール (国際化と地域化) の設定を行うと、データベース内での文字列処理、日付や通貨の表示、メッセージの言語などを変更することができます。特に PostgreSQL 8.4 では、日本語のメッセージ・カタログが追加されたため、エラーメッセージを日本語化したい場合にはロケールを設定する必要があります。 ただし、C ロケール以外を設定すると、インデックスが使われないなどの性能への影響がある場合もあります。また、特に古いバージョンの PostgreSQL では、誤った設定によりサーバが正しく動作しなくなるケースもありました。 この記事では、ロケール設定の効果を結果例を交えて解説すると共に、トラブルへの対応方法を示します。PostgreSQL で日本語を扱う際に、ロケール設定を決める時の参考にして下さい。 Postgr
SRA OSS, Inc. 日本支社 石井 達夫 現在開発中のPostgreSQL 9.3ですが、徐々に新機能が出揃ってきました。その中の一つに「更新可能VIEW」("Updatable view")というのがあります。これはその名の通り、更新可能なVIEWを作る機能です。 VIEWとは? VIEWとは、実際には存在しないテーブルのことで、CREATE VIEWというコマンドを使って定義します。VIEWは一種のマクロと考えることができ、よく使うSELECT文をVIEWとして定義することにより、複雑なSELECT文を毎回打ち込む手間を省くことができます。 たとえば、 CREATE VIEW mytable_foo AS SELECT * FROM mytable WHERE id = 'foo'; としておくと、 SELECT * FROM mytable_foo; とするだけで、 SELE
板垣 貴裕 テキスト検索にもさまざまな方法があります。大量のテキストを検索するにはインデックスを使って検索したいところですが、どんな検索にも応えられるインデックスというものは、さすがに存在しません。それぞれのアプリケーションの条件に適したテキスト検索方法やインデックスの張り方を選んで行きましょう。 今回説明するテキスト検索の方法の一覧を以下に挙げます。PostgreSQL ユーザが「全文テキスト検索」というと「単語単位の検索」を指すことが多いようです。また、「中間一致検索」が「あいまい検索」と呼ばれることもあるようです。用語が厳密な意味で使われないことも多いようなので、文脈には注意して解釈してください。 「単語単位の検索」と「中間一致検索」では、追加のモジュールを導入することで日本語全文検索が可能なインデックスを作成できます。こちらは説明の後半で紹介します。以下、本記事の内容です。 テキス
メインコンテンツに移動 お知らせ Let’s Postgres 運営管理についてのお知らせ コンテンツメニュー 導入検討 と 入門 インストール 運用管理 チューニング 新機能: 16 / 15/ 14 / 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 トラブルシュート サポートとFAQ 事例紹介 イベントレポート リンク集 レプリケーション / クラスタ構成 XML / PostGIS / 拡張モジュール パーティショニング / テキスト検索 Window関数 / 再帰SQL / 外部データ連携 文書: 15 / 14 / 13 / 12 / 11 / 10 / 9.6 / 9.5 Let's PostgreSQL は特定非営利活動法人日本PostgreSQLユーザ会が運営しています。 RSS feed
笠原 辰仁 本記事は2015年のPostgreSQL Advent Calendarの 12/3 の記事です。PostgreSQL9.3でサポートされたLATERALについての解説と使いどころについて紹介します。 はじめに PostgreSQLは幅広くSQL標準(ではないものも含む)の句や構文をサポートしており、それが製品の特徴の一つでもあります。PostgreSQL8.4でサポートされたWindow関数やWITH句はその引き合いに出されることが多いです。 さて、PostgreSQL9.3からはLATERALという句がサポートされています。やや地味で使われることが少ないため、ご存知の方は少ないかもしれません。しかし、LATERAL句は、使いどころによっては非常に強力な武器になります。 注意 本記事ではテーブル定義や実行計画等を記載している箇所がありますが、幅の表示上、見やすいように改行して
また、CREATE FUNCTION 文でユーザ定義のWindow関数を追加することもできますが、バージョン 8.4 ではC言語で関数を記述する必要があります。SQLやPL/pgSQLは使えないので、敷居は高いかもしれません。 例 典型的なWindow関数の使い方を挙げます。この他にも、これまで複雑なSQLが必要だったさまざまなケースを効率化できる可能性がありますので、SQLパズルだと思って試してみてください。。 連番付与 連番付与を行います。ソートした後、番号をふるのがポイントです。 SELECT row_number() OVER (), * FROM (SELECT * FROM tbl ORDER BY sortkey) AS t; ただし、結果の最大行数を指定するには、row_number との値の比較ではなく、これまでどおり LIMIT 句を使ってください。row_number
また、PostgreSQL にはいわゆる CLOB, BLOB のような巨大データ専用の型は存在せず、1GB までであれば text や bytea 型をそのまま使えます。1GB を超える場合はラージオブジェクトも利用できますが、アクセスや管理の方法にクセがあるためお奨めできません。数MBまでは text や bytea を使い、それを超えるようなら外部ファイルとして保持したほうが、むしろ安心して運用できるかと思います。 char と varchar, text の比較 PostgreSQL の文字列は以下のような特徴があります。 1. char(n) や varchar(n) の 'n' は「文字数」を表す 他のデータベースではバイト数を表すものもあるので注意しましょう。 2. char(n) は n 文字になるように末尾に空白を追加して保持する n 文字ぴったりで無い限り、末尾の空白の
FORCIA, Inc. 板垣 貴裕 PostgreSQL に大量のデータを高速に取り込む方法を紹介します。 COPY という専用のコマンドを使うと INSERT よりもずっと高速です。 また、COPY を使う際にひと工夫すると、さらに速くなります。 高速にデータをロードするコマンド INSERT の代わりに COPY FROM を使う PostgreSQL には COPY FROM という大量データ取り込み専用のコマンドがあります。 COPY コマンドは外部からタブ区切り (.tsv) やカンマ区切り (.csv) のファイルを読み込める上に、INSERT よりもずっと高速です。 同様に、pg_dump コマンドも -d や --inserts オプションを付けると INSERT を並べたダンプファイルを作ってしまいます。 オプションを付けないデフォルトでは高速な COPY 形式なので、
NTT オープンソースソフトウェアセンタ 鈴木 幸市 4. 設定 設定で行うことは次のとおりです。 管理ユーザ(postgres) でログインできるようにする。 管理ユーザでログインしてデータベースを作る データベースに自分のアカウントでログインできるように設定する。 では、順を追ってやり方を示していきます。 4.1 管理ユーザでログインできるようにする PostgreSQLをインストールした時点で、すでにデータベースの管理ユーザであるpostgresユーザが作られています。しかし、このユーザのパスワードは不定で、このままではログインができません。最初にデータベースを作ったりデータベースのユーザを設定するためには、postgresユーザにならなければなりません。そこで、postgresユーザログインできるようにパスワードを設定しましょう。 パスワードの設定には、「端末」を使います。これは、
PostgreSQL 10 は 2017年秋にリリース予定です。既にベータ版はリリースされています。本記事では、PostgreSQL 10の新機能を解説した資料を紹介します。 「篠田の虎の巻」 第7弾 『PostgreSQL10 beta1 検証結果』 (本文書の概要と紹介ページ) beta1時点で作成された日本ヒューレットパッカード篠田様による技術文書です。主要な機能について動作例を含む詳しく解説されています。 PostgreSQL10徹底解説(スライド資料) NTT OSSセンタ澤田様による OSC Hokkaido 2017 でのJPUG北海道支部講演のスライド資料です。 「次期バージョン PostgreSQL 10 の 新機能とその後の方向性」(スライド資料) SRA OSS, Inc. 長田様のJPUGセミナーおよびdb tech showcase 2017 での講演スライド資料
はじめに 2013 年 8 月に pgpool-II 3.3 がリリースされました。このバージョンでは、複数の pgpool-II を連携させ、可用性を高める機能である watchdog 関して、いくつか新機能が追加されました。 中でも大きな変更は、pgpool-II 間の死活監視に新しい方法が追加されたことです。 本記事では、この新しい監視方法を用いた pgpool-II 3.3 の watchdog 機能について解説します。 pgpool-II および watchdog について pgpool-II とは pgpool-II は、PostgreSQL のクライアントアプリケーションと、(複数の)PostgreSQL の間に割り込んで入る proxy のような形で利用するミドルウェアです。直接 PostgreSQL を使うのではなく、pgpool-II を経由することによって、コネクショ
ストリーミング・レプリケーション (Streaming Replication) は、PostgreSQL 9.0 以降で利用できる、本体組み込みのレプリケーション機能です。参照/更新が可能な1つのマスタDBへの更新操作を、参照のみが可能な複数のスタンバイDBへ転送することで、データベースを複製することができます。スタンバイDBに更新結果が反映されるまでには若干の遅延がありますが、比較的 遅延は少なく、マスタDBへの影響も小さいレプリケーション方式です。 用途 ストリーミング・レプリケーションには以下の用途があります。 多数の参照クエリのサーバ間分散 マスタDB異常時の迅速なフェイルオーバー (切り替え) マスタDBのディスク故障に備えたリアルタイム・バックアップ PostgreSQL 9.1 での強化点 バージョン 9.0 の目玉機能として登場したレプリケーション機能ですが、9.1 では
SRA OSS, inc. 北川 俊広 はじめに 本稿では、pgpool-II 3.0 と PostgreSQL 9.0 の Streaming Replication/Hot Standby(以降SR/HSと表記します)機能を組み合わせたクラスタ構成について解説します。 pgpool-II 3.0 pgpool-II は、2010年9月にバージョン 2.3 からバージョン 3.0 へ大幅なメジャーバージョンアップが行われました。3.0 における大きな変更点は SR/HS への対応で、主にクエリ振り分けの処理に変更が加えられています。 pgpool-II で次のとおりパラメータ設定をすると、SR/HSクラスタ構成に適した動作をします。master_slave_sub_mode は、pgpool-II 3.0で新設されたパラメータです。 master_slave_mode = true ma
NTT オープンソースソフトウェアセンタ 板垣 貴裕 Windows Vista へ PostgreSQL をインストールし、データベースを利用するための環境を整えます。インストールには EnterpriseDB 社のバイナリ・パッケージを使います。解説の最後で、初期設定やデータの移動に関する、よくある質問についても補足します。 インストールの流れ 最初にインストールが何を行うのかと、インストールされるファイルを整理しておきます。PostgreSQL サーバ本体に関しては、ウィザードに従えば一括でインストールされます。 ダウンロード バージョン 8.4 では、Windows 用のパッケージは EnterpriseDB 社によりメンテナンスされています。コミュニティのダウンロードページから辿れるインストーラを利用するのが手軽です。postgresql-8.4.0-1-windows.exe
PostgreSQL 9.6 は 2016年9月にリリースされました。本記事では、PostgreSQL9.6 の新機能の概要と外部参考資料の紹介をいたします。 9.6 新機能の概要 9.6では多数の性能改善、機能拡張が行われています。主要な点を以下に挙げます。すべての変更点は9.6のリリースノートに記載されています。 主な性能改善、機能拡張としては以下があります。 シーケンシャルスキャン、結合、集約のパラレル実行に対応しました。 XID周回対策のための VACUUM で XID凍結済みの部分を省略して実行できるようになりました。 同期スタンバイサーバを同時に複数持てるようになりました。また、スタンバイへの WAL適用までを確認する同期モードが追加されました。 全文検索でフレーズ(隣接した複数語)の検索に対応しました。 postgres_fdw がリモートでの結合、ソート、UPDATE、DE
パーティショニングとはデータを複数に分割して格納することです。特にデータサイズが大きい場合には、性能や運用性の向上や、故障の影響を局所化できる利点があります。
ところで、Excel に出てくる表とデータベースの表では少し違いがあります。その違いを次に解説します。 データベースの表では、フィールド同士を連結したり、一つのフィールドを複数のフィールドに分割したりすることはできません。一つのフィールドに入れることができるデータは、一つです(ただし、データとして配列など、複数の値が入るように拡張してあります)(図3-2)。 図3-2 ● フィールドの分割結合はできない 行の順序には意味がありません。データベースからデータを読み出した場合、特に順序を指定しなければ、読み出される順は予測することはできません。入力した順序というわけでもありません。実際データを読み出す際には、データの順序を一定にする手段がいろいろと用意されています(図3-3)。 図3-3 ● 行の順序には意味はない 行は、それぞれのフィールドの値でだけ区別されます。したがって、図7にあるように
次のページ
このページを最初にブックマークしてみませんか?
『ホーム | Let's POSTGRES』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く