PostgreSQLエンタープライズ・コンソーシアム 技術部会 WG#2

WG2活動報告書
メジャーバージョンアップ

PostgreSQL Enterprise Consortium

⽬次
⽬次
1. 改訂履歴
2. ライセンス3. はじめに3.1. 本資料の概要と⽬的
3.2. 本資料の構成
3.3. 本資料と『バージョンアップ編』との関係
3.4. 補⾜4. メジャーバージョンアップ⼿順
4.1. 概要
4.2. 要件確認
4.2.1. 環境
4.2.1.1. 同⼀環境でのバージョンアップ
4.2.1.2. 別環境でのバージョンアップ
4.2.2. 運⽤
4.3. ⾮互換確認
4.3.1. メジャーバージョン間の差異
4.3.1.1. 機能⾮互換
4.3.1.2. ⾮機能要素
4.4. メジャーバージョンアップ⼿順
4.4.1. pg_upgradeを利⽤する場合
4.4.2. pg_dumpallを利⽤する場合
4.4.3. pg_dump/pg_restoreを利⽤する場合
5. メジャーバージョン間の⾮互換
5.1. 概要
5.2. メジャーバージョン間の⾮互換
5.2.1. サーバープロセス
5.2.2. ディレクトリ、ファイル
5.2.3. サーバーパラメーター
5.2.3.1. カテゴリごとのサーバーパラメーター数
5.2.3.2. サーバーパラメーター初期値
5.2.4. システムカタログ
5.2.5. システムビュー
5.2.6. 機能・⾮機能
5.2.6.1. バックアップ・リカバリーおよびストリーミング
5.2.6.2. 監視
5.3. 拡張機能
5.3.1. pg_dbms_stats
5.3.2. pgBadger
5.3.3. pg_hint_plan
5.3.4. pg_monz
5.3.5. pg_repack
5.3.6. pg_rman
5.3.7. pg_statsinfo
5.3.8. pg_bulkload
6. メジャーバージョンアップ検証
6.1. 概要
6.2. 想定するストーリー
6.3. 検証パターン
6.4. 検証環境
6.4.1. サーバー構成
6.4.2. 機能拡張
6.5. 検証結果
7. 著者
Page 2 of 29

2
5
6
7
7
7
7
7
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
13
13
13
13
13
14
15
16
18
20
21
21
22
22
22
23
23
23
24
24
25
25
27
27
27
27
27
27
28
28
29

PostgreSQL Enterprise Consortium

Page 3 of 29

PostgreSQL Enterprise Consortium

Page 4 of 29

PostgreSQL Enterprise Consortium

1. 改訂履歴
版
1.0

改訂⽇

変更内容

2020/03/31 新規作成

Page 5 of 29

PostgreSQL Enterprise Consortium

2. ライセンス
本作品はCC-BYライセンスによって許諾されています。 ライセンスの内容を知りたい⽅は こちら でご確認ください。 ⽂書の内容、表記に関する誤り、ご要望、感想等につきましては、PGEConsのサイト を通じてお寄せいただきますようお願いいたします。
Eclipseは、Eclipse Foundation,Inc.の⽶国、およびその他の国における商標もしくは登録商標です。
IBMおよびDb2は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
Intel、インテルおよびXeonは、⽶国およびその他の国における Intel Corporation の商標です。
Javaは、Oracle Corporation 及びその⼦会社、関連会社の⽶国及びその他の国における登録商標です。 ⽂中の社名、商品名等は各社の商標または登録商標である場合があります。
Linux は、Linus Torvalds ⽒の⽇本およびその他の国における登録商標または商標です。
Red HatおよびShadowman logoは、⽶国およびその他の国におけるRed Hat,Inc.の商標または登録商標です。
Microsoft、Windows Server、SQL Server、⽶国 Microsoft Corporationの⽶国及びその他の国における登録商標または商標です。
MySQLは、Oracle Corporation 及びその⼦会社、関連会社の⽶国及びその他の国における登録商標です。 ⽂中の社名、商品名等は各社の商標または登録商標である場合があります。
Oracleは、Oracle Corporation 及びその⼦会社、関連会社の⽶国及びその他の国における登録商標です。 ⽂中の社名、商品名等は各社の商標または登録商標である場合があります。
PostgreSQLは、PostgreSQL Community Association of Canadaのカナダにおける登録商標およびその他の国における商標です。
Windows は⽶国 Microsoft Corporation の⽶国およびその他の国における登録商標です。
TPC, TPC Benchmark,TPC-C, TPC-E, tpmC, TPC-H, QphHは⽶国Transaction Processing Performance Councilの商標です
その他、本資料に記載されている社名及び商品名はそれぞれ各社が 商標または登録商標として使⽤している場合があります 。

Page 6 of 29

PostgreSQL Enterprise Consortium

3. はじめに3.1. 本資料の概要と⽬的
本資料は、PostgreSQLのメジャーバージョンアップを検討される⽅の参考にしていただくことを⽬的に、PostgreSQLエンタープライズ・コン
ソーシアム(以下PGECons)が作成・公開をしています。 PGEConsは、PostgreSQL本体および各種ツールの情報収集と提供、整備などの活動を通じて、ミッションクリティカル性の⾼いエンタープライズ領域へのPostgreSQLの普及を推進することを⽬的として設⽴された団体です。
PGEConsの技術部会では、PostgreSQLの普及に対する課題の検討を通じて活動テーマを挙げ、そのテーマごとにワーキンググループを⽴ち上げて活動しています。その中の⼀つであるWG2(移⾏ワーキンググループ)では、「異種DBMSからPostgreSQLへの移⾏」をテーマとして調査・検証を⾏い、収集した技術ノウハウを成果として取り纏めた資料を公開しています。
今回、2020年2⽉に最終リリースとなったPostgreSQL 9.4から、本資料作成時点で最新のPostgreSQL 12へのメジャーバージョンアップをモデルとし、PostgreSQLにおけるメジャーバージョンアップ⼿順、メジャーバージョン間の主な⾮互換についてまとめ、メジャーバージョンアップ
の実機検証をおこないました。
参考として、下表にメジャーバージョンごとの最終リリース⽇を掲載します。 なお、最新情報はPostgreSQL.orgの バージョンポリシーのペー
ジ で確認するようにしてください。
表 3.1 メジャーバージョンごとの最終リリース
メジャーバージョン

最初のリリース

最終リリース12

2019年10⽉3⽇

2024年11⽉14⽇

11

2018年10⽉18⽇

2023年11⽉9⽇

10

2017年10⽉5⽇

