こんにちは、CData Software Japanの大川です。今回は弊社Sync製品の同期先としてOracle Autonomous Databaseを利用する方法について紹介します。
はじめに
弊社ではMySQLやSQL Serverなど様々なRDBMSやkintoneやSalesforceなどのSaaS上のデータをAmazon RedshiftやGoogle BigQueryといったクラウドDWHやPostgreSQL等のRDBMS等へ同期(レプリケーション)することのできるSyncという製品を取り扱っております。
これまでSyncのデータ同期先としてもちろんOracle Databaseをサポートしていましたが、今回Oracle Autonomous Databaseを同期先としてご利用できるようになりました!
#なお、データソース(同期元)としては以前からSyncに付属のOCIドライバにてサポートされております。
現時点(2021/5/31)で弊社Webサイトからダウンロード可能なSyncでは未サポートですが、Sync Ver.21.0.8179.0 以降でご利用いただけますので、試用版を試してみたい方、また既にご利用中のお客様でお使いになりたい方は、お気軽に以下のサポートフォームより弊社テクニカルサポートへお問い合わせください。対応版のビルドをご提供させていただきます。
今回は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」(執筆時点)のファイルがインストーラ付きでトラブルが少ないです。
ダウンロードしたファイルを展開して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) をダウンロードしてください。
ダウンロードしたファイルを展開し、その中の以下のファイルを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日間機能無制限で試用が可能です。是非ダウンロードして実際の動作をお試しください!