CData Software Blog

クラウド連携のCData Software の技術ブログです。

Syncの同期先にOracle Autonomous Databaseをご利用いただけるようになりました!

こんにちは、CData Software Japanの大川です。今回は弊社Sync製品の同期先としてOracle Autonomous Databaseを利用する方法について紹介します。

はじめに

弊社ではMySQLSQL Serverなど様々なRDBMSやkintoneやSalesforceなどのSaaS上のデータをAmazon RedshiftやGoogle BigQueryといったクラウドDWHやPostgreSQL等のRDBMS等へ同期(レプリケーション)することのできるSyncという製品を取り扱っております。

www.cdata.com

これまでSyncのデータ同期先としてもちろんOracle Databaseをサポートしていましたが、今回Oracle Autonomous Databaseを同期先としてご利用できるようになりました!

#なお、データソース(同期元)としては以前からSyncに付属のOCIドライバにてサポートされております。

現時点(2021/5/31)で弊社Webサイトからダウンロード可能なSyncでは未サポートですが、Sync Ver.21.0.8179.0 以降でご利用いただけますので、試用版を試してみたい方、また既にご利用中のお客様でお使いになりたい方は、お気軽に以下のサポートフォームより弊社テクニカルサポートへお問い合わせください。対応版のビルドをご提供させていただきます。

www.cdata.com

今回はSyncの同期先としてOracle Autonomous Databaseを登録する手順をご紹介します。

必要なDLL・ライブラリの入手およびインストール

SyncのWindows (.NET) 版およびJava版によって手順が異なりますのでそれぞれ手順を解説します。

Windows (.NET) 版Syncをご利用の場合

既にSyncの同期先としてOracle Databaseをお使いで、同期先の接続のプロバイダークラスに「Oracle.ManagedDataAccess.Client」が使用できている方は本手順は不要です。 新規にSyncをセットアップしたりこれまで同期先にOracle Databaseを使ったことの無い方は、以下のいずれかの手順でSyncからドライバを利用できるよう設定を行ってください。

SyncをインストールしているサーバにOracle DatabaseやOracle Database Clientを既にインストール済みの場合

ORACLE_HOMEフォルダ (「C:\app\oracle\product\19.0.0\client_1」など) の「odp.net\managed\common」フォルダにある「Oracle.ManagedDataAccess.dll」ファイルを、Syncのインストールフォルダ(「C:\Program Files\CData\CData Sync」)の「www\bin」フォルダにコピーし、Syncを再起動してください。

また、システム環境変数ORACLE_HOMEフォルダ、およびその下の「bin」フォルダが設定されていることを確認してください(通常の手順でOracleをインストールしていれば既に設定されているはずです)。

SyncをインストールしているサーバにOracle DatabaseやOracle Database Clientがインストールされていない場合

以下のサイトからODACをダウンロード・インストールしてください。「64-bit ODAC OUI」にある「64-bit ODAC 19.3.1」(執筆時点)のファイルがインストーラ付きでトラブルが少ないです。

www.oracle.com

ダウンロードしたファイルを展開してsetup.exeを実行してインストールし、インストール先の「odp.net\managed\common」フォルダにある「Oracle.ManagedDataAccess.dll」ファイルをSyncのインストールフォルダ(「C:\Program Files\CData\CData Sync」など)の「www\bin」フォルダにコピーし、Syncを再起動してください。

Java版Syncをご利用の場合

以下のページから「Zipped JDBC driver (ojdbc8.jar) and Companion Jars」(ojdbc8-full.tar.gz) をダウンロードしてください。

www.oracle.com

ダウンロードしたファイルを展開し、その中の以下のファイルをSyncのインストールディレクトリ(「/opt/sync」など)の「libs」ディレクトリの中にコピーし、Syncを再起動してください。

  • ojdbc8.jar
  • oraclepki.jar
  • osdt_core.jar
  • osdt_cert.jar

以上で必要なDLL・ライブラリのインストールは完了です。

Syncの同期先接続として追加