2022年11⽉10⽇

9.6

2016年9⽉29⽇

2021年11⽉11⽇

9.5

2016年1⽉7⽇

2021年2⽉11⽇

9.4

2014年12⽉18⽇

2020年2⽉13⽇

本資料が、皆様のPostgreSQL運⽤の⼀助となれば幸いです。

3.2. 本資料の構成
本資料の本⽂の構成は下表の通りです。
表 3.2 本資料の構成
章
3 はじめに概要
本資料の位置づけと概要

4 メジャーバージョンアップ⼿順 PostgreSQLのメジャーバージョンアップ⼿順について
5 メジャーバージョン間の⾮互換 メジャーバージョン間の主な⾮互換について
6 メジャーバージョンアップ検証 メジャーバージョンアップを実機検証した結果について

3.3. 本資料と『バージョンアップ編』との関係
PGECons WG2にて2014年に作成した『 バージョンアップ編 』は、バージョンアップ時に利⽤するツールおよびその使⽤⽅法に主眼をおき、それらツールの実機検証をおこない、まとめた資料です。 それに対し、本資料『メジャーバージョンアップ編』は、メジャーバージョンアップ
作業に主眼をおいたものになります。
pg_dumpやpg_upgradeなど本資料に登場するツールの詳細については、『 バージョンアップ編 』や他のPGECons成果物、ならびにマニュア
ルを参照するようにしてください。

3.4. 補⾜PostgreSQLのマニュアルでは、メジャーアップグレードやメジャーバージョンアップグレードなど、『バージョンアップ』ではなく『アップグレード』という表記をしていますが、本資料では『バージョンアップ』と表記しています。

Page 7 of 29

PostgreSQL Enterprise Consortium

パブリッククラウドのフルマネージドサービスで提供されるPostgreSQL（例：Azure Database for PostgreSQL、Amazon RDS for
PostgreSQL、Cloud SQL for PostgreSQLなど）における、メジャーバージョンアップについては本資料では扱いません。

Page 8 of 29

PostgreSQL Enterprise Consortium

4. メジャーバージョンアップ⼿順
4.1. 概要
この章では、メジャーバージョンアップの基本的な流れについて記述します。
PostgreSQLのメジャーバージョンアップでは、バグ修正やセキュリティ修正だけでなく、新機能の追加などがおこなわれます。 また、異なるメ
ジャーバージョン間ではデータベースクラスタの互換性が保証されておらず、データベースクラスタを新しいバージョンにあわせて変換する作業が必要です。
つまり、メジャーバージョンアップでは、バイナリを⼊れ替えるだけで済むマイナーバージョンアップとは異なり、データベースクラスタの移⾏⽅法など検討しなければならないポイントが多くなります。

4.2. 要件確認
まず、メジャーバージョンアップ作業の要件を確認します。

4.2.1. 環境
今⽇では、オンプレミスの物理サーバーであったり、パブリッククラウドの仮想サーバーやであったり、またはコンテナであったりと、環境といっても多岐にわたりますが、おおまかには下記の2パターンが考えられます。
4.2.1.1. 同⼀環境でのバージョンアップ
同⼀のサーバーやコンテナなどに、新しいバージョンのPostgreSQLをインストールして、移⾏するケース

4.2.1.2. 別環境でのバージョンアップ
別のサーバーやコンテナなどに、新しいバージョンのPostgreSQLをインストールして、移⾏するケース

4.2.2. 運⽤
運⽤要件として、メジャーバージョンアップ作業を実施するにあたり、システム停⽌が可能なのかどうかは重要なポイントです。

Page 9 of 29

PostgreSQL Enterprise Consortium

メジャーバージョンアップでは、データベースクラスタの移⾏が発⽣しますので、これにかかる時間を⾒積もります。 そして、システムの稼働率、もしくは年間許容停⽌時間と照らし合わせ、最適な移⾏⽅法を検討します。 システムを停⽌できない場合には、段階的なデータ移⾏や、
データレプリケーション製品を活⽤するなどの⼯夫が必要になってきます。
また、許容停⽌時間が短い重要システムであれば、冗⻑化構成であったり、ストリーミングレプリケーション構成としている場合も多くなります
ので、さらに移⾏⼿順の検討要素が増えます。
表 4.1 参考：稼働率と年間許容停⽌時間
稼働率

年間許容停⽌時間考えられる⼿法

99 %

3.65⽇

多くの場合、システムを停⽌したうえでの作業が⼗分に可能。

99.9 %

8.8時間

データ移⾏に⻑時間を要する⼤規模データであれば、コールドデータを先に移⾏しておくな
ど、データ移⾏を段階的におこなうことを考える。

99.99 %

52.6分

データレプリケーション製品を活⽤し、データは常に同期したうえで接続先だけを切り替える、などの⼯夫が必要。バージョンアップ元のバージョンが10以降であれば、ロジカルレプ
リケーションを利⽤することも検討する。

99.999 %

5.3分

同上。

4.3. ⾮互換確認
メジャーバージョン間では新機能の追加だけでなく、機能⾮互換がある場合があります。 それら直接的な機能の⾮互換や、それに伴う⾮機能の⾮互換を調査します。 なお、主な⾮互換については、5章に記述します。

4.3.1. メジャーバージョン間の差異
メジャーバージョンアップのターゲットバージョンとの差異を確認します。
4.3.1.1. 機能⾮互換
表 4.2 機能⾮互換
項⽬

内容

システムカタログ

システムカタログの内容を参照、利⽤するアプリケーションでは、修正が必要です。

サーバーパラメーター

新規パラメーター、廃⽌されたパラメーター、初期値が変更になったパラメーターについて調査し、値を再設計、そして動作検証が必要です。

ディレクトリやファイルの配置

PostgreSQL 10においてディレクトリ名が変更、PostgreSQL 12でrecovery.confがpostgresql.confに統合されるなど、変更があります。

プロセス名

プロセス監視をしている場合、プロセス名変更への対処が必要です。

クライアントアプリケーション

pg_ctlなど、オプションの初期値が変更になっているものがあり、それらを利⽤するシェルな
どの対処が必要です。

拡張機能

拡張機能もあわせてバージョンアップが必要になる場合があります。新バージョンに対応していない場合は代替案の検討も必要です。

4.3.1.2. ⾮機能要素
表 4.3 機能⾮互換
項⽬

内容

バックアップ・リカバリ

PostgreSQL 12でrecovery.confがpostgresql.confに統合されるなどの変更があります。

監視

