Download as pdf or txt
Download as pdf or txt
You are on page 1of 82

Oracleの

ソース・ターゲットエンドポイント
としての利用

クリックテック・ジャパン株式会社

© 2019 QlikTech International AB. All rights reserved.


アジェンダ • Oracleのソースとしての利用

• Qlik Replicate側での基本セットアップ
• Qlik Replicateからデータベースへアクセスするユーザーの追加
• Oracle側での基本セットアップ
• Qlik Replicateでのエンドポイント定義
• Oracle on Oracle Cloudの追加情報
• Amazon RDS for Oracleの追加情報
• 詳細情報
• 制限事項など

• Oracleのターゲットとしての利用

• Qlik Replicate側での基本セットアップ
• Qlik Replicateからデータベースへアクセスするユーザーの追加
• Oracle側での基本セットアップ
• Qlik Replicateでのエンドポイント定義
• データ型
• 制限事項など
2
© 2019 QlikTech International AB. All rights reserved.
サポートされているエディション

Qlik レプリケートは、次のOracleデータベースエディションをサポートします。

• Oracle Enterprise Edition


• Oracle Standard Edition
• Oracle Standard Edition 2
• Oracle Express Edition
• Oracle Personal Edition

Qlik ReplicateでサポートされるOracleバージョンの詳細についてはは、「サポートされるプラットフォームとエンドポイント」を参照してください。

3
Oracleのソースとしての利用

4
© 2019 QlikTech International AB. All rights reserved.
変更データキャプチャー (CDC) の方式の選択
Oracle の変更データをキャプチャーは、OracleのREDO ログ(およびArchiveログ)を読み取って行われます。このREDOログを読み取る方式とし
て、 Replicate Log ReaderとLogMiner の 2 つの方法が提供されており、いずれかを選択します。以下それぞれの特長をご説明します。

Replicate Log Reader (デフォルト)


• Binary ReaderはQlik Replicate固有の方式で、OCILobRead APIを通じてバイナリ形式でREDOログの内容の全体をQlik Replicateに転送
します。
• そのため、データ転送のネットワーク帯域の利用は多くなりますが、対象となる変更の選別はQlik Replicate側で行われるため、Oracle データベースを
ホストするサーバーの CPU /メモリ消費は低くなる傾向があります。
• 変更データ量が多い場合、また同一データソースからのレプリケートタスクを複数実行する場合には、Replicate Log Readerの方がより効率的かつ
高速に処理ができます。
• Oracle PDB(プラガブルデータベース)に対してはこのReplicate Log Readerのみが利用可能です。(LogMinerではPDBがサポートされていませ
ん。)

LogMiner
• OracleのユーティリティであるLogMinerの仕組みを利用した変更データキャプチャー方式です。
• Oracleデータベース側でレプリケーションの対象となる変更のみが選別され、Qlik Replicate側にSQLステートメントとして転送されます。
• そのため、Replicate Log Readerの方式と比較して、変更データ転送のためのネットワーク帯域の利用は少なくなりますが、Oracle データベースをホ
ストするサーバーの CPU/メモリ 消費は多くなる傾向があります。
• LogMiner では、暗号化オプションや圧縮オプションなど、ほとんどの Oracle オプションがサポートされています。(Replicate Log Reader ではサ
ポートが限定的です。)
• Oracle Automatic Storage Management (ASM)を使ってREDOログファイルを管理している場合には、Replicate Log Readerと比較してよ
りシンプルな設定方法を提供します。

5
Redoログファイル – 方式選択のガイドライン

• Oracleソースのレプリケーションエンドポイントは、Oracle LogMiner(Oracleビルトインの方式)またはReplicate Log Reader (Replicateの高


速Redoログリーダー)を使用して、オンラインおよびアーカイブされたOracle redoログファイルにアクセスするように構成できます。
• 一般に、より効率的で高速で、使用するリソースが少なくて済むため、Replicate Log Reader を使用することをお勧めします。
• Replicate Log Reader は、次の状況で特に推奨されます:
 Redoログの変更の量は30GB/時間以上。
 変更量は 10GB/時間から 30GB/時の間であり、変更の処理 (つまり、ターゲットへのレプリケート) をできるだけ速くする必要がある。
 同じソースから複数のタスクがレプリケートする場合。Oracle LogMiner を使用すると、データベースを介してRedoログにアクセスするため、
データベース リソースを消費するため、効率が低下します。
• Replicate Log Reader と Oracle LogMiner は、一定の制限を受け、さまざまな圧縮方法をサポートし、異なるアクセス許可を必要とします。し
たがって、エンドポイント設定を構成する前に、関連するセクションを確認することを強くお勧めします。最終的には、Replicate Log Readerまたは
Oracle LogMiner を使用するかどうかの決定は、それぞれの制限、データの圧縮方法、またはレプリケートユーザーに許可する必要のある権限に基
づいて行う場合があります。

6
Qlik Replicate側での
基本セットアップ

7
WindowsでのOracle Instant Clientの設定

• Windowsシステムでは、Oracle Instant Client for Microsoft Windows (x64) Version 11.2.0.3.0以降をインストールします。


 最新のサポート情報については、Client prerequisites ‒ Qlik Replicateのサイトをご確認ください。
• 以下はインストール手順の例を示します。手順詳細については、下記Oracle Instant Clientダウンロードサイトに記載の手順をご確認ください。

1. プラットフォームに適したインスタントクライアントパッケージをダウンロードします。(Basic Packageおよび、SQL*Plusを使っ
てOracleへの接続の確認を行う場合にはSQL*Plus Packageを導入します。)
 Oracle Instant Client Downloads
2. 単一のディレクトリ(C:\oracle\instantclient_19_12)にZIPファイルの内容を展開します。
3. このディレクトリを PATH環境変数に追加します。
4. Qlik Replicate Serverサービスを再起動します。

※ XMLTYPE データ型のサポートには、完全な Oracle クライアントが必要です。

8
LinuxでのOracle Instant Clientの設定
• Windowsシステムでは、Oracle Instant Client for Linux (x86-64) Version 11.2.0.3.0以降をインストールします。
 最新のサポート情報については、Client prerequisites ‒ Qlik Replicateのサイトをご確認ください。
• 以下はインストール手順の例を示します。手順詳細については、下記Oracle Instant Clientダウンロードサイトに記載の手順をご確認ください。

1. プラットフォームに適したインスタントクライアントパッケージをダウンロードします。(Basic Packageおよび、SQL*Plusを使ってOracleへの接続
の確認を行う場合にはSQL*Plus Packageを導入します。)
 Oracle Instant Client Downloads
2. 単一のディレクトリ(/opt/oracle/instantclient_19_12)にZIPファイルの内容を展開します。
3. このディレクトリを LD_LIBRARY_PATH環境変数に設定するための以下の行を/opt/attunity/replicate/bin/site_arep_login.shファ
イルに追加します。
 export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_12:$LD_LIBRARY_PATH
4. Qlik Replicate Serverサービスを再起動します。
 /opt/attunity/replicate/bin/areplicate restart

※ XMLTYPE データ型のサポートには、完全な Oracle クライアントが必要です。

9
Qlik Replicateからデータ
ベースへアクセスする
ユーザーの追加

