1. 改訂履歴

改訂日 変更内容
1.0 2013/04/22 新規作成
2.0 2014/03/07 2013年度成果物の説明を追加。
3.0 2016/04/11 2015年度成果物の説明を追加。成果物の活用場面を整理。
4.0 2017/06/20 2016年度成果物の説明を追加。

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-B, TPC-C, TPC-E, tpmC, TPC-H, TPC-DS, QphHは米国Transaction Processing Performance Councilの商標です。
  • その他、本資料に記載されている社名及び商品名はそれぞれ各社が 商標または登録商標として使用している場合があります 。

3. はじめに

3.1. PostgreSQLエンタープライズコンソーシアムとWG2について

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

  • WG1(新技術検証ワーキンググループ ※性能検証ワーキンググループから改名)
  • WG2(移行ワーキンググループ)
  • WG3(課題検討ワーキンググループ ※設計運用ワーキンググループから改名)

WG2では、「異種DBMSからPostgreSQLへの移行」をテーマとして調査・検証を行い、収集した技術ノウハウを成果として取り纏めた資料を公開しています。

2016年度のWG2では、以下のテーマについて活動を行いました。

  • 異種DBMSからPostgreSQLへ移行する際の移行作業コストを把握

異種DBMSからPostgreSQLへ移行する際の移行作業コストを把握をするための情報提供を目的とし、2016年度は特に作業コストが高い「データベースオブジェクトの移行」をターゲットに整理しています。

3.2. 本資料の概要と目的

WG2では、移行という広範囲に及ぶ技術内容を取り扱っているために、毎年度ごとに対象テーマを選定して活動してきました。このため、WG2の成果物は発足から現在に至るまでの成果の積み上げで成り立っています。

本資料は、読者の方が必要な情報を取り出すための索引として、以下のように構成しています。

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

4. 成果物一覧

WG2では異種DBMSからPostgreSQLへの移行作業に纏わる内容について、既存テーマの掘り下げや見直し、新規テーマの検討した活動内容を以下の成果物としてまとめています。

表 4.1 WG2の成果物一覧
項番 成果物名 概要 活動年度
1 DB移行フレームワーク編
異種DBMSからの移行とは具体的に何を行うのかを紹介します。
DBMSの移行作業において一般的に発生すると考えられる作業工程を定義し、各工程における検討結果をベースとして移行可否判断の手がかりとなる情報を提供します。
2012
2013
2 システム構成調査編 DBMSの代表的なシステム構成とその特徴を挙げ、PostgreSQL移行時に採用可能な構成を紹介します。 2012
3 異種DB間連携調査編 異種 DBMSで稼動する既存システムとの連携を想定し、異種DBMSとPostgreSQL の連携について、実現方法や移行前後における機能差などを紹介します。 2012
4 スキーマ移行調査編 PostgreSQLへスキーマを移行する際に注意すべき点を調査し、異種DBMSとPostgreSQL間におけるDDL仕様の相違点や書き換えが必要なDDLの変換方法を紹介します。 2012
5
データ移行
調査および実践編
異種DBMSからPostgreSQLへデータの移行するために必要となるデータ抽出(Extract)、変換(Transform)、およびPostgreSQLへの書き出し(Load)を中心に紹介します。また、本文書には実際にDB移行作業を実施したレポートが含まれます。 2012
 