pg_monzにおいて、それ⾃⾝のバージョンアップが必要な場合は、監視項⽬の再確認が必要です。独⾃に監視している場合、プロセス名の変更やシステムカタログの変更への対処が必要です。

4.4. メジャーバージョンアップ⼿順
メジャーバージョンアップのおおまかな⼿順について、まとめます。
留意事項
すべての作業を網羅しているわけではありません。
⼿順は、別環境に移⾏するケースを想定しています。
⼿順に書かれているツールのオプションは、⼀例です。
ロジカルレプリケーション（pglogicalなどの拡張機能、またはバージョンアップ元がPostgreSQL 10以降）には触れません。

Page 10 of 29

PostgreSQL Enterprise Consortium

本資料はPostgreSQL 9.4からPostgreSQL 12へのメジャーバージョンアップをモデルとしているため、ここでは省略します。
本資料作成時点で、pglogicalはPostgreSQL 12未対応です。
ストリーミングレプリケーションは、異なるメジャーバージョン間では利⽤できません。

4.4.1. pg_upgradeを利⽤する場合
ここでは、リンクモード（--link）を使⽤することを前提とします。
リンクモードでは新バージョンのデータベースクラスタに旧バージョンのデータファイルへのハードリンクを張ります。そのため、新旧バージョンのデータクラスタを同⼀ファイルシステムに配置する必要があります。
新バージョンでデータベースクラスタを作成する（initdb）際、旧バージョンと互換性のあるオプション（⽂字コードなど）とする必要があります。
新バージョンと旧バージョンのポートは同⼀で構いません。
新バージョンと旧バージョンのPostgreSQLインストールユーザー（OSユーザー）は同⼀である必要があります。
その他、pg_upradeの使⽤⽅法、注意点については、マニュアルもしくは『バージョンアップ編』を参照してください。
表 4.4 pg_upgrade⼿順概要
No.

旧環境作業

新環境作業

1

新バージョンのPostgreSQL、拡張機能をインストール

2

旧バージョンのPostgreSQLをインストール

3

新バージョンでデータベースクラスタを作成（initdb）

4

旧バージョンのPostgreSQLを停⽌

5旧環境からデータベースクラスタをコピー

6

新バージョンのpg_upgradeを実⾏

7

新バージョンのPostgreSQLを起動

8

新バージョンの拡張機能をバージョンアップ（ALTEREXTENSION ... UPDATE）または再インストール（CREATE
EXTENSION）

9

新バージョンでバキュームおよび統計情報の再取得（e.g.
vacuumedb --all --analyze）

10

新バージョンのPostgreSQLで、データ確認、アプリケーション
動作確認

11

環境削除

旧バージョンのPostgreSQLおよびデータベースクラスタを削除

4.4.2. pg_dumpallを利⽤する場合
要件に依存しますが、⼩規模なデータベースであれば⼗分現実的です。
表 4.5 pg_dumpall⼿順概要
No.

旧環境作業

新環境作業

1

新バージョンのPostgreSQL、拡張機能をインストール

2

新バージョンでデータベースクラスタを作成（initdb）

3

旧バージョンで新環境からの管理者アクセス以外を禁⽌にする（e.g. pg_hba.conf などで）

4

新バージョンのpg_dumpallで、旧バージョンに接続し、ダンプする（e.g. pg_dumpall --host=<旧環境> --if-exists --clean -quote-all-identifiers > olddb.out）

5

psqlで、ダンプファイルをリストアする（e.g. psql --host=<新環境> --file=olddb.out）

6

新バージョンでバキュームおよび統計情報の再取得（e.g.
vacuumedb --all --analyze）

7

新バージョンのPostgreSQLで、データ確認、アプリケーション
動作確認

8

環境削除

ダンプファイルを削除

4.4.3. pg_dump/pg_restoreを利⽤する場合
新バージョンに移⾏するデータを取捨選択できます。
コールドデータを先に移⾏するなど、段階的にデータを移⾏する場合に有効です。

Page 11 of 29

PostgreSQL Enterprise Consortium

表 4.6 pg_dump/pg_restore⼿順概要
No.

旧環境作業

新環境作業

1

新バージョンのPostgreSQL、拡張機能をインストール

2

新バージョンでデータベースクラスタを作成（initdb）

3

旧バージョンで新環境からの管理者アクセス以外を禁⽌にする（e.g. pg_hba.conf などで）

4

新バージョンのpg_dumpallで、旧バージョンに接続し、ロールなどのグローバルオブジェクトを移⾏する

5

新バージョンのpg_dumpで、旧バージョンに接続し、スキーマなどを移⾏する

6

新バージョンのpg_dumpで、旧バージョンに接続し、ダンプする（e.g. pg_dump --host=<旧環境> --format=custom -data-only --schema=hr --file=hr.dmp --quote-allidentifiers sampledb）

7

新バージョンのpg_restoreで、ダンプファイルをリストアする（e.g. pg_restore --host=<新環境> --dbname=sampledb -jobs=4 hr.dmp）

8

新バージョンでバキュームおよび統計情報の再取得（e.g.
vacuumedb --all --analyze）

9

新バージョンのPostgreSQLで、データ確認、アプリケーション
動作確認

10

環境削除

ダンプファイルを削除

Page 12 of 29

PostgreSQL Enterprise Consortium

5. メジャーバージョン間の⾮互換
5.1. 概要
この章では、PostgreSQL 9.4からPostgreSQL 12へのメジャーバージョンアップ時に把握しておくべき差異や⾮互換について、記述します。
ただし、すべての差異や⾮互換について書き出したものではないことに注意してください。 本章の内容をベースに、マニュアルのリリースノー
トなどを確認するようにしてください。

5.2. メジャーバージョン間の⾮互換
下記について、主な差異、⾮互換を挙げます。
サーバープロセス
ディレクトリ、ファイル
サーバーパラメーター
機能・⾮機能5.2.1. サーバープロセス
稼働するサーバープロセスの名称に、差異があります。
これにより、PostgreSQLサーバーの稼働監視（プロセス監視）に影響が発⽣する可能性があります。 下表は、initdb を実⾏後すぐに pg_ctl
start した場合に、実⾏されるサーバープロセス名を⽐較したものです。
表 5.1 サーバープロセス名称⽐較
9.4

12

説明

/usr/pgsql-9.4/bin/postgres/usr/pgsql-12/bin/postgres

postgres: logger process

postgres: logger

postgres: checkpointerprocess

postgres: checkpointerpostgres: writer process

postgres: background writerpostgres: wal writer process

postgres: walwriterpostgres: autovacuum
launcher process

postgres: autovacuum
launcherpostgres: stats collector
process

