もう21時か、
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対応の本出たね。
一応買ってみたけど、まだ読んでない

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

■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
mlterm 3 [Linux]
【ubuntu】 NetWalker2 【ARM】 [Linux]
Slackware Ver.3.0 [Linux]
【deb系】Ubuntu Linux 37【ディストリ】 [Linux]
【deb系】Ubuntu Linux 36【ディストリ】 [Linux]

新着レスの表示

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


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