お問い合わせ
03-5979-2701
PowerGres
PowerGres V9.1 体験記 戻る

第 1 回 PowerGres V9.1 を使ってみよう

対象バージョン: PowerGres V9.1
本文では Microsoft Windows 7 (64 ビット版) において PowerGres on Windows V9.1 Update1 を使用して解説しています。

PowerGres V9.1 は、オープンソースデータベースとして実績・定評のある PostgreSQL の 9.1 をベースに、より使いやすく、より安心して使用できるように GUI の管理ツールやサポートサービスを付属したデータベース製品です。

コマンドラインに慣れていない Windows ユーザの方でも、PowerGres Manager という便利な GUI の管理ツールを使えば直観的にデータベースの管理・監視・運用ができます。ここでは、 Windows 7 に PowerGres on Windows V9.1 のインストール手順として、評価版のダウンロードから、インストール、セットアップ、基本的なデータベースの操作までを紹介します。

  1. 評価版のダウンロード
  2. 圧縮ファイルの展開
  3. インストール
    1. PowerGres 管理ツールの起動
  4. セットアップ
    1. サーバの登録とデータベースクラスタの作成
    2. サービスの登録と起動
  5. 基本的なデータベースの操作
    1. ロールの作成
    2. データベースの作成
    3. psql によるデータベースへの接続
    4. クライアント文字エンコーディングの設定
    5. SQL の実行
  6. まとめ

評価版のダウンロード

以下の URL から PowerGres on Windows V9.1 の評価版をダウンロードします。

https://powergres.sraoss.co.jp/s/ja/download/download-onWin.php

圧縮ファイルの展開

評価版は、zip 形式の圧縮ファイルです。zip ファイルを選択した上で、右クリックの「すべて展開」とすると PowerGres9.1Update1-ja というフォルダが作成されます。インストール、セットアップの方法は、マニュアルにも詳しく記載されています。(マニュアルは、PowerGres9.1Update1-ja\ja\manual\index.html になります。) オンラインマニュアルにもあります。

https://powergres.sraoss.co.jp/manual/onLinux/V91/admin/

インストール

インストールは、展開後のフォルダの PowerGres フォルダの Setup.exe を実行します。
※インストール時のユーザは、Windows の administrator 権限のあるユーザで実行する必要があります。ウィザード形式のウィンドウ画面にしたがっていけば、簡単にインストールができます。

図: インストール画面

ポイント1:評価版のライセンスキー入力を求められますので、 Evaluation と入力してください。

図: ライセンスキー入力画面

ポイント2:インストールするバージョンでインストールするマシンに適切なバージョン(32 Bit, 64Bit)を選択します。
※インストールするシステム情報を確認する方法は、「コントロールパネル」 -> 「システムとセキュリティ」-> 「システム」で使用しているオペレーティングシステムが表示されます。

図: Windowsのシステム情報
図: インストールバージョン
図: インストール完了画面

PowerGres 管理ツールの起動

インストールが成功したら、デスクトップに PowerGres V91 のショートカットが作成されますので、それをダブルクリックし PowerGres 管理ツールを起動します。起動できたら、インストールは成功です。次にセットアップをしていきましょう。

図: PowerGres を起動した画面

セットアップ

事前に、Windows OS に PowerGres サービス専用アカウント postgres を作成しておきます。PowerGres でのスーパーユーザとなるユーザです。

管理ツールからデータベースを管理するには、「サーバを登録」します。その際、データベースのデータを格納する領域であるデータベースクラスタを初期化します。

サーバの登録とデータベースクラスタの作成

「サーバを登録」とは、管理ツールに管理対象のデータベースクラスタを登録する操作のことです。「ファイル」の「サーバを登録」から、サーバ情報を入力してサーバを登録します。

必要な情報を入力していきます。各入力項目の説明については、以下をご覧下さい。

設定項目設定値設定項目の説明
ラベルpowergres91Windows のサービス名として登録されます
ポート5432ポート番号のことです。複数のサーバが存在した場合、このポート番号が重複しないようにします
データベースディレクトリC:\dataデータベースクラスタのディレクトリになります
文字エンコーディングUTF8データベース側のデフォルトの文字エンコーディングになります
スーパユーザ名postgresデフォルトの postgres を使用します。こちらで指定したユーザが PowerGres のスーパユーザになります
パスワード任意スーパーユーザにパスワードを設定しています
パラメータチューニングの有無実施するチェックした場合、メモリ容量とデータベースへの接続数、データベースの用途をもとに、パラメータの初期値を大まかに自動調整します
図: サーバ情報入力画面1
図: サーバ情報入力画面2
図: サーバ情報入力画面3
図: サーバ情報入力画面4

