はじめてのPostgreSQL移行
2018年度活動成果報告
PostgreSQLエンタープライズ・コンソーシアム
WG2

アジェンダ 活動メンバー 過去の活動紹介
 2017年度までの移行WG(WG2)活動内容
 「異種DBMSからPostgreSQLへの移行ガイド」の構成

 2018年度活動紹介
 2018年度の活動
 移行ガイドブック紹介

 まとめ
 2018年度成果
 2018年度活動を振り返って

 今後の活動について
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

2

活動メンバー 2018年度は下記5社にて活動
 日本電気株式会社

 日本電子計算株式会社
 富士通株式会社（主査） 富士通エフ・アイ・ピー株式会社
 三菱電機株式会社

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

3

過去の活動紹介

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

4

2017年度までの移行WG（WG2）活動内容
活動テーマ：異種DBMSからPostgreSQLへの移行•

課題認識

異種DBMSシステムをPostgreSQLへ移行するプロセスが確立していないことが、普及を妨げる大きな障壁と認識• 移行作業をどのように進めればよいかがわからない。
• 初期段階で移行に必要なトータルコストを算出できない。
• 過去の経験則や点在するノウハウに依存しているのが現状

活動目標• 異種DBMSからPostgreSQLへの移行を検討する際のガイドラインを提示する。
（難易度判断、留意すべき事項、移行手順）

成果物• 「異種DBMSからPostgreSQLへの移行ガイド」を作成
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

5

「異種DBMSからPostgreSQLへの移行ガイド」の構成


移行作業の全体像を解説









システム構成調査編 (29ページ)
異種DB間連携調査編 (18ページ)
スキーマ移行調査編 (25ページ+別表)
データ移行・文字コード変換編 (49ページ)
ストアドプロシージャ移行調査編(23ページ)
アプリケーション移行調査編 (10ページ)
SQL移行調査編 (20ページ+別表)
組み込み関数移行調査編(30ページ+別表)
チューニング編 (30ページ+別表)
バージョンアップ編 (39ページ+別表)
試験編 (71ページ+別表)

移行作業を試行する検証DB移行フレームワーク編 (21ページ)
DB移行開発見積り編 (26ページ)

アセスメント

移行作業に含まれる作業内容、手順の調査




DB選定

データ移行調査および実践編 (60ページ+別表)
アプリケーション移行実践編 (25ページ+別表)

移行判定

システム構成移行

データ移行
アプリケーション移行

運用移行

移行試験
移行評価

チューニング

システム切り替え

データ移行

DB選定基準編 (43ページ+別表)

本編のみでも500ページ越え

異種DB連携検討

定義移行

DBMSに求められる要件整理
中断

移行プロセス全体像

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

6

2018年度活動紹介

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

72018年度活動当初
 取り組みたいテーマの提案
 宣言的パーティショニング プロシージャ 運用
 アプリケーション移行調査編の更新
 DB移行開発見積もり編の更新
・・・

 DB移行ガイドブック作成

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

読む側の視点から考えた新しい取り組み&他のテーマも含んだ取り組みにできる8なぜ「移行ガイドブック」が必要なのか？
OSS採用を躊躇してしまう人たち 安定志向

商用DBの知名度や実績があるから、上司や顧客に説明しやすい、受けが良い 開発/運用ノウハウもあるし、技術情報や技術者も多くて安心だ ライセンスは高いけど、開発者は関係ないし
 何かあってもDBベンダーがいるから安心だ 利用推進志向(使ってみたい派)

PostgreSQLを採用したいが開発や運用技術をどう吸収していけば良いのか？
 既存の商用DBから移行できるのか？移行コストはどのくらいかかるのか？
 技術的な課題や運用障害の場合にはどうしたら良いのか？
・・・・・・・などなど、色んな意見があります。
しかし、商用と遜色ない「PostgreSQL」を積極的に採用することで、不要になるライセンス費用を設備費や開発費などの様々なものへ投資できる

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

9

なぜ「移行ガイドブック」が必要なのか？
OSS採用を躊躇してしまう人たちに向けて、商用利用するための足掛かりとなるような情報を発信したい

PostgreSQLへ興味を持ってくれた人への入り口になるようなものを作りたい

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

10

2018年度の活動
活動テーマ：異種DBMSからPostgreSQLへの移行

課題認識• 過去の成果物は500ページもあり、初めて移行を検討する技術者にとってどれを見ていいのかわからない• 過去の成果物からは移行作業の全体像がわかりづらい

活動目標• PostgreSQLへの移行を検討している技術者が、簡単に移行の概要をつかめる入門書を用意しよう

取り組み• 技術者視点で、DB移行時に知っておくべきことは何か検討• 入門者向けの「移行ガイドブック」作成
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

11

移行ガイドブック全体像
 目次

はじめに
4. PostgreSQL紹介
5. データベース移行作業とは
6. アセスメント
7. 移行作業
8. 運用
3.

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

12

3章 はじめに & 4章 PostgreSQL紹介
 3章

はじめに

 資料の位置づけやコンセプトを説明
 データベース移行の全体像をつかめる資料 極力、移行元データベースやバージョンに左右されない形で説明 4章

PostgreSQL紹介

 PostgreSQL入門者向けの説明
 PostgreSQLとは何か ライセンスや導入方法
 主要な周辺ツールの紹介

分類

ツール例

移行ora2pg、Orafce

性能

pg_dbms_stats、pg_hint_plan

運用・監視pgBadger、pg_monz、pg_repack、pg_rman、pg_statsinfo

その他

pg_bigm、pg_bulkload、pgpool-II、PostGIS
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

13

