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

WG2活動報告書
異種DBMSからPostgreSQLへの移行ガイド

PostgreSQL Enterprise Consortium

目次目次
1. 改訂履歴
2. ライセンス3. はじめに3.1. PostgreSQLエンタープライズコンソーシアムとWG2について
3.2. 本資料の概要と目的
4. 成果物一覧
5. 成果物の活用場面
5.1. システム移行手順
5.2. システム移行手順と成果物のマッピング

Page 2 of 92
456667888

PostgreSQL Enterprise Consortium

Page 3 of 9

PostgreSQL Enterprise Consortium

1. 改訂履歴
版

改訂日

変更内容

1.0

2013/04/22 新規作成

2.0

2014/03/07 2013 年度成果物の説明を追加。

3.0

2016/04/11 2015 年度成果物の説明を追加。成果物の活用場面を整理。

4.0

2017/06/20 2016 年度成果物の説明を追加。

Page 4 of 9

PostgreSQL Enterprise Consortium

2. ライセンス
本作品はCC-B Yライセンスによって許諾されています。 ライセンスの内容を知りたい方は こちら でご確認ください。 文書の内容、表記に関する誤り、ご要望、感想等につきましては、PG ECo n s のサイト を通じてお寄せいただきますようお願いいたします。

Eclip se は、Eclip se Fo u n datio n In c の米国、およびその他の国における商標もしくは登録商標です。
IB M およびDB 2 は、世界の多くの国で登録された In tern atio n al B u sin ess Mach in es Co rp o ratio n の商標です。
In tel 、インテルおよびXeo n は、米国およびその他の国における In tel Co rp o ratio n の商標です。
Java は、O racle Co rp o ratio n 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
Lin u x は、Lin u s To rvalds 氏の日本およびその他の国における登録商標または商標です。
Red Hat およびSh ado w man lo go は、米国およびその他の国におけるRed Hat,In c. の商標または登録商標です。
Micro so ft 、W in do w s Server 、SQ L Server 、米国 Micro so ft Co rp o ratio n の米国及びその他の国における登録商標または商標です。
MySQ L は、O racle Co rp o ratio n 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
O racle は、O racle Co rp o ratio n 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
Po stgreSQ L は、Po stgreSQ L Co mmu n ity Asso ciatio n o f Can ada のカナダにおける登録商標およびその他の国における商標です。
W in do w s は米国 Micro so ft Co rp o ratio n の米国およびその他の国における登録商標です。
TPC, TPC B en ch mark, TPC-B , TPC-C, TPC-E, tp mC, TPC-H, TPC-DS, Q p h H は米国Tran sactio n Pro cessin g Perfo rman ce Co u n cil の商標です。
その他、本資料に記載されている社名及び商品名はそれぞれ各社が 商標または登録商標として使用している場合があります 。

Page 5 of 9

PostgreSQL Enterprise Consortium

3. はじめに3.1. PostgreSQLエンタープライズコンソーシアムとWG2についてエンタープライズ領域におけるPo stgreSQ L の普及を目的として 2012 年4 月に設立された Po stgreSQ L エンタープライズ・コンソーシアム（以降PG ECo n s ）では、技術部会におけるPo stgreSQ L の普及に対する課題の検討を通じて活動テーマを挙げ、その中から具体的な活動を行うため３つのワーキング・グループを設立しました。

W G 1 （新技術検証ワーキンググループ ※性能検証ワーキンググループから改名）
W G 2 （移行ワーキンググループ）
W G 3 （課題検討ワーキンググループ ※設計運用ワーキンググループから改名）
W G 2 では、「異種DB MS から Po stgreSQ L への移行」をテーマとして調査・検証を行い、収集した技術ノウハウを成果として取り纏めた資料を公開しています。
2016 年度のW G 2 では、以下のテーマについて活動を行いました。
異種DB MS から Po stgreSQ L へ移行する際の移行作業コストを把握
異種DB MS から Po stgreSQ L へ移行する際の移行作業コストを把握をするための情報提供を目的とし、2016 年度は特に作業コストが高い「データベースオブジェクトの移行」をターゲットに整理しています。