10
Replicateユーザーへの必要なOracleアクセス権限の付与
• 以下をOracle上で実行して、Qlik ReplicateからOracleへのアクセスに利用されるユーザー作成・権限付与を行います。
• 以下は「replicate_user」という名称のユーザーを作成し、網羅的な権限を付与する例となります。必要なレプリケーション方式や環境などにより必要
となる権限が異なりますので、権限を絞り込む場合などの詳細は次項以降をご確認ください。
/* Qlik Replicate用のユーザー作成 */ GRANT SELECT on SYS.ENC$ TO replicate_user;
CREATE USER replicate_user GRANT SELECT on DBA_TABLESPACES TO replicate_user;
IDENTIFIED BY "replicate_password" GRANT SELECT on ALL_TAB_PARTITIONS TO replicate_user;
DEFAULT TABLESPACE users GRANT SELECT on ALL_ENCRYPTED_COLUMNS TO replicate_user;
TEMPORARY TABLESPACE temp; GRANT SELECT on ALL_VIEWS TO replicate_user /*Viewが利用される場合に必要*/ ;
GRANT SELECT ANY TABLE TO replicate_user /*テーブルリストのパターンを使用する場合に追加。特定のテーブ
/* Qlik Replicate Reader、LogMinerの両方に必要な権限付与 */ ルを対象とする場合にはSELECT on <any-replicated-table>;でも可*/ ;
GRANT SELECT ANY TRANSACTION TO replicate_user; GRANT ALTER ANY TABLE TO replicate_user /*Qlik ReplicateがSupplemental loggingを自動的に追加
GRANT SELECT on V_$ARCHIVED_LOG TO replicate_user; する場合に必要。 特定のテーブルを対象とする場合にALTER on <any-replicated-table>;でも可*/ ;
GRANT SELECT on V_$LOG TO replicate_user; GRANT SELECT on V_$STANDBY_LOG TO replicate_user /*Oracleスタンバイデータベースにアクセスする場合
GRANT SELECT on V_$LOGFILE TO replicate_user; に必要*/ ;
GRANT SELECT on V_$DATABASE TO replicate_user; GRANT SELECT on all_nested_tables TO replicate_user /*Oracleのネスト表にアクセスする場合に必要*/ ;
GRANT SELECT on V_$THREAD TO replicate_user; GRANT SELECT on all_nested_table_cols TO replicate_user /*Oracleのネスト表にアクセスする場合に必要
GRANT SELECT on V_$PARAMETER TO replicate_user; */ ;
GRANT SELECT on V_$NLS_PARAMETERS TO replicate_user;
GRANT SELECT on V_$TIMEZONE_NAMES TO replicate_user; /* Qlik Replicate Readerを利用する場合に必要な権限*/
GRANT SELECT on V_$TRANSACTION TO replicate_user; GRANT CREATE SESSION TO replicate_user;
GRANT SELECT on V_$CONTAINERS TO replicate_user; GRANT SELECT on V_$TRANSPORTABLE_PLATFORM TO replicate_user;
GRANT SELECT on ALL_INDEXES TO replicate_user; GRANT SELECT on V_$DATABASE_INCARNATION TO replicate_user;
GRANT SELECT on ALL_OBJECTS TO replicate_user; GRANT CREATE ANY DIRECTORY TO replicate_user;
GRANT SELECT on DBA_OBJECTS TO replicate_user /*Oracleのバージョンが11.2.0.3より前の場合に必要 GRANT EXECUTE on DBMS_FILE_TRANSFER TO replicate_user;
*/ ; GRANT EXECUTE on DBMS_FILE_GROUP TO replicate_user;
GRANT SELECT on ALL_TABLES TO replicate_user;
GRANT SELECT on ALL_USERS TO replicate_user; /* LogMinerを利用する場合に必要な権限 */
GRANT SELECT on ALL_CATALOG TO replicate_user; GRANT CREATE SESSION TO replicate_user;
GRANT SELECT on ALL_CONSTRAINTS TO replicate_user; GRANT EXECUTE on DBMS_LOGMNR TO replicate_user;
GRANT SELECT on ALL_CONS_COLUMNS TO replicate_user; GRANT SELECT on V_$LOGMNR_LOGS TO replicate_user;
GRANT SELECT on ALL_TAB_COLS TO replicate_user; GRANT SELECT on V_$LOGMNR_CONTENTS TO replicate_user;
GRANT SELECT on ALL_IND_COLUMNS TO replicate_user; GRANT LOGMINING TO replicate_user /*Oracleのバージョンが12c以降の場合に必要*/ ;
GRANT SELECT on ALL_LOG_GROUPS TO replicate_user;
GRANT SELECT on SYS.DBA_REGISTRY TO replicate_user;
11
GRANT SELECT on SYS.OBJ$ TO replicate_user;
アクセス権限の詳細解説
一般的なアクセス許可

• Qlik レプリケートタスクで Oracle ソースを使用するには、Qlik レプリケートOracle エンドポイント接続設定で指定されたユーザーに、Oracle データ


ベースで次の権限を付与する必要があります。

• SELECT ANY TRANSACTION • SELECT on ALL_CONS_COLUMNS


• SELECT on V_$ARCHIVED_LOG • SELECT on ALL_TAB_COLS
• SELECT on V_$LOG • SELECT on ALL_IND_COLUMNS
• SELECT on V_$LOGFILE • SELECT on ALL_LOG_GROUPS
• SELECT on V_$DATABASE • SELECT on SYS.DBA_REGISTRY
• SELECT on V_$THREAD • SELECT on SYS.OBJ$
• SELECT on V_$PARAMETER • SELECT on SYS.ENC$
• SELECT on V_$NLS_PARAMETERS • SELECT on DBA_TABLESPACES
• SELECT on V_$TIMEZONE_NAMES • SELECT on ALL_TAB_PARTITIONS
• SELECT on GV_$TRANSACTION • SELECT on ALL_ENCRYPTED_COLUMNS
• SELECT on V_$CONTAINERS • SELECT on ALL_VIEWS - Viewが利用される場合に必要
• SELECT on ALL_INDEXES
• SELECT on ALL_OBJECTS
• SELECT on DBA_OBJECTS - Oracleのバージョンが11.2.0.3より前の場合に必要
• SELECT on ALL_TABLES
• SELECT on ALL_USERS
• SELECT on ALL_CATALOG
• SELECT on ALL_CONSTRAINTS

12
アクセス権限の詳細解説
一般的なアクセス許可

特定のテーブルリストを使用する場合は、(レプリケートするテーブルごとに) 次の追加の特権を付与します。
• SELECT on <any-replicated-table>;

テーブルリストのパターンを使用する場合は、以下の追加特権を付与します。
• SELECT ANY TABLE;

Qlik Replicateが自動的にテーブルにSupplemental loggingを追加する (デフォルトの動作) 特定のテーブルリストを使用する場合は、


(Replicate対象のテーブルごとに) 次の追加の特権を付与します。
• ALTER on <any-replicated-table>;

Qlik Replicateが全てのテーブルに対して自動的にSupplemental loggingを追加する場合は、次の追加特権を付与します (デフォルトの動作)。


• ALTER ANY TABLE;

Oracle スタンバイ・データベースにアクセスする場合は、以下の特権を付与する必要があります。
• SELECT on V$STANDBY_LOG

ネスト表にアクセスする場合は、次の権限を付与する必要があります。
• SELECT on all_nested_tables
• SELECT on all_nested_table_cols

13
アクセス権限の詳細解説
Replicate Log Readerを使用して再実行ログにアクセスする場合のアクセス特権
Replicate Log Readerを使用して Redoログにアクセスする場合は、Oracle エンドポイント設定で指定されたユーザーに次の権限を付与する必要があります。

• CREATE SESSION

• SELECT on V_$TRANSPORTABLE_PLATFORM
 REDO ログが ASM に格納され、ASM からのレプリケートによってアクセスされる場合

• SELECT ON V_$DATABASE_INCARNATION

• CREATE ANY DIRECTORY


Qlik Replicateで、以下のOracleファイルアクセス機能を使用する場合:
 BFILE read -レプリケートが Redo ログに対するファイル レベルのアクセス権を持たない場合に使用され、REDO ログは
ASM からアクセスされません。
 DBMS_FILE_TRANSFER package - Redo ログ ファイルを一時フォルダにコピーするために使用します (この場合、
EXECUTE ON DBMS_FILE_TRANSFER権限も付与する必要があります)
 DBMS_FILE_GROUP package -一時/代替フォルダから Redo ログ ファイルを削除するために使用します (この場合、
EXECUTE ON DBMS_FILE_GROUP権限も付与する必要があります)。

14
アクセス権限の詳細解説
Replicate Log Readerを使用して再実行ログにアクセスする場合のアクセス特権

• Oracleファイルの機能は、Oracle ディレクトリと連携して動作します。各 Oracle ディレクトリ オブジェクトには、処理する必要があるファイルが格納さ


れているフォルダの名前が含まれています。
• Replicateで Oracle ディレクトリを作成および管理する場合は、上記で指定した CREATE ANY DIRECTORY 権限を付与する必要があります。
ディレクトリ名の先頭にattrepが付きます。この特権を付与しない場合は、対応するディレクトリを手動で作成する必要があります。手動で作成される
ディレクトリーの名前には、ATTUREP_、ATTUTMP_、またはATTUGRP_のプレフィックスを付けてはいけません。
• ディレクトリを手動で作成し、Oracle ソース エンドポイントで指定された Oracle ユーザーが Oracle ディレクトリを作成したユーザーでない場合は、デ
ィレクトリ上の READ 権限も付与します。_
• Oracle ソース エンドポイントが一時フォルダーに Redo ログ ファイルをコピーするように構成されており、Oracle ソース エンドポイントで指定された
Oracle ユーザーが Oracle ディレクトリを作成したユーザーでない場合は、次の追加の特権が必要です。
 ソース ディレクトリとして指定された Oracle ディレクトリ オブジェクトの READ
 コピー処理でコピー先ディレクトリとして指定されたディレクトリオブジェクトに対する WRITE

• 参照 :接続の詳細プロパティの設定も参照してください。

15
アクセス権限の詳細解説
Oracle LogMiner を使用して再実行ログにアクセスする場合のアクセス権限

Oracle LogMiner を使用して Redo ログにアクセスする場合は、次の権限を付与します。

• CREATE SESSION
• EXECUTE on DBMS_LOGMNR
• SELECT on V_$LOGMNR_LOGS
• SELECT on V_$LOGMNR_CONTENTS
• LOGMINING

※ この権限は、Oracle 12c 以降でのみ必要です。

16
アクセス権限の詳細解説
必要なASMの権限

• REDO ログが ASM に格納されるときには次の読み取り特権を付与します:


SELECT ON v_$transportable_platform

• Oracle 11g リリース 2 (11.2.0.2) から、ASM アカウントにアクセスするには、Qlik Replicateに SYSASM 権限が付与されている必要がありま


す。サポートされている古いバージョンの場合は、Qlik レプリケートSYSDBA 特権を付与するだけで十分です。

※ ASM に接続する場合、Qlik レプリケートは最初に SYSDBA としてログインを試み、失敗した場合は SYSASM としてログインしようとします。コマンド


プロンプトを開き、次のステートメントを発行することで、ASM アカウントへのアクセスを検証できます。

sqlplus asmuser/asmpassword@+asmserver as sysdba


-OR-
sqlplus asmuser/asmpassword@+asmserver as sysasm

17
Oracleデータベース
側での基本セットアップ

18
Archive Logの設定
• Qlik ReplicateでOracleデータベースの変更データキャプチャーを行うには、OracleでArchive LogモードがONになっている必要があります。
データベースの現在のArchive Logモードを確認するには以下のコマンドを実行します。

SQL> select log_mode from v$database;


LOG_MODE
------------
NOARCHIVELOG