5章 データベース移行作業とは
 データベース移行の考え方と進め方を説明 データベース移行の考え方
 「現状(As-Is)」と移行後の「あるべき姿(To-Be)」に対するFit&Gapを分析し、課題を明確化
 課題に対して、あるべき姿に近づけるための「現実的解(Can-Be)」を見つけることが重要

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

14

5章 データベース移行作業とは
 データベース移行の考え方と進め方を説明 データベース移行フロー

移行工程

目的アセスメント

移行目的の達成可能性を確認し、データベース移行の可否を判断する

スキーマ移行

テーブル、ビュー、インデックス、ストアド・プロシージャなどのデータベース・オブジェクトを移行するアプリケーション移行

データベース変更によるAPI、SQL文などの差異を解消する

データ移行

移行元DB上のデータを移行する

移行検証

データベース変更による影響確認を行う

運用

データベース変更によるシステム運用保守を新たに構成する
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

15

6章 アセスメント
 アセスメントとは
 現行環境のSQLやアプリケーションについて以下を調査
 移行が必要な個所
 どういった非互換があるのか 移行コストはどのくらいかかるか 非互換調査
 主要な非互換や最低限知っておくべき非互換を掲載
 各データベース・オブジェクトについて、PostgreSQLで使用可能か よく使用されるデータ型/組み込み関数/SQL文/演算子などの対応表
 PL/SQLをPL/pgSQLに移行する場合に気を付けること

 コスト見積もり 移行時にどのような項目にコストがかかるか
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

16

7章 移行作業
 具体的なデータベース移行作業の説明
 スキーマ/アプリケーション/データの移行はどう実施するのか スキーマ移行
 スキーマ内のオブジェクト定義(テーブルなど)を移行すること
 移行の流れ
1.

2.
3.

4.

移行元DBからオブジェクト定義を抽出
定義の変換
移行先DBにオブジェクトを作成
正しく移行できたか確認

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

17

7章 移行作業
 アプリケーション移行
 アプリケーションのデータベース利用形態は大まかに3種類①②③

アプリケーションの実行形式
アプリケーションの開発言語
開発/保守運用支援ツール

 これらをPostgreSQLに対応するものに切り替える
PostgreSQL用ドライバへ切り替え

PostgreSQLに対応しているものに切り替え

ECPGに切り替え
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

18

7章 移行作業
 データ移行 移行元DBに格納されているデータを移行先DBに取り込む

こと
 データ型の仕様や文字コードなどに差異があるため、データ変換が必要となることがある 移行の流れ1.
2.
3.
4.

移行元DBからデータを抽出
データの変換移行先DBへ取り込み正しく移行できたか確認

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

19

8章 運用 運用時に一般的に必要とされるタスクについて説明
 考えなければならないタスクは多くがOracleと同じタスク

OraclePostgreSQL

バックアップ

○

○

索引の保守

○

○

データベースのVACUUM

－

○

ログの管理

○

○

データベースの監視○○

パフォーマンス診断○○

アップグレード○○

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

20

8章 運用 バックアップ PostgreSQLには3種類のバックアップ方式がある
 SQLによるダンプ
 ファイルシステムレベルのバックアップ
 継続的アーカイブ

 バックアップ対象やリカバリ範囲、DB停止の要不要の違いがあるため、要件によって選択する方式が異なる
要件選択する方式

最新のトランザクションまたは任意の時点の状態まで復元

継続的アーカイブバックアップ時点に復元全ての方式で可能異なるバージョンへの移行

SQLによるダンプスキーマ単位、テーブル単位など部分的なバックアップと復元

SQLによるダンプ 方式ごとのメリット・デメリットについて
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

21

8章 運用 索引の保守 「不要な索引の検出と削除」、「断片化された索引の再構築」の対応が必要
対応

概要

不要な索引の検出と削除• 情報スキーマで確認できる、使用回数や読み込みブロック数などを定期的に監視。
• 一定期間使用されていない索引がある場合は削除を検討する。

断片化された索引の再構築• 追加モジュールのpgstattupleを利用して断片化を監視。
• 必要性があれば再構築を実施。索引の再構築
方法は複数あり、それぞれメリット・デメリットがあるため、運用要件にあった方法を選択する。
• 監視による運用コスト増が問題となる場合は監視を行わずに定期的に再構築する選択肢もある。

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

22

2018年度成果
 入門者向けの「移行ガイドブック」公開中
 移行作業全体の概要を掲載

 39ページ(表紙など含む)で気軽に読める
https://pgecons-sec-tech.github.io/tech-report/Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

23

2018年度活動を振り返って
 成果
 単年度で各社協力して当初主要目的のガイドブック公開ができた。
 移行作業の全体像が整理できた。社内でPostgreSQL移行を検討する際に説明しやすくなった。
 これから移行を始めたいという人に紹介しやすい資料ができた。
 思ったよりコンパクトに完成させることができた。
 移行全体について議論することができた。
 反省
 マネージャ層にも移行を理解してもらう内容があまり盛り込めなかった。
 過去のドキュメント最新化も検討していたが着手できず。
 新しく追加された技術(パーティショニング、プロシージャなど）に対応した検討まで行えなかった。
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

24

今後の活動について
 過去成果物の最新バージョン対応 メンテナンスが必要なドキュメントは継続して更新、公開したい PostgreSQLの新機能(ストアドプロシージャなど)の移行観点での評価
 新機能実装に伴い、移行面で改善される部分と考慮を要する部分を調査し、より安全な移行計画が立案できるような活動をしたい

移行で検討してほしいテーマがあればアンケートに記入をお願いします。
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

25

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

26