postgres: stats collector
postgres: logical replication
launcher

論理レプリケーションを担う、PostgreSQL 10からの新規プロセス

5.2.2. ディレクトリ、ファイル
データベースクラスタを構成するディレクトリやファイルに、差異があります。

Page 13 of 29

PostgreSQL Enterprise Consortium

表 5.2 データベースクラスタの構成要素⽐較
9.4

12

変更

説明

PG_VERSIONPG_VERSION

PostgreSQLの主バージョン番号を保有するファイル

base/

base/

データベースごとのサブディレクトリ
を保有するサブディレクトリ

current_logfiles
global/○global/ログ収集機構が現在書き込んでいるログファイルを記録するファイル
pg_databaseのようなクラスタで共有するテーブルを保有するサブディレ
クトリ

pg_commit_ts/○

トランザクションのコミット時刻のデータを保有するサブディレクトリ

pg_dynshmem/

pg_dynshmem/

動的共有メモリサブシステムで使われるファイルを保有するサブディレクト
リ

pg_logical/

pg_logical/

論理デコードのための状態データを保有するサブディレクトリ

pg_multixact/

pg_multixact/

マルチトランザクションの状態のデー
タを保有するサブディレクトリ（共有⾏ロックで使⽤されます）

pg_notify/

pg_notify/

LISTEN/NOTIFY状態データを保有するサブディレクトリ

pg_replslot/

pg_replslot/

レプリケーションスロットデータを保有するサブディレクトリ

pg_serial/

pg_serial/

コミットされたシリアライザブルトラ
ンザクションに関する情報を保有する
サブディレクトリ

pg_snapshots/

pg_snapshots/

エクスポートされたスナップショットを保有するサブディレクトリ

pg_stat/

pg_stat/

統計サブシステム⽤の永続ファイルを保有するサブディレクトリ

pg_stat_tmp/

pg_stat_tmp/

統計サブシステム⽤の⼀時ファイルを保有するサブディレクトリ

pg_subtrans/

pg_subtrans/

サブトランザクションの状態のデータを保有するサブディレクトリ

pg_tblspc/

pg_tblspc/

テーブル空間へのシンボリックリンクを保有するサブディレクトリ

pg_twophase/

pg_twophase/

プリペアドトランザクション⽤の状態
ファイルを保有するサブディレクトリ

pg_xlog/

pg_wal/○WAL（ログ先⾏書き込み）ファイルを保有するサブディレクトリ

pg_clog/

pg_xact/○

トランザクションのコミット状態のデータを保有するサブディレクトリ

postgresql.auto.conf

postgresql.auto.conf

ALTER SYSTEMにより設定された設
定パラメータを格納するのに使われるファイル

postmaster.opts

postmaster.opts

最後にサーバを起動した時のコマンド
ラインオプションを記録するファイル

postmaster.pid

postmaster.pid

現在のpostmasterプロセス
ID（PID）などを記録するロックファイル

5.2.3. サーバーパラメーター
サーバーパラメーターに、新設や廃⽌、初期値の差異があります。

Page 14 of 29

PostgreSQL Enterprise Consortium

5.2.3.1. カテゴリごとのサーバーパラメーター数
サーバーパラメーターをカテゴリごと、バージョンごとにカウントした表を下記に⽰します。
「Connections and Authentication / Security and Authentication」カテゴリのパラメーターは、PostgreSQL 11以降、row_securityパラ
メーターを除き、「Authentication」と「SSL」カテゴリに分割されており、row_securityパラメーターは、「Client Connection Defaults /Statement Behavior」カテゴリに移動しています。
表 5.3 カテゴリごとのサーバーパラメーター数⽐較
9.4

カテゴリ名

9.5

9.6

10

11

12

Autovacuum

11

11

11

11

11

11

Client Connection Defaults / Locale andFormatting

14

14

14

14

14

14

Client Connection Defaults / Other Defaults

5

5

5

5

5

6

Client Connection Defaults / Shared Library
Preloading

3

3

3

3

4

4

Client Connection Defaults / Statement
Behavior

21

22

23

23

25

26

5

5

9

9

11

13

Connections and Authentication /Authentication
Connections and Authentication /Connection Settings

9

9

9

9

Connections and Authentication / Security
and Authentication

14

14

14

15

Connections and Authentication / SSL
Developer Options

10

9

9

10

15

15

Error Handling

3

3

3

3

3

3

File Locations

5

5

5

5

5

5

Lock Management

3

3

3

5

5

5

Preset Options

11

12

12

12

13

14

2

2

2

2

2

Process Title
Query Tuning / Genetic Query Optimizer

7

7

7

7

7

7

Query Tuning / Other Planner Options

5

5

6

6

7

8

Query Tuning / Planner Cost Constants

6

6

9

10

13

13

Query Tuning / Planner Method
Configuration

11

11

11

12

17

17

1

1

1

1

1

Replication
Replication / Master Server

2

2

2

2

2

2

Replication / Sending Servers

4

4

4

4

4

4

Replication / Standby Servers

6

7

7

7

7

11

2

2

2

Replication / Subscribers
Reporting and Logging / What to Log

17

18

18

18

18

18

Reporting and Logging / When to Log

3

3

3

3

3

4

Reporting and Logging / Where to Log

11

11

13

13

13

13

Resource Usage / Asynchronous Behavior

2

2

5

6

8

8

Resource Usage / Background Writer

3

3

4

4

4

4

Resource Usage / Cost-Based Vacuum Delay

5

5

5

5

5

5

Resource Usage / Disk

1

1

1

1

1

1

Resource Usage / Kernel Resources

1

1

1

1

1

1

Resource Usage / Memory

10

10

11

11

10

11

Statistics / Monitoring

4

4

4

4

4

4

Page 15 of 29

PostgreSQL Enterprise Consortium

9.4

カテゴリ名

9.5

9.6

10

11

12

Statistics / Query and Index Statistics
Collector

6

5

5

5

5

5

Version and Platform Compatibility / Other
Platforms and Clients

1

1

1

1

1

1

Version and Platform Compatibility /Previous PostgreSQL Versions

9

10

10

9

9

8

Write-Ahead Log / Archive Recovery

3

Write-Ahead Log / Archiving

3

3

3

3

3

3

Write-Ahead Log / Checkpoints

4

5

6

6

6

6

Write-Ahead Log / Recovery Target

8

Write-Ahead Log / Settings

10

11

12

12

12

14

5.2.3.2. サーバーパラメーター初期値
各バージョンのサーバーパラメーター初期値について、下表に⽰します。
表 5.4 サーバーパラメーター初期値⽐較
9.4