それでは実際にSyncの同期先に追加してみましょう。今回はmTLS(クライアント証明書認証あり)で接続しますので、Walletのダウンロードや設定が必要となります。参考までに、TLS接続(クライアント証明書認証なし)であればWallet関連の設定は不要になりますが、これを利用するためにはDB側の設定でACLによる接続元制限が必要になります。

接続情報の確認

Oracle Cloudの同期先のDBの管理画面にて接続に必要な情報を入手しておきます。まずはWalletをダウンロードしておきます。Oracle Cloudの接続したいDBの管理画面で「DB Connection」をクリックします。

表示されたダイアログでまずはWalletファイルをダウンロードしておきます。「Wallet type」に「Instance Wallet」を選択し、「Download wallet」ボタンをクリックします。

秘密鍵を暗号化するためのパスワードを聞かれますので、適当なパスワードを設定して「Download」ボタンをクリックするとWalletのzipファイルがダウンロードされます(ここで設定したパスワードは実はSyncでは使用しません)。

その後、接続したいTNS Nameの「Connection String」の文字列をコピーして控えておきます。

ここまでで接続情報の準備が出来ました。

同期先接続の追加

それではSyncの同期先接続として追加してみましょう。Syncの管理画面の「接続」タブで「同期先」タブを選択して「Oracle」をクリックします(.NET版、Java版共通です)。

以下の画面になりますので、必要な項目を入力します。なお、以下の画面は.NET版ですが、Java版では「プロバイダークラス:Oracle.ManagedDataAccess.Client」の部分が「ドライバークラス:oracle.jdbc.OracleDriver」になっています。設定項目自体は両者で変わりありません。

項目名 設定値
Name 任意の接続名を設定
Connection Type 「Data Source」を選択
User DBのユーザ名を設定
Password DBのパスワードを設定
Data Source 控えておいた「Connection String」の文字列に「MY_WALLET_DIRECTORY」の設定を加えたものを設定。本文の説明を参照。

Data Sourceの設定値が肝となります。まずダウンロードしておいたWalletのzipファイルをSyncのプロセスが参照可能な任意の場所に展開しておきます(今回は「C:\Users\XXX\Wallet_XXX」に展開されたものとします)。そして、そのフォルダ(ディレクトリ)をData Sourceの設定で以下のように指定してください(赤字部分があらかじめ控えておいた「Connection String」の内容に追加する部分です)。

Data Sourceの設定例
(description=(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=XXX.oraclecloud.com))(connect_data=(service_name=XXX_low.adb.oraclecloud.com))(security=(MY_WALLET_DIRECTORY=C:\Users\XXX\Wallet_XXX)(ssl_server_cert_dn="CN = XXX.oraclecloud.com, OU = Oracle ADB XXX, O = Oracle Corporation, L = Redwood City, ST = California, C = US")))

そして「接続のテスト」ボタンをクリックします。以下のように「接続に成功しました。」と表示されれば成功です。「変更を保存」ボタンをクリックして設定を保存してください。

ここで成功の表示が出ない場合は、Walletのファイルが読み込めていない可能性があります。「MY_WALLET_DIRECTORY」で指定したフォルダ(ディレクトリ)がSyncが動作しているプロセスのユーザから参照可能なことを確認してください。

Walletについて

今回ダウンロードしたWalletのzipにはいくつかファイルが格納されていますが、Syncでの接続に必要なのは「cwallet.sso」ファイルのみです。そのため、今回の例では「C:\Users\XXX\Wallet_XXX\cwallet.sso」があれば接続可能となります。Walletの中の他の鍵ファイルはダウンロード時に設定したパスワードで秘密鍵が暗号化されていますが、この「cwallet.sso」ファイルは秘密鍵が暗号化されない状態で格納されているため、秘密鍵のパスワードを入力すること無くクライアント証明書接続ができる、ということになります。

おわりに

本記事ではCData Syncで同期先接続としてOracle Autonomous Databaseを登録する手順をご紹介しました。

弊社Syncは30日間機能無制限で試用が可能です。是非ダウンロードして実際の動作をお試しください!

www.cdata.com