PostgreSQL
ワケあってPLpgSQL + Triggerのクイズを解いたのですが、PLpgSQLの基本はもとより、pg_notify()やらCTEやらJSONやら、実力を試すにはよいクイズだったように思うので、上げておきます。 質問 以下のテーブルがある。 CREATE TABLE transaction ( id SERIAL P…
こちらでROLLUPが考察さているが、PostgreSQLも先月(2016年1月)リリースのversion 9.5でROLLUPをサポートしたので、試す。 PostgreSQLのドキュメントはこちら。みるとわかるけども、PostgreSQLとSQL-ServerはSQL標準準拠。MySQLが方言。 サンプルはこちらと…
オリジナルの記事はこちら ディレクトリ`/usr/local/pgsql/tblspc`に作った`tblspc`を、`/home/postgres/tblspc`に移す。 [1] テーブルスペース`tblspc`のOidを調べる testdb=# SELECT oid,spcname FROM pg_tablespace WHERE spcname = 'tblspc'; oid | spcn…
(5年前に作った)Postgres-XC用の多重化GTMシステムが動くVagrant boxを作ったので公開します。Postgres-XC用の多重化GTMシステムについては例えば"こちら"を参照。 Requirement Vagrant VirtualBox Install GitHubからリポジトリをcloneしてください。 # gi…
このブログに限り完全に著作権を放棄します(あくまでこのブログだけ。他のブログ、および下の英語文書は範囲外)。勝手に使ってよし。2016.12.20 公開した文書のごく一部を、翻訳して公開。(BLOGにするにあたり、構成は変えた。)http://www.interdb.jp/pg 概…
Coming soon!http://www.interdb.jp/pg/index.html
PostgreSQLとMySQL(MariaDB)のレプリケーションはいろいろ違うが、ロングトランザクションでの挙動の差は興味深いわりにあまり言及されないので、さくっと書く。 MySQLのレプリケーションはバイナリログベースである。動作は以下のとおり。 トランザクション…
リモートサーバにデータをバックアップできるpg_rmanみたいなツールを作ってみた。 動機 pg_rmanはとてもよいツールだったのだが、PostgreSQLを置いたサーバにしかバックアップデータを保存できない*1。通常は別サーバにバックアップデータを置くので、実は…
"JPUG勉強会の最終回"で「PostgreSQLのリカバリ超入門」という話をした。 "SlideShare:PostgreSQLのリカバリ超入門" WALとかCHECKPOINTとか、オンラインバックアップの原理について、可能な限り簡単に説明したつもり。 ネタ元の「内部構造:WAL」が分かりに…
(2014.12.3追記:以下の書籍にも記述した。)(2014.4.16)微妙に反応があるので、PostgreSQLネタ追記。 PostgreSQLには古くから配列型や複合型というのがあって、似たようなことができる。 あと、MariaDBのダイナミックカラムをJSONで取り出すcolumn_jsonなん…
表題とおり、溜まったアーカイブログを削除するスクリプト*1。ここまでやる意味があるかどうかは別として。 commitやabortした時刻はWALログに記録されているので、pg_xlogdumpを使って「X日以前のWALアーカイブを削除する」スクリプトを書いた。 動作はpg_x…
追記(2014.02.19):バグのようです。1.2.2から紛れ込んだ模様。開発者に連絡してもらったので、そのうち直るでしょう。 ドキュメントと違う挙動をしているように見える。 私の解釈が間違っているのか、使い方が間違っているのか?ドキュメントの記述を抜粋。…
表題のとおり、みなさん「いつ、何をキッカケに実行してますか」という素朴な疑問。 VACUUM FULL ひとつ考えたのがpg_freespacemapを使う方法。以下のSQLを実行するとテーブル"tablename"の空き領域(FreeSpace)の割合が求まる。 SELECT pg_size_pretty(cas…
自分用メモ。 OracleのシステムビューとPostgreSQLの各種カタログ(テーブルとかビューとか)の対応を緩くまとめる。メモ書きをはじめたばかりで、内容には非常に多くの間違いが混じっているはずので信じないこと。 徐々に完成度を上げていく予定。 (なんとか)…
こちらの実験を手元で再試行できるように、スクリプト群と実験方法を示す。 ここで示した例以外にも、こちらでMariaDB vs MysSQLのオプティマイザ機能比較があるので、各自試してみるとよいと思う。 https://mariadb.com/kb/en/optimizer-switch/ スクリプト…
https://mariadb.com/kb/en/optimizer-switch/にあるように、MariaDBのオプティマイザはかなり改良されている。 では、MariaDBのオプティマイザ/エクゼキュータはどの程度優秀か、4つのSELECT文の実行を通してMySQLと(ついでにPostgreSQLと)比較してみる。 …
2013年9月9日、いきなりPostgreSQL9.3がリリースされた。 それを記念してFDWを使って本当のデッドロック状態をつくって遊んでみようと思う。 準備 サーバを2台準備する。サーバはtest1とtest2とする。
PostgreSQLとMySQLのバッファについて。 PostgreSQLのバッファマネージャ 詳細はこちらをみて頂くとして、PostgreSQLのバッファマネージャは、2005年リリースのバージョン8.1で大幅に変わった。以下の表をみて頂くとわかるようにページ置換アルゴリズム…
毎度おなじみ、流浪のPostgreSQL本が2012年11月16日に出版されます。 今回の書名は「PostgreSQL全機能バイブル」。6年ぶり、バージョン9.2対応。 内部構造は100ページ、図70枚。内容的には前著の1024倍以上グレードアップしています。関連情報…
調べものがあってPostgreSQLのwikiをみたのですが、日本語wikiにのみ、不思議な記述があります。http://ja.wikipedia.org/wiki/PostgreSQL 市場シェア 世界的な利用状況を見ると、2004年の時点では商用DBを含めると第6位、 オープンソースDBに限定すると MyS…
sr_sync02.htmlに、より詳細な動作機構や新規に追加された関数、ツールの紹介がある。 sr_sync03.htmlに、障害対応に関する解説がある。解説資料としては、 http://lets.postgresql.jp/documents/technical/replication/1 が詳しい。 (2012.10.30追記)以下の…
同期レプリケーションでの障害対応について、具体例を使って説明する。 なお、分量が多いのでここでは一部のみ公開。全体はこちら (2012.10.30追記)最新情報は書籍にまとめたので、参照のこと。 マスタ:スレーブ = 1:1の場合 マスタ障害:スレーブが1台の場合…
今さら、同期レプリケーションについて。ここでは機構のみ。新機能など含む全文はこちら (2012.10.30追記)正式な文書は以下の書籍にまとめたので参照のこと。 また、http://www.interdb.jp/techinfo/postgresql/internal-11.html に原稿のサンプルをアップし…
イタリアのPostgreSQL Users Groupからのメッセージ。JPUGのあるメンバー向けメッセージですが、複数のMLにすでに流れているので、勝手に転載。 I want to express our deepest sympathy for the recents events in Japan. We hope that your families and l…
2005年ころ、PostgreSQL+QueryCacheという実験をやっていたことをふと思い出す。今みてもソースが汚い。ソースよりも「インスパイヤライセンス」を書きたくて作った側面も否定できず。
Postgres-XCの単一障害点であるgtmを多重化するmgtmを作ったので公表する。これはAPPIA版の改良でJGroupsを使っている。 2011年2月現在、最新版はver0.9.3〜0.9.4だが、mgtmはver0.9.2で動作する。もうすこしUI修正や動作を整えてから公開しようと思ったが、…
ポツポツとアクセスがあるのでアップデイト。2011年1月現在、最新版はver0.9.3だが、ver0.9.2で動作するgtmとgtm_proxyのJava版を作ったので公表する。 ダウンロード jgtm-0.3.2a.jarをダウンロードする。Java1.5以上のJDK、もしくはJREを用意すること。つづ…
Postgres-XCの単一障害点であるGTM(GlobalTransactionManager)を多重化するmgtmを作ったので公表する。 2010年12月現在、最新版はver0.9.3だが、mgtmはver0.9.2で動作する。つづきはアップデイト版で前の文書はこちら なお、12月11日開催のJPUG仕組み+アプ…
2010年12月現在、最新版はver0.9.3だが、ここではver0.9.2のインストール方法を示す。 つづきはこちら
G.Smith氏が今月"PostgreSQL9.0 Hight Performance"を出版した。https://www.packtpub.com/postgresql-9-0-high-performance/bookPDF版だと1000円程度なので早速ダウンロード。 99%チューニングに特化した内容。ベンチマークにも相当ページを割いている。 Ch…