タグ

lets-postgresに関するnabinnoのブックマーク (282)

  • ストリーミング・レプリケーション | Let's POSTGRES

    ストリーミング・レプリケーション (Streaming Replication) は、PostgreSQL 9.0 以降で利用できる、体組み込みのレプリケーション機能です。参照/更新が可能な1つのマスタDBへの更新操作を、参照のみが可能な複数のスタンバイDBへ転送することで、データベースを複製することができます。スタンバイDBに更新結果が反映されるまでには若干の遅延がありますが、比較的 遅延は少なく、マスタDBへの影響も小さいレプリケーション方式です。 用途 ストリーミング・レプリケーションには以下の用途があります。 多数の参照クエリのサーバ間分散 マスタDB異常時の迅速なフェイルオーバー (切り替え) マスタDBのディスク故障に備えたリアルタイム・バックアップ PostgreSQL 9.1 での強化点 バージョン 9.0 の目玉機能として登場したレプリケーション機能ですが、9.1 では

    ストリーミング・レプリケーション | Let's POSTGRES
  • pgpool-II 3.3 の watchdog 機能 | Let's POSTGRES

    はじめに 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 を経由することによって、コネクショ

  • pgpool-II + HS/SRクラスタ構成 | Let's POSTGRES

    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

  • WindowsでPostgreSQLを使ってみよう | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 Windows Vista へ PostgreSQL をインストールし、データベースを利用するための環境を整えます。インストールには EnterpriseDB 社のバイナリ・パッケージを使います。解説の最後で、初期設定やデータの移動に関する、よくある質問についても補足します。 インストールの流れ 最初にインストールが何を行うのかと、インストールされるファイルを整理しておきます。PostgreSQL サーバ体に関しては、ウィザードに従えば一括でインストールされます。 ダウンロード バージョン 8.4 では、Windows 用のパッケージは EnterpriseDB 社によりメンテナンスされています。コミュニティのダウンロードページから辿れるインストーラを利用するのが手軽です。postgresql-8.4.0-1-windows.exe

  • Pgpool-IIの簡単セットアップ機能を試してみよう(3) | Let's POSTGRES

    自動縮退・フェイルオーバを試してみる pgpool-IIは、PostgreSQLが動いているかどうか監視しており、もしPostgreSQLがダウンした場合には自動的に切り離して(「縮退」と言います)、クラスタ全体として運用を継続できるようにします。また、単に縮退させるだけでなく、スタンバイサーバをプライマリに昇格させたりするようなフェイルオーバ処理を実行させることもできます。 まずはpgpool-IIが現在のPostgreSQLの状態をどのように認識しているか見てみましょう。 $ psql -p 11002 test psql (9.2.4) Type "help" for help. test=# show pool_nodes; node_id | hostname | port | status | lb_weight | role ---------+----------+----

  • PostgreSQL 9.3の新機能: 更新可能VIEW | Let's POSTGRES

    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

  • ストリーミング・レプリケーション | Let's POSTGRES

    ストリーミング・レプリケーション (Streaming Replication) は、PostgreSQL 9.0 以降で利用できる、体組み込みのレプリケーション機能です。参照/更新が可能な1つのマスタDBへの更新操作を、参照のみが可能な複数のスタンバイDBへ転送することで、データベースを複製することができます。スタンバイDBに更新結果が反映されるまでには若干の遅延がありますが、比較的 遅延は少なく、マスタDBへの影響も小さいレプリケーション方式です。 用途 ストリーミング・レプリケーションには以下の用途があります。 多数の参照クエリのサーバ間分散 マスタDB異常時の迅速なフェイルオーバー (切り替え) マスタDBのディスク故障に備えたリアルタイム・バックアップ PostgreSQL 9.1 での強化点 バージョン 9.0 の目玉機能として登場したレプリケーション機能ですが、9.1 では

    ストリーミング・レプリケーション | Let's POSTGRES
  • ストリーミング・レプリケーション | Let's POSTGRES

    ストリーミング・レプリケーション (Streaming Replication) は、PostgreSQL 9.0 以降で利用できる、体組み込みのレプリケーション機能です。参照/更新が可能な1つのマスタDBへの更新操作を、参照のみが可能な複数のスタンバイDBへ転送することで、データベースを複製することができます。スタンバイDBに更新結果が反映されるまでには若干の遅延がありますが、比較的 遅延は少なく、マスタDBへの影響も小さいレプリケーション方式です。 用途 ストリーミング・レプリケーションには以下の用途があります。 多数の参照クエリのサーバ間分散 マスタDB異常時の迅速なフェイルオーバー (切り替え) マスタDBのディスク故障に備えたリアルタイム・バックアップ PostgreSQL 9.1 での強化点 バージョン 9.0 の目玉機能として登場したレプリケーション機能ですが、9.1 では

    ストリーミング・レプリケーション | Let's POSTGRES
  • PostgreSQL 9.6の新機能 | Let's POSTGRES

    PostgreSQL 9.6 は 2016年9月にリリースされました。記事では、PostgreSQL9.6 の新機能の概要と外部参考資料の紹介をいたします。 9.6 新機能の概要 9.6では多数の性能改善、機能拡張が行われています。主要な点を以下に挙げます。すべての変更点は9.6のリリースノートに記載されています。 主な性能改善、機能拡張としては以下があります。 シーケンシャルスキャン、結合、集約のパラレル実行に対応しました。 XID周回対策のための VACUUM で XID凍結済みの部分を省略して実行できるようになりました。 同期スタンバイサーバを同時に複数持てるようになりました。また、スタンバイへの WAL適用までを確認する同期モードが追加されました。 全文検索でフレーズ(隣接した複数語)の検索に対応しました。 postgres_fdw がリモートでの結合、ソート、UPDATE、DE

  • 第3回 XPathの応用-PostgreSQLのXPath機能を利用したデータ照会の実際 | Let's POSTGRES

    これをcsv形式のデータとすると以下のようになります(1行分だけ記します)。 1076,石川順子,開発一課,23,ishikawa@abcd.com,"<work-record> <career> <period> <start>2008-09-01</start> <end/> </period> <content>亀ロジスティクス様社内ネットワーク運用保守</content> <role>運用メンバー</role> </career> </work-record>" ところで、データの格納の際、これまではINSERT文の中に直接データとなる文字列を埋め込んでいましたが、今回は数が多いので、csv形式で用意しておいたファイルから一括挿入できるCOPYコマンドを使ってみましょう。ここで読み込むファイルはPostgreSQLデータベースのユーザーがアクセス許可されている必要があります。Win

  • pgpool-II レプリケーション構成 — Let's Postgres

    SRA OSS, Inc 古跡 智仁 章では、pgpool-II によるレプリケーション構成について紹介します。 pgpool-II をレプリケーションモードで動作させて使うことで PostgreSQL サーバのレプリケーション構成を構築することができます。 pgpool-II によるレプリケーション レプリーケーション構成とは、複数ノードにデータの複製を作成する構成のことを指します。pgpool-II は、アプリケーションから受け取った問い合わせをクエリベースで複数ノードに送信して、同じ内容のデータベースを複数ノードで保持することが可能です。ハードディスク障害などで1つのノードが正常に動作しなくなると、これを検知して障害ノードを切り離して縮退動作します。障害検知にあたっては、アプリケーションからのアクセスでエラーになる場合のほか、pgpool-II 自身で定期的なヘルスチェックを行わせ

  • 第1回 PostgreSQLとXML | Let's POSTGRES

    第1回 PostgreSQLとXML 響 楽人 XMLが制定されてから11年経ち、データベースの世界でもXML対応が進んでいます。そのような中、PostgreSQL は一段とXML対応を格化させています。連載では、PostgreSQL 8.3でのXMLの取り扱い方について基から応用まで説明してゆきます。 第1回はPostgreSQLとXMLというテーマですので、まずはPostgreSQLを使える状態にした上で、XMLの形をしたデータを格納し、そのデータをSQLによって操作可能かを試みます。 PostgreSQLは、8.3からXML型のデータの内容をXPathで操作できるようになりました。XPathとは、XMLの中の特定の箇所を指定するための仕組みです。XPathの詳細は第二回以降で取り上げますが、今回もXMLインスタンスをデータベースに格納した後、この機能を使ったSELECTを行って

  • PHPでのSQLインジェクション対策 - プレースホルダ編 | Let's POSTGRES

    第四企画 坂井 潔 SQLインジェクションの脅威からシステムを守るために、プログラミング言語/スクリプトからSQLを発行するときには、パラメータを適切に処理しなくてはなりません。今回はプレースホルダ編と題し、SQLインジェクション対策として最も簡単で効果的な方法を、PHPで説明します。 SQLインジェクションとは? まず「SQLインジェクション」とは何かおさらいしましょう。SQLインジェクションとは、アプリケーション(この場合はPHPスクリプト)に渡すパラメータの値を操作することで、元々は意図されていない処理をSQLとして実行させてしまうことです。 簡単な例をあげてみます。ユーザーから文字列「山田」が渡されたとき、以下のようなSELECT文を発行することにします。 SELECT * FROM users WHERE username LIKE '%山田太郎%'; ユーザーに入力された文字列

  • 第5回 PostgreSQL でのデータベース構築の際に必要となる物理設計のポイント | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣貴裕 データベース・サイジング サイジングとは、サービスの開始前に、想定される負荷や格納されるデータ量を見積り、十分な性能や規模のサーバおよびストレージを用意することです。 今回は、サイジングの要素のうち、ストレージサイズの計算方法を紹介します。 データファイルの構成 PostgreSQL はデータベース・クラスタと呼ばれるディレクトリの下に、複数のディレクトリやファイルを作成します。 容量の多くを占めるのはアプリケーションが使うテーブルやインデックスになるでしょうが、それ以外にも管理領域やログのためのディスク領域が必要になります。

  • 第1回 PostgreSQLの今を知る | Let's POSTGRES

    SRA OSS, Inc. 日支社 稲葉 香理 PostgreSQL とは PostgreSQL は、オープンソースのリレーショナルデータベースです。最近では、さまざまなところで利用されるようになっていますので、ご存知の方も多いことと思います。 商用データベースに匹敵する格的な機能とオープンソースならではの利用の柔軟度が魅力のデータベースソフトウェアです。 PostgreSQL の開発 PostgreSQL は、PostgreSQL Global Development Group というオープンソースコミュニティによって開発されています。 商用のソフトウェアや一部のオープンソースのソフトウェアではベンダ主導の開発が行われていますが、様々な国の様々な背景を持った開発者が議論を公開しながら開発することで透明性の高い開発が行われています。 開発の意思決定は多数いる開発者の中の数名のコアメン

  • PHPでのSQLインジェクション対策 - プレースホルダ編 | Let's POSTGRES

    第四企画 坂井 潔 SQLインジェクションの脅威からシステムを守るために、プログラミング言語/スクリプトからSQLを発行するときには、パラメータを適切に処理しなくてはなりません。今回はプレースホルダ編と題し、SQLインジェクション対策として最も簡単で効果的な方法を、PHPで説明します。 SQLインジェクションとは? まず「SQLインジェクション」とは何かおさらいしましょう。SQLインジェクションとは、アプリケーション(この場合はPHPスクリプト)に渡すパラメータの値を操作することで、元々は意図されていない処理をSQLとして実行させてしまうことです。 簡単な例をあげてみます。ユーザーから文字列「山田」が渡されたとき、以下のようなSELECT文を発行することにします。 SELECT * FROM users WHERE username LIKE '%山田太郎%'; ユーザーに入力された文字列

  • PostgreSQL の構造とソースツリー(1) — Let's Postgres

    PostgreSQL では、ユーザが独自にユーザ定義関数の処理系を定義することができます。 そこで各種言語用のサーバサイドスクリプトがサードパーティーによって提供されています。 主なものとしては、Ruby, Java, PHP などがあります。 それでは、もう少し詳しく PostgreSQL の構造を見てみましょう。 バックエンド側はいくつかのプロセスから構成されています。 postgres (常駐プロセス) バックエンドを管理する常駐プロセスです。 "postmaster" とも呼ばれます。 デフォルトでは postgres は UNIX ドメインソケットと TCP/IP の 5432 番のポートを listen しており、フロントエンドがここに接続するのを待ち受けています (Windows など、一部のプラットフォームでは TCP/IP のみ)。 待ち受けるポート番号は Postgre

  • PGCon 2009 参加レポート — Let's Postgres

    Hitoshi Harada 2009 年 5 月 21 日~ 22 日にわたって開催された PGCon 2009 に参加してきました。PGCon とは世界中の PostgreSQL ユーザ・開発者が集まる一年で最も大きな PostgreSQL のイベントです。例年日からも多くの参加があるのですが、今年は不幸なことに新型インフルエンザの影響で直前に参加を取りやめたケースが多かったようです。結果日からの参加は私一人だったということもあり、僭越ながらレポートを書いております。 PGCon 2009 は今年も例年通りオタワ大学で開催されました。カナダへ渡航したのは私にとってこれが初めてでしたので、北国というイメージもあり寒いかなと上着を持って行きましたが、まったくそんなことはなく、空気も乾燥しており非常に過ごしやすい気候のようです。参加者はアメリカを初めとして、カナダ、ブラジル、イギリス

  • PostgreSQLの機能と他のRDBMSの比較 | Let's POSTGRES

    全ての機能を網羅した表ではありませんが、PostgreSQLOracle Database と同様の機能があることがお分かりいただけるでしょう。レプリケーションやクラスタリングなどは、PostgreSQL体とは別にリリースされるサードパーティーでの提供となりますが、pgpool-II, Slony-I をはじめとした実績も豊富なソフトウェアが提供されています。 PostgreSQLが特に強みを発揮する分野として、最後の行に記載したGIS (地理情報システム) があります。GISは位置に関する情報を持ったデータ (空間データ) を管理し、主に地図と組み合わせて位置を表示、検索、分析するシステムです。PostgreSQLでは、PostGIS というサードパーティーソフトウェアで、GISオブジェクトをデータベースに格納し空間データに適した検索を行うインデックスと、GISオブジェクトを解析す

  • PostgreSQL 超入門 第1回(1) — Let's Postgres

    この記事は、PostgreSQL とは何か、リレーショナルデータベースとは何かをわかりやすく説明するためのものです。 もしあなたがデータベースについて聞いたことがない、あるいは、言葉くらいしか知らないのであれば、そして、これからデータベースに関わっていくのであれば、ぜひこの記事を注意深くお読みいただきたいと思います。 記事の記述内容で分かりにくい、不適切な部分、もっと知りたいことなどございましたら、ぜひ著者までご一報下さい。なるべく早い時期にこの記事に反映したいと思います。 【第1回】データベースとデータベース管理システム 1.1 データベース管理システムが扱うデータ 1.2 データーベース管理システムとアプリケーション 1.3 データベース管理システムはデータベースを守る 1.4 データベースを使うと何人もの人が同時にデータベースを使える 【第2回】PostgreSQL って何? 【第3