3.2. 本資料の概要と目的
W G 2 では、移行という広範囲に及ぶ技術内容を取り扱っているために、毎年度ごとに対象テーマを選定して活動してきました。このため、W G 2 の成果物は発足から現在に至るまでの成果の積み上げで成り立っています。
本資料は、読者の方が必要な情報を取り出すための索引として、以下のように構成しています。

W G 2 成果物の一覧 各成果物の概要と活動年度について一覧化しています。
W G 2 成果物の活用場面 各成果物の活用場面をイメージして頂くために、一般的なシステム移行手順を提示した上で、各タスクとW G 2 成果物の関係を表現しています。

Page 6 of 9

PostgreSQL Enterprise Consortium

4. 成果物一覧
W G 2 では異種DB MS から Po stgreSQ L への移行作業に纏わる内容について、既存テーマの掘り下げや見直し、新規テーマの検討した活動内容を以下の成果物としてまとめています。
表 4.1 W G 2 の成果物一覧
項番

成果物名

概要

活動年度1

DB 移行フレームワーク編

異種DB MS からの移行とは具体的に何を行うのかを紹介します。
DB MS の移行作業において一般的に発生すると考えられる作業工程を定義し、各工程における検討結果をベースとして移行可否判断の手がかりとなる情報を提供します。

2012
2013

2

システム構成調査編

DB MS の代表的なシステム構成とその特徴を挙げ、Po stgreSQ L 移行時に採用可能な構成を紹介し

2012

ます。

3

異種DB 間連携調査編

異種 DB MS で稼動する既存システムとの連携を想定し、異種DB MS とPo stgreSQ L の連携について、実現方法や移行前後における機能差などを紹介します。

4

スキーマ移行調査編

Po stgreSQ L へスキーマを移行する際に注意すべき点を調査し、異種DB MS とPo stgreSQ L 間における 2012
DDL 仕様の相違点や書き換えが必要なDDL の変換方法を紹介します。

5

データ移行調査および実践編

異種DB MS から Po stgreSQ L へデータの移行するために必要となるデータ抽出（ Extract ）、変換（ Tran sfo rm ）、およびPo stgreSQ L への書き出し（ Lo ad ）を中心に紹介します。また、本文書には実際に DB 移行作業を実施したレポートが含まれます。

2012

データ移行
文字コード変換編

異種DB MS から Po stgreSQ L へのデータ移行に関して、文字コード変換をともなうマルチバイトコードの移行について事前に判断するための情報を紹介します。

2013

6

ストアドプロシージャ移行調査編

異種DB MS とPo stgreSQ L のストアドプロシージャの仕様の差異から、Po stgreSQ L へストアドプロシー
ジャを移行する際に注意すべき点について紹介します。

2012
2013

7

アプリケーション移行
調査編

DB 移行の際、DB MS 接続用ドライバやエラーハンドリング、トランザクション制御方法の違いなどアプリ

2012

アプリケーション移行
実践編

O racle を利用するオープンソースのソフトウェアをテーマとして Po stgreSQ L へのDB マイグレーション作業を 2012

SQ L 移行

異種DB MS とPo stgreSQ L が対応しているSQ L の差異および、異種DB MS から Po stgreSQ L へのSQ L
文の書き換え方針について、DML を中心に紹介します。

2012

組み込み関数移行
調査編

Po stgreSQ L の関数の互換性を調査し、DB MS 毎の組み込み関数実装の有無や書き換えが必要な

2012
2015

11

チューニング編

異種DB MS からの移行の際、移行元システムで定義されていた性能要件や性能関連の状態、チューニングをポイントを確認して Po stgreSQ L 構築に反映したり、Po stgreSQ L 移行時に注意が必要なポイントを紹介します。

2013

12

バージョンアップ編

バージョンアップ編 Po stgreSQ L は毎年メジャーバージョンアップを行っており、新たに追加された機能を利用するには適切な手順でバージョンアップを行う必要があります。バージョンアップ編では、現在利用中のPo stgreSQ L をバージョンアップする際に使用するツールや操作方法をご紹介します。

2013

13

試験編

任意のアプリケーションが利用するDB MS を異種DB MS から Po stgreSQ L に移行した際に、移行したデータベースやアプリケーション等の移行結果の妥当性を確認する試験についてご紹介します。