initdb を実行するユーザを選択してください」とユーザ選択画面が表れますので、Windows OS で作成した、PowerGres サービスアカウント用である postgres を選択します。 initdb とはデータベースクラスタを作成するためのコマンドです。

図: initdb ユーザ選択画面

ポイント1:データベースの文字エンコーディングは、日本語を使用する際には、 UTF-8, EUC-JP を使用するのが一般的です。

サーバの登録が終わると、左のボックスに管理ツールにサーバが登録され、クリックすると「サーバ情報」を見ることができます。

図: サーバ登録後画面

サービスの登録と起動

次に「サービス」をクリックし、「PowerGresをWindowsサービスとして登録」をクリックします。Windows サービスへの登録により Windows 起動時に PowerGres が自動的に起動するようになります。

図: サービス登録画面

ここで「サービスを開始」をクリックし、 PowerGres サーバを起動します。

図: サービスの起動前画面

正常にサービスが起動すると、「サービスを開始」ボタンがグレーアウトした状態になります。

図: サービスの起動中画面

基本的なデータベースの操作

ロールの作成

ロール(ユーザ)を作成しましょう。

スーパーユーザ(postgres)でもデータベースを操作できますが、スーパーユーザには全てについての権限があります。セキュリティや誤操作防止の観点から、通常の操作はスーパーユーザとは別に一般ユーザ (のロール) を作成し、そのユーザで操作を行うことをおすすめします。

ロールという概念は、ユーザとグループをまとめたものです。PowerGres ではログイン権限やデータベースオブジェクトへの各権限などをロール単位で設定します。PowerGres のスーパーユーザ postgres は最初から作成されていますが、一般ユーザは作成していないので存在しません。

「オブジェクト」の「ロール」を見ると、ロールが確認できます。

図: ロール一覧画面

「ロールを作成」をクリックします。ここでは、ログイン権限、データベースの作成権限のある一般ユーザを作成します。

図: ロール作成画面

設定値は以下の通りとなります。

ロール作成項目設定値
ロール名testuser
パスワード任意
ログイン権限あり
スーパーユーザ権限なし
データベース作成権限あり
ロール作成権限なし
レプリケーション権限なし

testuser を作成すると、このように表示されます。

図: ロール作成後画面

データベースの作成

一般ユーザ testuser でデータベースを作成してみましょう。 データベースクラスタ data のデータベースを見るには、「オブジェクト」の「データベース」をクリックすると一覧で表示されます。この時、3 つのデータベースが既に存在します。
initdb 時に postgres, template0, template1 が自動的に作成されます。postgres が PostgreSQL 自身を管理するデータベースで、template0, template1 がこれから作成するデータベースの雛型データベースとなります。

図: データベース一覧画面

「オブジェクト」の「データベースを作成」をクリックすると、データベースを作成する事ができます。ここでは以下のように設定します。

図: データベース作成画面
図: データベース作成後画面

psql によるデータベースへの接続

psql でデータベースに接続してみましょう。psql はデータベースに接続して SQL を実行するためのプログラムです。

「その他ツール」から「psql コマンドラインツールを実行」の「実行」をクリックします。

図: その他ツール画面

psql を起動すると、以下のターミナルが立ち上がります。その際、パスワードの入力が求められます。サーバの登録時にスーパーユーザ postgres に設定したパスワードを入力します。

psql コンソール

psql のプロンプトで PowerGres のスーパーユーザは =# 、一般ユーザは => で違いがあります。画面はスーパユーザが postgres データベースに接続している状態です。なお、終了する際は、\q を入力します。psql には SQL 以外にも psql 内のみで使える便利なバックスラッシュコマンド(メタコマンド)があります。主なバックスラッシュコマンドは、以下のとおりです。その他のバックスラッシュコマンドは、psql を使っていく中で紹介していきます。

主なバックスラッシュコマンド
コマンド意味
\?コマンド一覧
\c databasename [username]新しい接続で他のデータベースに接続。ユーザ名も付けるとそのユーザで接続
\h [SQL]SQL のヘルプ
\d [t|i|s|v|S]テーブル、インデックス、シーケンス、システムテーブルの一覧
\lデータベース一覧
\d [NAME]指定したテーブル、インデックス、シーケンスなどの定義を表示
\dTデータ型の一覧
\df関数の一覧

