PostgreSQL導入から接続まで:使えば分かるPostgreSQL運用&チューニング(1)(2/3 ページ)
本連載では、さまざまな分野で幅広く利用されているオープンソースのデータベースソフトウェアPostgreSQLについて解説していきます。第1回目の本稿では、前提環境を構築するためにPostgreSQLをLinuxにインストールします。今後は、特に運用面やチューニングに重点をおいて話を進めていく予定です。PostgreSQLの概要については、「PostgreSQLで作るLinuxデータベース」を参照ください。
インストール
PostgreSQLをインストールするには、postgresユーザーで次のコマンドを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
上記のコマンドを実行するとPostgreSQLは、/usr/local/pgsqlにインストールされます。もしインストール先のディレクトリを変更したい場合は、./configure実行時に--prefix=DIRオプションを指定すると変更できます。
環境変数の設定
インストールしただけでは、PostgreSQLのコマンド類にパスが通っていないため、コマンドの実行には不便です。そこで、環境変数を設定します。
多くのLinuxでデフォルトのシェルとして採用されているbashの場合は、設定ファイル$HOME/.bashrcに次の行を追加しておきます。bash以外のシェルの場合も同様の内容で設定しておくとよいでしょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
※行頭の「数字:」は行番号なので、実際の記述時は不要
PATH変数(1行目)を設定することで、PostgreSQLのコマンドにパスが通るようになります。併せて、MANPATH変数(2行目)を設定しておけば、manコマンド実行時にはPostgreSQLのコマンドマニュアルも探すようになります。
また、LD_LIBRARY_PATH変数(3行目)でPostgreSQLの共有ライブラリを、PGDATA変数(4行目)でデータベースを配置するディレクトリを指定しています。
これらの環境変数の設定は、基本的に次回シェルにログインしたときから有効になります。ただし、今回はsourceコマンドを実行し、変更を即座に反映させておきます。sourceコマンドは次のように実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
データベースクラスタの初期化
PostgreSQLを使用できる状態にするには、一度データベースクラスタを初期化する必要があります。データベースクラスタとは、複数のデータベースを格納する領域です。データベースクラスタを初期化するには、postgresユーザーでinitdbコマンドを実行します。
PostgreSQLでは、initdbコマンドを実行したユーザーがスーパーユーザーになります。また、データベースクラスタはPGDATA変数で指定したディレクトリに作成されます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
--encodingは、データベースのデフォルトの文字エンコーディングを設定するオプションです。ここでは、文字エンコーディングにUTF-8を指定しています。
--no-localeは、ロケールを使用しないことを設定するオプションです。ロケールとは、言語や文化に応じた処理をするOSの機構です。
PostgreSQLでは、このロケールを主にデータのソート処理に使用しますが、英語や日本語のデータを扱う場合には特に必要ありません。反対にロケールを設定すると、ロケール処理の分、ソート処理などが遅くなりますので、注意してください。
サーバプロセスの起動と停止
PostgreSQLのサーバプロセスを起動・停止するには、postgresユーザーでpg_ctlコマンドを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
起動時の-wはwaitを表し、起動処理が終了した時点でコマンドプロンプトに戻すようにするオプションです。
PostgreSQLのサーバプロセスを停止する際に、データベースに接続しているユーザーがいる場合は、上記のコマンドでは停止できません。この場合は、-mオプションを使用して停止方法を指定します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
停止方法には、s、f、i を引数として指定できます。それぞれ、smart、fast、immediateを表します。引数s(smart)は、新規の接続を拒否し、既存の接続が切断されるまで待ってから停止します。前述の-mオプションを指定しない場合はこの方法で停止処理が行われます。
このほか、f(fast)は、既存の接続を強制的に切断してから停止し、i(immediate)は、適切な終了手順を踏まずにただちに停止します。
導入と基本操作を確認したら、早速接続ができるかどうか確認してみましょう。次ページでその手順を解説していきます。
Copyright © ITmedia, Inc. All Rights Reserved.