データ移行
文字コード変換編
異種DBMSからPostgreSQLへのデータ移行に関して、文字コード変換をともなうマルチバイトコードの移行について事前に判断するための情報を紹介します。 2013
6
ストアドプロシージャ移行
調査編
異種DBMSとPostgreSQLのストアドプロシージャの仕様の差異から、PostgreSQLへストアドプロシージャを移行する際に注意すべき点について紹介します。
2012
2013
7
アプリケーション移行
調査編
DB移行の際、DBMS接続用ドライバやエラーハンドリング、トランザクション制御方法の違いなどアプリケーション側で意識すべき内容について紹介します。 2012
8
アプリケーション移行
実践編
Oracleを利用するオープンソースのソフトウェアをテーマとしてPostgreSQLへのDB マイグレーション作業を実際に行い、作業のポイントや移行作業の負荷などを紹介します。 2012
9
SQL移行
調査編
異種DBMSとPostgreSQLが対応しているSQLの差異および、異種DBMSからPostgreSQLへのSQL文の書き換え方針について、DMLを中心に紹介します。 2012
10
組み込み関数移行
調査編
PostgreSQLの関数の互換性を調査し、DBMS毎の組み込み関数実装の有無や書き換えが必要な組み込み関数の変換方法を紹介します。
2012
2015
11 チューニング編 異種DBMSからの移行の際、移行元システムで定義されていた性能要件や性能関連の状態、チューニングをポイントを確認してPostgreSQL構築に反映したり、PostgreSQL移行時に注意が必要なポイントを紹介します。 2013
12 バージョンアップ編 バージョンアップ編 PostgreSQLは毎年メジャーバージョンアップを行っており、新たに追加された機能を利用するには適切な手順でバージョンアップを行う必要があります。バージョンアップ編では、現在利用中のPostgreSQLをバージョンアップする際に使用するツールや操作方法をご紹介します。 2013
13 試験編 任意のアプリケーションが利用するDBMSを異種DBMSからPostgreSQLに移行した際に、移行したデータベースやアプリケーション等の移行結果の妥当性を確認する試験についてご紹介します。 2014
14 DB選定基準編 PostgreSQLを企業情報システムのDBMSとして選定する際の基準となる情報を纏めたものです。本来DBMSが備えるべき機能、サポートツール、コスト面、市場性といった一般的な視点で検討しています。 2015
15 DB移行開発見積り編 異種DBMSからPostgreSQLへ移行する際の移行作業コストを把握をするための情報をご紹介します。 2016

5. 成果物の活用場面

5.1. システム移行手順

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

_images/WG2-workarea.png

図 5.1 業務システムの一般的な移行手順・タスク(上段)とWG2の活動領域(下段)

5.2. システム移行手順と成果物のマッピング

システム移行において活用して頂きたいWG2の成果物と、その場面を、移行手順と成果物マッピングで示します。

表 5.1 移行手順とWG2成果物のマッピング
移行手順 WG2活動領域 WG2成果物の活用内容 WG2成果物
移行構想 要件適合性調査
PostgreSQLを選定する上での基本的な判断材料
・技術要件(DBMSの一般的な機能)
・サポートツール
・コスト
・市場価値 など
DB選定基準編
   
PostgreSQLが取ることのできるシステム構成
・シングルサーバ
・HAクラスタ
・データベースレプリケーション
・マルチマスタ負荷分散クラスタ
システム構成調査編
  要件実現性検証
PostgreSQLの特徴的な機能についての技術検証
・GIS(地理情報システム)
・FDW(外部データラッパ)
DB選定基準編
   
異種DBMSとPostgreSQLの連携検証

|・xDB Replication Server(商用ソフトウェア)

異種DB間連携調査編
   
業務プログラムの移行検証
PostgreSQL未対応アプリケーションを使った移行検証
アプリケーション移行実践編
移行計画 DB移行WBS作成 異種DBMSからPostgreSQLへの移行作業項目 DB移行フレームワーク編
    異種DBMSからPostgreSQLへの移行作業コストの把握 DB移行開発見積り編
移行設計 新物理DB設計
異種DBMSからPostgreSQLへのスキーマ定義移行
・データ型
・テーブル定義
・制約
・索引 ほか
スキーマ移行調査編
  移行プログラム設計
異種DBMSからPostgreSQLへのデータ移行PG設計
・文字コードのサポート範囲
・データ型の対比
・文字コード変換、NULL値の対応 ほか
データ移行調査および実践編
データ移行・文字コード変換編
移行開発 業務プログラム変換
業務プログラムの変換
・PostgreSQLへの接続方法
・SQLの変換
・組み込み関数の変換
・ストアドプロシジャの変換
アプリケーション移行調査編
SQL移行調査編
組み込み関数移行調査編
ストアドプロシージャ移行調査編
移行テスト データ移行テスト
異種DBMSからPostgreSQLへのデータ移行テスト
・スキーマ移行
・データ移行
・現新比較
・移行プログラムのチューニング
試験編
チューニング編
  チューニング
PostgreSQL環境におけるチューニング方法
・業務プログラムのSQLチューニング
・インデックス調整
・DBMSパラメタチューニング
チューニング編
スキーマ移行調査編
切替・運用 バージョンアップ PostgreSQLのDBMSバージョンアップ手順 バージョンアップ編