パラメーター
extra_float_digits

0

9.5
0

9.6
0

10
0

11
0

tcp_user_timeout

1

説明
リリースノートE.2.2. Migration to
Version 12 参照

0

jit_provider

llvmjitdefault_table_access_method

llvmjitheap

gin_pending_list_limit

4096

idle_in_transaction_session_timeout
row_security

on

4096

4096

4096

4096

0

0

0

0

on

on

on

on

0.1

0.1

md5

md5

vacuum_cleanup_index_scale_factor
password_encryption

12

on

on

on

md5

onもmd5の別名として扱う

ssl_max_protocol_version
ssl_min_protocol_version

TLSv1

ssl_passphrase_command
ssl_passphrase_command_supports_reload

off

off

ssl_renegotiation_limit

0〜v9.4までで廃⽌

debug_assertionsoff〜v9.4までで廃⽌

jit_debugging_support

off

off

jit_dump_bitcode

off

off

jit_expressions

onon

jit_profiling_support

off

off

jit_tuple_deformingonon

wal_consistency_checking
max_pred_locks_per_page

2

2

2

max_pred_locks_per_relation

-2

-2

-2

700

700

data_directory_mode
debug_assertions

off

off

off

off

off

server_version

9.4.259.5.209.6.16

10.11

11.6

12.1

server_version_num

90425

90520

90616

100011110006120001Page 16 of 29

PostgreSQL Enterprise Consortium

9.4

パラメーター

9.5

9.6

10

11

ssl_library
wal_segment_size

12

説明OpenSSL
2048

2048

2048

2048

16777216

16777216

on

on

on

on

on

off

off

off

off

off

on

v11からバイト数に変更されているがす
べて16MBcluster_nameupdate_process_title
force_parallel_mode
jit
plan_cache_mode

auto

jit_above_cost

100000100000

jit_inline_above_cost

500000500000

jit_optimize_above_cost

500000500000min_parallel_relation_size1024

v9.6のみmin_parallel_index_scan_size

64

64

64

min_parallel_table_scan_size

1024

1024

1024

parallel_setup_cost

1000

1000

1000

1000

parallel_tuple_cost

0.1

0.1

0.1

0.1

on

on

on

enable_parallel_append

ononenable_parallel_hashononenable_partition_pruningononenable_partitionwise_aggregate

off

off

enable_partitionwise_join

off

off

enable_gathermerge

track_commit_timestamp

off

off

off

off

off

max_replication_slots

0

0

0

10

10

10

max_wal_senders

0

0

0

10

10

10

hot_standby

off

off

off

on

on

on

primary_conninfo
primary_slot_namepromote_trigger_file
recovery_min_apply_delay0

wal_retrieve_retry_interval

5000

5000

5000

max_logical_replication_workers

4

4

4

max_sync_workers_per_subscription

2

2

2

log_line_prefix

5000

< %m
>

log_replication_commands

5000

< %m
>

< %m
>

%m
[%p]

%m [%p]%m [%p]

off

off

off

off

off

log_transaction_sample_rate
log_directory0
pg_logpg_logpg_log

log

log

log

syslog_sequence_numbers

on

on

on

on

syslog_split_messages

on

on

on

on

backend_flush_after

0

0

0

0

2

2

8

8

8

2

2

2

max_parallel_maintenance_workers
max_parallel_workers
max_parallel_workers_per_gather

0Page 17 of 29

v10からpg_logからlogに変更PostgreSQL Enterprise Consortium

9.4

パラメーター

9.5

old_snapshot_threshold

9.6
-1

10
-1

parallel_leader_participation
bgwriter_flush_after

64

64

replacement_sort_tuples

150000150000

11
-1

-1

on

on

64

64

shared_memory_type

説明

mmap

update_process_title

ondefault_with_oids

offoperator_precedence_warning
sql_inheritance

12

on

off

off

off

off

off

off

off

off

off

on

on

32

32

32

32

archive_cleanup_command
recovery_end_command
restore_commandcheckpoint_segments

3checkpoint_flush_after
max_wal_size

64

64

1024

1024

1024

v9.5新設で、v10から1GBに

min_wal_size

5

5

80

80

80

v9.5新設で、v10から80MBにrecovery_target
recovery_target_action

pause

recovery_target_inclusiveon

recovery_target_lsn
recovery_target_namerecovery_target_time
recovery_target_timeline

latestrecovery_target_xid
wal_compression

off

off

off

off

wal_init_zero
wal_levelonminimal minimal minimal

replica

replica

wal_recycle
wal_writer_flush_after

off

replica

on
128

128

5.2.4. システムカタログ
システムカタログに、新しいカタログがあります。
ここでは、PostgreSQL 9.4とPostgreSQL 12との違いについて、下表にまとめます。

Page 18 of 29

128

128

archiveや
hot_standbyと設定
してもreplicaにマップされるPostgreSQL Enterprise Consortium

表 5.5 PostgreSQL 9.4には存在しないシステムカタログ
カタログ名

⽤途

pg_init_privs

オブジェクトの初期権限

pg_partitioned_table

テーブルのパーティションキーについての情報

pg_policy

⾏単位セキュリティポリシー

pg_publication

論理レプリケーションのパブリケーション

pg_publication_rel

リレーションとパブリケーションの対応

pg_replication_origin

登録されたレプリケーション起点

pg_sequence

シーケンスについての情報

pg_statistic_ext

プランナ拡張統計情報（定義）pg_statistic_ext_data

プランナ拡張統計情報（構築統計情報）

pg_subscription

論理レプリケーションのサブスクリプション

pg_subscription_rel

サブスクリプションについてのリレーションの状
態

pg_transform

変換（データ型を⼿続き⾔語に変換）

また、同じカタログでも、機能追加などの影響から、列構成が異なるものがあります。 ここでは、⼀例としてpg_catalog.pg_classについて下記に挙げます。

Page 19 of 29

PostgreSQL Enterprise Consortium

表 5.6 pg_catalog.pg_class⽐較
列名

9.4

oid

12
○

説明
⾏識別⼦

relname○○relnamespace○○

reltype○○reloftype○○relowner

○

○

relam

○

○

relfilenode○○reltablespace○○

relpages○○

reltuples○○

relallvisible○○

reltoastrelid○○

relhasindex○○

relisshared○○relpersistence○○

relkind○○relnatts○○

relchecks○○

relhasoids○

リレーションの⾏毎にOIDを⽣成する場合は真relhaspkey○

テーブルにプライマリキーが含まれている（あるいは過去含まれていた）場合に真relhasrules○○