• 上記の様にNOARCHIVELOGのモードとなっている場合には以下の手順でARCHIVELOGのモードへ変更する必要があります。

/* データベース停止 */
shutdown immediate

/* データベースをMOUNT状態で起動 */
startup mount

/* Archive Logモード切替 */
alter database archivelog;

/* データベースをMOUNT状態で起動 */
alter database open;

/* Archive Logモード確認 */
select log_mode from v$database;

19
Archive Logの設定
Archive Logのログの状況は以下のコマンドでも確認することができます。

SQL> archive log list;


データベース・ログ・モード アーカイブ・モード
自動アーカイブ 有効
アーカイブ先 C:¥app¥oracle¥product¥19.3.0¥dbhome_1¥RDBMS
最も古いオンライン・ログ順序 1
アーカイブする次のログ順序 2
現行のログ順序 2

Archive Logのファイル一覧は以下で確認することができます。

SQL> select name, sequence# from v$archived_log;

NAME
--------------------------------------------------------------------------------
SEQUENCE#
----------
C:\APP\ORACLE\PRODUCT\19.3.0\DBHOME_1\RDBMS\ARC0000000001_1081858333.0001

※Archive Logのモードを切り替えた直後に、OracleをソースとしてQlik Replicateのタスクを実行すると「Cannot retrieve Oracle archived


Redo log destination ids」のエラーとなる場合があります。これは、V$ARCHIVED_LOGにレコードが格納されておらずDEST_IDを取得できな
いことが原因ですが、「ALTER SYSTEM SWITCH LOGFILE;」実行してREDOログを切り替えることで当テーブルにレコードが登録されてエラーを
回避することができます。
20
Supplemental Loggingの設定
手順 1: データベースのSupplemental Loggingが有効になっていることを確認する

Supplemental LoggingもOracleデータベース上で有効化されている必要があります。データベースのSupplemental Loggingが有効化されているかを


を確認するには以下のコマンドを実行します。

/* Supplemental Loggingの設定の確認 */
select SUPPLEMENTAL_LOG_DATA_MIN from v$database;

SUPPLEME
--------
NO

上記の様に無効となっている場合には以下の手順でSupplemental Loggingが有効化する必要があります。

/* Supplemental Loggingの有効化 */
alter database add supplemental log data;

21
Supplemental Loggingの設定
Qlik Replicate上のOracleエンドポイント設定で[Automatically add supplemental logging]をオンにして自動的にSupplemental
Loggingの追加を行わない場合、手順2・3の手順で手動でSupplemental Loggingの設定を行う必要があります。

手順 2: 各テーブルに必要なSupplemental Loggingが追加されていることを確認する

• 主キーが存在する場合:主キーのSupplemental Loggingを追加する必要があります。

ALTER TABLE <テーブル名> ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

• 主キーが存在しないが、一意インデックスが1つある場合:一意インデックスのすべての列をSupplemental Loggingに追加する必要があります。
SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS を使用しても、一意のインデックス列はログに追加されません。
ALTER TABLE <テーブル名> ADD SUPPLEMENTAL LOG GROUP <Log Group名> (<一意インデックス列名1>[, <一意インデックス列名2>] ...) ALWAYS;

• 主キーが存在しないが、テーブルに複数の一意インデックスがある場合:最初の一意インデックスにSupplemental Loggingを追加します。Qlik
Replicateは、アルファベット順の昇順リストの最初のインデックスを使用します。 SUPPLEMENTAL LOG DATA (UNIQUE INDEX)
COLUMNS を使用しても、一意のインデックス列はログに追加されません。

22
Supplemental Loggingの設定
手順 2: 各テーブルに必要な補足ログが追加されていることを確認する(続き)

• 主キーがなく、一意インデックスがない場合:すべての列にSupplemental Loggingを追加する必要があります。

ALTER TABLE TableName ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

※ ターゲットテーブルの主キー/一意インデックスがソーステーブルの主キー/一意インデックスと異なる場合、ユーザはターゲットテーブルの主キー/一意イ
ンデックスを構成するソーステーブルの列に手動でSupplemental Loggingを追加する必要があります。
※ ターゲット表の主キーを変更する場合:元の主キー/ユニーク索引の列ではなく、選択したインデックスの列にSupplemental Loggingを追加す
る必要があります。

23
Supplemental Loggingの設定

手順 3: テーブルに対してフィルタまたは変換が定義されている場合、追加のログが必要になる場合があります。
※ ALL COLUMNS の補足ログがテーブルに追加されている場合は、追加のロギングを追加する必要はありません。
• テーブルに一意インデックスまたは主キーがある場合は、フィルタまたは変換に関連する各列に追加のsupplemental logging を追加する必要があ
ります (列が主キー列または一意インデックス列と異なる場合)。
※ 変換で使用される列が1つのみの場合、この列はsupplemental loggingグループに追加されない場合があります。たとえば、“A+B” は両
方の列を追加する必要がありますが、substring(A, 10) は“A”を追加する必要はありません。
• 主キー/一意インデックスのsupplemental loggingと、特定の列のsupplemental loggingの両方を設定する方法の1つは、主キー/一意イン
デックス列と、フィルタまたは変換された列に対してのみ、USER_LOG_GROUPのsupplemental loggingを追加することです。
※ たとえば、主キーのID列で、NAME列でフィルタを使用するEXAMPLE という名前のテーブルをレプリケートする場合、次のようなコマンドを実行
して、ロググループのsupplemental loggingを作成できます。

ALTER TABLE EXAMPLE.TABLE ADD SUPPLEMENTAL LOG GROUP example_log_group (ID,NAME) ALWAYS;

• [Insert the missing target record ] のApply Conflictsオプションを選択する場合、すべてのソーステーブル列に対してsupplemental


loggingを有効にする必要があります。

24
Qlik Replicateでの
エンドポイント定義

25
一般的な接続プロパティの設定

• Connection String: 以下の形式でOracleへの接続文字列を入力します。

//host:port/service name

 host: Oracleサーバーのホスト名またはIP アドレスです。


 port: (オプション) OracleのTNS リスナーポート番号です。ポート番号を
入力しない場合は、デフォルトのTNS リスナーポートが使用されます。
 service name: (オプション) 使用している Oracle データベースを持つコ
ンピュータのサービス名です。サービス名を入力しない場合は、デフォルトのサ
ービス名が使用されます。

※ Oracle Net のキーワード値ペアを入力することもできます。例えば:


(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=dlsun242) (PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=bjava21)))

※ マルチテナント環境で作業する場合、接続文字列は特定のPDBを指定する必要
があります。

• Username / Password: Oracle 認証情報 (ユーザー名、パスワード) を


入力します。

26
一般的な接続プロパティの設定
異なる RAC インスタンスに対する個別の接続文字列の指定
• Oracle エンドポイントがReplicate Log Reader使用するように構成されており、レプリケートが接続されているノードが他のクラスタノードによって作成
されたログにアクセスできない場合は、RAC インスタンスごとに個別の接続文字列を指定する必要があります。REDO ログが ASM に格納されている場
合、接続文字列の構文は次のとおりです。

[<common ASM connection string>,] <thread id> <thread ASM connection string>, <thread id> <thread ASM
connection string>...

※ もし<common ASM connection string>が指定されない場合は、すべての RAC インスタンスを ASM 接続で定義する必要があります。

• Replicate Log Readerを使用して REDO ログにアクセスする場合、接続文字列の構文は次のとおりです。

<Oracle connection string>[, <thread id>, <thread BFILE connection string>, <thread id>, <thread BFILE
connection string> ...]

※ <Oracle connection string>必須です。 <thread BFILE connection string> を指定した場合には<Oracle connection


string>の代わりに利用されます。

27
高度な接続プロパティの設定(Replicate Log Reader)
このセクションでは、レプリケーション ログ リーダーを使用して REDO ログにアクセスするときに、[Advanced]タブで使用できるプロパティについて説明します。

• Automatically add supplemental logging: Oracle データベースの


Supplement Loggingを自動的に設定するには、このオプションを選択します。このオプショ
ンは、LogMiner が再実行ログアクセス方式として選択されている場合にも使用できます。

• [Access redo logs via] で、[Replicate Log Reader] (既定値) を選択します。


レプリケートは、バイナリ ファイルとして再実行ログにアクセスします。

• Secret Store encryption entries:ソーステーブルが暗号化されているか、暗号化さ


れた列が含まれている場合は、Oracle ウォレット暗号化キーとその値を指定する必要があり
ます。

• ASM Parameters (if redo logs are stored in ASM) - 使用している Oracle
Redoログが自動ストレージ管理 (ASM) を使用して保存されている場合は、指定された
フィールドに必要なアクセス情報を入力します。

※ ASMのRedoログにアクセスするには追加の権限を付与する必要があります。

 ASM Connection String : Oracle データベースが ASM を使用している場


合の ASM インスタンスへの接続文字列。
 ASM user name : ASM ユーザーのユーザー名。
 ASM password : ASM ユーザのパスワード。
 Number of concurrent ASM Read threads :ASM から再実行ログを
読み取るときに使用するスレッドの数。この値を大きくすると、大量の変更がある場
合にパフォーマンスが向上する可能性があります。

28
高度な接続プロパティの設定(Replicate Log Reader)
[Using the path as it appears in the database]を選択した場合:

• Replicate has file-level access to the redo log files: Qlik Replicateがインストー
ルされているローカル コンピューターのファイル システムから直接 Redo ログにアクセスして読み取る場
合に選択します。

• Copy redo logs to a temporary folder: Redoログを一時フォルダーにコピーする場合に