2014

14

DB 選定基準編

Po stgreSQ L を企業情報システムのDB MS として選定する際の基準となる情報を纏めたものです。本来DB MS が備えるべき機能、サポートツール、コスト面、市場性といった一般的な視点で検討しています。

2015

15

DB 移行開発見積り編

異種DB MS から Po stgreSQ L へ移行する際の移行作業コストを把握をするための情報をご紹介します。

2016

89

調査編

102012

ケーション側で意識すべき内容について紹介します。
実際に行い、作業のポイントや移行作業の負荷などを紹介します。

組み込み関数の変換方法を紹介します。

Page 7 of 9

PostgreSQL Enterprise Consortium

5. 成果物の活用場面
5.1. システム移行手順
企業情報システムの移行は、移行構想、移行計画、移行設計、移行開発、移行テスト、本番切替といった手順を踏んだ上で、本番運用に入ります。また各移行手順には、 図 5.1 上段に示すようなタスクを含むのが一般的です。W G 2 では異種DB MS から Po stgreSQ L へ移行する際の検討事項や技術情報として、 図 5.1 の下段に示すような領域で活動を進めています。

図 5.1 業務システムの一般的な移行手順・タスク（上段）とW G 2 の活動領域（下段）5.2. システム移行手順と成果物のマッピング
システム移行において活用して頂きたいW G 2 の成果物と、その場面を、移行手順と成果物マッピングで示します。

Page 8 of 9

PostgreSQL Enterprise Consortium
表 5.1 移行手順とW G 2 成果物のマッピング
移行手順

WG2 活動領域

移行構想

要件適合性調査

WG2 成果物の活用内容
Po stgreSQ L を選定する上での基本的な判断材料
・技術要件（ DB MS の一般的な機能）

WG2 成果物ＤＢ選定基準編・サポートツール
・コスト・市場価値 など

Po stgreSQ L が取ることのできるシステム構成

システム構成調査編

・シングルサーバ
・ HA クラスタ
・データベースレプリケーション
・マルチマスタ負荷分散クラスタ
要件実現性検証

Po stgreSQ L の特徴的な機能についての技術検証
・ G IS （地理情報システム）・ FDW （外部データラッパ）

ＤＢ選定基準編

異種DB MS とPo stgreSQ L の連携検証

異種DB 間連携調査編| ・ xDB Rep licatio n Server （商用ソフトウェア）
業務プログラムの移行検証
Po stgreSQ L 未対応アプリケーションを使った移行検証

アプリケーション移行実践編

異種DB MS から Po stgreSQ L への移行作業項目

DB 移行フレームワーク編

異種DB MS から Po stgreSQ L への移行作業コストの把握

DB 移行開発見積り編

新物理DB 設計

異種DB MS から Po stgreSQ L へのスキーマ定義移行
・データ型・テーブル定義
・制約・索引 ほか

スキーマ移行調査編

移行プログラム設計

異種DB MS から Po stgreSQ L へのデータ移行PG 設計・文字コードのサポート範囲
・データ型の対比
・文字コード変換、NU LL 値の対応 ほか

データ移行調査および実践編
データ移行・文字コード変換編

移行開発

業務プログラム変換

業務プログラムの変換
・ Po stgreSQ L への接続方法
・ SQ L の変換
・組み込み関数の変換
・ストアドプロシジャの変換

アプリケーション移行調査編
SQ L 移行調査編
組み込み関数移行調査編
ストアドプロシージャ移行調査編

移行テスト

データ移行テスト

異種DB MS から Po stgreSQ L へのデータ移行テスト
・スキーマ移行
・データ移行・現新比較・移行プログラムのチューニング

試験編
チューニング編

チューニングPo stgreSQ L 環境におけるチューニング方法
・業務プログラムのSQ L チューニング

チューニング編
スキーマ移行調査編

移行計画

移行設計

DB 移行W B S 作成

・インデックス調整
・ DB MS パラメタチューニング
切替・運用

バージョンアップPo stgreSQ L のDB MS バージョンアップ手順

Page 9 of 9

バージョンアップ編