その他
サービスの登録
PowerGres をサービスとして登録する手順は以下の通りです。 設定は root ユーザで行う必要があります。
systemd のバージョンが 246 以降の場合
-
予め用意されたUnitファイルをコピーします。
# cp /lib/systemd/system/powergresplus13.service /etc/systemd/system/(サービス名).service
サービスの追加設定用ディレクトリを作成し、設定ファイルを配置します。
# mkdir /etc/systemd/system/(サービス名).service.d # vi /etc/systemd/system/(サービス名).service.d/custom.conf
例えば、データベースディレクトリが /var/lib/pgsql/13/data、ポートが 5432 であれば、以下のように設定ファイルを編集します。
[Service] Environment=PGDATA=/var/lib/pgsql/13/data Environment=PGPORT=5432
- 以下のコマンドを実行し、システムの起動時に 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 より前の場合
-
以下のコマンドから、powergresplus13 サービスの設定を編集します。
# systemctl edit powergresplus13
例えば、データベースディレクトリが /var/lib/pgsql/13/data、ポートが 5432 とする場合、以下のように記載して保存します。
[Service] Environment=PGDATA=/var/lib/pgsql/13/data Environment=PGPORT=5432
- 以下のコマンドを実行し、システムの起動時に PowerGres サービスが自動的に起動するようにします。
# systemctl enable powergresplus13 ln -s '/etc/systemd/system/powergresplus13.service' '/etc/systemd/system/multi-user.target.wants/powergresplus13.service'
複数のサービスを設定するには、設定ファイルを異なるサービス名でコピーし、そのサービス名を指定し、上記と同じ手順で行います。
# cp /usr/lib/systemd/system/powergresplus13.service /usr/lib/systemd/system/《サービス名》.service
自動起動の設定が有効になっているかどうかを確認するには、以下のコマンドを実行します。
# systemctl is-enabled powergresplus13 enabled
自動起動の設定を解除するには、以下のコマンドを実行します。
# systemctl disable powergresplus13 rm '/etc/systemd/system/multi-user.target.wants/powergresplus13.service'
core ダンプ
PostgreSQL では、データベースサーバのプロセスがクラッシュすると、OS がデータディレクトリに巨大な core ファイルを出力します。 このファイルは障害の調査には必要なものですが、データベースを格納するディスクの容量を圧迫してしまいます。
PowerGres Plus は、core ファイルを任意のディレクトリに格納できます。 また、出力するデータを限定することにより、core ファイルを小さくすることもできます。 この機能は、Windows のミニダンプ (またはクラッシュダンプ) でも利用できます。
core ファイルを出力するディレクトリとサイズを制御するために次のパラメータが postgresql.conf に用意されています。
- core_directory (string)
-
core ファイルの出力先ディレクトリを絶対パスで指定します。 パラメータを指定しない場合、データディレクトリが指定されたものとみなします。 このパラメータはサーバ起動時のみ設定可能です。
- core_contents (enum)
-
core ファイルに含める内容を指定します。 none を指定した場合、core_directory の設定にかかわらず core ファイルをダンプしません。 minimum を指定した場合、共有メモリの内容を core ファイルにダンプしません。 full を指定した場合、すべての内容を core ファイルにダンプします。 デフォルトは minimum です。 このパラメータはサーバ起動時のみ設定可能です。
また、PowerGres Plus では確実に core を採取するために pg_ctl の -c オプションは無効となり、core_contents パラメータにのみ依存して core ファイルを採取します。
DB 情報取得ツール
DB 情報取得ツールは、PowerGres Plus に関するトラブル発生の際、調査 / 分析に必要なデータベース環境の情報を取得するためのツールです。
使用前の準備
DB 情報取得ツールの使用前に以下の設定を行ってください。
-
環境変数 PATH に、/opt/powergresplus13/bin を追加します。
-
環境変数 PGDATA に、データディレクトリを設定します。
-
環境変数 PGPORT に、通信ポート番号を設定します (省略した場合は 5432 になります)。
-
PowerGres Plus を起動します。
PowerGres Plus が停止している場合、取得できる情報が限定されます。
-
スーパーユーザ (root) のパスワードをひかえておきます。
一部の情報をスーパーユーザで取得するため、DB 情報取得ツール実行中にスーパーユーザのパスワードを求めてきます。
使用方法
スーパーユーザ以外の一般ユーザで、以下のコマンドを実行します。
% pgx_getenvdata [情報取得間隔(秒) 情報取得回数]
DB 情報取得ツールが取得する情報の一部は、複数回繰り返して取得することが可能です。
そうする場合は、第一パラメタに情報を取得する間隔を指定し、第二パラメタに情報を取得する回数を指定します。 これらを両方とも省略した場合、1 回だけ情報を取得します。 片方だけを省略することはできません。
複数回繰り返して取得することができる情報は、性能情報とコネクション情報、ロック情報です。
出力情報
DB 情報取得ツール実行時のカレントディレクトリに取得した情報を格納した圧縮ファイル (envdt{月日時分}.tar.gz) を出力します。
旧バージョンからの移行
同一バージョン系列内の移行手順
同一バージョン系列内の移行の場合は、データベースクラスタや設定をそのまま引き継ぐことができるので、データのダンプ・リストアを行う必要はありません。 PowerGres Plus V13 を最新版にするだけで、データ、設定を引き継いで使用できます。
-
アップデートスクリプトを実行し、PowerGres Plus V13 を最新版にします。
# bash 《製品ファイルを展開したディレクトリ》/update.sh
-
使用許諾契約書の内容が表示されます。 よくお読みの上、同意される場合は「yes」と入力します。
Do you agree to the license terms (yes/no): yes
-
パッケージがアップデートされます。
Updating packages... ...(省略)
-
以下のメッセージが表示されれば、アップデートは完了です。
PowerGres Plus (Linux) 13 update completed.
-
サービスを再起動します。
PowerGres Plus V13 より前のバージョンからの移行
PowerGres Plus V13 より前のバージョンから移行する場合、データベースクラスタや設定は、そのままでは引き継ぐことができません。 いったんダンプ (バックアップ) を取り、こちらを V13 にてリストアする必要があります。
-
PowerGres Plus V13 をインストールします。
インストール方法については「インストールの手順」を参照して下さい。
-
ダンプを取得します。
稼働中の旧バージョンのデータベースクラスタに対して、新バージョンの pg_dumpall を使用してダンプを取得します。 以下のように実行します。
$ /opt/powergresplus13/bin/pg_dumpall -h localhost -U postgres > dumpall.sql
この際、他のユーザがアクセスできないようにアクセス制限 (pg_hba.conf を編集する等) をして下さい。
-
現在稼働中のサービスを停止します。
-
新たにデータベースクラスタを作成します。
PowerGres Plus V13 のデータベースクラスタを新たに作成します。 管理ツールで行う場合、PowerGres Administration Tool マニュアル「サーバの作成」を参照して下さい。
なお、新データベースクラスタを旧データベースクラスタと同じディレクトリパスに作成する場合は、旧データベースクラスタは移行が完了するまで削除せずに退避させることを推奨します。
-
新データベースクラスタでサービスを起動します。
管理ツールで行う場合、 PowerGres Administration Tool マニュアル「サーバの起動」を参照して下さい。
-
取得したダンプファイルからデータをリストアします。
ダンプファイルをリストアし、データを移行します。 管理ツールで行う場合、 PowerGres Administration Tool マニュアル「バックアップ・リストア」を参照して下さい。
透過的データ暗号化機能を利用しているテーブル空間がダンプに含まれている場合、予めキーストアのオープンが必要です。 管理ツールで行う場合、 PowerGres Administration Tool マニュアル「透過的データ暗号化」を参照して下さい。 コマンドライン上でキーストアの操作を行う場合はこちらを参照して下さい。
-
設定の移行をします。
設定の移行は、旧バージョンと新バージョン間でパラメータが異なる場合があるので、手動で行います。 パラメータ差異などを確認した上で、旧バージョンの設定ファイルを参考に新バージョンにて、適切な設定を行って下さい。 管理ツールで行う場合、PowerGres Administration Tool マニュアルの「設定」を参照して下さい。
-
旧バージョンをアンインストールします。
移行後は、旧バージョンのアンインストールを行ってください。
付属ソフトウェアのインストール
付属ソフトウェアのパッケージは手動でインストールする必要があります。 パッケージは OS ごとに用意されており、以下のディレクトリに格納されています。
OS | ディレクトリ |
---|---|
Red Hat Enterprise Linux 9 Rocky Linux 9 AlmaLinux 9 |
《製品ファイルを展開したディレクトリ》/packages/el9-x86_64 |
Red Hat Enterprise Linux 8 Rocky Linux 8 AlmaLinux 8 |
《製品ファイルを展開したディレクトリ》/packages/el8-x86_64 |
Red Hat Enterprise Linux 7 CentOS 7 |
《製品ファイルを展開したディレクトリ》/packages/el7-x86_64 |
Amazon Linux 2 | 《製品ファイルを展開したディレクトリ》/packages/amzn2-x86_64 |
pg_ivm
pg_ivmは、マテリアライズドビューの機能に高速増分更新を実現したビュー(IMMV)機能を利用可能とする拡張モジュールです。 本モジュールの機能の詳細につきましては pg_ivm の 開発ページ をご覧ください。
-
pg_ivm の RPM パッケージをインストール
-
pg_ivm 拡張を有効化
psql コマンドラインより、以下を実行します。
=# CREATE EXTENSION pg_ivm; CREATE EXTENSION =# \dx List of installed extensions Name | Version | Schema | Description ---------+---------+------------+-------------------------------------------- pg_ivm | 1.2 | pg_catalog | incremental view maintenance on PostgreSQL plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (2 rows)
-
動作確認
=# 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)
以上のように、動作を確認することができます。
PowerGres 本体インストールと同時にインストールされます。
PostGIS
PostGIS は地理情報を取り扱うためのモジュールです。
機能の詳細につきましては PostGIS プロジェクトの ホームページ をご覧ください。
※ Amazon Linux 2 は PostGIS パッケージに対応していません。
-
PostGIS の RPM パッケージをインストール
PostGIS は PGDG および EPEL 提供のパッケージに依存しています。 あらかじめ PGDG および EPEL の Yum リポジトリを追加しておく必要があります。 それぞれのレポジトリを有効にする手順はこちらをご覧ください。
レポジトリを有効にしたら、コマンドラインより以下を実行します。
Amazon Linux 2 以外の場合
# cd (パッケージの格納先のディレクトリ) # yum install powergresplus13-postgis《バージョン》_13-*
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 powergresplus13-postgis《バージョン》_13-*
-
PostGIS のデータ型や関数を作成
psql コマンドラインより、以下を実行します。(\c はデータベース名指定)
=# \c 《データベース名》 データベース "《データベース名》" にユーザ"postgres"として接続しました。 =# \encoding UTF8 =# CREATE EXTENSION postgis; CREATE EXTENSION =# CREATE EXTENSION postgis_topology; CREATE EXTENSION
-
動作確認
=# \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.2 USE_GEOS=1 USE_PROJ=1 USE_STATS=1 (1 row)
以上のように動作を確認することができます。
- 注意
-
予め ogdi がインストールされている環境では CREATE EXTENSION 時に以下のようなエラーが発生する可能性があります。
=# CREATE EXTENSION postgis; ERROR: could not load library "/opt/powergresplus13/lib/rtpostgis-2.5.so": /usr/gdal23/lib/libgdal.so.20: undefined symbol: ecs_SetReportErrorFunction
ogdi のバージョンが古いことが原因ですので PGDG レポジトリよりインストールを行ってください。
# yum install ogdi
textsearch_ja
textsearch_ja は形態素解析 (MeCab) を使用した日本語全文検索です。
-
textsearch_ja, mecab の RPM パッケージをインストール
コマンドラインより、以下を実行します。
# cd 《パッケージの格納先ディレクトリ》 # yum install powergresplus13-textsearch_ja-* powergresplus13-mecab-* 準備しています... ################################# [100%] 更新中 / インストール中... 1:powergresplus13-mecab-0.996-2.el7################################# [ 33%] 2:powergresplus13-textsearch_ja-9.0################################# [ 67%] 3:powergresplus13-mecab-ipadic-2.7.################################# [100%]
-
拡張 textsearch_ja のインストール
psql コマンドラインより、以下を実行します。(\c はデータベース名指定)
=# \c 《データベース名》 データベース "《データベース名》" にユーザ"postgres"として接続しました。 =# CREATE EXTENSION textsearch_ja; CREATE EXTENSION
-
動作確認
=# SELECT to_tsvector('japanese', 'すもももももももものうち'); to_tsvector ----------------------- 'すもも':1 'もも':2,3 (1 行)
以上のように動作を確認することができます。 デフォルトの状態では UTF8 のデータベースで使用できます。
pg_bigm
機能の詳細につきましては pg_bigm プロジェクトの ホームページ をご覧ください。-
pg_bigm の RPM パッケージをインストール
コマンドラインより、以下を実行します。
# cd 《パッケージの格納先ディレクトリ》 # yum install powergresplus13-pg_bigm-* 準備しています... ################################# [100%] 更新中 / インストール中... 1:powergresplus13-pg_bigm-1.2.20161################################# [100%]
-
拡張 pg_bigm のインストール
psql コマンドラインより、以下を実行します (\c はデータベース名指定)。
=# \c 《データベース名》 データベース "《データベース名》" にユーザ"postgres"として接続しました。 =# CREATE EXTENSION pg_bigm; CREATE EXTENSION
-
動作確認
=# SELECT show_bigm('PostgreSQLの全文検索'); show_bigm ----------------------------------------------------------------- {の全,全文,文検,検索,"索 "," P",Lの,Po,QL,SQ,eS,gr,os,re,st,tg} (1 行)
以上のように動作を確認することができます。
レポジトリの有効化手順
各ソフトウェアインストールに必要となるレポジトリの有効化手順を以下に示します。
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