その他

サービスの登録

PowerGres をサービスとして登録する手順は以下の通りです。 設定は root ユーザで行う必要があります。

※コンテナ上のマシンで特定のバージョンの systemd をお使いの際、 systemctl stop を実行するとハングアップするケースがあります。その場合は物理マシンか仮想マシンをお使いください。

systemd のバージョンが 246 以降の場合

  1. 予め用意されたUnitファイルをコピーします。

    cp /lib/systemd/system/powergres15.service /etc/systemd/system/(サービス名).service
    

    サービスの追加設定用ディレクトリを作成し、設定ファイルを配置します。

    mkdir /etc/systemd/system/(サービス名).service.d
    vi /etc/systemd/system/(サービス名).service.d/custom.conf
    

    例えば、データベースディレクトリが /var/lib/pgsql/15/data、ポートが 5432 であれば、以下のように設定ファイルを編集します。

    [Service]
    Environment=PGDATA=/var/lib/pgsql/15/data
    Environment=PGPORT=5432
    
  2. 以下のコマンドを実行し、システムの起動時に PowerGres サービスが自動的に起動するようにします。

    # systemctl enable (サービス名)
    ln -s '/etc/systemd/system/(サービス名).service' '/etc/systemd/system/multi-user.target.wants/(サービス名).service'
    

複数のサービスを設定するには、異なるサービス名を指定し、上記と同じ手順で行います。

自動起動の設定が有効になっているかどうかを確認するには、以下のコマンドを実行します。

# systemctl is-enabled (サービス名)
enabled

自動起動の設定を解除するには、以下のコマンドを実行します。

# systemctl disable (サービス名)
rm '/etc/systemd/system/multi-user.target.wants/(サービス名).service'

systemd のバージョンが 246 より前の場合

  1. 以下の設定ファイルを作成し、データベースディレクトリとポートを指定します。

    /etc/systemd/system/(サービス名).service
    

    例えば、データベースディレクトリが /var/lib/pgsql/15/data、ポートが 5432 であれば、以下のように設定ファイルを編集します。

    .include /lib/systemd/system/powergres15.service
    
    [Service]
    Environment=PGDATA=/var/lib/pgsql/15/data
    Environment=PGPORT=5432
    
  2. 以下のコマンドを実行し、システムの起動時に PowerGres サービスが自動的に起動するようにします。

    # systemctl enable (サービス名)
    ln -s '/etc/systemd/system/(サービス名).service' '/etc/systemd/system/multi-user.target.wants/(サービス名).service'
    

複数のサービスを設定するには、異なるサービス名を指定し、上記と同じ手順で行います。

自動起動の設定が有効になっているかどうかを確認するには、以下のコマンドを実行します。

# systemctl is-enabled (サービス名)
enabled

自動起動の設定を解除するには、以下のコマンドを実行します。

# systemctl disable (サービス名)
rm '/etc/systemd/system/multi-user.target.wants/(サービス名).service'

旧バージョンからの移行

旧バージョンからの移行は、同一バージョン系列内の移行 (例えば、V15 から V15 Update 1) と、PowerGres V15 より前のバージョンからの移行 (例えば、V9.1 から V15) によって方法が異なります。

同一バージョン系列内の移行手順

同一バージョン系列内の移行の場合は、データベースクラスタや設定をそのまま引き継ぐことができるので、データのダンプ・リストアを行う必要はありません。 PowerGres V15 を最新版にするだけで、データ、設定を引き継いで使用できます。

  1. アップデートスクリプトを実行し、PowerGres V15 を最新版にします。

    # sh (展開したPowerGresディレクトリ)/update.sh
    
  2. 使用許諾契約書の内容が表示されます。 よくお読みの上、同意される場合は「yes」と入力します。

    Do you agree to the license terms (yes/no): yes
    
  3. パッケージがアップデートされます。

    Updating packages...
    ...(省略)
    

    以下の警告が出力される場合がありますが、とくに問題はないので無視してください。

    警告: /etc/sysconfig/powergres15/pwg_license_key.conf は /etc/sysconfig/powergres15/pwg_license_key.conf.rpmnew として作成されました。
    
  4. 以下のメッセージが表示されれば、アップデートは完了です。

    PowerGres on Linux 15 update completed.
    
  5. サービスを再起動します。

PowerGres V15 より前のバージョンからの移行