はこのオプションを選択し、Oracle マシン上のRedoログのパスを指定します。
※ 同じ一時フォルダー (Oracle ソースエンドポイントで構成されている) を使用する複数のタス
クを構成する場合は、[Delete processed archived redo log files] オプションを
選択しないでください。これは、Replicateが元のアーカイブログ名を使用するためです。
※ RAC 環境で作業する場合は、すべての RAC インスタンスからアクセス可能な共有フォルダ
を設定することを強くお勧めします。これが不可能な場合は、RAC インスタンスごとに同じ名
前の一時フォルダを定義する必要があります。さらに、RAC インスタンスごとに Oracle およ
び ASM の接続文字列を個別に定義する必要があります。

 Replicate has file-level access to temporary folder: Qlik Replicateが


インストールされているローカルコンピュータのファイル システムからアーカイブされた REDO
ログに直接アクセスする場合に選択します。
 Access archived redo logs in folder: Qlik Replicateが一時フォル
ダーにアクセスできるようにするには (ファイル レベルのアクセスがある場合)、Oracle
マシン上の共有一時フォルダーへのパスを指定する必要があります。

※ 停止したタスクが再開されると、Replicateは現在処理されている Redo ログを再


コピーしようとします。指定されたディレクトリに Redo ログがない場合、タスクは、そ
のディレクトリにコピーされるのを待機します。

29
高度な接続プロパティの設定(Replicate Log Reader)

• Look for missing archived redo logs in folder: アーカイブされたREDOログが既


定の場所にない場合、Qlik ReplicateがアーカイブされたREDOログを読み取る場所へのフル
パスを入力します。このフォルダは、Qlik Replicateが存在するネットワーク内の任意の場所に配
置できますが、その場所はQlik Replicateユーザーがアクセスできることを確認してください。

※ このオプションを構成する場合、フォルダー内の各再実行ログの名前は、 current
sequence、thread、destination IDがv$archived_logビューによって返される名
前と同じである必要があります。 v$archived_logビューは、ログの状態が ACTIVE (
つまり、ログが存在する) の場合にのみ、Redoログ名を返すため、Replicateは、ステータ
スが ACTIVE でないときにアクセスするRedoログを判断できません。

• Replicate has file-level access to the specified folder : Qlik Replicateがイ


ンストールされているローカル コンピュータのファイル システムからアーカイブされた REDO ログに直
接アクセスして読み取る場合に選択します。

• Delete processed archived redo log files : このチェック ボックスをオンにすると、コピ


ーされたアーカイブされた REDO ログ ファイルが読み取られた後に削除されます。このオプションに
は、Replicateユーザーに対する次の追加のアクセス許可が必要です。
 GRANT SELECT ON DBA_FILE_GROUPS to nonpriv_user;
 GRANT EXECUTE ON SYS.DBMS_FILE_GROUP to nonpriv_user;
 execute DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE
(DBMS_FILE_GROUP.MANAGE_FILE_GROUP, 'nonpriv_user', FALSE)

別のファイル グループが、別のOracle ユーザーで構成された一時ディレクトリを使用していな


いことを確認します。

30
高度な接続プロパティの設定(Replicate Log Reader)
• Retry interval : カウンタを使用するか、システムがクエリを再送信するまでの待ち時間を
秒数で入力します。

• Archived redo logs destination ID: アーカイブされた REDO ログの宛先。値は、


V$archived_logテーブルのDEST_ID番号と同じである必要があります。複数のログ出力
先 (DEST_ID) を操作する場合は、レプリケートによってアクセスできるアーカイブ ログを表
すArchived redo logs location identifier を指定する必要があります。
Archived redo logs location identifier が指定されていない場合、レプリケート
は、 Alternate archived redo logs destination IDフィールドで指定された ID
を使用します。代替IDが指定されていない場合、Replicateは最小限の既存のDEST_ID
を使用します。

• Alternate archived redo logs destination ID: プライマリ送り先からの読み取り


に失敗した場合のアーカイブの宛先。

• Expose NUMBER as: 次のいずれかを選択します。


 A precision-scale combination
 FLOAT
 VARCHAR

※ 精度が 39 以上の場合は、VARCHAR を選択します。


※ デフォルトでは、NUMBER データ型は桁数38、精度10に変換されます。
※ Oracle データベースの「Expose NUMBER」定義は、NUMBER データ型にのみ
使用されます (明示的な精度およびスケール定義を除く)

31
高度な接続プロパティの設定(Replicate Log Reader)
• Use archived redo logs only: このオプションを選択すると、Qlik Replicateは
アーカイブされたRED ログにのみアクセスします。アーカイブされた REDO ログが ASMの
みに保存されている場合、Qlik ReplicateユーザーにはASM 特権を付与する必要が
あります。

• Support nested tables: ネストされたテーブルまたは定義された型の列を含む


Oracle テーブルをレプリケートする必要がある場合は、このオプションを選択します。

• Support invisible columns:非表示の列を複製するには、このオプションを選択


します。このオプションは、Oracle 12c および Oracle インスタント クライアント バージョ
ン 12 からサポートされています。

32
高度な接続プロパティの設定(Replicate Log Reader)
[Replacing the path prefix]を選択した場合:
• Replace path prefix: 相対パスを変更せずに、別のルートの場所から REDO ログを読み取るかどうかを指定できます。Redoログの現在の場所へのパスの最初の部分を
入力します。このフィールドには、1 つのフォルダまたはディレクトリ レベル、または複数のフォルダまたはディレクトリを含めることができます。例) C:¥OldFolder

• With: 上のフィールドに追加した既存のプレフィックスを置き換えるフォルダまたはプレフィックスの名前を入力します。例) C:¥NewFolder

例1:
RedoログがC:¥OldFolder¥archive¥logsにあり、[Replace path prefix]フィールドにC:¥OldFolderを指定し、[With] フィールドにC:¥NewFolder を指定
した場合、Redoログは次の場所から読み取られます。

C:\NewFolder\archive\logs

例2:
RedoログがC:¥temp¥oracle¥logs¥archive¥RedoLogsにあり、 [Replace path prefix]フィールドにC:¥temp¥oracle¥logsを指定し、 [With]フィールド
にC:¥companyNameを指定すると、Redo ログは次の場所から読み取られます。

C:\companyName\archive\RedoLogs

この場合、companyNameという名前の新しいフォルダまたはディレクトリが、 [Replace path prefix]フィールドに含めた最初の 3 つのレベル フォルダをすべて置き


換えます。

33
高度な接続プロパティの設定(Replicate Log Reader)
• Apply prefix replacement to online and archived redo logs : オンライン
およびアーカイブされた REDOログにプレフィックスの置換を適用する場合に選択します。
• Replicate has file-level access to the new location : Qlik
Replicateがインストールされているローカル コンピューターのファイル システムから直接
オンラインおよびアーカイブされたREDOログファイルにアクセスして読み取る場合に選択

• Apply prefix replacement to archived redo logs only :このオプションを選択


すると、アーカイブされた REDO ログにのみプレフィックスの置換が適用されます (オンライン
REDO ログには適用されません)。
• Replicate has file-level access to the original online
location : Qlik Replicateがインストールされているローカル コンピューターのファイ
ル システムから直接、元のオンラインREDOログ ファイルにアクセスして読み取る場合
に選択します。
• Replicate has file-level access to the new archive
location : Qlik Replicateがインストールされているローカル コンピューターのファイ
ル システムから直接アーカイブされたREDOログファイルにアクセスして読み取る場合に
選択します。

• Delete processed archived redo log files : このチェック ボックスをオンにすると、


コピーされたアーカイブされた REDO ログ ファイルが読み取られた後に削除されます。このオプ
ションには、レプリケートユーザーに対する次の追加のアクセス許可が必要です。
 GRANT SELECT ON DBA_FILE_GROUPS to nonpriv_user;
 GRANT EXECUTE ON SYS.DBMS_FILE_GROUP to nonpriv_user;
 execute DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE
(DBMS_FILE_GROUP.MANAGE_FILE_GROUP, 'nonpriv_user', FALSE)

34
高度な接続プロパティの設定(Replicate Log Reader)
• Retry interval : カウンタを使用するか、システムがクエリを再送信するまでの待ち時間を
秒数で入力します。

• Archived redo logs destination ID: アーカイブされた REDO ログの宛先。値は、


V$archived_logテーブルのDEST_ID番号と同じである必要があります。複数のログ出力
先 (DEST_ID) を操作する場合は、レプリケートによってアクセスできるアーカイブ ログを表
すArchived redo logs location identifier を指定する必要があります。
Archived redo logs location identifier が指定されていない場合、レプリケート
は、 Alternate archived redo logs destination IDフィールドで指定された ID
を使用します。代替IDが指定されていない場合、Replicateは最小限の既存のDEST_ID
を使用します。

• Alternate archived redo logs destination ID: プライマリ送り先からの読み取り


に失敗した場合のアーカイブの宛先。

• Expose NUMBER as: 次のいずれかを選択します。


 A precision-scale combination
 FLOAT
 VARCHAR

※ 精度が 39 以上の場合は、VARCHAR を選択します。


※ デフォルトでは、NUMBER データ型は桁数38、精度10に変換されます。
※ Oracle データベースの「Expose NUMBE」定義は、NUMBER データ型にのみ使
用されます (明示的な精度およびスケール定義を除く)

35
高度な接続プロパティの設定(Replicate Log Reader)
• Use archived redo logs only: このオプションを選択すると、Qlik Replicateは
アーカイブされたRED ログにのみアクセスします。アーカイブされた REDO ログが ASMの
みに保存されている場合、Qlik ReplicateユーザーにはASM 特権を付与する必要が
あります。

