2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

PostgreSQL Part.7

1 :NAME IS NULL:2009/10/23(金) 21:23:38 ID:???
PostgreSQL (ぽすとぐれすきゅーえる, ぽすとぐれす) について語るスレです。

●関連サイト
PostgreSQL 本家
http://www.postgresql.org/
日本PostgreSQLユーザ会
http://www.postgresql.jp/
ドキュメント
http://www.postgresql.jp/document/current/html/
ダウンロード
http://www.postgresql.jp/PostgreSQL
Let's Postgres (ポータルサイト)
http://lets.postgresql.jp/
pgFoundry
http://pgfoundry.org/

●前スレ
PostgreSQL Part.6
http://pc11.2ch.net/test/read.cgi/db/1224318817/

2 :NAME IS NULL:2009/10/23(金) 21:25:44 ID:???
●過去スレ
PostgreSQL 2テーブル目 (WebProgから派生)
http://pc8.2ch.net/test/read.cgi/db/1056944337/
PostgreSQL & pgsql-jp ML 3テーブル目
http://pc11.2ch.net/test/read.cgi/db/1079771059/
【Windows】 PostgreSQL8 Part.1 【対応】 (実質part4)
http://pc11.2ch.net/test/read.cgi/db/1102247223/
PostgreSQL Part.5
http://pc11.2ch.net/test/read.cgi/db/1196512717/
PostgreSQL Part.6
http://pc11.2ch.net/test/read.cgi/db/1224318817/

●関連過去スレ
■   PostgreSQLのことならここで聞け   ■ (初心者part1)
http://pc8.2ch.net/test/read.cgi/db/1056960249/
■   PostgreSQLのことならここで聞け   ■ (初心者part2)
http://pc8.2ch.net/test/read.cgi/db/1091523132/
PostgresSQLについて語ろう (雑談part1)
http://pc8.2ch.net/test/read.cgi/db/1056992724/
PostgreSQLについて語ろう where OID=2::oid (雑談part2)
http://pc8.2ch.net/test/read.cgi/db/1136805513/

●関連スレ
2ch検索
http://find.2ch.net/index.php?STR=PostgreSQL
WebProg/PostgreSQL 2テーブル目
http://pc11.2ch.net/test/read.cgi/php/1047317680/

3 :NAME IS NULL:2009/10/24(土) 16:51:35 ID:???
>>1
着実にVerUpしているけど、なんかこう今すぐUpしたいって思うような目新しいものがイマイチ無い。
ぼちぼちレプリケーション導入を考えているのだけど、本家(本体)に取り込まないのかな?
バックアップとかその復旧まわりがどの程度充実しているのか、最近ろくすっぽ追っかけていないので、
ようワカランのだが。

4 :NAME IS NULL:2009/10/24(土) 16:58:23 ID:???
>>3
レプリケーションは次のバージョン 8.5 で取り込まれる予定。乞うご期待。

バックアップやリカバリは、本体には最低限必要な機能は備わっているので、
後はサードバーティ製ツールの対応次第だね。こっちも本体に取り込まれると嬉しいんだけど。

5 :NAME IS NULL:2009/10/24(土) 17:25:18 ID:???
Win版使用だけど、
Slony-I の使い方がよくわからないので、
簡単なレプリケーションが組み込まれるといいな。

バックアップは、
バックアップファイルに対するパスワード化は標準である?
まぁ、ツールがあるし、別にいいけど、
バックアップ中は、CPU負荷が高くなるから、マルチCPUはいるね。

6 :3:2009/10/24(土) 18:10:39 ID:???
>>4
それは期待して待っていよう。
といっても、それまで放置しておくのもなんなので、pgpoolでお試ししてみるかな。
本体に取り込まれるのは、オリジナル? それとも既存の何かを利用するのかな。

バックアップも、cronによる定期実行程度しかしてない。> 俺
PITRとかちゃんとやんなきゃと思いつつ...。

7 :NAME IS NULL:2009/10/24(土) 18:54:13 ID:???
PITR(ポイントインタイムリカバリ)って、
最初の、pg_start_backup でとったバックアップファイルと、
pg_xlog配下のファイルをミラーリングとかで別にバックアップしておけば、
最新の状態に近い、ホットスタンバイ的な復旧が可能ってこと?

下記を参考にして見た。
http://www.postgresql.jp/document/pg800doc/html/backup-online.html
http://d.hatena.ne.jp/higepon/20090414/1239695524

8 :NAME IS NULL:2009/10/24(土) 19:11:27 ID:???
>>7
ログは「archive_command で取っておいたアーカイブログ」が要る。
pg_xlogはアーカイブされていない最新のファイルだけあれば可。
WALが残っている限り故障直前まで復旧できるし、
操作ミスを取り消したいのならば任意の時点で止めることもできる。

9 :NAME IS NULL:2009/10/24(土) 19:26:44 ID:???
>>8
ありがとう。

アーカイブログが必要なんですね。
だから、pg_xlog配下のファイルはファイルサイズが一定で小さいままなのか。

ファイル容量の余裕と、PITRのリカバリ復旧の時間が早ければ、使ってみようかな。

10 :NAME IS NULL:2009/10/24(土) 20:13:58 ID:???
PITR(ポイントインタイムリカバリ)だけど、

SELECT pg_start_backup('dbdata.init.bak');
SELECT pg_stop_backup();

を実行した後、'dbdata.init.bak'が見つからないけど、どこにあるんだろ。出来ているのかなぁ。

11 :NAME IS NULL:2009/10/24(土) 20:25:52 ID:???
それは単にメモだから。backup_label という名前の
テキストファイルの中に、文字として書いてあるはず。
ちなみに、start 〜 stop の間に自分でファイルコピーしないどダメだぞ?

12 :NAME IS NULL:2009/10/24(土) 23:49:35 ID:???
前スレ950だけどCEの8のSilver受けてきた
ギリギリ受かった

13 :NAME IS NULL:2009/10/24(土) 23:58:56 ID:???
>>12
お〜おめでとう
難しかった?

14 :NAME IS NULL:2009/10/25(日) 00:30:10 ID:???
>>11
ありがとうございます。

pg_xlog配下にファイルが作成されていくようにはなりましたが、