PowerGres V15 より前のバージョンから移行する場合、データベースクラスタや設定は、そのままでは引き継ぐことができません。 いったんダンプ (バックアップ) を取り、こちらを V15 にてリストアする必要があります。

  1. PowerGres V15 をインストールします。

    インストール方法については「インストールの手順」を参照して下さい。

  2. ダンプを取得します。

    稼働中の旧バージョンのデータベースクラスタに対して、新バージョンの pg_dumpall を使用してダンプを取得します。 以下のように実行します。

    $ /opt/powergres15/bin/pg_dumpall -h localhost -U postgres > dumpall.sql
    

    この際、他のユーザがアクセスできないようにアクセス制限 (pg_hba.conf を編集する等) をして下さい。

  3. 現在稼働中のサービスを停止します。

  4. 新たにデータベースクラスタを作成します。

    PowerGres V15 のデータベースクラスタを新たに作成します。 管理ツールで行う場合、PowerGres Administration Tool マニュアル「サーバの作成」を参照して下さい。

    なお、新データベースクラスタを旧データベースクラスタと同じディレクトリパスに作成する場合は、旧データベースクラスタは移行が完了するまで削除せずに退避させることを推奨します。

  5. 新データベースクラスタでサービスを起動します。

    管理ツールで行う場合、PowerGres Administration Tool マニュアル「サーバの起動」を参照して下さい。

  6. 取得したダンプファイルからデータをリストアします。

    ダンプファイルをリストアし、データを移行します。 管理ツールで行う場合、PowerGres Administration Tool マニュアル「バックアップ・リストア」を参照して下さい。

  7. 設定の移行をします。

    設定の移行は、旧バージョンと新バージョン間でパラメータが異なる場合があるので、手動で行います。 パラメータ差異などを確認した上で、旧バージョンの設定ファイルを参考に新バージョンにて、適切な設定を行って下さい。 管理ツールで行う場合、PowerGres Administration Tool マニュアルの「設定」を参照して下さい。

  8. 旧バージョンをアンインストールします。

    移行後は、旧バージョンのアンインストールを行ってください。

付属ソフトウェアのインストール

付属ソフトウェアのパッケージは手動でインストールする必要があります。 パッケージは OS ごとに用意されており、以下のディレクトリに格納されています。

OS ディレクトリ
Red Hat Enterprise Linux 9
Rocky Linux 9
AlmaLinux 9
(展開したPowerGresディレクトリ)/packages/el9-x86_64
Red Hat Enterprise Linux 8
Rocky Linux 8
AlmaLinux 8
(展開したPowerGresディレクトリ)/packages/el8-x86_64
Red Hat Enterprise Linux 7
CentOS 7
(展開したPowerGresディレクトリ)/packages/el7-x86_64
Amazon Linux 2023 (展開したPowerGresディレクトリ)/packages/amzn2023-x86_64
Amazon Linux 2 (展開したPowerGresディレクトリ)/packages/amzn2-x86_64

pg_ivm

pg_ivmは、マテリアライズドビューの機能に高速増分更新を実現したビュー(IMMV)機能を利用可能とする拡張モジュールです。 本モジュールの機能の詳細につきましては pg_ivm の 開発ページ をご覧ください。

  1. pg_ivm の RPM パッケージをインストール

  2. PowerGres 本体インストールと同時にインストールされます。

  3. pg_ivm 拡張を有効化

    psql コマンドラインより、以下を実行します。

    =# CREATE EXTENSION pg_ivm;
    CREATE EXTENSION
    =# \dx
                            List of installed extensions
      Name   | Version |   Schema   |                Description                 
    ---------+---------+------------+--------------------------------------------
     pg_ivm  | 1.7     | pg_catalog | incremental view maintenance on PostgreSQL
     plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
    (2 rows)
    
    
  4. 動作確認

    =# CREATE TABLE t1 (i int primary key);
    CREATE TABLE
    
    =# SELECT create_immv('v1', 'SELECT * FROM t1');
    NOTICE:  created index "v1_index" on immv "v1"
     create_immv
    -------------
               0
    (1 row)
    
    =# INSERT INTO t1 VALUES (1);
    INSERT 0 1
    
    =# SELECT * FROM v1;
     i
    ---
     1
    (1 row)
    
    

    以上のように、動作を確認することができます。

PostGIS

PostGIS は地理情報を取り扱うためのモジュールです。 機能の詳細につきましては PostGIS プロジェクトの ホームページ をご覧ください。
※ Amazon Linux 2023 は PostGIS に対応していません。

  1. PostGIS の RPM パッケージをインストール

    PostGIS は PGDG および EPEL 提供のパッケージに依存しています。 あらかじめ PGDG および EPEL の Yum リポジトリを追加しておく必要があります。 それぞれのレポジトリを有効にする手順はこちらをご覧ください。

    レポジトリを有効にしたら、コマンドラインより以下を実行します。

    Amazon Linux 2 以外の場合

    # cd (パッケージの格納先のディレクトリ)
    # yum install powergres15-postgis《バージョン》_15-*
    

    Amazon Linux 2 の場合

    # rpm -ivh --replacepkgs --replacefiles http://mirror.centos.org/centos/7/os/x86_64/Packages/boost-serialization-1.53.0-28.el7.x86_64.rpm
    # cd (パッケージの格納先のディレクトリ)
    # yum install --disableplugin=priorities powergres15-postgis《バージョン》_15-*
    
  2. PostGIS のデータ型や関数を作成

    psql コマンドラインより、以下を実行します。(\c はデータベース名指定)

    =# \c (データベース名)
    You are now connected to database "(データベース名)" as user "postgres".
    =# \encoding UTF8
    =# CREATE EXTENSION postgis;
    CREATE EXTENSION
    =# CREATE EXTENSION postgis_topology;
    CREATE EXTENSION
    
  3. 動作確認

    =# \d
                     List of relations
      Schema  |       Name        |   Type   |  Owner
    ----------+-------------------+----------+----------
     public   | geography_columns | view     | postgres
     public   | geometry_columns  | view     | postgres
     public   | spatial_ref_sys   | table    | postgres
     topology | layer             | table    | postgres
     topology | topology          | table    | postgres
     topology | topology_id_seq   | sequence | postgres
    (6 rows)
    
    =# SELECT postgis_version();
                postgis_version
    ---------------------------------------
     3.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
    (1 row)
    

    以上のように動作を確認することができます。