• Support nested tables: ネストされたテーブルまたは定義された型の列を含む


Oracle テーブルをレプリケートする必要がある場合は、このオプションを選択します。

• Support invisible columns:非表示の列を複製するには、このオプションを選択


します。このオプションは、Oracle 12c および Oracle インスタント クライアント バージョ
ン 12 からサポートされています。

36
高度な接続プロパティの設定(Oracle LogMiner)
このセクションでは、Oracle LogMiner を使用して REDO ログにアクセスする場合に、[Advanced] タブで使用できるプロパティについて説明します。

• Automatically add supplemental logging: Oracle データベースの


Supplement Loggingを自動的に設定するには、このオプションを選択します (デフォルト)。

• [Access redo logs via] で、[Oracle LogMiner]を選択します。変更は、Oracle


LogMiner ユーティリティを使用してキャプチャされます。

• Secret Store encryption entries:レプリケートするテーブルの列の一部が暗号化さ


れている場合は、Oracle Wallet暗号化キーとその値を指定する必要があります。

• Retry interval: カウンタを使用するか、システムがクエリを再送信するまでの待ち時間を


秒数で入力します。

• Archived redo logs destination ID: アーカイブされた REDO ログの宛先。値は、


V$archived_logテーブルのDEST_ID番号と同じである必要があります。複数のログ出力
先 (DEST_ID) を操作する場合は、レプリケートによってアクセスできるアーカイブ ログを表
すArchived redo logs location identifier を指定する必要があります。
Archived redo logs location identifier が指定されていない場合、レプリケート
は、 Alternate archived redo logs destination IDフィールドで指定された ID
を使用します。代替IDが指定されていない場合、Replicateは最小限の既存の
DEST_IDを使用します。

• Alternate archived redo logs destination ID: プライマリ送り先からの読み取


りに失敗した場合のアーカイブの宛先。

37
高度な接続プロパティの設定(Oracle LogMiner)
• Expose NUMBER as: 次のいずれかを選択します。
 A precision-scale combination
 FLOAT
 VARCHAR

※ 精度が 39 以上の場合は、VARCHAR を選択します。


※ デフォルトでは、NUMBER データ型は桁数38、精度10に変換されます。
※ Oracle データベースの「Expose NUMBER」定義は、NUMBER データ型にのみ使用されます (明示的
な精度およびスケール定義を除く)

• Use archived redo logs only: このオプションを選択すると、Qlik ReplicateはアーカイブされたRED ログに


のみアクセスします。アーカイブされた REDO ログが ASMのみに保存されている場合、Qlik Replicateユーザーに
はASM 特権を付与する必要があります。

• Support nested tables: ネストされたテーブルまたは定義された型の列を含む Oracle テーブルをレプリケート


する必要がある場合は、このオプションを選択します。

• Support invisible columns:非表示の列を複製するには、このオプションを選択します。このオプションは、


Oracle 12c および Oracle インスタント クライアント バージョン 12 からサポートされています。

38
高度な接続プロパティの設定(Oracle LogMiner)
特定のテーブルで TDE 列の暗号化に使用されるウォレット エントリを検索する

このセクションでは、特定のテーブルで TDE 列の暗号化に使用される正しい暗号化キーを検索する方法について説明します。

Oracle ウォレットエントリを見つけるには、次の手順を実行します。

1. Oracle データベースで、次のクエリを実行して、指定された所有者とテーブル名に従ってobject_id (テーブル ID など) を返します。


 Select object_id from all_objects where owner='<table owner>' and object_name='<table name>' and
object_type='TABLE';

2. 次のクエリで取得したobject_idを使用して、関連するマスター キーを返します。
 select mkeyid from sys.enc$ where obj#=OBJECT_ID;

3. 次のように、Oracle ウォレットからキー値を選択します。
 mkstore –wrl <full_wallet_name> -viewEntry <entry_name>

4. マスターキーエントリとその値をそれぞれ[Names]フィールドと[Values]フィールドにコピーします。

39
Oracle on Oracle
Cloudの追加情報

40
Oracle on Oracle Cloud

Oracleクラウド上のOracleからレプリケーションを行う場合、以下の制限が適用されます。
• Oracle LogMiner を使用したRedoログファイルへのアクセスはサポートされていません。
• アクセス許可が不十分なため、エンドポイント設定の[Advanced] タブの次のオプションはサポートされていません。
 Replicateが、REDO ログ ファイルへのファイル レベルのアクセスを持つ。
 PathのPrefixを置き換える

41
Amazon RDS for
Oracleの追加情報

42
Amazon RDS for Oracleの考慮事項と制限事項

Oracle 用 Amazon RDS からレプリケートする場合は、次の制限事項と考慮事項が適用されます。


• Oracle 用 Amazon RDS からレプリケートする場合、暗号化されたテーブルスペースとOracle LogMinerの使用でのみTDEは
サポートされます。
• 次の条件がすべて満たされている場合、FailoverおよびRebootの操作はサポートされません。
 Oracleデータベース用のAmazon RDS はマルチAZデプロイメントです。
 Replicateが Linux にインストールされている。
 Redoログのアクセス方法としてReplicate Log Readerが選択されている。

43
Amazon RDS for Oracleに必要なアクセス権限
このトピックでは、Oracle 用 Amazon RDS からレプリケートするときに必要なアクセス許可について説明します。次の特権を付与します。

GRANT CREATE SESSION to replicate_user;


GRANT SELECT ANY TRANSACTION to replicate_user;
GRANT SELECT on DBA_TABLESPACES to replicate_user;
GRANT LOGMINING to replicate_user;

GRANT SELECT ON any-replicated-table to replicate_user /*特定のテーブル名を指定する場合*/;


GRANT SELECT ANY TABLE to replicate_user/*全てのテーブルを対象とする場合*/;

44
Amazon RDS for Oracleに必要なアクセス権限
次のステートメントを実行します。
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_VIEWS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_PARTITIONS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_INDEXES', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TABLES', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_USERS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CATALOG', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONSTRAINTS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONS_COLUMNS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_IND_COLUMNS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_LOG_GROUPS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS', 'REPLICATE_USER', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','REPLICATE_USER','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR', 'REPLICATE_USER', 'EXECUTE');

-- (as of AWS DMS versions 3.3.1 and later and as of Oracle versions 12.1 and later)
exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'REPLICATE_USER', 'SELECT');

-- (for Amazon RDS Active Dataguard Standby (ADG))


exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'REPLICATE_USER', 'SELECT');

-- (for transparent data encryption (TDE))


exec rdsadmin.rdsadmin_util.grant_sys_object('ENC$', 'REPLICATE_USER', 'SELECT');

45
Supplemental Loggingの設定

• Qlik Replicateでは、データベース レベルのSupplemental Loggingを有効にする必要があります。データ


ベース レベルの補足ログを有効にするには、次のコマンドを実行します。

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD’);

• Supplemental Logging属性を変更するために実行できる追加コマンドの例を次に示します。

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('DROP','PRIMARY KEY');

46
自動バックアップの有効化
• AWS Management Consoleにサインインして、https://console.aws.amazon.com/rds/で Amazon RDS コンソールを開きます。
• Amazon RDS for Oracleのデータベースインスタンスの設定画面を開き、[メンテナンスとバックアップ]タブから自動バックアップオプションが有効
化されていることを確認します。

47
アーカイブログの設定

• Oracle データベース インスタンスのアーカイブされたRedoログを保持するには次のコマンドを実行します (24 時間の例)。

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

• 指定した期間に、アーカイブされた REDO ログ用の十分な領域がストレージに確保されていることを確認します。

48
Replicate Load Readerを使ったRedoログへのアクセス
次の手順は、Replicate Log Readerを使用して再実行ログにアクセスする場合にのみ関連します。

オンラインログとアーカイブログ用のディレクトリを作成する
• [ログ リーダーのレプリケート] を使用するには、オンラインログとアーカイブ ログのディレクトリを作成する必要があります。
• ディレクトリを作成するには、次のコマンドを実行します。
exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;
exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;