relhastriggers○○

relhassubclass○○relrowsecurity○

⾏単位セキュリティが有効なテーブルでは真relforcerowsecurity○

⾏単位セキュリティが（有効にされているとして）テーブルの所有者にも適⽤されるなら真relispopulated○○

relreplident○○

relfrozenxid○

この値より以前のトランザクションIDはすべて、このテーブルで永遠（"凍結"）トラ
ンザクションIDに置き換えられます。

relminmxid○

このテーブル内のトランザクションIDによって置換される前のすべてのマルチトラ
ンザクションID

relispartition○

テーブルあるいはインデックスがパーティションなら真relrewrite○

テーブルの書き換えが必要なDDL操作中に書き込みが⾏われる新しいリレーション
では、これは元のリレーションのOIDを持ちます

relfrozenxid○

この値より以前のトランザクションIDはすべて、このテーブルで永続的な（「凍結された」）トランザクションIDに置き換えられています

relminmxid○

このテーブル内のトランザクションIDによって置換される前のすべてのマルチトラ
ンザクションID

relacl○○reloptions○○

relpartbound○

テーブルがパーティションの場合（relispartition参照）のパーティション境界の内部表現

5.2.5. システムビュー

Page 20 of 29

PostgreSQL Enterprise Consortium

システムビュー（統計情報ビュー含む）に、新しいビューがあります。
ここでは、PostgreSQL 9.4とPostgreSQL 12との違いについて、下表にまとめます。
表 5.7 PostgreSQL 9.4には存在しないシステムビュー
ビュー名

⽤途

pg_config

コンパイル時の設定パラメータ

pg_file_settings

設定ファイルの内容の要約

pg_hba_file_rules

クライアント認証の設定ファイルの内容の要約

pg_policies

ポリシー

pg_publication_tables

パブリケーションとそれに関連するテーブル

pg_replication_origin_status

レプリケーションの進捗を含めたレプリケーション起点に関する情報

pg_replication_slots

レプリケーションスロットの情報

pg_sequences

シーケンス

pg_stat_gssapi

接続（通常およびレプリケーション）あたり1⾏の形式で、接続に使われる
GSSAPI認証と暗号化に関する情報を表⽰します

pg_stat_progress_cluster

CLUSTERまたはVACUUM FULLを実⾏している各バックエンドごと1⾏の形式
で、現在の進捗を表⽰します

pg_stat_progress_create_index

CREATE INDEXまたはREINDEXを実⾏する各バックエンド実⾏ごとに1⾏の形式で、現在の進捗を表⽰します

pg_stat_progress_vacuum

VACUUMを実⾏している（⾃動バキュームワーカプロセスを含んだ）各バック
エンドごとに１⾏の形式で、現在の進捗を表⽰します

pg_stat_ssl

接続（通常およびレプリケーション）あたり1⾏の形式で、接続に使われるSSLの情報を表⽰します

pg_stat_subscription

1つのサブスクリプションにつき少なくとも1⾏の形式で、サブスクリプション
ワーカに関する情報を表⽰します

pg_stat_wal_receiver

１⾏の形式で、受信サーバが接続したサーバからWALレシーバに関する統計情報を表⽰しますpg_stats_ext

プランナの拡張統計情報

システムカタログと同様に、同じビューでも、機能追加などの影響から、列構成が異なるものがあります。 ここでは、⼀例として
pg_catalog.pg_tablesについて下記に挙げます。
表 5.8 pg_catalog.pg_tables⽐較
9.4

12schemaname○○

tablename○○tableowner○○tablespace○○hasindexes○○

hasrules○○hastriggers

○

○

列名

rowsecurity○

説明

テーブルの⾏セキュリティが有効なら真

5.2.6. 機能・⾮機能
5.2.6.1. バックアップ・リカバリーおよびストリーミング
PostgreSQL 12で、recovery.confの設定がpostgresql.confへ移動されました。 recovery.confは廃⽌されたため、データベースクラスタに
recovery.confというファイルが存在すると、サポートしていない旨のエラー出⼒し、PostgreSQLサーバーが起動しません。
以下の場合などに、設計変更やドキュメントの修正といった対処が必要です。
移⾏元環境でストリーミングレプリケーション構成をとっていた場合
バックアップ・リカバリの⼿順書がある場合
なお、マニュアルでは、recovery.confのパラメーターについて書かれていた『第27章 リカバリの設定』が削除され、『第19章 サーバの設定』

Page 21 of 29

PostgreSQL Enterprise Consortiumに移動しています。
5.2.6.2. 監視サーバープロセス名やディレクトリ構成、システムカタログおよびシステムビューなどの変更が、PostgreSQL監視に影響があるかどうか、確認が必要です。
以下のような場合に、対処が必要となる場合があります。
独⾃のシェルで、サーバープロセスの存在を監視している
ディレクトリの容量を監視しているシステムカタログやシステムビューから、PostgreSQLサーバーの性能情報を収集している
拡張機能のpg_monzを利⽤してPostgreSQLを監視している場合は、pg_monzに新バージョンがないかどうかもあわせて確認しましょう。

5.3. 拡張機能
ここでは、主な機能拡張について、どのバージョンがどのPostgreSQLバージョンをサポートしているか、をまとめました。
以下、留意点です。
機能拡張のリリース⽇や、それがサポートしているPostgreSQLバージョンは、GitHubのリリース情報、README、Makefileなどから抜粋しています。
機能拡張のリリースされたすべてのバージョンを掲載しているわけではなく、省略している場合もあります。
なお、本資料が、そのバージョンでの稼働を保証するものではありません。利⽤する機能拡張のドキュメントを確認し、テストするようにしてください。
マニュアルに記載がない場合、基本的には、メジャーバージョンアップ前に機能拡張をアンインストールし、メジャーバージョ
ンアップ後に再度インストールします。

表 5.9 調査した主だった機能拡張
名称

概要

pg_dbms_stats

PostgreSQLの統計情報を固定する拡張機能。通常ANALYZEで採取する統計情報をダミー情報で固定化することで、予期しない実⾏計画の変更を防ぐことが可能。

pg_hint_plan

PostgreSQLにヒントを実装する拡張機能。ヒント句を使⽤してスキャンや結合の⽅式を指定することで、SQLの実⾏計画を制御することが可能。

pgBadger

PostgreSQLのログファイルを解析して、SQL実⾏状況などのHTMLレポートを⽣成。

pg_monz

ZabbixによるPostgreSQL監視のためのテンプレートを提供。

pg_repack

