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

by 大川智久 | 2022年06月01日

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

はじめに

弊社ではMySQLやSQL 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版によって手順が異なりますのでそれぞれ手順を解説します。

なお、Sync 22.0.8424以降ではWindows版でもJava版がデフォルトの配布形式となっています。管理画面で「設定」→「ライセンス」→「Version」で「Cross-Platform Edition」という表記となっている場合はWindowsをご利用の場合でもJava版が動作していますので、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のインストールディレクトリ(Linuxの場合は「/opt/sync」などのインストールディレクトリ、Windowsの場合は「C:\ProgramData\CData\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

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。