もう15時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]女性必見!ネットで高収入バイト[PR]  

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/

53 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

取りに行ったけどなかった。次は一時間後に取りに行くです。
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)