textsearch_ja

textsearch_ja は形態素解析 (MeCab) を使用した日本語全文検索です。

  1. textsearch_ja, mecab の RPM パッケージをインストール

    コマンドラインより、以下を実行します。

    # cd (パッケージの格納先のディレクトリ)
    # rpm -ivh powergres15-textsearch_ja-* powergres15-mecab-*
    
  2. 拡張 textsearch_ja のインストール

    psql コマンドラインより、以下を実行します。(\c はデータベース名指定)

    =# \c (データベース名)
    You are now connected to database "(データベース名)" as user "postgres".
    =# CREATE EXTENSION textsearch_ja;
    CREATE EXTENSION
    
  3. 動作確認

    =# SELECT to_tsvector('japanese', 'すもももももももものうち');
          to_tsvector
    -----------------------
     'すもも':1 'もも':2,3
    (1 row)
    

    以上のように動作を確認することができます。 デフォルトの状態では UTF8 のデータベースで使用できます。

pg_bigm

pg_bigm は 2-gram (バイグラム) による全文検索モジュールです。 機能の詳細につきましては pg_bigm プロジェクトの ホームページ をご覧ください。

  1. pg_bigm の RPM パッケージをインストール

    コマンドラインより、以下を実行します。

    # cd (パッケージの格納先のディレクトリ)
    # rpm -ivh powergres15-pg_bigm-*
    
  2. 拡張 pg_bigm のインストール

    psql コマンドラインより、以下を実行します (\c はデータベース名指定)。

    =# \c (データベース名)
    データベース "(データベース名)" にユーザ"postgres"として接続しました。
    =# CREATE EXTENSION pg_bigm;
    CREATE EXTENSION
    
  3. 動作確認

    =# SELECT show_bigm('PostgreSQLの全文検索');
                                show_bigm
    -----------------------------------------------------------------
     {の全,全文,文検,検索,"索 "," P",Lの,Po,QL,SQ,eS,gr,os,re,st,tg}
    (1 行)
    

    以上のように動作を確認することができます。

レポジトリの有効化手順

各ソフトウェアインストールに必要となるレポジトリの有効化手順を以下に示します。
※ Amazon Linux 2023 は PGDG リポジトリと EPEL レポジトリに対応していません。

PGDG レポジトリ

Amazon Linux 2 の場合

# rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-$(rpm -E %_arch)/pgdg-redhat-repo-latest.noarch.rpm
# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/pgdg-redhat-all.repo

Amazon Linux 2 以外の場合

# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-$(rpm -E %_arch)/pgdg-redhat-repo-latest.noarch.rpm

EPEL レポジトリ

RHEL 9 の場合

# subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Rocky Linux 9, AlmaLinux 9 の場合

# dnf config-manager --enable crb
# dnf install epel-release

RHEL 8 の場合

# subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

CentOS 8, Rocky Linux 8, AlmaLinux 8 の場合

# dnf config-manager --set-enabled powertools
# dnf install epel-release

RHEL 7 の場合

# subscription-manager repos --enable rhel-*-optional-rpms \
  --enable rhel-*-extras-rpms \
  --enable rhel-ha-for-rhel-*-server-rpms
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

CentOS 7 の場合

# yum install epel-release

Amazon Linux 2 の場合

# amazon-linux-extras install epel

SCL レポジトリ

RHEL 7 の場合

# subscription-manager repos --enable rhel-server-rhscl-7-rpms

CentOS 7 の場合

# yum install centos-release-scl

Amazon Linux 2 の場合

# yum install http://mirror.centos.org/altarch/7/extras/aarch64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

お問い合わせ

販売・サポートサービスに関するお問い合わせ

株式会社SRA OSS
powergres-sales@sraoss.co.jp

※技術的なお問い合わせはご契約された技術サポート窓口にお問い合わせください。