2008年12月11日木曜日

PostgreSQL -- 新しいテーブルスペースを作る

PostgreSQL

新しいテーブルスペースを作ろうと思いました。
テーブルスペースのファイルをDドライブに置きたかったからです。

ちょっとSQLを書く自信がなかった(単に調べるのが面倒だった)ので、
pgAdmin III を立ち上げて、「編集」メニューから「新規オブジェクト」で「新しいテーブル空間」を選ぶ。

「名前」をつける
「ロケーション」に D:/Robot/db と入力する
「オーナー」に postgres を選択する
--この作業を※1と呼びます

さて、出来るかな… …出来ない!

どうやら、postgres さんには、上記ロケーション(パス)に対する書き込み権限がないらしい。

使用しているOSは windows xp home edition なので、フォルダのプロパティで権限を設定できない。

でも、同じことを考えている人はいるもので…


結局のところ、コマンドプロンプトから
cacls D:\Robot /T /E /C /G postgres:F
と打つと、権限を与えることが出来ました。
--この作業を※2と呼びます

(正解を出す前に間違った設定をしてしまったらしく、
Dドライブにアクセスできなくなってあせりました。
そんなときも、落ち着いて、
cacls D: /T /E /C /G owner:F
で、権限を取り戻しましょう。)

さて、では、気を取り直して、
※1の作業をやると… …こんどは出来ました!


で、pgAdmin で「ファイル」メニューから「サーバーの追加」を選択。
「名前」に※1でつけた名前を入れ、
「ホスト」に localhost と入れて
「ユーザー名」に postgers を選択、
「パスワード」も入力して(これをしなかったので後でちょっと困りました)
OKボタンを押しましょう。

はい、つながりました。

気をよくしたので、ついでにデータベースも作っちゃいましょう。
同じく pgAdmin で、
「編集」メニューから「新規オブジェクト」で「新しいデータベース…」を選ぶ。

適当に入力すれば出来ますね。
ただ、「テーブル空間」に さっき作った新しいテーブルスペースの名前を選びましょう。
今回は robot という名前を付けました。

ここで気が付いたんだけど、元々あるデータスペースにも新しいデータベースを作るときに、さっき作った新しいテーブルスペースの名前が選択できるんですね。



ふむふむ。
では、新しいデータベース robot をいじり倒すために、どうすればいいのか調べましょう。


実験の結果、できました。

まず、スタートメニューのすべてのプログラムにある「postgreSQL 8.3」の実体のフォルダにアクセスします。
「'postgres'へのpsql」のショートカットをコピーします。
「リンク先」の内容を次のように修正します。
"C:\Program Files\PostgreSQL\8.3\bin\psql.bat" -h localhost -p 5432 robot "postgres" SJIS

ついでに、「コメント」の内容も次のように修正します。
PostgreSQLインタラクティブ・ターミナルで、「robot」データベースに接続します。


これで、巨大なDドライブにでっかいテーブルを作成できるようになりました。

めでたし めでたし!


コメントを投稿