recovery.conf によるリカバリーをいろいろ試しましたがうまくいきませんでした。
私の設定が悪いんでしょうね。(^^:
しかし、pg_xlog配下のファイルが意外に大きいので、ファイル容量的にちょっと断念かな。
蓄積していったら、とんでもない容量になりそうだから、試すのもあきらめます。(^^;

リアルタイムのレプリケーションの方がいいかな。
8.5で簡単にできることを期待して、それまで待とうっと。

15 :NAME IS NULL:2009/10/25(日) 00:32:18 ID:???
>>13
普段開発やってる人ならそうでもないと思う
普段はpgAdminとか使ってるから管理ツールのコマンド絡みの問題が厳しかったわ

16 :NAME IS NULL:2009/10/25(日) 07:02:30 ID:???
CEって、対象バージョンが「PostgreSQL 8」になっているけど、
これって 8.0 なの? それとも 8.0〜8.4 全対応って意味なの?
8.x の同士の差って、8.4→8.0 の差と比べても同じくらいはあると思うんだけど。

17 :NAME IS NULL:2009/10/26(月) 03:52:18 ID:???
silverは8.0、と明記されてるね。
http://www.sraoss.co.jp/postgresql-ce/courses/silver8-details.html

goldは明記されてないけど、
バージョン間で動作が違うものについては、問題ごとに
「これは8.0で動かすものとする」と注意書きがあった覚えがある。

18 :NAME IS NULL:2009/10/26(月) 09:56:00 ID:???
データの保管場所についての質問なのですが、
場違いでしたらスルーしてください。

Windows XP に PostgresSQL ver 8.4 をインストールしたのですが、
インストール時のウィザードで「C:\Program Files\PostgreSQL\8.4\data」
にデータを保存するように設定しました。

このデータ保管場所をデータベースごとに変更したいのですが、
その方法がわかりません。

参考したサイト
http://www.postgresql.jp/document/pg810doc/html/runtime-config-file-locations.html
http://lets.postgresql.jp/documents/tutorial/windows

一つ目のURLを参考にdata_directoryを変更しても反映されませんでした。
(他にも設定が必要?)

もしよろしければ教えていただけないでしょうか。

19 :NAME IS NULL:2009/10/26(月) 13:52:06 ID:???
-Dでディレクトリ指定して起動してるんじゃね?
サービスから起動してるなら起動時のオプション確認してみ

20 :NAME IS NULL:2009/10/26(月) 18:19:14 ID:???
>>19
確かにサービスの起動オプションに-Dが設定されていて、
それはインストール時のウィザードで設定した
「C:\Program Files\PostgreSQL\8.4\data」でした。
が、結局このオプションをどこで指定しているかがわからないのです。

21 :NAME IS NULL:2009/10/26(月) 18:36:33 ID:???
何とも申し上げにくいが、
サービスの起動オプションで設定されているんだと思うよ

22 :NAME IS NULL:2009/10/26(月) 19:38:42 ID:???
確かに、dbごとのディレクトリ設定、どうするんだろうね。
dbは、CREATE DATABASE で作成するから、その時のオプションか、それを管理しているファイルなのかな?

23 :NAME IS NULL:2009/10/26(月) 19:59:28 ID:???
えーと…

24 :NAME IS NULL:2009/10/26(月) 20:05:56 ID:???
基本的に分けることはできなかったとおもうので、ポート別にして二個起動すればいいんじゃない?

25 :NAME IS NULL:2009/10/26(月) 20:17:05 ID:???
○Windowsの-Dオプション指定場所
スタート→マイコンピュータを右クリック→
管理を選択→サービスを展開→
PostgreSQLっぽいサービスを右クリック→プロパティを選択

○PGDATAを複数持たせたい
ポートを変更する

26 :NAME IS NULL:2009/10/26(月) 20:32:20 ID:???
同じバージョンをインストールしたことないけど、
同じバージョンをポート別にして、インストールできるってこと?
別のバージョンのインストールは、ポート別にしてるけど。
(別にしないとインストールできなかったかな)

27 :NAME IS NULL:2009/10/26(月) 20:40:21 ID:???
多重起動すればいいんじゃないかと

28 :NAME IS NULL:2009/10/26(月) 20:51:29 ID:???
サービスは、
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w

になっているいるから、-D の引数で変えて、postgresql.confなどのconfigファイルなども変えて、
多重起動できるのかもね。

29 :NAME IS NULL:2009/10/26(月) 21:27:04 ID:???
ってか普通に出来る

30 :NAME IS NULL:2009/10/26(月) 21:36:39 ID:???
>>26
インストールは1回でいいよ。pg_ctl start -D <場所> を2回たたくだけ。
サービスで起動するなら、<場所> を変えたサービスを2回登録するだけ。

31 :NAME IS NULL:2009/10/26(月) 22:23:04 ID:???
>>25
サービスのプロパティ画面からオプションを「指定」できますか?

32 :NAME IS NULL:2009/10/26(月) 22:31:44 ID:???
>>31
パラメータの変更はできなかった気がする。
pg_ctl unregister & register で再登録すべし。

33 :NAME IS NULL:2009/10/27(火) 15:31:31 ID:???
plpgsqlで質問します。
split_codes という returns text[] な関数があるのですが、
別のplpgsql関数内で codes text[] という変数に対し
codes := split_codes($1) としても codes[0] が NULL のままなのです。
split_codes の返り値は期待通りなので、配列への配列の代入がうまくいっていないと
思われます。
currentのドキュメントを読んだのですがどこにも書いてないように見えます。
ご存知の方おられましたらお知らせください。


34 :NAME IS NULL:2009/10/27(火) 20:28:52 ID:???
>>33
配列の添字は 1 始まりっていうオチではなくて?

35 :33:2009/10/28(水) 11:39:30 ID:???
ご指摘を受けて確認してみたところ、1起算で配列が作られていました。
インデックスで0が指定できるから0起算とばかり・・・


36 :NAME IS NULL:2009/11/01(日) 10:27:41 ID:dRyHVXSa
pgAdminでテーブルを作成しデータの追加も行ったのですが、プログラムでテーブルを
SELECT使用とすると「リレーション: 未定義テーブル」といったエラーが帰ってきます。
原因と対処方法を教えてください。

37 :NAME IS NULL:2009/11/01(日) 14:54:36 ID:???
別のデータベース見てるとか。

38 :36:2009/11/02(月) 14:56:41 ID:KTnBgk4O
下記の用にテーブル名の前にスキーマをつけるとSQLを正常に実行できました。
スキーマを省略する方法を教えていただけませんでしょうか。

NG : SELECT * FROM public."STUDENT_NAME";
OK : SELECT * FROM "STUDENT_NAME";

39 :NAME IS NULL:2009/11/02(月) 15:57:23 ID:???
set search_path to スキーマ名
のことかな?
でもpublicはデフォルトのような・・

40 :36:2009/11/02(月) 18:27:18 ID:KTnBgk4O
>>39
その方法で解決しました。ありがとうございます。

41 :NAME IS NULL:2009/11/06(金) 23:31:50 ID:???
XPHomeEditionでPostgreSQLって使えないんですか?
インストールはできたけどStartServerとか管理ツールとかでサービス開始って押しても
起動されないんですけど

42 :NAME IS NULL:2009/11/07(土) 00:01:44 ID:???
2000以降ならエディション関係なく使えるはずだが

43 :NAME IS NULL:2009/11/07(土) 00:05:54 ID:???
サービスとしてバックエンドで動作しているのに気づいていないだけでは?

44 :NAME IS NULL:2009/11/07(土) 01:44:58 ID:???
管理ツールでサービス開始と書いてるからそれはないんじゃないの?
ログでも見てみたらどうかと思うんだけど。イベントログ吐かないのかな

45 :NAME IS NULL:2009/11/07(土) 03:42:22 ID:???
もう起動してるから二度目の起動に失敗してるだけじゃね?
タスクマネージャでpostmaster.exeとpostgres.exeあるかどうか確認しろ

46 :NAME IS NULL:2009/11/07(土) 03:55:10 ID:???
postmaster起動したらサービスは終了するパターンなの?

47 :NAME IS NULL:2009/11/07(土) 04:15:06 ID:???
お前はDBいじる前にWindowsServiceについて勉強してこい

48 :NAME IS NULL:2009/11/07(土) 07:33:59 ID:???
エラーメッセージも書いてないから、答えようが無いんだよ。
何を持って「起動されない」と判断したんだ?

49 :41:2009/11/07(土) 08:45:09 ID:???
起動してないと思ったのは
管理ツール>サービス>postgresql-8.4
のサービスの状態が停止になっていたからです
postmaster.exeとpostgres.exeはタスクマネージャにありませんでした

StartServer実行すると↓になります
----------------------------------------------------------
postgresql-8.4 サービスを開始します........................
....
postgresql-8.4 サービスを開始できませんでした。

サービスはエラーを報告しませんでした。

NET HELPMSG 3534 と入力すると、より詳しい説明が得られます。

The start command returned an error (2)
----------------------------------------------------------

インストールはpostgresql-8.4.1-1-windows.exeっていうインストーラ版使いました
設定は
[Password] Password : postgres
[Password] Retype password : postgres
[Advanced Options] Locale : C
これ以外はデフォルトです

起動するユーザがだめかと思って
StartServerを右クリック>別のユーザで実行 : インストールのとき勝手に作られたpostgres
で実行したら↓になりました
----------------------------------------------------------
システム エラー 5 が発生しました。

アクセスが拒否されました。

The start command returned an error (2)
----------------------------------------------------------


50 :NAME IS NULL:2009/11/07(土) 09:02:24 ID:???
DBの初期化 or サービスの登録あたりで失敗しているように見える。
インストーラは Windows の管理者ユーザで実行した?

あと、コマンドラインから
"C:\Program Files\PostgreSQL\8.4\bin\pg_ctl" start -D "C:\Program Files\PostgreSQL\8.4\data"
とかすると、もう少しまともなエラーメッセージが得られるかもしれない。

51 :41:2009/11/07(土) 20:52:55 ID:???
>>50
インストーラを実行したのはAdministratorsグループの個人名ユーザです
StartServerを実行したのもこのユーザです


HomeEditionなんで表示されてないですけど
スーパーユーザ(Administratorアカウント)じゃないとだめなんでしょうか

言われたとおり実行したら↓になりました

--------------------------------------------------------------------------
C:\Documents and Settings\ユーザ>"C:\Program Files\PostgreSQL\8.4\bin\pg_ctl"
start -D "C:\Program Files\PostgreSQL\8.4\data"
サーバは起動中です。

C:\Documents and Settings\ユーザ>2009-11-07 20:48:19 JSTLOG: could not liste
n on IPv4 socket: No error
2009-11-07 20:48:19 JSTWARNING: could not create listen socket for "*"
2009-11-07 20:48:19 JSTFATAL: could not create any TCP/IP sockets
--------------------------------------------------------------------------


52 :NAME IS NULL:2009/11/07(土) 22:43:01 ID:???
タスクマネージャにいない件だけど、すべてのユーザのプロセスを表示してる?

53 :NAME IS NULL:2009/11/09(月) 09:52:07 ID:???
could not create listen socket だから、ファイアウォールが邪魔をしているのでは?
postgres.exe 5432 ポートを許可してみてはいかがか。

54 :NAME IS NULL:2009/11/09(月) 21:41:25 ID:???
余計なアプリを終了や削除して再インストールで試すとか、
ログインパスワードも省略しないとか。

55 :NAME IS NULL:2009/11/09(月) 22:27:48 ID:???
削除するときはOSのpostgresも削除しろよ
再インストール時にインストーラがパスワード解らなくて失敗するぞ

56 :NAME IS NULL:2009/11/10(火) 03:36:23 ID:???
NICがないとかじゃ

57 :NAME IS NULL:2009/11/10(火) 03:39:22 ID:???
NICはなくてもインストールできるだろ

58 :NAME IS NULL:2009/11/10(火) 09:49:20 ID:ap2nF2fA
データベース作成に関する質問です。

pgAdminで新しいデータベースを作成する場合、SJISまたSHIFT_JIS_2004を
指定できません。
「ERROR: SJISは有効な符号化方式名ではありません」

SJISをDBに取り込んでSJISで出力するシステムなんですが、どうすればいい
のでしょうか。

59 :NAME IS NULL:2009/11/10(火) 10:08:53 ID:???
無理じゃないかな。
サーバはUTF8やEUC_JPで作っておいてclient_encodingをShift_JISにしては

60 :NAME IS NULL:2009/11/10(火) 10:09:19 ID:???
Sjift_JISに対応してないからEUCかUTF-8で出し入れしろ
ODBCとかJDCBならドライバが勝手にやってくれるだろ

61 :NAME IS NULL:2009/11/10(火) 10:13:42 ID:???
一応ここみて。
ttp://www.postgresql.jp/document/pg841doc/html/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED

クライアントのエンコーディングをSJISにしておけばSJISでやりとりできる
DB作成時、エンコーディングの指定はしても--no-localeを忘れずに入れよう。

62 :NAME IS NULL:2009/11/10(火) 10:30:37 ID:???
8.4 では、
SJIS と SHIFT_JIS_2004 は、サーバーでサポートされてないようですね。
http://www.postgresql.jp/document/pg841doc/html/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED

検索すると、すぐみつかったので、まずは自分で検索するよう心がけましょう。


63 :NAME IS NULL:2009/11/10(火) 10:40:57 ID:???
8.4ではってかPostgre95まで遡ってもサポートされてたこと一度も無いだろ

64 :NAME IS NULL:2009/11/10(火) 12:43:08 ID:???
>>57
NICついてなくてもループバックのソケットは作れるんだっけ?

65 :NAME IS NULL:2009/11/10(火) 12:44:50 ID:???
サーバは起動中です。
ってスタートアップメッセージでいいんだっけ?
5432ポートを他が使ってる可能性は?

66 :58:2009/11/10(火) 21:57:56 ID:???
>>59->62
すいません。有難う御座いました。

67 :NAME IS NULL:2009/11/11(水) 10:13:07 ID:???
サービスで自動起動してるのにさらにコマンドで起動しようとした?

68 :NAME IS NULL:2009/11/11(水) 21:44:59 ID:???
CSV形式でテーブルのデータをインポート、エクスポートするため
下記のようなパスを取得したいのですが、方法はありませんでしょうか。
D:\Program Files\PostgreSQL\8.4\data

69 :41:2009/11/11(水) 23:29:41 ID:???
>>53さんの言うとおり、セキュリティソフトでブロックされてたようでした
postgres.exeの許可と5432 ポートの開放をすると起動できました
長々とすみません、本当に助かりました

あと関係ないかもしれませんが
以前インストールしていたSQLServerのExpressが同じタイミングで
イベントログ吐いてたのでアンインストールしました

70 :NAME IS NULL:2009/11/12(木) 10:25:16 ID:???
>>68
意味がわからない。
パスがわかってるならそれを使えばいいだけでは

71 :NAME IS NULL:2009/11/12(木) 11:56:14 ID:???
>>68
まさかファイルを直接触ろうとしてる?
そんなことはないか・・・

72 :NAME IS NULL:2009/11/12(木) 22:41:41 ID:FED0V3qb
>>70
基本的にはそうなんですけど、パスを取得できるのならそうしたいだけです。
>>71
現状ではcopyコマンドでcsvファイルをインポートするため、サーバの\dataに
クライアントのcsvファイルを一旦コピーしています。

73 :NAME IS NULL:2009/11/12(木) 23:03:03 ID:???
postmaster.optsの中身の-Dオプションに書いてある
まぁpostmaster.optsがある場所がそこだけど
というかそのパスって自動的に取得するものじゃなくて
起動時に明示的に付与してあげるものなんだけど

74 :72:2009/11/13(金) 08:51:03 ID:YspQ0Qr8
>>73
わかりました。
有難う御座います。

75 :NAME IS NULL:2009/11/13(金) 16:09:38 ID:???
>>74
ちなみに何をしようとしてるの?
そのパスを知ってやることってバックアップしか思いつかない


76 :NAME IS NULL:2009/11/14(土) 23:20:58 ID:???
特殊パスの取得は、それぞれの言語、
Windowsプログラミング言語のところで、調べた方がいいでしょう。

VBなど。
http://dobon.net/vb/dotnet/file/getfolderpath.html


77 :NAME IS NULL:2009/11/17(火) 07:13:29 ID:???
>>75

>>72に書いてあんじゃね?

78 :NAME IS NULL:2009/11/17(火) 10:09:04 ID:???
サーバの\dataにファイルコピーできたら逆にまずいんじゃね
わざわざpostgresユーザ以外はアクセスできないようにしてるんだから
tmpフォルダとかにあげておくべきだろ

79 :NAME IS NULL:2009/11/17(火) 12:08:42 ID:???
クライアントからでもcopy使えるしなあ。
サーバの作業場所はそれ用に別に作った方がいい

80 :NAME IS NULL:2009/11/17(火) 13:04:26 ID:???
間違ってpostgres.confとか同じ名前のファイル上げちゃったらサーバ止まるよ

81 :NAME IS NULL:2009/11/20(金) 22:20:10 ID:sztJs2Te
a

82 :NAME IS NULL:2009/11/21(土) 23:48:58 ID:???
PostgreSQL Conference 2009 Japan お疲れさま。
素晴らしいカンファレンスでした。

83 :NAME IS NULL:2009/11/23(月) 20:30:57 ID:MqVij48w
bank から 8.4対応の本出たね。
一応買ってみたけど、まだ読んでない

84 :NAME IS NULL:2009/11/23(月) 22:01:41 ID:???
いちおー尼でカートには入れた

85 :NAME IS NULL:2009/11/28(土) 11:10:26 ID:2D7DiwpM
PostgreSQLってOracleとかSQLServerと比べて劣ってるところある?
インストールしてみたけどGUIもついてるし結構いいね。


86 :NAME IS NULL:2009/11/28(土) 11:22:06 ID:???
PostgreSQL いいよ。
劣っているのはアピール力や宣伝力だと思う。


87 :NAME IS NULL:2009/11/28(土) 12:01:09 ID:lolg3VYv
うーん システム一式で考えた時、色々たんない気がする
SQL周りはwithとかWindows関数も使えるようになってきたのは嬉しい
#用途は限られるけど
[プロとしてのOracle運用管理入門]レベルの本が出るといいなぁ・・

88 :NAME IS NULL:2009/11/28(土) 13:56:54 ID:???
データベースのコアは問題ないんだ。コアは。
不満はサードパーティのツールや資格のオフィシャルっぽさが足りないこと。
個人の責任で導入できるなら良いのだけど、客へ提案するときには障害になる。

89 :NAME IS NULL:2009/11/28(土) 14:36:52 ID:???
現状 SRA 頑張れ、ということになるのか。
ほかの SIer も乗り出せばいいのに。

90 :NAME IS NULL:2009/11/28(土) 16:04:46 ID:???
データとかもPostgreSQLベースのパッケージとかやってるだろ確か

91 :NAME IS NULL:2009/11/28(土) 16:38:25 ID:???
Powergresとかね。

Oracleが最も恐れてるのかPostgresだろうね。
対決もする気ないようだし。

92 :NAME IS NULL:2009/11/28(土) 17:00:09 ID:???
オープンソースなんだから
会社じゃなく、ユーザがツールや
『プロとしてのOracle運用管理入門』レベルの
Wikiを用意する、という選択肢もあるのだけどね。

93 :NAME IS NULL:2009/11/28(土) 19:03:53 ID:???
Powergresは他のSIerの他じゃない方の会社なのでは

94 :NAME IS NULL:2009/11/29(日) 10:38:46 ID:???
とにかく足りないのはレプリケーション

95 :NAME IS NULL:2009/11/29(日) 10:45:37 ID:???
Slonyかpgpoolがあるが

96 :NAME IS NULL:2009/11/29(日) 11:44:33 ID:???
どっちも使ってみたうえで言ってる?

97 :NAME IS NULL:2009/11/29(日) 11:50:02 ID:???
HadoopDB には少し期待している

98 :NAME IS NULL:2009/11/29(日) 12:44:58 ID:???
>>96
使ってるけど普通に
最初はpgpoolだけだったが同時書き込みで引っ張られるからSlonyで非同期にした

99 :NAME IS NULL:2009/11/30(月) 17:12:18 ID:???
PostgreSQLの課題と言われ続けていたvacuumがだいぶ改善し、
オンラインバックアップもバックアップソフトのサポートがないとはいえ
機能としてはPITRがある今、残る問題はMySQLがやっているような
大規模なクラスタリングかな。

レプリケーションとクラスタを兼ねたpgpoolだのSlonyだのいろいろあることは
あるけど、MySQLがやっているぐらいの大きな規模となると辛い。

100 :NAME IS NULL:2009/11/30(月) 18:03:55 ID:???
>>98
私もpgpoolは引っ張られるし非同期だと負荷分散できないべ

101 :NAME IS NULL:2009/11/30(月) 18:55:45 ID:???
MySQL Clusterも同期にした場合と非同期にした場合の特徴同じだろうに
ディスク共有の場合くらいだよ両立できるの
それと>>98が言ってるのはどっちか一つじゃなくてpgpool+Slonyでしょ

102 :NAME IS NULL:2009/11/30(月) 22:45:00 ID:???
MySQLでクラスタの話になると、ただのレプリケーションをイメージする人と
MySQL Cluster の人が混ざって困る。

103 :NAME IS NULL:2009/12/01(火) 00:20:15 ID:???
どっちにしろPostgreSQLでクラスタやるときと変わらんよ。

104 :NAME IS NULL:2009/12/01(火) 04:52:16 ID:???
pgpoolはどうしてもシリアルがずれる可能性が排除できない気がする
俺がロックをちゃんと理解していないからだろうけど

105 :NAME IS NULL:2009/12/01(火) 07:01:57 ID:???
>>104 シリアルやタイムスタンプはアプリで埋め込むしかないと思う。
でもこれって MySQL でも基本的には一緒だよね?

106 :NAME IS NULL:2009/12/01(火) 15:03:33 ID:???
同時書き込みやるタイプの奴は商用製品でも同じだよ
そもそも書き込むまで値が解らないデータなんて使わないのが普通でしょ
フレームワークだと自動採番はフレームワークで吸収したりするし

107 :NAME IS NULL:2009/12/02(水) 00:47:55 ID:l7Mt4Pbd
日本のIT企業なんて、ろくにデータベースなんて作れないんだから
PostgreSQLメインにしたらいいんだよ。

108 :NAME IS NULL:2009/12/02(水) 02:45:27 ID:???
>>104
MySQLはいくつかのデータをバイナリログで特別扱いしてるのでずれない
ちなみに乱数つかってもシードごと送るのでずれない
ユーザ定義関数はずれる

109 :NAME IS NULL:2009/12/02(水) 06:42:31 ID:???
> ユーザ定義関数はずれる
PostgreSQL は、開発者がやけにストイックなので、
こういう割り切りは嫌われるからなぁ。

110 :NAME IS NULL:2009/12/03(木) 00:15:13 ID:???
SRA以外にも、一応NTTデータと富士通が、ポストグレスベースのパッケージ用意
してんじゃなかったっけ?

ttp://japan.internet.com/webtech/20091030/4.html
ttp://japan.internet.com/linuxtoday/20070914/5.html

111 :NAME IS NULL:2009/12/03(木) 00:25:21 ID:???
そういうのはPostgresじゃなくてPostgresコンパチの独自製品と思ったほうが良い。

112 :NAME IS NULL:2009/12/03(木) 01:17:11 ID:???
コンパチ?
PostgreSQLのカスタマイズ製品だろ?

113 :NAME IS NULL:2009/12/03(木) 01:24:49 ID:RG7qM8LP
日本のIT企業はいつもメーカー独自機能とかいって中途半端なものしか提供しないよな。
そんなんはいらんのよ

114 :NAME IS NULL:2009/12/03(木) 01:47:21 ID:???
>>110
富士通は自分とこで作ってるんでなくて、海外企業のEnterpriseDBの製品を取り扱ってるだけ。
資本出資はあるけどね。

115 :NAME IS NULL:2009/12/03(木) 09:32:05 ID:???
>>113はとりあえず的外れすぎると思う

116 :NAME IS NULL:2009/12/04(金) 00:49:29 ID:???
windows server 2008にダンプを取るバッチを作成し
pgpass.confをCドライブのuser\AppData\postgresqlに配置したんですが
実行してもパスワード入力を要求されます。

どなたかserver 2008もしくはvistaでpgpass.confを使っていらっしゃる方いますか?

117 :NAME IS NULL:2009/12/05(土) 02:23:53 ID:???
Win postgresqlでlog_statement=modでsqlログを取ってるんだが
pgAdminで編集した内容はログが取れるのにJakarta Torque経由だとログが取れん・・・
何でだ・・・

118 :NAME IS NULL:2009/12/05(土) 06:33:03 ID:???
>>116
user\App〜って事はWindowsのユーザがuserっていうやつだろうけど、
PostgreSQLのOSユーザは本当にuserなの?
あとAppDataは%AppData%だよね?

119 :NAME IS NULL:2009/12/06(日) 12:19:14 ID:???
echo %APPDATA%
かエクスプローラで%APPDATA%直接入れて場所確認したほうがいいかも

120 :NAME IS NULL:2009/12/08(火) 02:13:46 ID:Nbo4F8Sg
ログ出力のやり方が判らなくて難儀してるのですが良い解説ページ等は無いでしょうか。
バージョンは8.3.8です。

やりたいこと:
 成功するつもりの挿入文で失敗(?)しているので、
 実行時のパラメータ(生SQL文)と、エラーならエラー情報を取得したい
(現状、「成功していない」ということしか判らない
 コンソールからログインして想定されるSQL文を直接流し込むと成功する)

 できれば既存のログ(syslog等)ではなくオリジナルなログに出したいが
 その手順が面倒なら出力先は任意でOK


121 :NAME IS NULL:2009/12/08(火) 02:39:29 ID:???
成功するつもりの挿入文ってのが意味解らん

122 :NAME IS NULL:2009/12/08(火) 04:52:07 ID:???
pgpool-IIは着実にバージョンアップしているね
今回のバージョンからtimestampとかがずれなくなったらしいね

123 :NAME IS NULL:2009/12/08(火) 06:08:04 ID:???
pgpool相当機能をlibpq上に実装してもらうと、
単一障害点が無くなって嬉しい気がするのだが。

124 :NAME IS NULL:2009/12/08(火) 11:07:06 ID:???
>>120
8.3.7までしかマニュアルがなかったけど
http://www.postgresql.jp/document/pg837doc/html/runtime-config-logging.html
とか。

125 :120:2009/12/08(火) 13:37:32 ID:???
>>121
例えば"insert into hoge(int a, int b) values (1 , 2)"というクエリを実行したつもりで、
しかし結果としてa=1,b=2のレコードが挿入されていない、ということ。
その際、ロジックがおかしくてSQLにパラメータが正しく渡っていないのか、
ロジック(≒SQL文そのもの)は正しいけれど、設定周り(例えば権限)が原因で失敗しているのか切り分けがつかない、ということ。

>>124
ありがとうございます、役には立ちそうです。

「○○を指定したときはこのオプション〜」式の細かい指定が多いのが見ていて辛いんですが、
これはみんなちゃんと理解して設定しているもんなんでしょうかね……。

126 :NAME IS NULL:2009/12/08(火) 13:51:20 ID:???
>>125
とりあえずログを見たいだけなら、必要なパラメータなんて数個でしょ。
syslog で良ければ
log_destination = 'syslog'
だけでとりあえず出るでしょ。facility はデフォルトで LOCAL0 だっけかな。

127 :NAME IS NULL:2009/12/08(火) 16:55:16 ID:???
postgresql.confをじっくり見れば解決

128 :NAME IS NULL:2009/12/08(火) 17:46:35 ID:???
>>126
なんか違わないか
聞いてるのはlog_statementだと思うぞ

129 :NAME IS NULL:2009/12/08(火) 21:12:55 ID:???
>>125

>例えば"insert into hoge(int a, int b) values (1 , 2)"というクエリを実行したつもりで、
>しかし結果としてa=1,b=2のレコードが挿入されていない、ということ。

単にコミットされてない、ってのはないよね?念のため。


130 :NAME IS NULL:2009/12/09(水) 00:07:41 ID:???
普通に接続した場合はautocommitだろ
サーバ側でいじってなければ

131 :NAME IS NULL:2009/12/09(水) 00:12:35 ID:Ao+i+k7i
良くわからないんだけど、PostgreSQLもユーザ数が増えて商用のデータベースの脅威となった場合は、
MySQLみたいに買われて、飼い殺しになっちゃうものなの?
そういうラインセンス!?

132 :NAME IS NULL:2009/12/09(水) 00:25:19 ID:???
>>131
MySQLの場合だと、買収後に飼い殺しにされた後でforkするにはGPL版を
元にしなければならないので商用に使う際に面倒なハメに陥るけど、
PostgreSQLならBSDL系ライセンスのままでいけるので、自由度は高い罠。

133 :NAME IS NULL:2009/12/09(水) 00:36:02 ID:Ao+i+k7i
純粋にオープンソースで継続的にバージョンアップができている分野って、
どういう条件要素なのかとおもったりする。

それを支えている人材の生活があるから、その十分条件として何があるのかと。

まぁ少なくとも日本ではそういう分野で生活できてる人材は皆無に等しいのは
やっぱ日本て目先しか見てないからソフトウエアには向いていない人種だなと思う。

ソフトウエアってマイナースポーツに似てるよなw

134 :NAME IS NULL:2009/12/09(水) 00:45:40 ID:???
そもそも飼い殺しって何を心配しているのやら。

135 :NAME IS NULL:2009/12/09(水) 01:24:02 ID:???
そもそも売らないと買えないんだけどな
MySQLは会社だったけどPostgreSQLは違うし

136 :NAME IS NULL:2009/12/09(水) 01:31:16 ID:???
日本でもソース公開している人はいるだろ
ただそれだけで団体として発展してない。

日本のオープンソースで一番発達してるのはサクラエディタくらいじゃないか?

137 :NAME IS NULL:2009/12/09(水) 01:48:47 ID:???
え?何をトンチンカンなことを言ってるんだ?

138 :NAME IS NULL:2009/12/09(水) 01:54:10 ID:???
Sylpheed、EC-CUBE、Seasar2Framework、Ruby、Zebra、Hinemos、
OpenSOAP、fml、LHA、namazu、GRUB、delegate、mew、w3m

いくらでもあるわな

139 :NAME IS NULL:2009/12/09(水) 02:00:58 ID:???
すくなくともS2やRubyは組織化してるな
あとテキストエディタならxyzzyやMeadowも日本のオープンソースでは

140 :NAME IS NULL:2009/12/09(水) 03:25:26 ID:???
GRUBって日本なの?

サクラエディタは本家が更新捨てて、派生ががんばってるんだよね。
けど、win7 x64版がなくて友人が嘆いてたな

141 :NAME IS NULL:2009/12/09(水) 04:05:21 ID:???
日本発のオープンソースソフトって全体的にこう支援的な
物が多い気がするね。
縁の下の力持ち的な。

142 :NAME IS NULL:2009/12/09(水) 04:11:33 ID:???
そう考えるとRubyは例外中の例外の存在なのか。

143 :NAME IS NULL:2009/12/09(水) 05:19:31 ID:???
>>140
GRUB書いてる人の公演
http://video.google.com/videoplay?docid=-5355630265244364468

144 :NAME IS NULL:2009/12/09(水) 10:37:20 ID:???
>>140
2010で自分でビルドすればいいよ
変更箇所はちょっとだけだし、コンパイルしながらなおしてきゃいい

145 :NAME IS NULL:2009/12/09(水) 12:19:56 ID:???
それをコミットしてバイナリ配布することが活性化につながるんじゃないのか

146 :NAME IS NULL:2009/12/09(水) 13:45:04 ID:???
2008とかならいいけど、2010じゃまだまずいでしょ、まだベータだし。

147 :NAME IS NULL:2009/12/09(水) 13:46:50 ID:???
webDB作成してほしいんだけど誰か請け負ってくれない?
webから追加・削除・更新できる程度て良いのでおねがいします。
簡単に言うと住所録みたいなかんじです。

おねがいします

148 :NAME IS NULL:2009/12/09(水) 14:51:00 ID:???
>>147
いいよ
ここに連絡先は掲載しないほうがいいね
どこか、書き込み、削除ができる掲示板とかに連絡先とか?

149 :NAME IS NULL:2009/12/09(水) 14:52:41 ID:???
>>119
そういう方法があったんだね。
勉強になった。

150 :120:2009/12/10(木) 23:59:37 ID:???
報告が遅くなりましたが >>126 の"syslog"指定で
(期待したものとちょっと違いましたが ←生クエリじゃなくてプリペアドステートメントが出た)
エラーメッセージは確認できて問題も解決しました。
ありがとうございました。

余談ですが原因はvarchar(64)のカラムに入れようとしていた文字列が長すぎてエラー、でした。


151 :名無しさん@お腹いっぱい。:2009/12/11(金) 00:10:40 ID:???
pgAdmin でSQL文を実行すれば、大半のエラーは、
文法エラーや単純ミスなので、ログ出力しないでも解決できるはず。

152 :NAME IS NULL:2009/12/11(金) 00:19:07 ID:???
>>150
いやだからその次くらいのレスのlog_statementをだな

153 :NAME IS NULL:2009/12/11(金) 02:11:00 ID:???
>>151
実行するために、実際に発行しているクエリを取得したいという話ではないのか。
まぁ、>>152だけど。

154 :NAME IS NULL:2009/12/11(金) 06:34:42 ID:???
今回はエラーだったから、クエリもいっしょに取れたんでしょ。
解決したのだから良いじゃない?
正常終了のパターンだと log_statement が要るけど。

ただ、普通はクライアントにもエラーメッセージが返されるはずなんだよね。
アプリでまともにエラーチェックしていないんじゃ?

155 :NAME IS NULL:2009/12/11(金) 07:25:43 ID:???
log_statementだとprepared statementに突っ込んだ値も出るけど
エラーなら出ないでしょ

156 :NAME IS NULL:2009/12/12(土) 09:09:21 ID:???
http://postgres.sios.com/modules/install/index.php?content_id=3
の手順を参考にwarm standbyを構築しようとしています。
この手順について、以下の認識で正しいでしょうか?

この手順はPPAS(Postgres Plus Advanced Server)を使用しているが、
ソースからインストールした通常のPostgreSQLでも同様に行なえる。

手順4以降、稼動系サーバは通常通り運用していてかまわない。
読み出し、更新ともに可能。

手順5〜7の間に稼動系サーバに実施された更新内容は、
稼動系サーバのarchive_commandで指定したrsyncコマンドにより待機系サーバに送られ
待機系サーバのrestore_commandで指定したpg_standbyコマンドにより待機系サーバに反映される。
手順6で待機系サーバに更新内容が不完全にコピーされるが、
上記のpg_standbyによる反映があるので気にしなくていい。

手順6ではpostmaster.pidのみコピー対象から除外しているが、
pg_xlog/以下も除外して問題ない。
(その場合、反映が多少遅れる?)

157 :NAME IS NULL:2009/12/12(土) 09:44:03 ID:???
>>156
最後以外は正しい認識だと思う。なかなかにまとまりの良いガイドだね。

> pg_xlog/以下も除外して問題ない。
> (その場合、反映が多少遅れる?)
除外して問題ない(というか除外すべき)だが、待機側に pg_xlog 以下を再現した
空のディレクトリ・ツリーを作成しておくべし。これにより反映が遅れることはないが、
そもそもウォームスタンバイは非同期WAL転送なので更新結果の転送には必ず遅れがある。

もし、フェイルオーバー時に直近の更新は失われるのが嫌なら、さらに追加で
DRBD とかが必要になる。archive_timeout もゼロにはできないので。

158 :NAME IS NULL:2009/12/13(日) 18:26:42 ID:???
なるほど、こりゃいいわ。
とりあえずこれで凌ごう。

159 :156:2009/12/13(日) 22:40:31 ID:???
ローカルに2つプロセスを立てる例はけっこうあるんですが
2台でrsyncまで書いてあるのってなかなかないですよね。
なぜかarchive_modeについて記述がないのですが、
稼動系はon、待機系はoffで動きました。

>>157
ありがとうございます。
同期の遅れやデータの欠けについては了解しています。
元でガンガン書き込んでるのに丸ごとコピーしてちゃんと動くってのは
けっこう不思議ですね。

> 除外して問題ない(というか除外すべき)だが、
pg_xlog/以下のファイルはコピーしても結局使われないから、ということでしょうか。

160 :NAME IS NULL:2009/12/13(日) 23:00:23 ID:???
1台で2つ立ち上げるのも2台でわけてsyncするのも同じ事だろ
syncの方法が解らないというのなら、syncの方法を調べればいいだけ

161 :NAME IS NULL:2009/12/13(日) 23:14:19 ID:???
> pg_xlog/以下のファイルはコピーしても結局使われないから、ということでしょうか。
そう、使われない。確かコピーしても特に害は無いはずだけど。

162 :NAME IS NULL:2009/12/21(月) 00:37:24 ID:???
PostgresForestってWindows上でも使えますか?

PostgresForest
http://www.nttdata.co.jp/services/postgresforest/

163 :NAME IS NULL:2009/12/21(月) 01:05:26 ID:???
データに聞けよ

164 :NAME IS NULL:2009/12/21(月) 11:20:41 ID:???
Win鯖上で無料でレプリケーションできるようなツールってないですか?
Linuxなら色々あるようなんですが。。。


165 :NAME IS NULL:2009/12/21(月) 12:42:28 ID:???
検索しなくてもSlony for Windowsとかあんだろ

166 :NAME IS NULL:2009/12/21(月) 12:47:30 ID:???
てかSlonyはついてないか?

167 :NAME IS NULL:2009/12/21(月) 12:51:31 ID:???
PGCluster 
pgpool 
PostgresForest
Slony-l

しかピックアップしていなかったので見落としていたようです。
ありがとうございます。




168 :NAME IS NULL:2009/12/21(月) 13:38:45 ID:???
Slonyピックアップしてたなら見落とすなよ

169 :NAME IS NULL:2009/12/22(火) 22:53:42 ID:???
>>162
Linuxクラスタ対応のようだから、Winは非対応でしょう。

170 :NAME IS NULL:2010/01/16(土) 01:38:20 ID:???
DBをまたいだ操作はcontribのdblink使えばできる

171 :NAME IS NULL:2010/01/22(金) 21:06:41 ID:???
質問させてください。

shared_buffersの値指定は、
8.1まではバッファの数、8.2からメモリサイズを直接指定
になっていると思うのですが、8.4のマニュアルを見ると

共有ディスクバッファ=(block_size + 208) * shared_buffers

と書かれています。
これだと8.1までの計算式と変わらないのではないでしょうか。
block_sizeをかける必要はないと思うのですが?

172 :NAME IS NULL:2010/01/22(金) 21:27:07 ID:???
>>171
すみません自己レスです。

8.4でもバッファ数での指定はできるので、
計算式ではバッファ数を指定した場合の計算方法を表している
ということで良いのですよね?

173 :NAME IS NULL:2010/01/22(金) 22:27:42 ID:eauqLL+S


174 :NAME IS NULL:2010/01/24(日) 04:06:07 ID:pg++ufzR
サブクエリを外部結合するとnestedloop joinになってしまうのですが
hash joinになるようにする方法ってありますか?

175 :NAME IS NULL:2010/01/25(月) 10:44:36 ID:foNl4qQb
一時的に
SET enable_nestloop = OFF;
実行してみれば?


176 :NAME IS NULL:2010/01/25(月) 21:34:47 ID:???
でも、なんでプランナが選択した nested loop join じゃなくて
hash join にしたいんだ?

177 :NAME IS NULL:2010/01/25(月) 21:45:08 ID:pui9fXUg
単純に遅いからじゃねーの

178 :NAME IS NULL:2010/01/25(月) 23:52:38 ID:???
SQLチューニングでいきなりプランナいじる奴がいたらアホだ。

179 :NAME IS NULL:2010/01/26(火) 20:30:37 ID:???
質問があります
PostgreSQL(本体または関連アプリ)にhttpでいうところの
「リバースプロキシ」のような機能を持つものはありませんか?

具体的には、サーバAへの接続を、接続先dbがdb-bだったらサーバBに中継し、
接続先dbがdb-cだったらサーバCに中継する、という機能です。

やりたい事は、バージョンアップのためのデータ移動を複数回に
分けたいのですが、アプリケーションからは透過的にしたいのです。

予めdb毎にIPアドレスを割り振っておけば済む話ですが、先々を考えると
ローカルIPとはいえアドレス消費しすぎかなと。


180 :NAME IS NULL:2010/01/26(火) 21:31:18 ID:???
?????

> 予めdb毎にIPアドレスを割り振っておけば済む話ですが、先々を考えると
> ローカルIPとはいえアドレス消費しすぎかなと。

サーバA,B,Cと3台あるなら既にIPアドレスは3つある訳で、プロキシ使ったところでアドレスが減るわけじゃない。
素直にサーバBのアドレスでサーバBのdb-bにつなげばよいし、サーバCのアドレスでサーバCのdb-cにつなげばよいのでは?
意図がよく分らない。


181 :NAME IS NULL:2010/01/26(火) 21:44:47 ID:???
アプリケーション側の設定を触りたくないのかな。
pgpoolでどうだろ?

182 :NAME IS NULL:2010/01/26(火) 22:03:57 ID:???
pgpoolってプロキシにも使えるんだ....知らなかった

183 :NAME IS NULL:2010/01/26(火) 23:30:19 ID:???
今までバージョン8.5としてたものはバージョン9.0として出すらしいという噂を聞いた。


184 :NAME IS NULL:2010/01/26(火) 23:32:44 ID:C/MTbqDV
postgresqlは、是非ともOracleを駆除していただきたい。

185 :NAME IS NULL:2010/01/27(水) 01:58:25 ID:???
>>184
禿しく尿意
エンタープライズ分野ではムリだろうけどな〜
まぁ俺達エンタープライズ!って人たちにはぜひとも過去の遺物に
しがみついてもらおう。
最近の技術の流れは明らかに10年前などとは違ってきてる


186 :NAME IS NULL:2010/01/27(水) 02:45:14 ID:???
駆除とか言ってる奴は本当に頭が悪いなと思う
選択肢って言葉を知らないんじゃないか

187 :NAME IS NULL:2010/01/27(水) 02:53:16 ID:???
でもボラクルはJavaもろとも死んでくれると実に嬉しい

188 :NAME IS NULL:2010/01/27(水) 10:55:03 ID:???
>>180
すみません、説明のために簡略化しすぎましたか。

サーバBからサーバAにデータを移したいのですが、中身はdb-Aから
db-zまで52個のdbがあって、そのそれぞれにIPを振って52個を恒久的に
消費するのはアドレスの喰いすぎだと思うのです。
データ移行が終われば1台構成に戻るわけですし。
(実際には52個もありませんが、今後増え続ける予定はあります)

>>181
pgpoolはdb別の処理をできましたでしょうか?
(調べたけどよくわからない)


189 :NAME IS NULL:2010/01/27(水) 14:00:09 ID:???
>>188
サーバBの52個あるDBをサーバAに移したい(コピーしたい)と言う話で、なぜ各コピー先DBにアドレスを割り振る必要があるのかが分りません。
サーバBのDBと同じ数だけサーバA上でcreate database を発行するか createdbコマンドを叩けばよいのではと思いますが。
作った各DBへはサーバAのアドレスで接続しに行けますよ。


まぁ、プロキシがんばって探してください。

#なんかインスタンスの話とデータベースの話を混同している様な気がしなくもありません。
#実はサーバBにインスタンスが52個あります、と言う話だったりして


190 :NAME IS NULL:2010/01/27(水) 18:46:34 ID:???
>>189
えっと、
・サーバB上のPostgreSQL8.0上に(例えば)52個のdbが動いている
・別サーバのDBクライアントからはIPアドレス指定で参照されている
・これらdbを8.4にアップグレードしたい
・ベタに全部データ移行すると、データ量の関係で(例えば)30時間かかる
・だがサービスを止められる時間は限られている(夜中のN時間)
・幸いにしてdbが細切れなので1個2個ならば時間内に収まる
さてどうするか?

> なぜ各コピー先DBにアドレスを割り振る必要があるのか
db-Aに10.1.1.1、db-Bに10.1.1.2… と割り振っておくと、
データ移行が完了したdbのIPアドレスをサーバBからサーバAに
付け替えるだけでアプリケーションを変更せずに済むのです。
(「必要がある」のではなく「そういう方法もあるが選びたくない」という事)
# 複数インスタンスで同一「IPアドレス・TCPポートの組」を共有できれば
# 苦労はありませんよ。


191 :NAME IS NULL:2010/01/27(水) 19:19:01 ID:???
サーバAに52個のIPを割り当て、アプリからDBへの接続はそれぞれ異なるIPでってことか?
現状は、同一IP、インスタンス1、ポートも1、dbnameのみ違うの?

今からIPを割り当てるなら、移行が終わってから戻しても良いと思うけど。

192 :NAME IS NULL:2010/01/28(木) 01:44:09 ID:???
>>190
Slony-Iを使えばその条件でサーバAにデータ移動できます。
IPアドレスはサーバBとサーバAの2個で充分です。

●手順
1 DBクライアントはずっと同じIPアドレス(4までサーバB)にアクセス
2 サーバBをSlony-Iのマスターにする
3 サーバAをSlony-Iのスレーブにする
4 レプリケーション対象DBを少しずつ増やす
5 全DBが複製されたらサーバBのIPアドレスをサーバAに割り当てる

PostgreSQL 8.5 の新機能
http://lets.postgresql.jp/documents/technical/8.5/1
>データの一部だけの複製ができるのは Slony-I の利点です。
>また、SQLベースの複製を行うため、メジャーアップグレードの際に
>pg_dump の代わりに使えるのは Slony-I だけです。

コアメンバが開発したレプリケーション・ソフトSlony-I
http://itpro.nikkeibp.co.jp/members/ITPro/oss/20041027/151827/
>今回紹介するSlony-I(http://slony.info) は,
>「非同期・シングルマスタ」方式のレプリケーションに分類される。
>また,データの更新をスレーブに対して行うことはできない。

193 :NAME IS NULL:2010/01/28(木) 05:06:35 ID:???
したくないとか勝手な条件つけんなよ

194 :NAME IS NULL:2010/01/28(木) 06:50:45 ID:???
なんか、>>190がいうのはdb複製が出来ればいいだけじゃなくて、
 * 全部複製できるまでは複製済みのdbも含めてサーバBのアドレスでアクセスさせたい
 * で、なんでかしらないんだけどdb一つにつきIPアドレスを1個割り振りたい
なんだって。情報小出しにしてるからこれからも条件がどんどん出てくると思う。


絶対止めちゃダメで、最大52個のデータベースが入ってて、1〜2個を停止時間中にコピー、
ってことだから、Slony-Iを使うなら

dbコピーして、Slony-Iにレプリの指定して

を最大で52日間(営業日ベースだと2.5ヶ月くらい)やり続けることになるんでしょうね。



195 :NAME IS NULL:2010/01/28(木) 09:41:15 ID:???
クラッシュしたら、終わりだね。
というか、クラッシュしたほうが、すっきりするかもよ。

196 :192:2010/01/28(木) 10:25:06 ID:???
>>194
>>179 >>188 >>190は一貫してこう言ってると思います。
「PostgreSQLに振り分けを行う関連アプリがなくても
IPをdbの数だけ用意すればIPルーティングでdbの振り分けを実現できる。
しかしそういう強引な手段はできるだけ避けたい。」

情報の小出しについてはその通りですね。
>>190の前半のような事情は最初から書いて欲しかったです。

197 :NAME IS NULL:2010/01/28(木) 21:39:25 ID:???
移行してる最中のだけpgpool通して後は直結とかでいいんじゃね?

198 :NAME IS NULL:2010/01/29(金) 02:15:11 ID:???
>予めdb毎にIPアドレスを割り振っておけば済む話ですが
てことなので、現状、サーバAのIPアドレスは一個なんじゃね?
現状1個だが、DB毎に別IPを振れば移行完了したところから順にIPアドレスを付け替えていけばなんとかなるけど、
これはやりたくないと。(この方法を書いた事が混乱を招いているように見える)

> # 複数インスタンスで同一「IPアドレス・TCPポートの組」を共有できれば
> # 苦労はありませんよ。
# コメント扱いにすれば何書いてもいいのか?うぜぇ。

IPアドレスが既に複数であったとしても、単にレプリケーションを仕掛けておいて、レプリケーションが完了したら
サーバBを残せばよいように思うが。

199 :NAME IS NULL:2010/01/29(金) 04:04:10 ID:???
恐らく何処かで何か少しの勘違いが錯綜してイングランド
そうすれ違い!

200 :NAME IS NULL:2010/01/29(金) 06:39:11 ID:???
52個じゃないにしても、コピー先に複数のアドレスがあるんでしょう。>>179にはこう書いてあります。

> 具体的には、サーバAへの接続を、接続先dbがdb-bだったらサーバBに中継し、
> 接続先dbがdb-cだったらサーバCに中継する、という機能です。

この時点でコピー元はわかりませんがコピー先のアドレスは二つある様に見えます。
>>190でいうところのサーバA相当が2台あるのか、サーバAに2個のアドレス割り当ててるのかは分らないですけど。

現状の構成も不明瞭、移行中の予定構成も不明瞭、判っているのは移行後には(おそらく)サーバAだけになる、と言う事。

まだ聞く気があるなら、改めて小出しにせずきちんと書いてみたら?>>179

201 :NAME IS NULL:2010/01/30(土) 13:20:04 ID:???
ホスティングしてるサーバなのかね

202 :NAME IS NULL:2010/02/03(水) 03:31:35 ID:???
そー言えば、MLのアーカイブが復活したね
JPUGの人>> 乙

http://ml.postgresql.jp/pipermail/pgsql-jp/

203 :NAME IS NULL:2010/02/18(木) 01:25:45 ID:h6krnEyT
pg_dump で 日本語が文字化けする場合と しない場合ってなんでしょう?
文字コードは、UTF8です。

pg_dump データベース名 > aaa.sql

204 :NAME IS NULL:2010/02/18(木) 02:15:20 ID:???
なにこれトンチ?

205 :NAME IS NULL:2010/02/18(木) 02:30:40 ID:???
釣りだろ

206 :NAME IS NULL:2010/02/18(木) 10:41:04 ID:???
pg_dumpでもエンコーディングの指定できるだろう

207 :NAME IS NULL:2010/02/19(金) 10:31:47 ID:jf2XucmD
indexがちゃんと構築されてるかクライアントから確認する手段ってないですか?
どうもデータロードしただけで再構築やってない雰囲気なのですが。

phppgadmin とかpsqlで接続はできますが、DBサーバのアカはないので
ログとかは直接みられない状態です。

208 :NAME IS NULL:2010/02/19(金) 10:34:15 ID:???
権限ないのに見られたらセキュリティホールでは

209 :NAME IS NULL:2010/02/19(金) 14:20:26 ID:sbocO3zV
>>207
explain では?

210 :NAME IS NULL:2010/02/19(金) 16:54:07 ID:???
それじゃ作成されてるけど単に使われてないだけなら解らないぞ

211 :NAME IS NULL:2010/02/19(金) 18:34:20 ID:???
インデックスは作られてると思うけどなぁ。
パフォーマンスが悪いから、インデックスが作成されていないのでは?とおもったのなら、reindexdbやってみたらどうでしょ

212 :NAME IS NULL:2010/02/19(金) 18:55:31 ID:???
自分で管理してない鯖なら管理者に問い合わせるべきなのでは
もしくは管理者権限よこせか

213 :NAME IS NULL:2010/02/19(金) 20:47:18 ID:???
インデックスがあるかどうかが気になるのなら、
psql -c '\di'

214 :NAME IS NULL:2010/02/19(金) 22:46:40 ID:???
インデックスの有無は普通にpg_indexesとかで解るけど
そういう事じゃないんだろ

215 :NAME IS NULL:2010/02/20(土) 05:30:18 ID:???
いい質問だと思うけどなぁ。

216 :NAME IS NULL:2010/02/20(土) 09:09:46 ID:???
再構築やってないか? が質問なんだよね。REINDEX が要るか否かってことなら、
pg_relation_size() でインデックスの物理サイズをチェックしたり、
pgstattuple() でデータと空き領域の比率を調べるのは参考になるかな?
ただ、どちらにせよ、「もし断片化してなければ、こうなるはず」っていう机上計算ができる程度の知識は要るかも。

217 :NAME IS NULL:2010/02/20(土) 13:25:23 ID:???
なんでpsql使えるのにphpPgAdminなんか使ってpgAdmin使わないのか理解に苦しむ

218 :NAME IS NULL:2010/02/20(土) 21:50:55 ID:???
>>217
psqlとphppgadminは使えるが、pgadminが使えない状況ってよくあるよね

219 :NAME IS NULL:2010/02/21(日) 02:33:16 ID:???
>>218
なんじゃその状況はw

220 :NAME IS NULL:2010/02/21(日) 02:37:22 ID:???
レンタルサーバーなどの場合、制限で、pgAdmin 使えない場合あるんじゃないの。

221 :NAME IS NULL:2010/02/21(日) 02:41:36 ID:???
そもそもインデックスが云々みたいな使い方してるのに鯖のアカウントないからログ見られないとか話にならないと思うんだが

222 :NAME IS NULL:2010/02/21(日) 15:05:13 ID:???
とりあえず VACUUM ANALYZEしてみたら

223 :NAME IS NULL:2010/02/23(火) 17:10:34 ID:???
>>219
psqlとphpPgAdminはlocalhost接続で、pgAdminはリモートしか使えないけど、リモートからの
接続は制限されてるという場合。

224 :NAME IS NULL:2010/02/23(火) 18:20:09 ID:???
よくは無いなあ。
たまにはあるかもしれんが

225 :NAME IS NULL:2010/02/23(火) 19:06:17 ID:???
納めちゃったシステムはいつもsshでログインしてpsqlで管理してた。。

226 :NAME IS NULL:2010/02/23(火) 23:02:58 ID:???
ssh開いてるならpgAdminIII使えるだろ

227 :NAME IS NULL:2010/02/24(水) 00:28:22 ID:???
>>225
sshが開いているのにポートフォワーディングが制限されているのか?

228 :NAME IS NULL:2010/02/24(水) 01:28:46 ID:???
>>227
コンソールで慣れていたのでついうっかり。
トンネルに慣れるようにがんばるよ!

229 :NAME IS NULL:2010/02/24(水) 01:37:40 ID:???
そして使い慣れずに右クリック一発で全データ消去するのであった

230 :NAME IS NULL:2010/03/01(月) 11:56:35 ID:NrCpd4mv
postgresqlをインストールして、postgresユーザで初期データをINSERTしたのですが、
他のユーザからPerlのDBI経由で使えません。ユーザ名とパスワードは、postgres/passwordに
ちゃんとしているのですが、何か追加で設定が必要でしょうか?


231 :NAME IS NULL:2010/03/01(月) 12:00:28 ID:???
使えないというのはどういう操作をしてどうなるの?
Perlのプログラムが動いてるのはDBと同じサーバ?

できればユーザーは先に作ろうぜ

232 :NAME IS NULL:2010/03/01(月) 12:07:38 ID:NrCpd4mv
ありがとうございます。
全部同じサーバ上です。
hogeというユーザからPostgresqlにアクセスするにはhogeをcreateuserするのが
一番いいんでしょうか?

233 :NAME IS NULL:2010/03/01(月) 12:15:31 ID:NrCpd4mv
Createuserやりました。そしたら動いたよ。
ありがとうございました。


234 :NAME IS NULL:2010/03/03(水) 06:17:43 ID:???
特定のデータベースにある全テーブルを、リードオンリー(selectのみ許可)で
アクセスできるユーザを作成したいです。

将来そのデータベースに追加されるテーブルもリードオンリーにしたい
のですが、どんなユーザ(ロール)権限にしたらよいのでしょうか?


235 :NAME IS NULL:2010/03/03(水) 21:59:22 ID:???
COPY TO を利用してテーブルの内容をファイルに出力する際、
出力内容をsortすることはできないのでしょうか?

236 :NAME IS NULL:2010/03/03(水) 23:03:35 ID:???
>>235
COPY (SELECT * FROM test ORDER BY id) TO STDOUT;
でいけた。

237 :NAME IS NULL:2010/03/04(木) 00:51:52 ID:???
>>236
なるほど、ありがとうございます。

238 :NAME IS NULL:2010/03/04(木) 08:04:53 ID:gtvQ8+8N
>>234
9.0 待ち。ALTER DEFAULT PRIVILEGES。
8.4 以前だと無理。テーブルを作るたびに GRANT & REVOKE してやらないとダメ。

239 :NAME IS NULL:2010/03/06(土) 14:15:24 ID:MQ3U7j/O
ストアドプロシージャ内でビューを生成したいのですが、ビューの選択条件に関数の引数を使用すると、
実行時に there is no parameter $1 というエラーが出てしまいます。
解決方法をご教授ください。

create function f( code text ) returns integer as $$
begin
create view my_view as select * from user_table whrer user_code = code;
end;
$$ language lppgsql;

select func( 'A102' );

ERROR: there is no parameter $1

240 :NAME IS NULL:2010/03/06(土) 14:31:06 ID:???
whrer

241 :NAME IS NULL:2010/03/06(土) 14:35:56 ID:???
失礼。タイポです whrerー>where.
直しても実行時にエラーになります.

242 :NAME IS NULL:2010/03/06(土) 17:45:03 ID:???
lppgsql?

243 :NAME IS NULL:2010/03/06(土) 17:57:04 ID:???
タイポいじりもほどほどにな。

244 :NAME IS NULL:2010/03/06(土) 21:59:34 ID:???
ビューの定義にまでは引数を引き継げない。

やりたいことが良く分からないが、もし「ビューを作る関数」を作りたいのならば、
動的SQLを使って EXECUTE 'CREATE VIEW ... WHERE user_code = ' || code; ならできる。
ただ、これだと関数を呼ぶ度に新しいビューが作られるので、ビューの名前も被らないようにすべき。

もしテーブル関数を作りたいならば、返値を SETOF user_table、LANGUAGE を sql にする。
これだと SELECT * FROM f('...') みたいな使い方になる。

245 :NAME IS NULL:2010/03/07(日) 08:59:58 ID:???
PostgreSQL 8.x for Windows で、DBアクセスのスピード改善に取り組んでいます。

Q1.DB全体のパフォーマンスアップをしたいです。
 shared_buffers, temp_buffers, work_mem の値を変更しても速度の改善が
 みられません。
 このパラメータのほかにパフォーマンスに影響する設定はあるのでしょうか?
 またPostgreSQLのパフォーマンスを計測する標準的な方法はありますか?
 (ツールとか、システムカタログ値とか・・・)

Q2.特定のSQL文のパフォーマンス改善をしたいです。
 SQL文のパフォーマンス改善の方法として標準的な手順やツールがあったら
 教えてください。

よろしくお願いします。

246 :NAME IS NULL:2010/03/07(日) 09:05:03 ID:???
パソコン、サーバー、ハード、ソフトの環境、
遅いと思われる、SQL文の例を提示したほうが、
アドバイスを受けやすいと思うよ。

247 :NAME IS NULL:2010/03/07(日) 10:12:35 ID:???
PostgreSQL 9 になるんだって?

ストリムレプリケションってな〜に?

248 :NAME IS NULL:2010/03/07(日) 10:30:40 ID:???
まず 8.x っていう言い方は止めましょう。x の違いが大きいんだから。
Q2 特定のSQLまで分かっているんだったら、それの EXPLAIN を見ながら
クエリの変形やインデックスの追加を考えることになると思う。
Q1 は Q2 が終わってから。ただ、I/O と CPU のどちらがネックかは見ておくべき。
チューニングすべき箇所が全く変わってくる。

249 :NAME IS NULL:2010/03/07(日) 14:03:19 ID:???
本一冊買って読めとしか言えない

250 :NAME IS NULL:2010/03/07(日) 14:11:54 ID:bYRg7fas
すみません、質問させてください。

補助漢字(JIS X 0213)が文字化けして困っております。
下記に環境を記載致しますので解決方法を教えて下さい。
宜しく御願いします。

【サーバーOS】CentOS 5.4(32bit)
【DBの文字コード】UTF-8
【クライアントOS】Windows XP
【DB】PostgreSQL 8.4.2
【ODBC】8.4.1(UNICODE)
【開発言語】C#



251 :245:2010/03/07(日) 17:19:21 ID:???
>>248
親切なご返答ありがとうございました。

EXPLAINですね。まず見方から勉強したいと思います。

I/O と CPU のどちらがネックかを見るには、パフォーマスモニター
でしょうか。貧弱なツールだと思えるのですが、これしかないのかな・・・
I/O と CPU のどちらがネックかを見るのに良いツールがあったら
ご教示お願いします。

252 :NAME IS NULL:2010/03/07(日) 17:34:26 ID:???
だからさ、本気でアドバイス欲しいなら、正確なバージョンとメモリ量、ディスクなどのハード構成、
データ件数とSQLの種類、現状の秒数くらい書きなよ。

253 :NAME IS NULL:2010/03/08(月) 09:33:11 ID:???
一般的なセオリーを聞きたいのでは?



254 :NAME IS NULL:2010/03/08(月) 09:41:38 ID:???
駄目な教えてクンっぽいので、何か教えてもそこから自分で努力しようとせずに逐一聞いてきそう。
っていうか、もうそうなってるけど。

255 :NAME IS NULL:2010/03/08(月) 10:11:22 ID:???
つまりこのスレは、
・一般的な質問はお断り
・個別のトラブルなら相談に乗るぜ
ってかんじ

このスレと言うか技術系はどこでもそんな感じか

256 :NAME IS NULL:2010/03/08(月) 11:22:08 ID:???
広すぎる話は答えにくいからねぇ。

257 :NAME IS NULL:2010/03/08(月) 11:48:29 ID:???
一般的な質問でもいいけど、ネット上で次から次へと質問を繰り返す類の人はちょっと困る。
本読むかどっかの教室で学ぶかしたら?って思う。
リアルで面倒みてるなら的確な質問を返してくる生徒は大歓迎なんだけどね。

258 :NAME IS NULL:2010/03/08(月) 15:19:21 ID:???
>> 245
http://www.sraoss.co.jp/prod_serv/consulting/pgsql-consul.php

ここがお勧め。

259 :NAME IS NULL:2010/03/08(月) 15:25:25 ID:???
>>255
っつーか、聞いたことに答えずに、自分が勝手に納得して新たな質問をするから
駄目なんだよ。

なぜ >>246 の PC 環境や SQL 文を書かないのか。一切無視なのか。
>>248 の 8.x は何かを改めて答えないのか。
その上、I/O や CPU がどうとか言われても、てめーに判断出来るのか?って話。

260 :NAME IS NULL:2010/03/08(月) 16:35:20 ID:???
ひとまず>>249

261 :NAME IS NULL:2010/03/08(月) 21:36:34 ID:???
>>250 文字化け
その構成ならずっとUTF8で通るから、エンコードの変換自体が起こらなそうだけど?
アプリかドライバでSJISになっているのかも。
 \encoding UTF8
 SELECT '文字化けする文字';
って書いたSQLファイル (UTF8N) を「psql -f ファイル.sql > 出力.txt」しても化ける?


262 :NAME IS NULL:2010/03/08(月) 22:31:52 ID:???
>>259
そう思う

263 :NAME IS NULL:2010/03/09(火) 01:23:10 ID:???
>>251
とりあえずマニュアル読め。
http://www.postgresql.jp/document/8.4/html/

今回特に読むべきはこの辺だろう。

14.1. EXPLAINの利用
http://www.postgresql.jp/document/8.4/html/using-explain.html
これを読めば、EXPLAINの出力の読み方はだいたいわかる。

26.2. 統計情報コレクタ
http://www.postgresql.jp/document/8.4/html/monitoring-stats.html
ここに載っているビューを見れば、I/Oの回数やバイト数、インデックスが効いているかどうか、などがわかる。

264 :NAME IS NULL:2010/03/09(火) 16:43:39 ID:???
>>261
確認できました。
PostgreSQL ODBCドライバー V8.4.1をインストールする時に、
ANSIとUnicodeの文字コード二種類インストールされますが、
C#の設定ミスでANSIの方を使用していました。
設定を変更したところ補助漢字が表示・修正できました。
お騒がせ致しました。

265 :NAME IS NULL:2010/03/10(水) 03:52:15 ID:???
ttp://www.postgresql.org/docs/8.4/static/arrays.html#ARRAYS-SEARCHING
ttp://www.postgresql.jp/document/8.4/html/arrays.html#ARRAYS-SEARCHING
>Tip:  Arrays are not sets; searching for specific array elements can be a sign of database misdesign.
>Consider using a separate table with a row for each item that would be an array element.
>This will be easier to search, and is likely to scale better for a large number of elements.
>ティップ: 配列は集合ではありません。特定の配列要素に検索をかけることはデータベース設計が誤っている可能性があります。
>配列の要素とみなされるそれぞれの項目を行に持つ別のテーブルを使うことを検討してください。
>この方が検索がより簡単になり要素数が大きくなっても規模的拡張性があります。

ここの説明の、配列は集合ではないと書いておいて、
それに続けて特定の配列要素に〜と続けているのがよく分からない。

特定の配列要素うんぬんというのは「WHERE pay_by_quarter[1] = 10000」ということだよね?

「WHERE 10000 = ANY (pay_by_quarter)」「WHERE 10000 = ALL (pay_by_quarter)」は許容可能だが、
「WHERE pay_by_quarter[1] = 10000」は変だと言っている?

>配列は集合ではありません。
ただ事実を書いただけなのか、含みがあるのか・・・

266 :NAME IS NULL:2010/03/10(水) 04:03:28 ID:???
searching for specific array elements
配列のなかから特定の要素を検索すること

「WHERE 10000 = ANY (pay_by_quarter)」
のことだと思う

267 :NAME IS NULL:2010/03/10(水) 14:57:45 ID:???
>>245
8.4以降ならこのやり方がお勧めです。

スロークエリの分析
http://lets.postgresql.jp/documents/technical/query_analysis/
方式2: サーバログへスロークエリを出力する

1. 指定した時間以上かかったクエリを(必要なら実行計画もあわせて)自動的にログに出力できます。
まずは、とてつもなく遅い単独のクエリがあるかどうかをこれで調べます。

2. そのようなクエリが無いにもかかわらず、全体としてパフォーマンスが悪い場合は、次は
プログラムコードを疑います。クライアントのループ内で激烈なクエリ発行をしてるなんて
ざらです。効率の悪いSQLを書いているかもしれません。
そのようなコードがあるなら修正します。

3. そのようなクエリがあった場合は、実行計画を見て、インデックスが使われているかどうか
調べます。あわせて、シーケンシャルスキャンになっているところが回避できるようなインデックスを
設定できるかどうか検討します。

4. そうでない場合は、やっとパラメータチューニングの出番です。
まずはスタックビルダでインストールできるEnterpriseDB Tuning Wizardで、適切だと
思われるpostgresql.iniを作り、それを使ってまた1からやり直します。

5. それでも解決できない場合は、専門家に相談しましょう。

268 :NAME IS NULL:2010/03/10(水) 15:09:37 ID:seV06sgY
失礼します。
plpgsqlの中で、変数の内容にしたがってレコード型の内容を取得したいのですが、
いい手段はありませんでしょうか。
name という変数の中に レコード型のカラム名を入れて、そのカラムのデータを取得したいのです。
nameの中身を「伝票番号」とか「商品」とかにして、そのレコードの伝票番号やら商品やらを
取得したいのですがなかなか迂回手段も思いつかず、詰まってしまいました。

269 :NAME IS NULL:2010/03/10(水) 16:07:48 ID:???
>>268
38.5.4. 動的コマンドの実行
http://www.postgresql.jp/document/8.4/html/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

270 :NAME IS NULL:2010/03/10(水) 16:33:48 ID:???
申し訳ありません。
動的SQL文だと、変数の展開までは出来るのですが、
展開された変数にセットされている値をレコード名として
レコード型の変数からデータを引っ張ってくるというのが出来ません。

271 :NAME IS NULL:2010/03/10(水) 16:58:27 ID:???
無理

272 :NAME IS NULL:2010/03/10(水) 17:10:19 ID:???
ですよねー
クライアント側に頑張ってもらうことにします。

273 :245:2010/03/10(水) 19:39:19 ID:???
>>267
返答ありがとうございました。
大変、勉強になります。
チューニングの手順が理解できました。
スタックビルダ、スロークエリなど、チューニングに使えるんですね。
知りませんでした。

>>263
はい。再度マニュアルを読み込みます。
ある程度動かして一通り浅く理解してしまうと、なおざりになってしまいます。
反省しなきゃ・・・

274 :NAME IS NULL:2010/03/10(水) 22:15:37 ID:???
>>266
ああああ、言われると確かに。
配列は集合じゃないという部分も合点。

275 :NAME IS NULL:2010/03/13(土) 21:37:58 ID:???
PostgreSQL 9 の正式版の公開予定はいつごろ?

276 :NAME IS NULL:2010/03/14(日) 03:58:15 ID:???
ロードマップ見て来いよ

277 :NAME IS NULL:2010/03/14(日) 15:18:42 ID:???
>>276
http://www.postgresql.org/によればVer9.0リリースは
2010年第2から第3Q との事ですが、日本語対応は通常どの程度
遅れるのでしょうか?


278 :NAME IS NULL:2010/03/14(日) 15:22:45 ID:???
何を言ってるんだこいつ?

279 :NAME IS NULL:2010/03/14(日) 15:40:17 ID:???
日本語対応ってマニュアルの話?

280 :NAME IS NULL:2010/03/14(日) 15:49:25 ID:???
>>277のPostgreSQL対応はあと3年くらい必要だな

281 :NAME IS NULL:2010/03/14(日) 20:50:57 ID:???
マニュアルって機械翻訳なの?
誤訳やら原文忠実性を遥かに超えた直訳やらで面白いよね

282 :NAME IS NULL:2010/03/15(月) 01:00:21 ID:???
どこが?

283 :NAME IS NULL:2010/03/15(月) 08:08:13 ID:???
>>281
直してくれ

284 :NAME IS NULL:2010/03/15(月) 08:20:26 ID:???
じゃあ俺が(ry って思えないのが>>281の限界

285 :NAME IS NULL:2010/03/15(月) 10:55:40 ID:???
>>282
どこが面白いかって意味なら意外性だな
頭をひねって理解するとそこにアハ体験的なものがある

技術文書だから読みやすさより忠実性をとるのは正しいけどさ
AYB感とともにチャイナガジェットの取説的な面白さが香ってるのは
間違いねえこった

どこが機械翻訳的かっていうと、いわゆる誤訳って原文と異なった
意味の文章を構成してしまうことだと思うんだが、日本語としても壊れてるところかな

適当に開いたページから例をとると、

> オプションのRECURSIVE修飾子は、WITHを単なる構文的便利さから、
> さもなくば有効な標準SQLではなくなるものを仕上げる構成に変更します。

とある。一読して意味が取れなくてもお前らの頭が(^q^)なわけじゃない
むしろ誤訳なのにサクサク読めてると思ってたらやばい
しかし次の一文まで読むと訳者の意図がピンと来る

> RECURSIVEを使用することで、WITH問い合わせが自己の出力を参照できるようにします。

とりあえずexcite翻訳に原文つっこんだら普通に正しい訳出てきたから
マシーンじゃないっぽい^^

286 :NAME IS NULL:2010/03/15(月) 11:21:13 ID:???
有志がそれぞれ翻訳してんだから、おかしいと思ったら参加してやればいいだろう

287 :NAME IS NULL:2010/03/15(月) 11:35:54 ID:???
>>285
下衆の長文うざい

288 :NAME IS NULL:2010/03/15(月) 17:41:59 ID:???
フリーライダーが何を偉そうにいってるんだ

289 :NAME IS NULL:2010/03/15(月) 18:22:18 ID:???
あの程度の英文が読めないところ
英語教育のダメさ加減を表してるな

馬鹿な授業やめればいいのにね

290 :NAME IS NULL:2010/03/15(月) 21:46:29 ID:???
英文が読める読めないって話じゃなくて翻訳がおかしいって話じゃないのか

291 :NAME IS NULL:2010/03/16(火) 02:41:36 ID:???
とても場違いな話題で申し訳ないけど、6年間英語教えても成果ないわけじゃん
けどあれって英語だけじゃなく他の科目もそうだとしたら…だめだ恐ろしすぎてとても最後まで書けない

292 :NAME IS NULL:2010/03/16(火) 04:11:45 ID:???
何を言ってるんだ

293 :NAME IS NULL:2010/03/16(火) 08:30:01 ID:???
とても場違いな話題だね。

294 :NAME IS NULL:2010/03/16(火) 11:17:20 ID:???
日本はほぼ内需だから外国語できなくても成功できるからな

295 :NAME IS NULL:2010/03/16(火) 11:29:24 ID:???
まだ引っ張るかね?
つーかITエンジニアやってれば英語のドキュメントを見る機会なんて幾らでもある。
もし問題があるとすれば、英語力よりも国語力の方だろ。
業務系の仕様書見れば、日本語がおかしいのなんて幾らでもあるw
あと昔ACOS扱ったことあるけど、マニュアルが日本語的に悲惨でえらく苦労したぞw

296 :NAME IS NULL:2010/03/16(火) 12:05:45 ID:???
で?

297 :NAME IS NULL:2010/03/16(火) 12:09:22 ID:???
>>296
で?

298 :NAME IS NULL:2010/03/16(火) 12:13:48 ID:???
296は国語力に問題があるな

299 :NAME IS NULL:2010/03/16(火) 12:40:00 ID:???
でっていう

300 :NAME IS NULL:2010/03/16(火) 14:07:32 ID:Cy/WXQsW
ttp://www.postgresql.org/ftp/odbc/versions/msi/
ここからODBCドライバをDLしてインストールしようと思うのですが、
サーバのPostgreSQLは8.1.6です。
この場合、ODBCドライバはpsqlodbc-08_01_0200.zipがいいのでしょうか?
それとも単純に最新のpsqlodbc_08_04_0200.zipのほうがいいですか?


301 :NAME IS NULL:2010/03/16(火) 14:12:35 ID:???
>>300
最新で問題ないはず。

302 :NAME IS NULL:2010/03/16(火) 15:48:19 ID:???
>>281
なんで日本語訳のマニュアルなんか読んでるの?

303 :NAME IS NULL:2010/03/17(水) 06:50:36 ID:???
>>302
日本語訳の素晴らしいマニュアルがあるのに、君はわざわざ英語の
マニュアルを読んでるのかい???

304 :NAME IS NULL:2010/03/17(水) 11:30:48 ID:???
>>302

俺の話じゃなくて>>281の話なんだけど?

305 :NAME IS NULL:2010/03/17(水) 11:31:51 ID:???
s/>>302/>>303/

306 :NAME IS NULL:2010/03/17(水) 13:33:46 ID:???
gdgdですなw

307 :NAME IS NULL:2010/03/17(水) 13:44:06 ID:???
粘着してる>>304-305は頭冷やした方がいい

308 :NAME IS NULL:2010/03/17(水) 16:31:11 ID:???
ん?日本語訳に文句付けるなら、自分で直すか英語マニュアル読めって話でしょ。
>>303の勘違い。

309 :NAME IS NULL:2010/03/17(水) 16:57:59 ID:???
文句言いながら読むのも人の勝手だから粘着するなってことか

310 :NAME IS NULL:2010/03/17(水) 17:14:03 ID:???
いつまでやってんの。

311 :NAME IS NULL:2010/03/17(水) 17:29:57 ID:???
>>285
a feature that accomplishes things not otherwise possible in standard SQL
の日本語訳教えてちょ

312 :NAME IS NULL:2010/03/20(土) 10:20:59 ID:???
日本語ODBCは、使う環境や使い方によって、エラーが出ることもあるから、
エラーが出ないのなら、最新が安心かもね。
自分の環境は最新ODBCはエラーになる場合がある。

313 :NAME IS NULL:2010/03/20(土) 10:42:57 ID:???
>>312
いのっちの父の部屋で報告したらいいのでは?

314 :NAME IS NULL:2010/03/22(月) 20:06:50 ID:???
PostgreSQLしかDBを知らないのだが、Oracleなどは何が凄いんだ?
世の中の99.9%はPostgreSQLで十分な気がするのだが。

315 :NAME IS NULL:2010/03/22(月) 20:11:40 ID:???
Pgとオラクルなんて似たようなものだ

316 :NAME IS NULL:2010/03/22(月) 20:47:00 ID:???
普通の人がOracleしか知らないだけです。
pgsqlで十分ならそれで何の問題もないかと。

Oracleは色々と問題あるのよねぇ。
マテビュとかデビリンクとか...
サポートに連絡しても何の役にも立たないし。

317 :NAME IS NULL:2010/03/22(月) 20:54:04 ID:???
問題が起こったときに
PostgreSQLだと自分で責任をとらないといけないが
Oracleならサポートのせいにできるだろ

318 :NAME IS NULL:2010/03/22(月) 21:26:33 ID:???
そういやMySQLはオラクルの傘下に入ったんだっけ?

319 :NAME IS NULL:2010/03/22(月) 21:31:13 ID:???
相当大規模だと違いあるけど
1台だけとか現用待機程度の規模でやるなら変わらんな

320 :NAME IS NULL:2010/03/23(火) 06:53:23 ID:???
>Oracleならサポートのせいにできるだろ

サポートのせいにしたところで、実際には何も解決はしないけどね。
DBの不具合で被った損害をオラクルが補償してくれるわけでも
ないし。


321 :NAME IS NULL:2010/03/23(火) 07:08:25 ID:???
それでも、腐った設計のデータベースの尻拭いに関しては、まだOracleが勝ってる。
責任を取りたくない開発者向きの機能は、まだまだ見習うところは多いと思うよ。

322 :NAME IS NULL:2010/03/23(火) 12:16:54 ID:???
つまり、Oracleを使う現場では設計を腐らせないと有利に働く部分がなくなってしまうんだな

323 :NAME IS NULL:2010/03/23(火) 16:28:41 ID:???
何言ってるの?

324 :NAME IS NULL:2010/03/23(火) 22:15:36 ID:???
そうだな。

325 :NAME IS NULL:2010/03/24(水) 00:01:13 ID:???
障害対応がOracleはすぐれてる。
PostgreSQLは、まぁましになってはきたけど。

326 :NAME IS NULL:2010/03/24(水) 04:53:28 ID:???
先日、とあるSEさんにOracleのサーバは絶対に再起動してはダメだ、と言われた...。
理由を聞くと、ほぼ確実にデータが壊れて復旧できないから、なんだと。
そういうもん?

327 :NAME IS NULL:2010/03/24(水) 05:52:05 ID:???
>>326
んなこたーない。そこはどんだけボロいハード使ってんだよ。

328 :NAME IS NULL:2010/03/24(水) 07:48:19 ID:???
ひとつのPgSQL接続だけを強制的に切断する方法はありますか?

ひとつのPgSQL接続だけがものすごい時間のかかる処理をしている場合、
システムへの負荷が相当かかり、他の利用者のDB処理が遅くなってしま
います。
PgSQLの再起動は、運用上できないです。


329 :NAME IS NULL:2010/03/24(水) 07:55:46 ID:???
Oracleは動いてるときにぶった切ってもデータ壊れんし壊れても復旧できるけど
逆にPostgreSQLはinsertとかやってる途中だとgdgdになったりする
そういう所だな0円と500万円の違いは

330 :NAME IS NULL:2010/03/24(水) 08:45:20 ID:???
>>328 ひとつのPgSQL接続だけを強制的に切断
pg_terminate_backend in 8.4.

>>329 PostgreSQLはinsertとかやってる途中だとgdgd
は? 普通にクラッシュリカバリできるが、何を勘違いしているの? FUD?


331 :NAME IS NULL:2010/03/24(水) 08:49:00 ID:???
>>328
KILLしたらいいんじゃないの。
Winならタスクマネージャーで。

332 :NAME IS NULL:2010/03/24(水) 08:56:44 ID:???
>>328
http://trasis.jp/blog/lab/2009/04/postgresql%E3%81%A7%E7%8F%BE%E5%9C%A8%E5%AE%9F%E8%A1%8C%E4%B8%AD.html
http://trasis.jp/blog/lab/2009/04/postgresqlで現在実行中.html

333 :NAME IS NULL:2010/03/24(水) 09:41:52 ID:???
>>330
実際やりゃ解る
こっちは何度も苦労してんだよ
アーカイブログあるからとかそういう問題じゃない

334 :NAME IS NULL:2010/03/24(水) 09:44:43 ID:???
プロセスkillしたらそれこそgdgdになる
pg_cancel_backendだっけ?で止めないと

335 :NAME IS NULL:2010/03/24(水) 10:20:31 ID:???
pg_cancel_backend もひとつのプロセスだから、同じじゃないの。

336 :NAME IS NULL:2010/03/24(水) 10:26:50 ID:???
え?processが死んだくらいでgdgdになるの?

337 :NAME IS NULL:2010/03/24(水) 10:40:16 ID:???
今まで、サーバークラッシュ、再起動しても、グダグダになったことはないな。
pg_cancel_backend で止めたほうが安心だろうけど。

338 :NAME IS NULL:2010/03/24(水) 11:02:54 ID:???
>>326
一回リカバリーしたなら、それマージさせないと毎回起動時にリカバリーするはめになるよ

339 :NAME IS NULL:2010/03/24(水) 12:44:40 ID:???
クラスタリングとか同期処理とかやってるとおかしくなるな。
あと、すげー昔だけどupdate止めてロックおかしくなって再起動したことはある。

340 :NAME IS NULL:2010/03/24(水) 20:03:32 ID:???
おかしくなったって言っている人が実際適切に運用していたかはわからないから、
結局何が悪かったのかまで突き詰められない。単なる苦労話にしかならないから、全く価値が無い。

馬鹿でも簡単お手軽にリカバリできる方法が用意されていないって言う話ならば、
確かにそれはポスグレが悪いんだけど。

341 :NAME IS NULL:2010/03/25(木) 00:19:21 ID:???
> 馬鹿でも簡単お手軽にリカバリできる方法が用意されていないって言う話ならば、
> 確かにそれはポスグレが悪いんだけど。

そんなものはオラクルにもないわけで。

342 :NAME IS NULL:2010/03/25(木) 00:24:17 ID:???
んで適切な環境って何?
不慮の事故に対応するのがリカバリでしょ
RAIDでUPSでジャーナリングでってのは
リカバリができるか云々とは別のベクトルだし

343 :NAME IS NULL:2010/03/25(木) 00:54:40 ID:???
適切な環境じゃなくて、不慮の事故時に適切な運用を行ったかどうかでしょ
初心者が扱うとまともにパフォーマンスが出ないオラクルは良いのか悪いのか、という話は今俺が作った別のベクトル

344 :NAME IS NULL:2010/03/25(木) 01:18:36 ID:???
gdgdの具体例まだー?

345 :NAME IS NULL:2010/03/25(木) 02:10:22 ID:???
oracleにコンプレックスでもあんのか?
PostgreSQLにも欠点はあるんだから
それを隠して絶賛してたら何も進歩せんぞ
ウリナラマンセーで反日やるようなもんだ

346 :NAME IS NULL:2010/03/25(木) 02:28:03 ID:???
Oracleに匹敵するようなものを限りなく安く使えるのがPostgreSQLなわけで、
もしOracleを凌駕するようなものならOracleなんてとっくに無くなってるよw

オープンソースの魅力は好きなように改造できることで、(制限付きではあるが)タダで使えることじゃないよな。



ああ、なんか書き足らないことだらけだ...orz

347 :NAME IS NULL:2010/03/25(木) 07:30:31 ID:???
>>345
マンセーというより、>>329がFUDっぽいから突っ込まれてるだけでしょ

348 :NAME IS NULL:2010/03/25(木) 10:34:17 ID:???
×突っ込み
○やっかみ

349 :NAME IS NULL:2010/03/25(木) 14:02:55 ID:???
IDEやSATAでドライブの
書き込みキャッシュOnにしてたらありえる
書いてfsync()したはずのデータを
失う可能性があるから。

そういう用途には
バッテリ保護付きのアレイコントローラや
外部ストレージが必要




350 :NAME IS NULL:2010/03/25(木) 16:28:10 ID:???
いやだからそういう問題じゃなくて
純粋に素のミドルウエアとしてのリカバリ性能の話をしてるんでしょ
ハードやファイルが壊れない前提なら大抵のDBMSは問題ないわけで

351 :NAME IS NULL:2010/03/25(木) 16:53:19 ID:???
Relese note見てないんだろうか、この人。

352 :NAME IS NULL:2010/03/25(木) 18:30:01 ID:???
リリースノート関係ないでしょ
ライトキャッシュによる遅延書き込みの失敗なんて
テキストファイル保存したってバカ高いバックアップツール使って保存したって起こることで
pgとoracleの性能差とは別次元の設定ミス

353 :NAME IS NULL:2010/03/25(木) 23:40:19 ID:???
>>345
「欠点はある」んだったら、ちゃんと具体例を報告して、
直すなり、直してもらうなりすれば良いのでは?
>>350
まだ「リカバリ性能の話」までたどり着いていない。
ある人が、何か操作をしたら、リカバリできなかったという書き込みがあっただけ。

354 :NAME IS NULL:2010/03/26(金) 00:18:10 ID:???
自分の信じる物に欠点がないと信じたい気持ちはわかるが
産業製品にとってそれは何のプラスにもならない感情だぞ
宗教じゃないんだからさ

355 :NAME IS NULL:2010/03/26(金) 01:04:25 ID:???
だから、あるなら具体的に。

356 :NAME IS NULL:2010/03/26(金) 01:06:06 ID:???
誰もそんなこと信じてないけど

357 :NAME IS NULL:2010/03/26(金) 01:28:52 ID:???
けんか腰の奴にいちいち説明する義理もなんじゃないのか

358 :NAME IS NULL:2010/03/26(金) 01:38:36 ID:???
信じてないから欠点がないとも信じていないんだが
欠点を見つけたら報告するでしょ普通
windows、redhatのバグ見つけたら報告するよな?それと一緒。

359 :NAME IS NULL:2010/03/26(金) 01:39:52 ID:???
って欠点=バグと思い込むのは悪い癖でした。
要望は上げたことないや

360 :NAME IS NULL:2010/03/26(金) 01:44:17 ID:???
そもそも欠点があったからバグフィックスがでてバージョンが上がって行ってるんじゃないのか
過去にはVACUUMしたら壊れるなんてのもあったくらいだし

361 :NAME IS NULL:2010/03/26(金) 02:08:03 ID:xwgsQGRx
そんなソフトウェア一般の話をここでされてもな

362 :NAME IS NULL:2010/03/26(金) 02:14:16 ID:???
vacuumってソフトウエア一般か?

363 :NAME IS NULL:2010/03/26(金) 02:21:01 ID:???
一回ダンプしないとバージョンアップできないバグフィックスたまにあるけど、
あれすげー痛いな。

364 :NAME IS NULL:2010/03/26(金) 02:31:09 ID:xwgsQGRx
うん? >>361>>360の主題の方に対して言ってるんだよ

365 :NAME IS NULL:2010/03/26(金) 07:27:49 ID:???
>>363
メジャーバージョンアップはダンプがいるけど、バグフィクスで必要なったことは
ほとんど無いぞ? 「具体的に」何を指している? 確かに REINDEX してくれってのはあったが。

366 :NAME IS NULL:2010/03/26(金) 08:31:04 ID:???
殆ど無いじゃなくて普通にあった
8,2の時にも
得意なリリースノートでも見てみればいい

367 :NAME IS NULL:2010/03/26(金) 08:37:42 ID:???
>>366
そういうのって例えばOracleであればありえないの? 保証されているの?

サポートに聞いたら、とりあえずこのパッチ当ててみ、ってのも嫌だな。
というか完璧は無くて、有償だと責任を転嫁出来るって感じ。


368 :NAME IS NULL:2010/03/26(金) 08:44:17 ID:???
完璧があって、それがPostgqeSQLだとか言わんよな。

369 :NAME IS NULL:2010/03/26(金) 12:49:37 ID:???
コンパイルオプションの違いでおきることはあるけど
それとバグ以外じゃないよ、なっか勘違いしてるだろう

370 :NAME IS NULL:2010/03/26(金) 13:30:31 ID:???
>>352
で、リリースノートは読んでないんでしょ?
だから、
> 大抵のDBMSは問題ないわけで
こんなこと言うんだよ。

371 :NAME IS NULL:2010/03/26(金) 13:33:33 ID:???
例えば8.4.1のリリースノートのE.3.2. Changesの先頭三つはこんなかんじ。

Fix WAL page header initialization at the end of archive recovery (Heikki)
This could lead to failure to process the WAL in a subsequent archive recovery.

Fix "cannot make new WAL entries during recovery" error (Tom)

Fix problem that could make expired rows visible after a crash (Tom)
This bug involved a page status bit potentially not being set correctly after a server crash.

372 :NAME IS NULL:2010/03/26(金) 14:57:31 ID:???
PostgreSQLって、一貫性のあるウォームバックアップって取れる?
あと、増分バックアップってできるのかしら。WALを取っとくとかいうのじゃなく。

373 :NAME IS NULL:2010/03/26(金) 14:58:31 ID:???
なんか日本語の理解力が著しく低くないか
しかも敵が一人と決めつけて、色んな人の自分に都合がいい意見だけ繋いで反論してるし

374 :NAME IS NULL:2010/03/26(金) 14:59:07 ID:???
取れない

375 :NAME IS NULL:2010/03/26(金) 15:02:29 ID:???
Oracleだって、自動リカバリ不能になることもあるのに、PostgreSQLでそうなったと言ったらFUDだと騒ぐ。

376 :NAME IS NULL:2010/03/26(金) 15:04:34 ID:???
FUDと言いたいだけ

377 :NAME IS NULL:2010/03/27(土) 00:57:38 ID:???
DBなんて稼働し始めたら稼働四波なhしてアップグレードなんてしないもんじゃね?
ハードごと入替でエクスポート、インポートってのはあるけど。

378 :本田:2010/03/27(土) 00:58:15 ID:qqcAE8kL
zfsは任意の時間のファイルシステム自身のスナップショットを取れるようになっている。
バックアップ機能の貧弱なDBMSはそれ自身のバックアップ機能に頼らす、
新しいファイルシステムのバックアップ機能を使ったほうがベターかもしれない。



379 :377:2010/03/27(土) 02:35:16 ID:???
今更の訂正ですまぬ。
× DBなんて稼働し始めたら稼働四波なhして
○ DBなんて稼働し始めたら稼働しっぱなしで

>>378
StorageTek とかのディスクアレイならUFSとかでもスナップショットとれるよね。

380 :NAME IS NULL:2010/03/27(土) 05:22:56 ID:???
>>378
それ一貫性のあるウォームバックアップの代わりになんの?

381 :NAME IS NULL:2010/03/27(土) 09:26:51 ID:???
pg_start_backupと組み合わせればいけるはず
pg_start_backupなしはダメ

382 :NAME IS NULL:2010/03/27(土) 13:36:12 ID:???
>>372
○ 一貫性のあるウォームバックアップ
ほぼ× 増分バックアップ
最終変更時刻に変更の無いファイルを除外すれば、
一応増分バックアップっぽくはなるけど、ファイル単位なので粒度は荒い。

383 :NAME IS NULL:2010/03/27(土) 13:40:31 ID:???
>>371
「バージョンアップはダンプがいる」から繋がっている会話なのに、
リカバリができないバグを挙げているのは、おかしくないか?

.0 はさすがにバグが残っているから、本格的に使うのは .1 以降にするって話なら同意だが。

384 :NAME IS NULL:2010/03/27(土) 13:51:01 ID:???
ダンプが必要なバージョンアップがあった時は痛かったって話であって
バージョンアップにダンプが必要とは誰も言ってない気がするが

385 :NAME IS NULL:2010/03/27(土) 13:55:53 ID:???
2 つの話がごっちゃになってるだけだろ。
どっちもリリースノートって言うから混ざってる。

386 :NAME IS NULL:2010/03/27(土) 14:07:59 ID:???
そして>>373に戻る

387 :NAME IS NULL:2010/03/27(土) 14:15:51 ID:???
>>350に対しての>>351なわけで、だってほら最近のリリースノートにだってbugfix満載ですよってこと。

388 :NAME IS NULL:2010/03/27(土) 14:23:01 ID:???
日本語が読めないというより、都合の悪いことは読みたくない奴が一人いるみたいね。

389 :NAME IS NULL:2010/03/29(月) 01:17:45 ID:5tk5Z2gY
例えば、一定の売上高以上の伝票を検索しようとすると、シーケンシャルスキャンになると思うんだが、
売上高の様な整数(や浮動小数)のフィールドにインデックスを設定することに意味はあるでしょうか?


390 :NAME IS NULL:2010/03/29(月) 01:22:45 ID:???
>>389
一般的には、売上金額など値データの列にはインデックスは張らないでしょうし、
意味もないと思います。

391 :NAME IS NULL:2010/03/29(月) 01:58:27 ID:???
金額でソートする場合は貼るだろ

392 :377:2010/03/29(月) 02:10:57 ID:???
>>380
トランザクションのコミット前なら大丈夫(だったよ、実際に)。
いきなりプロセスが死んだ(kill -killとかコンセント引っこ抜いた感じ)
状態になるけど、とりあえずリカバーできたよ。
というか、常時稼働の場合はDBによる「一貫性のあるバックアップ」と
一応「ある時点でのストレージのバックアップ」の両方をテストしたときに
以外に何とかなったんで、


ええっと、俺じゃなくて>>378へのレスだったことに今気がついた・・・
読み飛ばしてくれ・・・

>>389
もしその数値フィールドがアプリというかシステムの重要なパフォーマンスに効いてくるなら、
例えば、log10をとったり10*nで割った値とかを整数化した値のコラムを作ってインデックス貼ると
速くなるよ。検索入力の値のlog10とか10*nで割った値(インデックス張った値)を検索条件に
いれる。DWH(読み取り優先)みたいなのではよくやる。
ヒストグラム(でいいのかな?)が均等になるようなインデックス値をひねり出すのがミソ。

参考までに。

393 :NAME IS NULL:2010/03/29(月) 02:38:37 ID:???
>>392
[金額/10*n] = 入力/10*n and 金額 = 入力
のような検索条件にするの?

394 :377:2010/03/29(月) 03:06:14 ID:???
まったくその通り。

たとえば、kinngaku_idx = 2 and kingaku = 235 みたいに。
この場合、
  log10(235) = 2.371... -> 2
と、
  235 / 100 = 2.35 → 2
の二つの考え方ができるけど、都合のいい方でとらえてほしい。

SybaseのIQとかは内部的にこんなようなことをを自動でやってくれたりするけど、
コラムの値のバリエーションが分かってるなら「出来合いのロジック」よりも
賢いことができる。



・・・といいな。

395 :377:2010/03/29(月) 03:11:56 ID:???
ごめん。
>の二つの考え方ができるけど・・・
じゃなくて
 「とか、いくらでも考えられるけど」
の方が適当だね。

396 :NAME IS NULL:2010/03/29(月) 03:24:02 ID:???
へぇぇ。これは頭の片隅に入れておくよー

397 :NAME IS NULL:2010/03/29(月) 11:33:12 ID:???
>>392
> ええっと、俺じゃなくて>>378へのレスだったことに今気がついた・・・
> 読み飛ばしてくれ・・・

いやいや、お前が文章削れよ。

398 :NAME IS NULL:2010/03/29(月) 23:47:39 ID:m9bmz7wY
mac osx でPostgreSQL 8.3 -> 8.4 にアップデートしたんだけど、HDDが20GB位消えてしまった。
pg_dumpall でデータを入れ直しました。

Caches にもなし。アップデートで多量の一時ファイルを消費して、消さないということはあるのでしょうか。

399 :377:2010/03/30(火) 02:39:17 ID:???
>>397
いやぁ、なんかせっかく書いたのが惜しくなっちゃったもんで・・・

>>398
>HDDが20GB位消えてしまった

ここがよくわからん。アップデート前より、
ディスク容量が減ったのか、
DBが使っていた領域が減ったのか、
どっち?

400 :NAME IS NULL:2010/03/30(火) 08:52:54 ID:???
空き容量が減ったってこと?
VACUUM FULLすればいいんじゃないの

401 :NAME IS NULL:2010/03/31(水) 00:49:47 ID:???
そもそもアップグレードのときにDBクラスタには互換性は無いはずだけど、
Mac OS X だと何か特殊なアップグレード処理があるの? pg_migrator とか?
もしそのままDBファイルが使えるなら、内部的には dump & restore しているはずなんだけど?

402 :NAME IS NULL:2010/03/31(水) 15:16:36 ID:???
売上金額にインデックス張ったほうがいいかどうかは、
環境によって違うだろうし、
どれくらいパフォーマンスがあがるか比較すればよいだけのこと。

403 :NAME IS NULL:2010/04/01(木) 01:57:51 ID:???
先日postgreSQLを始めたばかりです。
初心者用サイトを見ながら、アカウントpostgresを作ったけれど見えなくなってしまいました。
コマンドプロンプトからパスワードは設定したのですが、これは別に気にしなくていいのでしょうか。
PCはwindows7です。また、最新版はpostgresql-8.2.1-1-jaなのでしょうか。

404 :NAME IS NULL:2010/04/01(木) 04:58:55 ID:???
Windows7対応、動作確認済みなのかは、知らないけど、
最新版は、8.4.3 で、postgresql-8.4.3-1-windows.exe のようだよ。
日本語版jaじゃなくても、OKなはず。

405 :403:2010/04/01(木) 23:22:21 ID:???
>>404
postgresql-8.4.3-1-windows.exe を無事に見つけてインストールもできました。
ありがとうございました。

406 :NAME IS NULL:2010/04/02(金) 00:17:14 ID:e9uXcqr4
VACUUM FULL がかれこれ48時間くらい終わらない。
VERBOSEオプションで出力されるメッセージも新しいものは、24時間以上でていない。
速くする為に設定するconfのオプションがあったら教えて下さい。
ver 8.4です。

407 :NAME IS NULL:2010/04/02(金) 02:09:06 ID:???
8.2以前ならともかぅ8.4でそんなことあんのか

408 :NAME IS NULL:2010/04/02(金) 08:23:17 ID:???
VACUUM FULLならありえる。
ダンプとリストアを使ったら?

409 :NAME IS NULL:2010/04/09(金) 04:40:35 ID:???
>>311
更新されてるね
> オプションのRECURSIVE修飾子は、WITHを、単に構文上の利便性の高めるだけでなく標準的なSQLでは不可能な機能を実現させます
http://www.postgresql.jp/document/8.4/html/queries-with.html

補完すると、not otherwiseは標準的なSQL「においてこれ以外の方法」では不可能な、って意味
recursiveが規格外の機能という意味じゃないよ

410 :NAME IS NULL:2010/04/11(日) 00:10:05 ID:PA0WZF+k
テーブルトリガをCで書いてます。
「PostgreSQL 8.4.3文書 35.4. 完全な例」はその通り出来ました。

Cコード中でイベント発生行自身にアクセスするにはどうしたら良いですか?
SPI_Execに SELECT hoge from tbl_hoge where id_hoge=xxx とかしたく、
そのxxxが取れればいいな、と思っているんですが。


411 :NAME IS NULL:2010/04/12(月) 15:21:30 ID:???
OSX10.6.3 iMac21.5インチ Intel Mac mini(1.83GHz) / Mac OS X 10.5.6で
PostgreSQL 8.3.6 をインストールし、libpqを使用した
アプリをUniversal Binaryで作成しようとすると、
ppcのコンパイルでlibpqへのリンクエラーが出てしまいます。
どうやらPostgreSQLのコンパイルを行う必要があるみたいなのですが
詳しい方よろしくお願いします。

412 :NAME IS NULL:2010/04/12(月) 16:23:06 ID:???
make

413 :NAME IS NULL:2010/04/12(月) 21:51:23 ID:???
PostgreSQL 8.3.6をどうやってインストールしたんだそもそも

414 :NAME IS NULL:2010/04/13(火) 12:33:52 ID:???
よく見りゃ地球は不思議の塊

415 :NAME IS NULL:2010/04/13(火) 17:02:00 ID:???
まあ ./configure --help で

416 :NAME IS NULL:2010/04/17(土) 08:40:15 ID:???
PostgreSQL 9.0 早く出ないかな・・・
すげー期待してます。


417 :NAME IS NULL:2010/04/17(土) 13:14:57 ID:???
何が乗るかも解らないのに期待してどうすんの?

418 :NAME IS NULL:2010/04/17(土) 15:42:01 ID:???
いや何が乗るかはわかってるでしょ

PostgreSQL 9.0 の新機能 ― Let's Postgres
http://lets.postgresql.jp/documents/technical/9.0/1/

PostgreSQL 9.0 のその他の新機能 ― Let's Postgres
http://lets.postgresql.jp/documents/technical/9.0/2/


419 :NAME IS NULL:2010/04/19(月) 13:28:36 ID:Jr6VAcFd
PostgreSQLと半導体ストレージの検証データ公開してるけど、
個人情報登録はちょっと勘弁してほしいね。

http://www.cmsinc.co.jp/seminar/20100415.html

420 :NAME IS NULL:2010/04/21(水) 00:25:30 ID:???
なんで?

421 :NAME IS NULL:2010/04/21(水) 04:49:32 ID:???
他の会社が金掛けて研究した情報をタダで手に入れようとか浅ましすぎる

422 :NAME IS NULL:2010/04/21(水) 21:41:00 ID:???
はぁ?なんで?

423 :NAME IS NULL:2010/04/21(水) 21:43:20 ID:???
>>422は一度死んだほうがいい

424 :NAME IS NULL:2010/04/22(木) 13:53:18 ID:???
なんでェ?

425 :NAME IS NULL:2010/04/22(木) 16:42:37 ID:???
>>423
Gmailとかtwitterで個人情報登録必須だったらファビョるくせに

426 :NAME IS NULL:2010/04/22(木) 17:02:14 ID:???
自分からはなにも貢献しないでもらうだけなのに
文句言ってんじゃねーよ。
嫌なら利用しなきゃいいだけだ

427 :NAME IS NULL:2010/04/22(木) 20:33:55 ID:???
>>425
住所氏名とクレジットカード番号取るサイトもあるが

428 :NAME IS NULL:2010/04/22(木) 20:38:57 ID:???
>>427
Gmailとtwitterのアカウント取る代行サービスでもあんの?

429 :NAME IS NULL:2010/04/22(木) 20:48:44 ID:???
嫌なら登録しないだけでファビョらない

430 :NAME IS NULL:2010/04/22(木) 21:44:58 ID:???
PostgreSQLと関係ない話はやめてくれないかな。

431 :NAME IS NULL:2010/04/22(木) 21:50:21 ID:???
419がそもそも悪いけど、釣られた人たちも同罪

432 :NAME IS NULL:2010/04/23(金) 18:31:34 ID:???
phpPgAdmin で、phpMyAdmin みたいに、カラムの追加とかしたときに
ALTER の SQL 文が見られるような機能ってありませんか?

433 :NAME IS NULL:2010/04/25(日) 05:00:10 ID:???
phpPgAdminは知らん。
PgAdminIIIならALTER のSQL文を見れる。

答えになってないね。すまん。参考まで。

434 :NAME IS NULL:2010/04/28(水) 06:54:55 ID:???
SET log_statement = ddl しておけばサーバログには
SQLが出力されると思うが、代わりにならないかな?

435 :NAME IS NULL:2010/04/30(金) 02:59:33 ID:tPUwSxgQ
VACUUM FULL をした結果、次のようになりました。

INFO: free space map contains 65082 pages in 155 relations
DETAIL: A total of 67264 page slots are in use (including overhead).
67264 page slots are required to track all free space.
Current limits are: 80000 page slots, 1000 relations, using 534 KB.

ここで INFO で言われてることが気になるのですが、VACUUM FULL をした場合って削除済み領域を全て解放して
free space map が 0 になるということではないのですか?


436 :NAME IS NULL:2010/04/30(金) 06:43:22 ID:???
VACUUM FULLするとテーブルはぴっちり切り詰められるけど、インデックスはむしろゴミが
増えるし、空きがあってもそのまま。インデックスに必要なぶんが報告されているのでは。
完全に 0 にしたいのならば、VACUUM FULLにつづけてREINDEXもしてみては?

437 :NAME IS NULL:2010/04/30(金) 19:09:03 ID:???
質問です。
【サーバーOS】WinXP SP3
【DBの文字コード】UTF-8
【DB】PostgreSQL 8.4.3.1
【開発言語】PHP

HTMLファイル,PHPファイル,ブラウザより送られる値すべてUTF-8ですが、
この状態でデータベースにINSERTを行うと
「Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8":〜」
とエラーが出ます。
さらに送られた値をアプリ側でUTF-8に変換してINSERTを行うと正常にINSERTできますが、
pgAdminVで値を見ると文字化けしているのですが。
これはどういった状況なんでしょうか?解決方法がありましたら
教えていただけないでしょうか?
または、参考になるHPがありましたら教えてください。

438 :NAME IS NULL:2010/04/30(金) 20:26:27 ID:???
本当にサーバのエンコーディングはUTF8なの? psql -l してみて。
あと、サーバの設定でデフォルトのclient_encodingは何になっている?

439 :NAME IS NULL:2010/04/30(金) 20:58:33 ID:sn9MUW5D
>>437
$conn=pg_connect(...);
pg_set_client_encoding($conn, 'utf-8');
してみたらどう?

440 :NAME IS NULL:2010/04/30(金) 20:59:12 ID:???
set namesしたら動くとか言うオチなしな

441 :NAME IS NULL:2010/04/30(金) 21:56:26 ID:???
>>437
UTF8をさらに、UTF8で変換するということをやっているということは、
何かおかしいので、どこか確認箇所の見落としがあるかもね。

PHPソースの変換サンプルを提示してみたら。

442 :NAME IS NULL:2010/04/30(金) 23:37:04 ID:???
スタックビルダで認証proxy場合ってどういう指定するの?
ユーザー名とパスワードの指定でできる?

443 :437:2010/05/02(日) 12:52:56 ID:???
>>438
client_encodingはUTF8になっています。
>>439 >>440
PDOを使って接続していますので、
set client_encoding to 'UTF8'クエリを実行しています。
>>441
mb_detect_encoding()で文字コードを確認して
mb_convert_encoding()で変換していますが、
うまくいってないですね

色々試した結果、正常に動かないので
インストールから設定しなおしてみます。
ありがとうございました。

444 :anonymous:2010/05/03(月) 00:31:54 ID:???
>>437
>>443

Pgのバージョンは違うけど、自分は以下のようにサンプル作成したなぁ。

■SQL問い合わせ時

$str_sql = "select syohinmei from syohin_table WHERE syohincode = 123";
$str_sql = mb_convert_encoding($str_sql, "UTF-8", "SJIS");

if (!($rs = pg_query ($dbconn, $str_sql))) {
die;
} else {
}


■結果取得時
if ($row = pg_fetch_assoc($rs)){
$syohinmei = mb_convert_encoding($row['syohinmei'], "SJIS", "UTF-8");
} else {
}



445 :NAME IS NULL:2010/05/03(月) 12:00:14 ID:Pnvwac5C
9.0 beta 1 が出たっぽい。
ttp://www.postgresql.org/ftp/source/v9.0beta1/

446 :435:2010/05/05(水) 00:55:52 ID:???
>>436
REINDEX しても 0 とは程遠い値になります。
まあ、具体的に困ったことが起きてるわけではないので、ほっときます。
どうもありがとうございました。


447 :NAME IS NULL:2010/05/05(水) 01:44:57 ID:???
>>435
そこで言われているのって、free space mapを
VACUUMでどれだけ解放しましたよ〜って事じゃないのかね

448 :NAME IS NULL:2010/05/05(水) 01:59:37 ID:???
>>446
VACUUM FULL+REINDEXなら確実に 0 になるので、もし 0 にならないと
感じているのであれば、447 の言うように、単なるメッセージの読み間違いと思われる。

449 :NAME IS NULL:2010/05/05(水) 05:06:59 ID:???
テキスト形式でダンプしてDBごとドロップして再インポートしないとそこは0にはならんぞ
FATやNTFSでデフラグしても頭から順番に並んで詰まる訳じゃないのと同じように

450 :432:2010/05/06(木) 12:41:58 ID:???
> 434
開発者にphpPgAdminで直してもらい、差分をsvnにコミットしてもらおうと思ってたの
ですが、全員にサーバのシェルを渡すわけにいかないので…

ttp://sourceforge.net/tracker/index.php?func=detail&aid=1026954&group_id=37132&atid=418983
ttp://sourceforge.net/tracker/index.php?func=detail&aid=1283164&group_id=37132&atid=418983
「管理ツールであってSQLジェネレータじゃない」という見解が示されたり、
5年以上前から既出なのにいまだ対応されずと、消極的なようですね。

451 :NAME IS NULL:2010/05/06(木) 21:05:23 ID:???
えっ

452 :410:2010/05/07(金) 01:14:30 ID:???
SPI_getvalue()で、なんか出来たっぽいです。

453 :NAME IS NULL:2010/05/07(金) 07:50:02 ID:???
>>452
「Cコード中でイベント発生行自身にアクセスする」って話なら、
TriggerData 構造体の tg_trigtuple と tg_newtuple とは違うの? ...と思ったが、
これらの行の特定のフィールドにアクセスしたかったのかな? なら、SPI_getvalue or SPI_getbinval で正解。

454 :NAME IS NULL:2010/05/08(土) 17:32:57 ID:???
>>450
差分管理するならCREATE文をコミットするのがいいと思うけど。
ALTERだったら大変じゃない?

455 :432:2010/05/09(日) 20:08:51 ID:???
>>454
データが入ってて運用中のテーブルの変更なので、DROP/CREATEできないんです。
開発機のphpPgAdminを開発者にいじらせて、リリースの手順が svn merge→
mergeに関連するDB変更のSQLを流す→ソースのアップロード
なので、1発で全体を再現する完全なCREATE文は管理していません。

456 :NAME IS NULL:2010/05/09(日) 20:42:57 ID:???
svnで管理しているddlを記述したファイルがある訳だよね?
変更の度に末尾にalter文を追加していくってこと?
だったら、変更後にテーブル定義をSQLでエクスポートしたものを
バージョン管理すればいいじゃん。特に、alterを手で書けないような
開発者にメンテさせるんなら、これ一本でddlに触らせない方がいい。

457 :NAME IS NULL:2010/05/10(月) 11:27:31 ID:???
お前いっぺん『データベースリファクタリング』読めよ

458 :432:2010/05/10(月) 12:59:52 ID:???
>>456
ひとつのリリースが終わったらファイルを変えて変更を累積しはじめ、
次のリリースのときにDB変更をまとめて本番機へ反映するために利用します。
できるにこしたことはありませんが、各DBのSQL方言を手で書けなくても
まともな設計をできる人はいると思います。

459 :NAME IS NULL:2010/05/10(月) 14:53:30 ID:???
>>456
いつでもdrop database, create databaseで済む奴は楽だよね。
で、それで済まない環境を理解できないと。

460 :NAME IS NULL:2010/05/10(月) 19:31:43 ID:???
>>455

運用中のテーブルに対して頻繁にALTER TABLEを実施するような状況ってこと?
運用開始からどのくらいたってるのかにも拠るとは思いますが、それ自体問題な気がしなくもなく。

# それとも普通の事で私がずれてるだけなのかな。



461 :NAME IS NULL:2010/05/10(月) 22:13:11 ID:???
ALTER TABLE文を管理するこの方法はかなり異端視されているが、
Railsのmigrationみたいなものと思えば、そんなに変じゃないと思うが?
あっちは、元に戻す手順とセットだけど。

そうは言っても、ALTER文くらい手書きしたってバチはあたらんよなぁ。
まともな設計できる人なら、SQL方言くらい覚えるだろ。

ところで、ツールを変える、って選択肢は無いのかね。
pgAdmin IIIなら、GUIでALTER TABLEできて、SQLも自動生成してくれるけど。
見えすぎるのが困るのなら、上手いこと権限設定すれば何とかならないか?

>>460
頻繁って、勝手に頻度上げるなよ。1度でも起き得るなら考慮すべきだろ。

462 :NAME IS NULL:2010/05/11(火) 07:55:06 ID:hNJe4LWT
>>461

ツールを変える選択肢、とかいうならもったいぶらずにお勧めのものを教えてあげればよいのに。


463 :NAME IS NULL:2010/05/11(火) 12:36:28 ID:???
>>462
pgAdmin って書いてあるだろ。

使い古されて言いたかないが、「半年ROMってろ」を地で行ってるな、アンタ。

464 :NAME IS NULL:2010/05/11(火) 12:58:06 ID:???
>>460
仕様変更などでカラムを追加する場合はどうやってんの?

465 :NAME IS NULL:2010/05/11(火) 14:32:22 ID:???
そんなにしょっちゅうカラムが増えるなら設計がおかしい

466 :460:2010/05/11(火) 20:48:39 ID:???
>>464

別に ALTER TABLE 使うなとか、CREATE TABLE を常にやれ、とかそういう話じゃないですよ。

リリースして最初の1〜2ヶ月とかなら運用中のテーブルに直接変更かけるのはわからなくもないけど、
基本的に設計ができているなら変更が発生するなんてほとんどないと思うんです。
※単体アプリ専用テーブルは除く

でも今はそういうことを気にせず変更を随時するもんだ、って言うような事になってるなら
私は古いんでしょうね。


ちなみに私が経験してきた範囲では、運用が始まってからそういったテーブル仕様変更をする際は
週末の運用後にフルバックアップとってアプリの持つ更新ログ回収してガッツリ確認までやる大掛かり
な入れ替え作業になります。
外部キーやトリガーやビューといった要因で問題がでたら目も当てられません.......


467 :NAME IS NULL:2010/05/12(水) 12:49:11 ID:???
>>465
なんで頻繁に発生することが前提なんだ?
まぁそれはともかく、お前のところでは、過去も未来も仕様変更によるカラムの追加は
一切無いということだな?

468 :NAME IS NULL:2010/05/12(水) 13:42:18 ID:???
>>467
しょっちゅう増えるならおかしいって書いてるじゃん。

でもまぁ、仕様変更の内容に応じて増えるのはいたって普通のことだと思うな。
項目増えてもスキーマ変更が起こりにくいように柔軟な設計をしました!っていうのは
逆にいやなにおいがするかもだ。

469 :NAME IS NULL:2010/05/12(水) 15:38:58 ID:???
カラム増やすくらいならテーブル追加しろよ
既存のプログラムに影響与えるような殖やし方すんなよ

470 :NAME IS NULL:2010/05/12(水) 15:58:59 ID:???
2カラムだけのテーブルが量産されるのもいやな話だな

471 :NAME IS NULL:2010/05/12(水) 20:59:34 ID:???
カラム増やすなといったら、話がすすまないだろ。


472 :NAME IS NULL:2010/05/12(水) 21:04:37 ID:???
みんな自由にデータの項目増やしたいから非RDBMSが流行ってるんだろ

473 :NAME IS NULL:2010/05/12(水) 22:58:20 ID:???
ちょっとスレ違いかも知れませんが、識者の方おられましたら助言をお願いします。
OS:RedHat ES 5.3
postgresql-8.4.3
unixODBC-2.2.11-7.1
poco-1.3.6p2-all
の環境で、Poco::ODBC経由でTIMESTAMP型の
データをselectしようとすると、DataExceptionが発生します。
isql/psqlを使用した場合は問題なく表示されています。
testsuite(testrunner PostgreSQL)を実行すると、
[PostgreSQL SQL Executor] Warning: no SQL_TYPE_TIMESTAMP data type info returned by driver.
[PostgreSQL SQL Executor] Warning: could not get SQL_TYPE_TIMESTAMP parameter description.
の様に警告メッセージが表示されます。
もしかして、Poco::ODBCと、unixODBCは混ぜるな危険なのでしょうか?
Poco::ODBC::Utility::dataSources にもバグがあって散々悩まされましたし、、、


474 :NAME IS NULL:2010/05/13(木) 23:53:45 ID:???
Cでユーザ定義関数を作ろうとしているのですが、
postegresqlの配列型(固定長integer[]とか)の受け取り方がよくわかりませぬ。。
どうやって受け取ればよいのでしょう?

475 :NAME IS NULL:2010/05/14(金) 00:32:06 ID:???
deconstruct_array

476 :NAME IS NULL:2010/05/14(金) 00:39:09 ID:???
>>472
一応 PostgreSQL でも、既存の行の初期値がNULLで良いなら気軽に ADD COLUMN できるし、
配列, hstore, xml なんかの構造化されていないデータを格納する方法はあるわけで、
「データの項目増やしたいから」ってのは一番の理由では無いのでは。

477 :NAME IS NULL:2010/05/14(金) 00:47:19 ID:???
スミマセン。ソース見てたらなんとなくわかりました。

478 :NAME IS NULL:2010/05/17(月) 23:24:27 ID:???
>>475
有難うございました。無事動きました。

479 :NAME IS NULL:2010/05/20(木) 23:43:15 ID:Y24F0uiZ
8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25, 7.4.29 リリース。

480 :NAME IS NULL:2010/05/21(金) 18:24:56 ID:???
RHEL ES 4
PostgreSQL8.2.5
slony-i 1.2.12

上記環境で、Slonyのテーブル:sl_log_2のサイズが9GBを超えてしまいました
このsl_log_2のサイズを小さくしたいのですが、どうすればいいでしょうか?

あとslony-iの動作確認用のコマンドとか無いでしょうか?
(MySQLでいうところの、show master|slave statusとか)

481 :NAME IS NULL:2010/05/23(日) 05:49:24 ID:E/lX6C9v
今回の更新の
?Fix possible crash if a cache reset message is received during rebuild of a relcache entry

って、どの程度の頻度なんでしょう? 急いでバージョンアップすべき?


482 :NAME IS NULL:2010/05/23(日) 17:41:38 ID:???
>>481
たぶん、踏む可能性はとても低い。CLOBBER_CACHE_ALWAYS 付きでビルドした
負荷試験でしか確認されていなかったような気がする。
最悪、クラッシュして自動リカバリが走るだけだから、データ損失はないだろうし。

483 :NAME IS NULL:2010/05/23(日) 21:07:44 ID:E/lX6C9v
>>482

ありがとうございます。文章読むと不安になりまして、かといって
リリースされたばかりで適用するのも怖いもので、、、。
数日様子を見て、1台ずつ適用してみます。


484 :お願いします。:2010/05/25(火) 15:11:58 ID:???
postgreSQLにaccessでリンクテーブルを設定しています。
そこでODBC接続に詳しい方にお尋ねしたい事があります。
リンク先を変更する際にリンクテーブルマネージャを使用すると
大変時間がかかるので、管理ツールのODBCデータソースアドミニストレータより
アクセスでリンク設定しているDNSの名前の構成のサーバー名を変更する形でやろうとしました。

できません。随時リンクの更新をしなければならないのでしょうか?

例えばテスト環境と本番環境それぞれにpostgreSQLが動作しているサーバーがあり、
テスト環境でリンクを作成したMDBファイルを本番環境で実行する場合も
ODBCドライバ等の設定が同一であっても、その都度更新をしなくてはいけないのでしょうか?
アクセスでリンクテーブルマネージャの画面を見ると

  ○地球マーク public_テーブル名 (DNS=ドライバで設定した名前;DATABASE=DB名;)

となってますが、ドライバで設定した名前以外に何か持っているのでしょうかね?

初めてなのでさっぱりわかりません><


485 :NAME IS NULL:2010/05/25(火) 16:44:56 ID:???
Accessスレで聞いた方がいいと思うけど。

俺の疑問。何で本番用DBにリンク貼ったMDBとテスト用DBにリンク貼ったMDBの二つ
用意しないんだろう?俺がAccessのド素人故に抱く疑問なんだろうか。

それともう一つの疑問。何でAccess経由でODBCを使ってるんだろう?
直接使えばいいんじゃ。

486 :NAME IS NULL:2010/05/25(火) 17:27:21 ID:???
>>485
レスありがとうございます。
Access経由といいますか、Accessでレポート出力しています。
既存のシステムがpostgresqlでそこにアクセスしています。

487 :NAME IS NULL:2010/05/25(火) 20:16:10 ID:???
Accessのバージョンによるだろうから、Accessの使い方については、
Accessのスレや検索するといいでしょう。

488 :NAME IS NULL:2010/05/26(水) 00:12:40 ID:???
ODBCを使う目的でAccess使ってるんじゃなくてODBC経由でAccess使ってるんだろ

489 :NAME IS NULL:2010/05/26(水) 01:40:15 ID:???
あずにゃんぺろぺろすぐる

490 :NAME IS NULL:2010/05/29(土) 15:34:55 ID:???
>>489
どうすんだよ・・・スレ止まっちゃったじゃねぇか

491 :NAME IS NULL:2010/05/30(日) 12:35:32 ID:???
ワロタ

492 :NAME IS NULL:2010/06/03(木) 00:03:08 ID:ZpHh5vtT
保守

493 :NAME IS NULL:2010/06/03(木) 01:50:54 ID:???
じゃ、質問。

createdb された db1 と db2 があったとして、
ユーザ human は db1 だけ見られて、db2 は見られない、ってできませんか?

pg_hba.conf で指定できるけど、
createdb とかする度にその定義を書いて再起動するのはイマイチで。

494 :NAME IS NULL:2010/06/03(木) 02:07:27 ID:???
ユーザ human からは db2 の存在そのものを隠したい、ってこと?
もしそうなら俺も知りたい

495 :494:2010/06/03(木) 02:18:53 ID:???
連投ごめん。とりあえず
REVOKE CONNECT ON DATABASE db2 FROM public;
とかやってみたら、オーナー以外接続できないようにできた。
# 依然 \l には出てくるけど。

496 :NAME IS NULL:2010/06/03(木) 03:23:36 ID:???
そらそうだ
存在すら隠したいならインスタンス2つ立ち上げて接続分けるしかない

497 :NAME IS NULL:2010/06/05(土) 13:29:34 ID:???
これ参考になりそう

Shared Database Hosting
ttp://wiki.postgresql.org/wiki/Shared_Database_Hosting

498 :NAME IS NULL:2010/06/12(土) 17:56:01 ID:wRV5qdR+
postgresについてつまずいているので、どなたか助言お願いできませんでしょうか?

以前までcreatedb 'データベース名'でデータベースの作成は出来ていたのですが
今日、ふと新しいデータベースの作成を試みたところ

createdb: could not connect to database postgres: FATAL: database "postgres" does not exist
と表示され前に進めません。
postgresが起動していないのかと思い、既存のデータベースに接続を試みたところ
データベースにアクセスし、データの参照は可能でした。
しかし、psql -l のコマンドは通りませんでした。

以前サーバのIPアドレスの変更したのでそれが原因かな?とおもっているのですが
関係ありますでしょうか?
以下の環境でPostgreSQLを動かしております

■OS:FreeBSD 8.0
■PostgreSQL 8.4.0




499 :NAME IS NULL:2010/06/12(土) 19:23:01 ID:???
>>498
postgres データベースをDROPしちゃったのでは?
createdb postgres で作り直すか、-d <既にあるDB> で接続するDBを明示すればOKと思われる。
ただ、いろんなコマンドで -d 指定するのも面倒だから、postgres を作り直したほうが良いかもね。

500 :NAME IS NULL:2010/06/12(土) 19:39:08 ID:???
>>499
見事そのとおりでした。
postgresのDBは必須だったのですね。
質問内容に対する見事なエスパーありがとうございました。

501 :NAME IS NULL:2010/06/13(日) 06:39:39 ID:???
ユーザー名"postgres"でつかってるとみた

502 :NAME IS NULL:2010/06/13(日) 07:48:43 ID:???
ざんねん。createdbは常にpostgresデータベースに繋ぎに行くのです。
(postgresデータベースを作るときを除く。)
psqlとかはユーザ名と同じDBになるけど。

503 :NAME IS NULL:2010/06/14(月) 16:29:13 ID:???
あれ?
template1って何だったっけか?

504 :NAME IS NULL:2010/06/14(月) 16:30:19 ID:???
ぐぐったらわかった。
知りたい奴はぐぐれ。

505 :NAME IS NULL:2010/06/15(火) 07:35:06 ID:???
ググるレベルじゃなくみんな知ってるだろ普通

506 :NAME IS NULL:2010/06/15(火) 13:53:22 ID:NHxMlo8d
>484
コードでリンクは切替えられると思ったが
#昔やったきがするけど、コードは今手元に無いw

507 :NAME IS NULL:2010/06/18(金) 18:45:26 ID:???
これ見てよ↓
http://livedoor.blogimg.jp/tekepo/imgs/3/4/3414dfca.jpg
ばらまこうぜ!


508 :NAME IS NULL:2010/06/24(木) 17:12:55 ID:???
レコード数が900程度のテーブルを、全レコード毎秒UPDATEしているのですが、
突然UPDATEに要する時間が20倍になってしまいました。(900レコードを1レコードずつ更新するのに1秒以下で

509 :NAME IS NULL:2010/06/24(木) 17:14:58 ID:???
vacuumしてないとか

510 :NAME IS NULL:2010/06/24(木) 17:18:54 ID:???
レコード数が900程度のテーブルを、全レコード毎秒UPDATEしているのですが、
突然UPDATEに要する時間が20倍になってしまいました。
(900レコードを1レコードずつ更新するのに1秒以下で済んでいた)
REINDEXすると一時的に改善するんですが、数分経つとまた20秒くらいかかってしまいます。

まったく解決策が見出せないのです・・・どのあたりについて調べればいいかでもいいのでアドバイスお願いします

RHEL5 POstgreSQL8.3.1 slony-i1.2

511 :NAME IS NULL:2010/06/24(木) 17:23:18 ID:???
>>509
ありがとうございます。
autovacuumを設定しています。(ログ出力はしていませんが・・・)

postgres.confのAUTOVACUUM PARAMETERSで設定しているのは以下の3つです
autovacuum = on
log_autovacuum_min_duration = 2
autovacuum_naptime = 3min

512 :NAME IS NULL:2010/06/24(木) 17:42:56 ID:???
REINDEXで改善?
んーーーー
とりあえず切り分けしたいので、コマンドでVACUUM ANALYZEして直後に時間測ってみて

513 :NAME IS NULL:2010/06/24(木) 17:47:22 ID:???
あとconfの値は全部デフォルト?
Free Space Map関連を増やしてみるとか

514 :NAME IS NULL:2010/06/24(木) 18:36:10 ID:???
VACUUM FULL、VACUUM ANALYZE、ANALYZE、REINDEXをすでに何度か試した後でした・・・
それ以外のことは何もしていません。とりあえず今は1秒くらいで処理が終わっています。

confは下記以外デフォルトです

max_connections = 100
shared_buffers = 32MB
AUTOVACUUM関連

関係あるか分かりませんが、topコマンドでメモリ使用量を確認したところ
遅い時はusedが物理メモリ8G中7.9GBくらいで、通常は、8G中7GBくらいでした。
FSMが小さいと、データベースクラスタの容量がどんどん膨れ上がると書いている人が居たので
関係ありそうです。FSM周りについて少し勉強してみます。

515 :NAME IS NULL:2010/06/24(木) 20:48:28 ID:???
updateの検索条件がPKじゃないみたいなオチなしね

516 :NAME IS NULL:2010/06/25(金) 09:31:50 ID:???
一つの列をPKにして、whereの条件はPK一つだけにしています・・・

517 :NAME IS NULL:2010/06/25(金) 15:17:21 ID:???
ちゃんとHOT効かせてたら大丈夫なだけど、まさかそのPKは更新してないよね?

他のトランザクションと重なってたりするとHOT効かないことあるんで、
排他ロックかけるってのもありかも?

あとはFILLFACTOR調整したり・・・

518 :NAME IS NULL:2010/06/25(金) 15:57:23 ID:???
なんで測定しないの?
いろんな測定。OSのI/Oとかも含めて。

519 :NAME IS NULL:2010/06/25(金) 18:09:29 ID:???
そんな抽象的なアドバイスはしてないのと同じ

520 :NAME IS NULL:2010/06/26(土) 00:46:09 ID:cCUVcESF
http://lets.postgresql.jp/map/tuning

lets postgres 見てチューニングするといいよ

521 :NAME IS NULL:2010/06/27(日) 16:04:21 ID:???
>>510
まず、実行計画を速い時と遅い時で見ること。
ソートがオンメモリとディスク上になってたりしないか?
OSが何なのかわからないけど、vmstat的なもので、速い時と遅い時になにか
違いがあるのか調べたら?

522 :NAME IS NULL:2010/06/27(日) 16:57:32 ID:???
でもREINDEXでなおるんだったら、やり方全体を見直した方がいいかもね
定期的にREINDEXする、でもいいけど

523 :NAME IS NULL:2010/06/27(日) 17:14:24 ID:???
updateが独立してるなら、10個のコネクションで90個ずつupdateするとか

524 :NAME IS NULL:2010/06/27(日) 22:51:05 ID:???
全レコードUPDATEはきついな。設計ミスと言わざるを得ない。

インデックスを張ったカラムを更新しているのでなければ、
そのテーブルの fillfactor を 50% 未満にすると改善されるのでは。

525 :NAME IS NULL:2010/06/28(月) 03:03:26 ID:???
DELETEしてINSERTしろ

526 :NAME IS NULL:2010/06/28(月) 11:48:20 ID:???
こういう興味ある事例に限って、解決しても報告がないんだよね。

527 :510:2010/06/28(月) 18:09:19 ID:???
すみません遅くなりました。仕事で週末潰れてました
現在は、処理が正常に動いている(1秒間に900レコードupdate出来てる)ので
再発した時のために教わったことを整理して備えてる状態です。

お陰様でやれる事が見えてきました。
topコマンド画面をただ眺めてる時間が短くなりそうです(汗
しかしすでに稼動中且つ正常に動作している中で色々試すのは怖いものがありますね・・・


>>517
PKのカラムは更新していません。

>>518
SQLの実行時間を測って満足してました。
HDDへの書込み速度を比べてみます

>>517,520,524
HOT、FILLFACTORについて勉強してみます

>>521
なるほど・・・勉強になります
インデックスが使われることは確認したのですが
そういう事も分かるんですね

>>522-524
原因が隠蔽されてしまう可能性がありますが・・・検討してみます。

>>525
追記型DBなので効果が無いと思うんですがどうなんでしょうか

>>526
何か分かったら絶対書き込むようにします
レス消費して恐縮ですが・・・

528 :NAME IS NULL:2010/06/28(月) 18:18:57 ID:???
レスお疲れ。
なんかわかって気が向いたらまた書き込みヨロ。

529 :NAME IS NULL:2010/06/29(火) 22:38:45 ID:???
検証用のテストマシンがあればいいな
レスはどんどん消費してほしい

530 :NAME IS NULL:2010/07/08(木) 16:17:31 ID:089bL9oR
教えてください
現在、postgresqlをつかったpush型webアプリケーションを調査中です
tomcat+apache+phpで設計しようと思うのだけれども
できればwebサーバー側のスクリプトは統一したいのです
そこでphpをやめてjavaに統一しようと思ったのですが、notify/listenをトリガーに設定しようとすると
java/jdbcではポーリングをするはめになるようです(非同期がつかえない)
だからと言ってjavaをやめるとcometがどうもよくないのです

そこで質問です
java/phpのブリッジにはsapiか、jniのどちらを採用する方が一般的でしょうか?
また、その際の注意点、留意点があったら教えてください
あと調査の結果でないと思うのだけれども、jdbcでnotify/listenでポーリングせず
スマートに非同期できる方法があるのでしたら教えてください

よろしくお願いします

531 :NAME IS NULL:2010/07/08(木) 20:35:09 ID:???
統一しなきゃいいんじゃない? …ってのはナシ?w

532 :NAME IS NULL:2010/07/19(月) 11:51:06 ID:???
そういや9.0、ベータ3になってるね

533 :NAME IS NULL:2010/07/31(土) 12:07:33 ID:6Gfxgj+P
order by random()が便利すぎる

534 :NAME IS NULL:2010/08/02(月) 22:49:28 ID:???
何に使うの?

130 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)