通常は排他ロックを必要とするテーブルやインデックスの再編成を、排他ロックをかけずに実⾏可能とする拡張機能。

pg_rmanPostgreSQLのバックアップ・リカバリ実⾏の簡易化、バックアップの世代管理など、バックアップ
運⽤を補助するツール。

pg_statsinfo

PostgreSQLの稼働統計情報のスナップショットを定期的に収集・蓄積し、データベースの処理状
況、性能傾向などの確認に利⽤可能。レポート出⼒機能も提供。

pg_bulkload

PostgreSQLに対して⼤量データの⾼速ロードを可能とするツール。

5.3.1. pg_dbms_stats
https://github.com/ossc-db/pg_dbms_stats
本書作成時点で、PostgreSQL 12対応版はリリースされていません。
専⽤のスキーマ、オブジェクトが作成されるため、データベースクラスタ移⾏時、対処が必要です。
下表の対応バージョンは、Makefileから抜粋しています。
表 5.10 pg_dbms_stats
バージョン

リリース⽇

PostgreSQLバージョン

1.3.11.PG11

2019年8⽉26⽇

9.3, 9.4, 9.5, 9.6, 10, 11

1.3.11

2018年9⽉26⽇

9.3, 9.4, 9.5, 9.6, 10

1.3.102018年4⽉5⽇

9.3, 9.4, 9.5, 9.6, 10

1.3.9

2017年11⽉13⽇

9.2, 9.3, 9.4, 9.5, 9.6, 10

1.3.8

2017年10⽉10⽇

9.2, 9.3, 9.4, 9.5, 9.6, 10

1.3.7

2016年9⽉5⽇

9.1, 9.2, 9.3, 9.4, 9.5, 9.6

Page 22 of 29

ノートPostgreSQL Enterprise Consortium

5.3.2. pgBadger
https://github.com/darold/pgbadger
リリースノートなどに、PostgreSQLのバージョンに関する記述がほとんどありません。
11.2において、SQL⽂を100,000⽂字で切り捨てる仕様がデフォルトになっています。ただし、これはオプションで指定可能です。
表 5.11 pgBadger
バージョン

リリース

11.2

2020年3⽉11⽇

11.1

2019年9⽉16⽇

11.0

2019年6⽉25⽇

10.3

2019年2⽉14⽇

10.2

2018年12⽉27⽇

10.1

2018年9⽉12⽇

10.0

2018年9⽉9⽇

9.2

2017年7⽉28⽇

9.1

2017年1⽉24⽇

9.0

2016年9⽉2⽇

ノート
SQL⽂を100000⽂字で切り捨てる仕様がデフォルトに下位互換性なし

5.3.3. pg_hint_plan
https://github.com/ossc-db/pg_hint_plan
リリースノートに⾮互換情報の記載はありません。
実⾏計画を制御するものであるため、PostgreSQL本体のメジャーバージョンアップにより、ヒント句を指定しなくても適切な実⾏計画を⽣成しないかなど、性能検証は必要です。
PostgreSQLのメジャーバージョンごとにモジュールが⽤意されています。（例：pg_hint_plan-REL12_1_3_5）
表 5.12 pg_hint_plan
リリース

PostgreSQL
9.4

9.5

9.6

10

11

2020年2⽉
20⽇

1.1.9

1.1.9

1.2.6

1.3.5

1.3.5

2019年1⽉
17⽇

1.1.8

1.1.8

1.2.5

1.3.3

1.3.4

2018年11⽉
13⽇

1.1.7

1.1.7

1.2.4

1.3.2

1.3.2

2018年6⽉8
⽇

1.1.6

1.1.6

1.2.4

1.3.1

2017年10⽉
10⽇
2017年7⽉
27⽇

1.3.0
1.1.5

1.1.5

12
1.3.5

ノート
PostgreSQL 12サポート

PostgreSQL 11サポート

PostgreSQL 10サポート

1.2.2

5.3.4. pg_monz
https://github.com/pg-monz
本書作成時点で、PostgreSQL 12をサポートする旨の記述がありませんが、リリースノート記載の動作環境には、1.0リリース時から⼀貫してPostgreSQL 9.2以上と書かれています。
リリースノートに⾮互換情報の記載はありません。

Page 23 of 29

PostgreSQL Enterprise Consortium

表 5.13 pg_monz
バージョン

Zabbixバージョン

リリース

PostgreSQLバージョン

2.2

2018年10⽉31⽇

2.0以上

9.2以上（11をサポート）

2.1

2018年3⽉30⽇

2.0以上

9.2以上（9.6および10をサポート）

2.0.1

2016年4⽉21⽇

2.0以上

9.2以上

2.0

2015年3⽉31⽇

2.0以上

9.2以上

1.0.1

2014年11⽉17⽇

2.0以上

9.2以上

1.0

2013年11⽉5⽇

2.0以上

9.2以上

5.3.5. pg_repack
https://github.com/reorg/pg_repack
PostgreSQL 9.1 〜 12 をサポートリリースノートに⾮互換情報の記載はありません。
ドキュメントに、古いバージョンからのアップグレード⽅法が記載されています。
表 5.14 pg_repack
バージョン

リリース

ノート

1.4.5

2019年10⽉5⽇

PostgreSQL 12をサポート

1.4.4

2018年10⽉18⽇

PostgreSQL 11をサポート

1.4.3

2018年5⽉20⽇

1.4.2

2017年10⽉13⽇

1.4.1

2017年8⽉12⽇

1.4.0.1

2017年4⽉26⽇

1.4.0

2017年4⽉26⽇

1.3.4

2016年5⽉7⽇

1.3.3

2016年2⽉8⽇

1.3.2

2015年8⽉14⽇

1.3.1

2015年3⽉11⽇

PostgreSQL 10をサポート

PostgreSQL 9.6をサポート、9.1より前のサポートを削除PostgreSQL 9.5をサポート

PostgreSQL 9.4をサポート

5.3.6. pg_rman
https://github.com/ossc-db/pg_rman
PostgreSQLのメジャーバージョンごとにモジュールが⽤意されています。（例：pg_rman-1.3.9-pg12.tar.gz）
リリースノートに明確な推奨PostgreSQLバージョンが記載されていない場合は、提供されているモジュールから判断しています。
いくつかのバージョン間で⾮互換や注意点があるため、バージョンアップ元からのリリースノートを確認する必要があります。
PostgreSQL 12対応版では、recovery.confではなくpostgresql.confにPITR関連オプションを追加するなどの変更がされています。

Page 24 of 29

PostgreSQL Enterprise Consortium

