Remote Oracle Database としてAlloyDB のデータにアクセス

Oracle Heterogenous Services を使ってOracle system からAlloyDB にアクセス。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-06-16

この記事で実現できるAlloyDB 連携のシナリオ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

CData ODBC Driver for AlloyDB を使って、ODBC 標準をサポートするあらゆるアプリケーションからデータに連携できます。Oracle Database Gateway for ODBC は、ODBC データソースにリモートOracle データベースとして連携接続できるようにするHeterogeneous Services agent (異種サービスエージェント)です。この記事では、CData ODBC Driver for AlloyDB を使ってAlloyDB からOracle にデータベースリンクを作成する方法、およびSQL*Plus ツールを介してAlloyDB に連携してクエリする方法について説明します。SQL Developer からも、データベースリンクの作成およびクエリの実行ができます。

The DSN configuration window. (Salesforce is shown.)

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. AlloyDB をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにAlloyDB のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてAlloyDB の接続を設定、2.Oracle Database 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとAlloyDB への接続設定

まずは、本記事右側のサイドバーからAlloyDB ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

Oracle ODBC Gateway 互換性のための接続プロパティ

ドライバーには複数の接続プロパティがあり、Oracle データベースと同じようにAlloyDB にアクセスできます。SQL*Plus およびSQL Developer のAlloyDB を扱う場合は、以下のプロパティを設定します。Oracle ODBC Gateway との互換性のため、認証およびその他の必要な接続プロパティに加えて、以下の接続プロパティを設定する必要があります。

  • MapToWVarchar=False

    このプロパティをSQL_WVARCHAR の代わりにSQL_VARCHAR に設定して文字列データ型をマップします。さまざまなインターナショナルキャラクタセットに対応するため、ドライバーはデフォルトでSQL_WVARCHAR を使います。unicode タイプが返されたときに、このプロパティを使ってORA-28528 Heterogeneous Services データタイプ変換エラーを防ぐことができます。

  • MaximumColumnSize=4000

    このプロパティを設定して、カラムの最大サイズを4000文字に制限します。Oracle Database Gateway では、文字列型はカラムの最大サイズが4000である必要があります。

  • UpperCaseIdentifiers=True

    このプロパティで、識別子を引用しないようにし設定します。このプロパティを使って、大文字の識別子をOracle にレポートします。Oracle はデフォルトで識別子を大文字で格納するため、大文字の識別子を引用から避ける必要はありません。

  • IncludeDualTable=True

    このプロパティを設定して、Oracle DUAL 表をモックします。SQL Developer はこのテーブルを使って接続をテストします。

Heterogeneous Service Agent の初期化

下記の手順に従ってODBC Gateway をAlloyDB のデータ に作成すると、リアルタイムAlloyDB にOracle データベースとしてクエリすることが可能になります。

  1. 接続プロパティの指定がまだの場合は、DSN (データソース名)で行います。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。

    AlloyDB 接続プロパティの取得・設定方法

    AlloyDB に接続するには、次の接続プロパティが必要です。

    • Server:AlloyDB データベースをホスティングしているサーバーのホスト名またはIP アドレス。
    • Port(オプション):AlloyDB データベースをホスティングしているサーバーのポート。このプロパティはデフォルトで5432に設定されます。
    • User:AlloyDB サーバーに認証する際に使われるユーザー。
    • Password:AlloyDB サーバーに認証する際に使われるパスワード。
    • Database(オプション):AlloyDB サーバーに接続する場合のデータベース。設定されていない場合は、ユーザーのデフォルトデータベースが使用されます。

    AlloyDB への認証

    標準認証

    標準認証(事前に提供されたユーザーとパスワードの組み合わせを使用)は、デフォルトの認証形式です。

    標準認証で接続する場合は、これ以上のアクションは必要ありません。

    pg_hba.conf 認証スキーム

    CData 製品がサポートしている他の認証方法では、AlloyDB サーバー上のpg_hba.conf ファイルで有効化する必要があります。

    AlloyDB サーバーでの認証の設定については、こちらを参照してください。

    MD5

    pg_hba.conf ファイルのauth-methodmd5 に設定すると、MD5 パスワード検証を使用して認証できます。

    SASL

    CData 製品は、SASL(特にSCRAM-SHA-256)でパスワードを検証することで認証できます。

    この認証方法を使用するには、pg_hba.conf ファイルのauth-methodscram-sha-256 に設定します。

    Kerberos

    Kerberos 認証は、CData 製品が接続を試行している際にAlloyDB サーバーで開始されます。この認証方法を有効化するには、AlloyDB サーバーでKerberos を設定します。AlloyDB サーバーでのKerberos 認証の設定を完了したら、CData 製品からKerberos 認証を行う方法については、ヘルプドキュメントの「Kerberos の使用」セクションを参照してください。

    Microsoft ODBC データソースアドミニストレーターで必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。

  2. oracle-home-directory\hs\admin フォルダにinitmyalloydbdb.ora ファイルを作成し、以下の設定を追加します:

    HS_FDS_CONNECT_INFO = "Your-AlloyDB-DSN"
  3. oracle-home-directory\NETWORK\admin にあるlistener.ora ファイルに、次のアドレスを追加します:

    SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = myalloydbdb) (ORACLE_HOME = your-oracle-home) (PROGRAM = dg4odbc) ) )
  4. oracle-home-directory\NETWORK\admin にあるtnsnames.ora ファイルに、次の接続ディスクリプタを追加します:

    myalloydbdb = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) (CONNECT_DATA=(SID=myalloydbdb)) (HS=OK) )
  5. 次のコマンドを使って設定をテストします:

    tnsping myalloydbdb
  6. SQL*Plus を起動し、次のコマンドでデータベースリンクを作成します:

    CREATE DATABASE LINK MYALLOYDBDB CONNECT TO "user" IDENTIFIED BY "password" USING 'myalloydbdb';

これで、SQL*Plus で次のようなクエリを実行できます:

SELECT * from Orders@myalloydbdb;

AlloyDB からOracle Database へのデータ連携には、ぜひCData ODBC ドライバをご利用ください

このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

関連コンテンツ

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

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