それでは、\c コマンド を使って 先ほど作成したデータベース testdb に接続してみましょう。その後、SET ROLE 文でロールをスーパーユーザ postgres から、一般ユーザ用のロール testuser に変えてみましょう。

postgres=# \c testdb
testdb=# SET ROLE testuser;

ポイント1: RESET ROLE で元のロールであるスーパーユーザ postgres に戻れます。

図: psql から testdb に接続後、SET ROLE 文で testuser にスイッチしている画面

testdb に接続ができたら \d でまずテーブルを確認してみましょう。まだ testdb にはテーブルを作成していなので、以下のようなメッセージが出ます。

図: \d で testdb にテーブル確認画面

クライアント文字エンコーディングの設定

SQL を実行する前に、文字エンコーディングについて少し触れておきます。

データベースの文字エンコーディングは、データベース作成の時に UTF8 に指定しました。クライアントの文字エンコーディングは、デフォルトではデータベースと同じ UTF8 となります。しかし、Windows OS では文字エンコーディングが UTF8 のままでは日本語が文字化けしてしまうため、ここで設定します。

現在のクライアント文字エンコーディングを確認するには、\encoding を実行します。

\encoding

図:現在のclient_encoding確認画面
実行すると現在 UTF8 になっています。ここでは、Windows の文字エンコーディングである \encoding SJIS に設定しなおします。

\encoding sjis

図:client_encoding sjis変更画面
ポイント2:バックスラッシュコマンドで変更したパラメータは、永続的なものではなくその接続内だけ有効になります。

SQL の実行

psql 上で、SQL を実行し、簡単なテーブルを作成してみましょう。ここでは、社員テーブル employee を作成します。下の CREATE TABLE 文で 4 つのカラムを持ったテーブルを定義しています。

CREATE TABLE employee (
  number int,         -- 社員番号
  name text,          -- 名前
  position text,      -- 役職
  date_of_hire date   -- 入社日
);

図:create table 画面

\demployee テーブルを確認してみましょう。

\d employee

図: employee テーブル定義画面

SQL の基本となる 4つの構文 INSERT, SELECT, UPDATE, DELETE をそれぞれ実行して、データの投入から削除まで行います。

社員テーブル employee が定義できたら、INSERT 文で以下のデータを登録していきましょう。

INSERT INTO employee VALUES (1981352, '吉本 勘兵衛', 'staff', '1998-04-01');
INSERT INTO employee VALUES (1782822, '長崎 一郎', 'chief', '1978-10-01');
INSERT INTO employee VALUES (2081577, '山田 太郎', 'staff', '2008-04-01');
INSERT INTO employee VALUES (1851139, '大村 祐子', 'chief', '1985-04-01');

テーブルへのデータの登録が済んだら、 SELECT 文で確認してみましょう。

SELECT * FROM employee;

図: insert 後の select 画面

UPDATE 文でデータの更新を行いましょう。社員番号 1981352 の吉本さんの役職が、マネージャ(manager)に昇進したと仮定して、データの更新を行っていきます。注意しなければならないのは、WHERE 句で条件を指定しないとすべての行が更新されてしまいます。吉本さんの社員番号を条件に指定しています。

UPDATE employee SET position = 'manager' WHERE number = 1981352;

図: employee update の画面

DELETE 文で削除を行いましょう。社員番号 1851139 の大村さんが退職したと仮定して。データの削除を行います。こちらも、UPDATE 文の時と同じように WHERE 句で条件を絞りこんでから削除をします。

DELETE FROM employee WHERE number = 1851139;

図: employee delete の画面

SELECT 文で確認してみましょう。

SELECT * FROM employee;

図: employee update delete 後の select の画面
吉本さんが manager へ、大村さんが削除されている事がわかります。

SQL 基本 4 構文
データの操作SQL構文例
登録INSERT 文INSERT INTO employee VALUES (1981352, '吉本 勘兵衛', 'staff', '1998-04-01');
検索SELECT 文SELECT name FROM employee;
更新UPDATE 文UPDATE employee SET position = 'manager' WHERE number = 1981352;
削除DELECT 文DELETE FROM employee WHERE number = 1851139;

まとめ

今回は PowerGres の導入方法と基本的な使いかたについて紹介しました。

さて、導入したデータベース環境の運用を開始するにあたって、障害を想定したシステム構成を組めるかどうかはDB管理者にとって重要な要素の一つとなります。PowerGres では信頼性をより高める手法として、ホットスタンバイ/ストリーミングレプリケーション機能が備わっています。次回は、ホットスタンバイ/ストリーミングレプリケーションの構築方法について紹介します。