表 5.15 pg_rman
バージョン

推奨PostgreSQLバージョン

リリース

ノート

1.3.9

2019年10⽉29⽇

9.4.24, 9.5.19, 9.6.15, 10.10, 11.5, 12.0

PostgreSQL 12をサ
ポート

1.3.8

2019年1⽉22⽇

9.2.24, 9.3.25, 9.4.20, 9.5.15, 9.6.11, 10.6, 11.1

PostgreSQL 11をサ
ポート

1.3.7

2018年9⽉27⽇

1.3.6

2018年1⽉30⽇

9.2.24, 9.3.20, 9.4.15, 9.5.10, 9.6.6, 10.1

PostgreSQL 10をサ
ポート

1.3.5

2017年7⽉14⽇

9.3, 9.4, 9.5, 9.6

pg_rman 1.3.4以前を使⽤して取得したバッ
クアップにGIN、
BRIN、およびSP-GiST
インデックスのいずれかが含まれている場合に注意点あり1.3.4

2017年4⽉24⽇

9.3, 9.4, 9.5, 9.6

1.3.3

2016年10⽉13⽇

9.3, 9.4, 9.5, 9.6

pg_rman 1.3.6以前との互換性なしPostgreSQL 9.6をサ
ポート

5.3.7. pg_statsinfo
https://sourceforge.net/projects/pgstatsinfo/
pg_statsinfo 10.0以降は、単⼀のPostgreSQLバージョンのみをサポートしています。
ドキュメントに、古いバージョンからのアップグレード⽅法が記載されています。
表 5.16 pg_statsinfo
バージョン

PostgreSQLバージョン

リリース

12.0

2019年10⽉5⽇

12

11.0

2019年2⽉12⽇

11

10.0

2018年2⽉1⽇

10

3.3.0

2017年9⽉19⽇

9.2, 9.3, 9.4, 9.5, 9.6

3.2.3

2017年1⽉30⽇

9.1, 9.2, 9.3, 9.4, 9.5, 9.6

3.2.1

2016年2⽉26⽇

9.1, 9.2, 9.3, 9.4, 9.5

ノート

5.3.8. pg_bulkload
https://github.com/ossc-db/pg_bulkload
バージョン3.1.14までは、publicスキーマでオブジェクトが作成されていましたが、CVE-2018-1058対応のため、バージョン3.1.15からはpgbulkloadスキーマが作成され、そこにオブジェクトが作成されます。

Page 25 of 29

PostgreSQL Enterprise Consortium

表 5.17 pg_bulkload
バージョン

リリース

推奨PostgreSQLバージョン

ノート

3.1.162020年1⽉22⽇

9.3, 9.4, 9.5, 9.6, 10, 11, 12

PostgreSQL 12をサ
ポート、アクセスメ
ソッドがheapである表
のみサポート3.1.152019年1⽉21⽇

11.1, 10.6, 9.6.11, 9.5.15, 9.4.20, 9.3.25, 9.2.24

PostgreSQL 11をサポート、CVE-20181058対応

3.1.142017年11⽉7⽇

10.0, 9.6.5, 9.5.9, 9.4.14, 9.3.19, 9.2.23

PostgreSQL 10をサ
ポート

3.1.132017年1⽉27⽇

9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19

3.1.12

2016年11⽉16⽇

9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19

3.1.11

2016年11⽉11⽇

9.6.1, 9.5.5, 9.4.10, 9.3.15, 9.2.19

3.1.102016年9⽉29⽇

9.6.0, 9.5.4, 9.4.9, 9.3.14, 9.2.18

PostgreSQL 9.6をサ
ポート

3.1.9

2016年1⽉27⽇

9.5.0, 9.4.5, 9.3.10, 9.2.14

PostgreSQL 9.5をサ
ポート

3.1.8

2015年7⽉2⽇

9.4, 9.3, 9.2, 9.1, 9.0, 8.4, 8.3

Page 26 of 29

PostgreSQL Enterprise Consortium

6. メジャーバージョンアップ検証
6.1. 概要
この章では、実機でメジャーバージョンアップを⾏った結果をまとめます。
なお、結果についてはログなどが⻑⼤になるため、別紙『Appendix. メジャーバージョンアップのログ』を参照ください。

6.2. 想定するストーリー
保守限界を迎えるPostgreSQL 9.4が稼働するサーバーから、PostgreSQL 12をインストールした新サーバーへ移⾏（メジャーバージョンアップ）をおこなう。

図 6.1 想定するストーリー

6.3. 検証パターン
表 6.1 検証パターン
No.

パターン

説明

1

pg_dump/pg_restoreを利⽤

ユーザーデータをpg_dumpでエクスポートし、pg_restoreでインポートする

2

pg_upgradeを利⽤

データベースクラスタをpg_upgradeのリンクモードでバージョンアップする

6.4. 検証環境
6.4.1. サーバー構成
Oracle VirtualBox 6.0にて、移⾏元、移⾏先のサーバーとして、2個のVMを作成。

Page 27 of 29

PostgreSQL Enterprise Consortium

図 6.2 サーバー構成
表 6.2 検証⽤のサーバー構成
Hostname

役割

OS

M/W

CPU(vCore)

Mem

Disk

移⾏元

node94

CentOS 7.7

PostgreSQL 9.4.26

2

3GiB

50GiB

移⾏先

node12

CentOS 7.7

PostgreSQL 12.2

2

3GiB

50GiB

6.4.2. 機能拡張
利⽤する機能拡張は下記のとおり。
移⾏元バージョンは、2015年前後にリリースされたバージョンを採⽤しました。 ただし、⼀部、makeに失敗したものは、yumで⼊⼿可能な最古バージョンを採⽤しました。
表 6.3 検証で利⽤する機能拡張
機能拡張

移⾏元バージョン

移⾏先バージョン

pg_dbms_stats

1.3.7

なし

pg_hint_plan

1.1.5

1.3.5

pgBadger

10.2

11.2

pg_repack

1.4.3

1.4.5

pg_rman

1.3.3

1.3.9

pg_statsinfo

3.2.1

12.0

pg_bulkload

3.1.8

3.1.166.5. 検証結果
別紙『Appendix. メジャーバージョンアップのログ』を参照ください。

Page 28 of 29

PostgreSQL Enterprise Consortium

7. 著者（企業・団体名順）
版
第1.0版(2019年度WG2)

所属企業・団体名

部署名

⽒名

株式会社中電シーティーアイ

クラウド運営グループ

平林

義博

株式会社中電シーティーアイ

クラウド運営グループ

森下

陽平

Page 29 of 29