※ 以下のクエリで作成したディレクトリの結果の参照が可能です。(もしくはdba_directoriesを参照)
select directory_path from all_directories where directory_name in ('ONLINELOG_DIR','ARCHIVELOG_DIR’);

• Oracle ソースエンドポイントにアクセスするために使用される Oracle ユーザーアカウントに次の権限を付与します。


GRANT READ ON DIRECTORY ONLINELOG_DIR TO replicate_user;
GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO replicate_user;

置換パスプレフィックスパラメータの設定
• Replicate Log Readerを使用するには、[Advanced] タブの [Replace path prefix] オプションを次の値で設定する必要があります。
• パスプレフィックスを /rdsdbdata/db/ORCL_A/ から /rdsdbdata/log/ の値に置き換えます。

制限事項と考慮事項
以下の Oracle 機能は、Amazon RDS for Oracle でのレプリケーションログリーダーの使用時にはサポートされません。
• ASM
• TDE
49
詳細情報

50
サポートされている暗号化方法
以下の表は、Oracle ソース データベースを操作する際に Qlik Replicateがサポートする暗号化方法を示しています。

ログの再実行アクセス方法 TDE テーブルスペース TDEカラム


Replicate Log Reader はい はい
Oracle LogMiner はい はい

※ NNE (ネイティブ ネットワーク暗号化) は、Oracle と Oracle クライアントの両方のsqlnet.oraファイルで正しく構成されている限りサポートされます。


※ 3DES168 アルゴリズムで暗号化された TDE 列のレプリケーションはサポートされていません。

51
TDE暗号化に使用されるWalletエントリの検索
TDE テーブルスペース暗号化または TDE 列暗号化に使用される正しい暗号化キーを指定するには、まず、暗号化キーを含む Oracle Walletの関連
エントリ (複数のキーの場合は複数のキーの場合はエントリ) を検索する必要があります。関連するエントリが見つかったら、エントリとその値 (または複数の
場合はエントリと値) をそれぞれ[Names]フィールドと[Values ]フィールドにコピーします。

※ 複数の値を入力するには、まず、各エントリをメモ帳などのテキスト エディタにコピーし、値をコンマで区切るようにします。次に、テキスト エディターから


値とコンマを含む文字列をコピーし、Values フィールドに貼り付けます。エントリに対してこれを行う必要はありません。エントリは[Entries ]フィールドに
直接貼り付けることができ、各エントリはカンマで区切ります。

Oracle ウォレットエントリを見つけるには、次の手順を実行します。
1. ENCRYPTION_WALLET_LOCATIONパラメータが sqlnet.ora ファイルで定義されている場合は、このパラメータで定義されたディレクトリからウォレ
ットを使用します。
2. WALLET_LOCATIONパラメータが sqlnet.ora ファイルで定義されている場合は、このパラメータで定義されたディレクトリからウォレットを使用します。
3. それ以外の場合は、デフォルトのデータベースの場所でウォレットを使用します。
 ウォレットの名前はewallet.p12です。
4. Oracle mkstoreユーティリティの「list」オプションを使用して、ORACLE.SECURITY.DB/TS.ENCRYPTION.<SUFFIX>エントリ名を判別します。
 mkstore –wrl <full wallet name> -list
5. Redo ログの暗号化にどのエントリ/エントリが使用されているかがわかっている場合は、エントリ名を選択し、Oracle mkstore ユーティリティの
“viewEntry” オプションを使用してエントリ値を次のように判別します。
 mkstore –wrl <full wallet name> -viewEntry <entry name>

52
サポートされている圧縮方法

以下の表は、Oracle ソース データベースを操作する際に Qlik Replicateがサポートする圧縮方法を示しています。表に示すように、圧縮のサポートは、


Oracle データベースのバージョンと、Oracle LogMiner を使用して再実行ログにアクセスするようにQlik レプリケートが構成されているかどうかの両方に依
存します。

バージョン Basic OLTP HCC(Oracle11g R2より) その他


Oracle 11 and above - はい はい はい いいえ
Replicate Log Reader 以下の注を参照してください。
Oracle 11 and above - はい はい はい *はい
Oracle LogMiner

*Oracle Log Readerがサポートする圧縮方法: Oracle ソース エンドポイントが[Replicate Log Reader] を使用するように構成されている


場合、HCC 圧縮方式のQuery Low level は、Full Loadタスク モードでのみサポートされます。

53
サポートされるスタンバイ構成
次の表に、サポートされる Oracle スタンバイ構成を示します。

スタンバイ構成 サポート 備考
スナップショットスタンバイ はい -
物理スタンバイ はい • 物理スタンバイ・データベースでは、Active Data Guardが有効になっている必要があります
(Oracle 11g 以降から使用可能)。
• Oracle LOG_ARCHIVE_DEST_n初期化パラメータが DELAY オプションで構成されてい
る場合、Oracle 物理スタンバイインスタンスでFull Loadおよび変更の適用タスクを実行すると、
ターゲット データベース内のデータが欠落または誤った結果になる可能性があります。これは、レ
プリケートが Redo ログの変更のタイムスタンプを、Full Loadを実行した Oracle インスタンス
のタイムスタンプとして解釈するのに対し、実際には変更が発生したOracle インスタンス (プライ
マリ Oracle インスタンス) のタイムスタンプであるためです。結果として生じるタイムスタンプの不
一致は、Redo ログの変更の一部が「古い」と解釈され、複製されないことを意味します。この
問題は、内部パラメータを使用して解決できます。このパラメータについては、Qlikサポートにお
問い合わせください。
論理スタンバイ いいえ -
ホットスタンバイ いいえ -

54
Shrink Spaceの操作の扱い

• SHRINK SPACE 操作が発生すると、レプリケートは操作の結果として再実行ログに記録されたすべての変更


をキャプチャし、それらを無視します。タスクのログ ファイルに次のメッセージが表示されます。
Operations generated by the SHRINK SPACE process were ignored.

監視に関する考慮事項
• REPLICATEが SHRINK SPACE 操作の結果生じた変更をキャプチャする場合、タスクの受信変更バーには、
異常に多くの変更が表示されます。ただし、これらの変更は、適用された変更の円グラフまたは適用された変更
の詳細テーブルには反映されません。
• ログ リーダーと LogMiner のレプリケーション モードでの SHRINK SPACE 操作に関連する制限事項について
は、「制限事項と考慮事項」のセクションも参照してください。

55
ネストした表のレプリケート

• Replicateは、ネストした表または定義済みの型である列を含む Oracle テーブルのレプリケーションをサポートします。この機能を有効にするには、


[Advanced] タブの [Support nested tables] オプションを選択します。
• レプリケートは、一意制約のない通常のテーブルとして Oracle のネストした表のターゲット テーブルを作成します。親テーブルと子テーブルを結合して意
味のあるデータを作成する必要が生じやすいので、ターゲットの子テーブルのNESTED_TABLE_ID列に一意でないインデックスを手動で作成すること
が重要です。NESTED_TABLE_ID列は、子テーブル名に対応する親列と共に JOIN ON 句で使用できます。さらに、このようなインデックスを作成す
ると、レプリケートによってターゲットの子テーブル のデータが更新または削除される場合のパフォーマンスが向上します。
• stop after Full Load completesのタスク設定をすることをお勧めします。Full Loadが完了したら、ターゲット上のすべてのレプリケート子テーブルに対して
一意でないインデックスを手動で作成し、タスクを再開します。
• キャプチャされたネストした表が既存の親テーブル(キャプチャまたはキャプチャされていない)に追加された場合 、Replicateはそれを正しく処理しますが、
対応するターゲットテーブルの非ユニークインデックスは作成されません。この場合、ターゲットの子テーブルが非常に大きくなると、パフォーマンスが低下す
る可能性があることに注意してください。このような場合は、タスクを停止し、インデックスを作成してから、タスクを再開することをお勧めします。
• ネストされたテーブルがターゲットにレプリケートされた後、DBA はデータを平坦化するために親テーブルと対応する子テーブルでJOIN ステートメントを実
行する必要があります。

56
ネストした表のレプリケート
前提 条件
すべてのレプリケートされるネストテーブルの親テーブルもレプリケートすることを確認します。親テーブル (ネストされたテーブル列を含むテーブル) と子テー
ブル (つまり、ネストされた) テーブルの両方が、Replicateで選択できます。

サポートされている入れ子になったテーブルの型
次のネストした表の種類がサポートされています。
• データ型
• ユーザー定義オブジェクト

制限
• 1 レベルのネストのみがサポートされます。
• レプリケートでは、親テーブルと子テーブルの両方がレプリケーション用に選択されていることを確認しません。つまり、子なしの親テーブルを選択するこ
とも、親テーブルも選択できます。

57
ネストテーブルのレプリケート

ネストテーブルがレプリケートされる方法
親テーブルとネストされたテーブルは、次のようにターゲットにレプリケートされます。
• 親テーブルは、ソースと同様に作成されます。ネストされた列は RAW(16) として定義され、NESTED_TABLE_ID列にネストされたテーブ
ルへの参照が含まれます。
• 子テーブルはソースと同様に作成されますが、親の入れ子になった列と同じ型で、同じ意味を持つNESTED_TABLE_IDという名前の列が
追加されます。

JOIN ステートメントの例
親テーブルをフラット化するには、次の例に示すように、DBA は親テーブルと子テーブルの間で JOIN ステートメントを実行する必要があります。

タイプ テーブルを作成:
CREATE OR REPLACE TYPE my_tab_t AS TABLE OF VARCHAR2(30);

上記で定義した型my_tab_tの列を持つ親テーブルを作成:
CREATE TABLE my_parent_table (id NUMBER PRIMARY KEY, col1 my_tab_t) NESTED TABLE col1 STORE AS
col1_tab;

my_parent_tableを平坦化:
Select … from my_parent_table parent, col1_tab child where child.nested_table_id = parent.col1

58
データ型
• Qlik レプリケート用の Oracle データベースは、ほとんどの Oracle データ型をサポートします。次の表は、Qlik レプリケートを使用する場合にサポートされる
Oracle ソース データ型と、Qlik レプリケートデータ型への既定のマッピングを示しています。

Oracleデータ型 Qlik Replicateデータ型


BINARY_FLOAT REAL4
BINARY_DOUBLE REAL8
BINARY BYTES
FLOAT (P) REAL8
When scale is < 0: REAL8
When scale is 0 and:
Precision = 0: REAL8
NUMBER (P,S)
Precision < or = 2: INT1
Precision >2 and <or = 4: INT2
Qlik Replicate Oracle ソース データベースの設定の"Expose number as" プロパティに従った
Precision >4 and <or = 9: INT4
NUMBER。
Precision > 9: NUMERIC
If precision > or = scale: NUMERIC
In all other cases: REAL8
DATETIME DATETIME
INTERVAL_YEAR TO MONTH STRING (with interval year_to_month indication)
INTERVAL_DAY TO SECOND STRING (with interval day_to_second indication)
TIMESTAMP DATETIME
TIMESTAMP WITH TIME ZONE STRING (with timestamp_with_timezone indication)
TIMESTAMP WITH LOCAL TIME ZONE STRING (with timestamp_with_local_timezone indication)
CHAR STRING
長さ<= 4000 バイト:
STRING
VARCHAR2
長さ> 4000 バイト:
CLOB
長さ<= 4000 バイト:
WSTRING
NCHAR
長さ> 4000 バイト:
NCLOB

59
データ型
Oracleデータ型 Qlik Replicateデータ型
長さ<= 4000 バイト:
WSTRING
NVARCHAR2
長さ> 4000 バイト:
NCLOB
長さ<= 2000 バイト:
BYTES
RAW
2000 バイト>長さ:
BLOB
REAL REAL8

BLOB

このデータ型をQlik Replicateで使用するには、特定のタスクに対してBLOBの使用を有効にする必要があります。
BLOB
CDC 中または [Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB データ型
は主キーを持つテーブルでのみサポートされます。

CLOB

Qlik Replicateでこのデータ型を使用するには、特定のタスクに対してCLOBを使用できるようにする必要があります。
CLOB
CDC 中または [Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB データ型
は主キーを持つテーブルでのみサポートされます。

NCLOB

このデータ型をQlik レプリケートで使用するには、特定のタスクに対してNLOBの使用を有効にする必要があります。
NCLOB
CDC 中または[Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB データ型
は主キーを持つテーブルでのみサポートされます。

60
データ型
Oracleデータ型 Qlik Replicateデータ型

LONG

LONG データ・タイプは、 Batch Optimized Applyモードではサポートされていません。


CLOB
このデータ型をQlik Replicateで使用するには、特定のタスクに対して LOB の使用を有効にする必要があります。

CDC 中または[Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB データ型は


主キーを持つテーブルでのみサポートされます。

LONG RAW

LONG RAW データ・タイプは、Batch Optimized Applyモードではサポートされていません。


BLOB
このデータ型をQlik Replicateで使用するには、特定のタスクに対して LOB の使用を有効にする必要があります。

CDC 中または[Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB データ型は


主キーを持つテーブルでのみサポートされます。

XMLTYPE

XML 列を複製する場合、Oracle 12 クライアントを使用しないことでパフォーマンスを向上させることができます。

XMLTYPE データ型のサポートには、Oracle Instant Clientではなく、Full Oracle Clientが必要です。


CLOB
ターゲット列が CLOB の場合、完全 LOB モードと制限付き LOB モードの両方がサポートされます (ターゲットによって
異なります)。

詳細については、「Task Settings/Metadata」のLOB supportを参照してください。

61
サポートされていないデータ型

次のデータ型の列はサポートされておらず、レプリケートされません。

• BFILE
• ROWID
• REF
• UROWID
• ANYDATA
• SDO_GEOMETRY
• User-defined data types

※ 仮想列はサポートされていません。
※ ROWID データ・タイプはサポートされていないので、ROWID 列に基づくマテリアライズド・ビューもサポートされていません。

62
同種レプリケーション
Oracle ソースから Oracle ターゲットにレプリケートする場合、次の表に示すデータ型を除き、すべてのソースデータ型とターゲット データ型は同一になります。
• Oracle 9.0 以降では、LONG および LONG RAW データ型は Oracle ではサポートされなくなりました。
• プライマリ/一意のインデックス名は、同種レプリケーション時に保持されます。
• 同種レプリケーションでは、ソース データは最初にQlik Replicateデータ型を通過するため、その種類の制限が適用されます。
• データ型のレプリケートとその制限 (関連する場合) については、「データ型のレプリケート」を参照してください。
• Oracle からレプリケートするときにソース データが通過するレプリケートデータ型については、前述の Oracle to Qlik レプリケートデータ型マッピング テーブルを参照してください。

Oracle Data Types Qlik Replicate Data Types


VARCHAR2 Length > 4000 bytes:
CLOB

NVARCHAR2 Length > 4000 bytes:


NCLOB

RAW Length > 2000 bytes:


BLOB

LONG CLOB
LONG RAW データ・タイプは、Batch Optimized Applyモードではサポートされていません。

このデータ型をQlik Replicateで使用するには、特定のタスクに対して LOB の使用を有効に


する必要があります。

CDC 中または[Allow unlimited LOB size] オプションが有効になっている場合のフル ロー


ド中は、LOB データ型は主キーを持つテーブルでのみサポートされます。

LONG RAW BLOB


LONG RAW データ・タイプは、Batch Optimized Applyモードではサポートされていません。

このデータ型をQlik Replicateで使用するには、特定のタスクに対して LOB の使用を有効に


する必要があります。

CDC 中または[Allow unlimited LOB size] オプションが有効になっている場合のフル ロー


ド中は、LOB データ型は主キーを持つテーブルでのみサポートされます。

63
制限事項など

64
制限事項と考慮事項
• CHAR 列から複製する場合、末尾のスペースは切り捨てられます。
• 関数ベースのインデックスはサポートされていません。
• supplemental loggingを管理していて、いずれかの列に対して変換を実行する場合は、すべてのフィールドと列に対してsupplemental loggingが有効になっていることを
確認する必要があります。
• AR_H_USERヘッダー列は、Oracle データベース バージョン 11.2.0.3 以降でのみサポートされます。Oracle データベース バージョン 10 では、この列の値が正しくない可能
性があります。ヘッダー列の使用については、「 Headers 」を参照してください。
• CDB への接続はサポートされていません。
• 仮想プライベート データベース (VPD) はサポートされていません。
• 遅延制約(Deferred Constraints)はサポートされていません。
• Oracle バージョン 11 以降を使用する場合、 rename table <table name> to <new table name>のシンタックスは、Qlik Replicateによってサポートされます。
• パーティション/サブパーティション操作 (追加、DROP、EXCHANGE、および TRUNCATE) の結果として生じるデータの変更はレプリケートされません d はレプリケートされず、
次のエラーが発生する可能性があります。
 ADD 操作の場合、追加されたデータの更新および削除は、" 0 rows affected " 警告を返す場合があります。
 DROP および TRUNCATE 操作の場合、新しい挿入は”duplicate”エラーを発生する可能性があります。
 EXCHANGE 操作では、" 0 rows affected " 警告と " duplicate " エラーの両方が発生する可能性があります。
• パーティション/サブパーティション操作の結果として生じる変更を複製するには、対象のテーブルを再ロードする必要があります。新しい空のパーティションを追加すると、新しく追加
されたパーティションに対する操作は、通常どおりターゲットにレプリケートされます。
• 制限付き LOB モードが有効になっている場合、Oracle ソース上の空の LOB は NULL 値としてレプリケートされます。制限付き LOB モードの詳細については、「Task
Settings Metadata 」を参照してください。
• Oracle DBMS_REDEFINITIONパッケージ(テーブルメタデータやOBJECT_IDなど)による変更は、Qlik Replicateによってキャプチャされません。
• 空の BLOB/CLOB 列は、ターゲット上の NULL にマップされます。
• 変更処理中に、supplemental logging(LOB 列など) がなく更新されない列は、変更テーブルに NULL として挿入されます。
• 変更処理中に、主キーとして定義された数値列のバッチ更新はサポートされません。サポートされないUPDATEコマンドは以下の通り:
UPDATE tableX set ID=ID+1;
ここでtableXはテーブル名で、IDは主キーとして定義された数値列です。

65
制限事項と考慮事項
• LONG および LONGRAW 列を Oracle ターゲットにロードする場合は、[Allow unlimited LOB size]オプションはサポートされません。
 回避策: 代わりに[Limit LOB size to (KB) ]オプションを使用します。
• アポストロフィが含まれる名前のテーブルは複製できません。
• 変更データ キャプチャ (CDC) は、動的ビュー(dynamic views)ではサポートされていません。
• オーバーフロー・セグメントを持つ索引構成表(Index-organized tables)は、変更処理 (CDC) タスクではサポートされません。
• [Allow unlimited LOB size] オプションが有効になっている場合のCDC 中またはフル ロード中は、LOB データ型は主キーを持つテーブルでのみサポートされます。
• キー圧縮を使用した索引構成表(Index-organized tables)の変更はサポートされていません。
• BIN$ または DR$ タイプのテーブルまたはビューのレプリケーションはサポートされていません。
• Oracle LogMiner を使用して再実行ログにアクセスする場合、次の制限が適用されます。
 XMLTYPE 列および LOB 列への UPDATE はサポートされません。
 SHRINK SPACE操作はサポートされていません
 Oracle LogMiner を使用した PDB への接続はサポートされていません。
 予測できない動作のため、RAC環境から複製する場合は Oracle LogMinerを使用しないことをお勧めします。
•Replicate Log Readerを使用して REDO ログにアクセスする場合、次の制限が適用されます。
 テーブル クラスタはサポートされていません。
 テーブルレベルの SHRINK SPACE 操作のみがサポートされます。これには、完全なテーブル、パーティション、およびサブパーティションが含まれます。
 オンライン REDO ログを RAW デバイスに実装することはサポートされていません。
 以下の Oracle 機能は、Amazon RDS for Oracle を使用する場合はサポートされません。
 ASM
 TDE

66
制限事項と考慮事項
• エスケープ文字 '\' を使用してテーブルの選択ウィンドウ内のテーブルを検索する場合は、 '\' (円記号 1) ではなく '\\' (2 つの円記号) を記述する必要があります。たとえば、
'_ 'を含むすべてのテーブルを検索するには、%\\_% を入力する必要があります。
※ includeまたはexcludeのパターンを追加する場合、2 つの円記号は必要ありません (たとえば、*%\_%)。
※ エスケープ文字に '$' を使用する場合、制限はありません。
• Oracle 19.0 をソースとして使用する場合、以下の Oracle 機能はサポートされません。
 Data-guard DML リダイレクト
 パーティション化されたハイブリッド テーブル
 スキーマのみの Oracle アカウント
• Oracle 18.x からは、Oracle Express Editionからの変更キャプチャはサポートされていません。
• Oracleデータベースでは FULL after-imageが生成されないため、次の制限が適用されます:
Batch optimized applyモードで UPDATE を適用する場合、 INSERT the missing target recordのエラー処理オプションを、 Apply Changes using SQL MERGEオプショ
ンもサポートされません。これらのオプションのいずれかを選択すると、変更されていないすべてのユーザー定義データのターゲット列に NULL が挿入されます。
• 主キーを含まないレコードをフィルタする場合、フィルタ条件に含まれる列に対する完全なsupplemental loggingを持たないレコードに対する DELETE 操作のキャプチャはサポー
トされません。
• オブジェクト名が 30 文字を超える場合は、サポートされていません。したがって、名前が 30文字を超えるテーブル、または30文字を超える列名を含むテーブルはレプリケートされ
ません。

67
Oracleのターゲットとしての利用

68
Qlik Replicate側での
基本セットアップ

69
WindowsでのOracle Instant Clientの設定

• Windowsシステムでは、Oracle Instant Client for Microsoft Windows (x64) Version 11.2.0.3.0以降をインストールします。


 最新のサポート情報については、Client prerequisites ‒ Qlik Replicateのサイトをご確認ください。
• 以下はインストール手順の例を示します。手順詳細については、下記Oracle Instant Clientダウンロードサイトに記載の手順をご確認ください。

1. プラットフォームに適したインスタントクライアントパッケージをダウンロードします。(Basic Packageおよび、SQL*Plusを使っ
てOracleへの接続の確認を行う場合にはSQL*Plus Packageを導入します。)
 Oracle Instant Client Downloads
2. 単一のディレクトリ(C:\oracle\instantclient_19_12)にZIPファイルの内容を展開します。
3. このディレクトリを PATH環境変数に追加します。
4. Qlik Replicate Serverサービスを再起動します。

※ XMLTYPE データ型のサポートには、完全な Oracle クライアントが必要です。

70
LinuxでのOracle Instant Clientの設定
• Windowsシステムでは、Oracle Instant Client for Linux (x86-64) Version 11.2.0.3.0以降をインストールします。
 最新のサポート情報については、Client prerequisites ‒ Qlik Replicateのサイトをご確認ください。
• 以下はインストール手順の例を示します。手順詳細については、下記Oracle Instant Clientダウンロードサイトに記載の手順をご確認ください。

1. プラットフォームに適したインスタントクライアントパッケージをダウンロードします。(Basic Packageおよび、SQL*Plusを使ってOracleへの接続
の確認を行う場合にはSQL*Plus Packageを導入します。)
 Oracle Instant Client Downloads
2. 単一のディレクトリ(/opt/oracle/instantclient_19_12)にZIPファイルの内容を展開します。
3. このディレクトリを LD_LIBRARY_PATH環境変数に設定するための以下の行を/opt/attunity/replicate/bin/site_arep_login.shファ
イルに追加します。
 export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_12:$LD_LIBRARY_PATH
4. Qlik Replicate Serverサービスを再起動します。
 /opt/attunity/replicate/bin/areplicate restart

※ XMLTYPE データ型のサポートには、完全な Oracle クライアントが必要です。

71
Qlik Replicateからデータ
ベースへアクセスする
ユーザーの追加

72
Replicateユーザーへの必要なOracleアクセス権限の付与
• Qlik ReplicateからOracleターゲットへのアクセスに利用されるユーザーに以下の権限付与を行います。

• CREATE ANY TABLE


• CREATE ANY INDEXES
• ALTER ANY TABLE
• DROP ANY TABLE
• INSERT ANY TABLE
• UPDATE ANY TABLE
• DELETE ANY TABLE
• SELECT ANY TABLE
• SELECT all_indexes
• SELECT all_ind_columns
• SELECT all_constraints
• SELECT all_cons_columns

73
Qlik Replicateでの
エンドポイント定義

74
一般的な接続プロパティの設定

• Connection String: 以下の形式でOracleへの接続文字列を入力します。

//host:port/service name

 host: Oracleサーバーのホスト名またはIP アドレスです。


 port: (オプション) OracleのTNS リスナーポート番号です。ポート番号を
入力しない場合は、デフォルトのTNS リスナーポートが使用されます。
 service name: (オプション) 使用している Oracle データベースを持つコ
ンピュータのサービス名です。サービス名を入力しない場合は、デフォルトのサ
ービス名が使用されます。

※ Oracle Net のキーワード値ペアを入力することもできます。例えば:

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=dlsun242) (PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=bjava21)))

※ マルチテナント環境で作業する場合、接続文字列は特定のPDBを指定する必要
があります。

• Username / Password: Oracle 認証情報 (ユーザー名、パスワード) を


入力します。

75
高度な接続プロパティの設定
追加のプロパティは、Oracle データベース接続設定の [Advanced] タブで設定できます。

Use direct path full load : これを選択すると、Oracle テーブルのバルク ロー


ドに OCI ダイレクト パス プロトコルを使用できます。これがデフォルトの選択です。

※ Oracle ダイレクト パスの問題により、このオプションが選択され、 If target


table already existsがDo nothing何もしないに設定されている場合、以
下が発生します:
 タスクを初めて実行すると、エラーは発行されず、同じ主キーを持つ行がター
ゲットテーブルに追加される場合があります。
 2 回目のタスクの実行時に、設定が有効になります。
 次回以降のタスクを実行で、エラーが生成されます。

76
データ型

77
データ型
• Qlik Replicateでは、ほとんどの Oracle データ型をサポートします。次の表は、Qlik Replicateを使用する場合にサポートされる Oracle ターゲット デー
タ型と、Qlik Replicate データ型からの既定のマッピングを示しています。

Qlik Replicateデータ型 Oracleデータ型


BOOLEAN NUMBER (1)
BYTES RAW (length)
DATE DATETIME
TIME TIMESTAMP (0)
DATETIME TIMESTAMP (scale)
INT1 NUMBER (3)
INT2 NUMBER (5)
INT4 NUMBER (10)
INT8 NUMBER (19)
NUMERIC NUMBER (p,s)
REAL4 BINARY_FLOAT
REAL8 BINARY_DOUBLE
STRING With date indication: DATE
With time indication: TIMESTAMP
With timestamp indication: TIMESTAMP
With timestamp_with_timezone indication: TIMESTAMP WITH TIMEZONE
With timestamp_with_local_timezone indication: TIMESTAMP WITH LOCAL TIMEZONE
With interval_year_to_month indication: INTERVAL YEAR TO MONTH
with interval_day_to_second indication: INTERVAL DAY TO SECOND
If Length > 4000: CLOB
In all other cases: VARCHAR2 (Length)
78
データ型
• Qlik レプリケート用の Oracle データベースは、ほとんどの Oracle データ型をサポートします。次の表は、Qlik レプリケートを使用する場合にサポートされる
Oracle ソース データ型と、Qlik レプリケートデータ型への既定のマッピングを示しています。
Qlik Replicateデータ型 Oracleデータ型
UINT1 NUMBER (3)
UINT2 NUMBER (5)
UINT4 NUMBER (10)
UINT8 NUMBER (19)
WSTRING NVARCHAR2 (length)
長さが 2000 より大きい場合、列のデータ型は NCLOB になります。
BLOB BLOB
このデータ型をQlik Replicateで使用するには、特定のタスクに対してBLOBの使用を有効にする必要があります。
CDC 中または [Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB デー
タ型は主キーを持つテーブルでのみサポートされます。
CLOB CLOB
Qlik Replicateでこのデータ型を使用するには、特定のタスクに対してCLOBを使用できるようにする必要がありま
す。
CDC 中または [Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB デー
タ型は主キーを持つテーブルでのみサポートされます。
NCLOB NCLOB
このデータ型をQlik レプリケートで使用するには、特定のタスクに対してNLOBの使用を有効にする必要があります。
CDC 中または[Allow unlimited LOB size] オプションが有効になっている場合のフル ロード中は、LOB デー
タ型は主キーを持つテーブルでのみサポートされます。
XMLTYPE ターゲット・データ・タイプは、Oracle - XMLTYPE
Oracle間のレプリケーション・タスクにのみ関連しま
す。以下の注を参照してください。
※ ソース データベースが Oracle の場合、ソース データ型は Oracle ターゲットにas isでレプリケートされます。たとえば、ソース上の 79
XMLTYPE データ型は、ターゲット上の XMLTYPE データ型として作成されます。
制限事項

80
制限事項
次の制限事項が適用されます。
• [Use direct path full load] オプションでは、次の機能はサポートされていません。
 INDEXTYPE CONTEXTを持つテーブル
 回避策: Array Loadを使用します。
 双方向レプリケーション
 トリガー
• Qlik Replicateは、Oracle データベースに新しいスキーマを作成できません。新しいスキーマにレプリケートするには、Oracle ターゲットに新しいス
キーマ名が存在している必要があります。その後、[Task Settings] の[Target metadata] タブと [Control tables] タブで必要に応じて、新し
いスキーマ名を指定できます。

81
www.qlik.com/sap

You might also like