ビジネス課題への解決策(アイディア)と、新たな発想(+α)が見つかるIT情報メディア

Menu
  1. TOP
  2. データ活用
  3. Amazon RDSへのデータ移行(3)番外:PostgreSQL編+Oracle情報

Amazon RDSへのデータ移行(3)番外:PostgreSQL編+Oracle情報

  • LINEで送る
  • このエントリーをはてなブックマークに追加

RDS(Relational Database Service)移行顛末記(笑)、最終回は、PostgreSQLと、オマケにOracle情報です。
今回の記事はAmazon Relational Database Service(AmazonRDS)へのデータ移行(2)MySQL編の続編です。

PostgreSQL

Windowsで稼働中のPostgreSQLからRDSのPostgreSQLへデータを渡すのには非常に苦労します。
まず、PosygreSQLは共通仕様として、DBがシフトJISをサポートしていません。

Amazon Relational Database Service(Amazon RDS)へのデータ移行(3)番外:PostgreSQL編+Oracle情報

MySQLと同様に、PostgreSQLもINSERT文の入ったエクスポートを生成するのですが、Windowsでエクスポートすると、エクスポートファイルはシフトJISで生成されます。
しかし、スクリプト内の書かれたコードはUTF8です?

この時点で???なのですが、EC2上のWindowsクライアントからRDSのLinuxサーバーのPostgreSQLへデータを入れようとすると、エラーになってしまいます。
実際、ファイルをUTF-8に変換しても、スクリプト上のコード指定をSJISに変更しても、どの組み合わせでも動作しません。

 Amazon Relational Database Service(Amazon RDS)へのデータ移行(3)番外:PostgreSQL編+Oracle情報

MySQLの時も同様な悩みがあったのですが、我々のテストしたい製品は「ETLツール」なので、製品を使えばもちろん移行は可能です。
しかし、そのETLを検証するテストDBなので、バイナリ的にエラーになるデータとか、文字コードとして微妙なデータも含んでいますから(それが原因かもしれませんが)そのまま移送できなければテストにならないのです。

結局あきらめて、Windows上にPostgreSQLサーバーを立てました。

所詮PostgreSQLはLinux/Unixの世界のDBということですね。

ちょっと悔しいですが、仕方ありません。時間ができたらもう少し突っ込んで検証したいと思います。

RDS Oracle

RDS上でのOracleは、何の問題もなく移行できたと前回記事に書きました。
しかし、実際には大ハマリしてしまいました。

ODBCはAPI上からINSERTやUPDATEのレコードデータを配列で渡すことができます。我々の製品はこのような配列渡しをしています。
JDBCだと常識のようですが、ODBCでこれをやっているユーザーは少ないのではないでしょうか。

SQLExecuteのたびに配列サイズが増えていくようなコールをすると、ODBC内でメモリ破壊があるようで、INSERTやUPDATEのデータが途中で切れたり、全く反映されなかったりするのです。
この現象は12.1.0.1以前で発生し、12.1.0.2では修正されており、11g以前では発生していなかったのですが、Windows Server 2012で11gを動作させると必ず発生するという事がわかりました。

ところが、よく調べてみると、OracleはWindows Server 2012上での11gの動作をサポートしていません。
要は、私がWindows Server 2012にOracle 11g Clientをインストールしたのが悪かったのです。
でも、2012 Server上で11gをインストールしても「それはダメ」と言ってくれなかったのに・・・

・・・教訓、Windows Server 2012でOracle 11gを動作させると酷い目にあうと言うことです。

追加情報:Oracle 12.1.0.2で修正された障害は、11gでは直っていないようです。Windows Server 2008では出にくいのですが、Windows Server 2012ではOS側の動作変更で出やすくなっているようです。
これからプログラムを作って障害報告しますが、承認されて直るのはかなり先になるでしょう。

追記:関連コンテンツ

Amazon Relational Database Service(Amazon RDS)へのデータ移行(1)SQL Server編

Amazon Relational Database Service(AmazonRDS)へのデータ移行(2)MySQL編

追記:Waha! Transformer 製品サイトの関連コンテンツ

Waha! Transformerの対応データソース

API とは 2025年の崖と未来をつなぐ架け橋

データの抽出や加工、連携にお悩みではありませんか?

20年以上の実績に裏打ちされた信頼のデータ連携ツール「Waha! Transformer」で、自社に眠るデータを有効活用。まずは無料のハンズオンセミナーや体験版で効果を実感していただけます。

> 純国産ETLツール「Waha! Transformer」

Waha! Transformer

メールマガジンの登録はこちらから
メルマガ登録 お問い合わせ