Keys to the Oracle Cloud
第19回:【BIG DATA編】
Autonomous Data Warehouseへのリアルタイムでのデータ集約

大塚紳一郎, 2020年9月

著者紹介

大塚 紳一郎(おおつか しんいちろう)

2003年、株式会社野村総合研究所に新卒で入社。ミッションクリティカルシステムにおけるOracle Databaseの構築、運用、コンサルティングに関して15年以上の経験を持つ。毎年サンフランシスコで開催される世界最大のテクノロジーイベント「Oracle OpenWorld」を含む各種イベントでの講演多数。Autonomous DatabaseがGAされた年にOracle ACE Associateになれたことに運命を感じており、Oracleデータベース管理者の今後のロールモデルの構築に携わりたいと考え日々活動中。最新の登壇タイトルは「Boosting your career through Oracle Cloud Infrastructure 2019 Architect Professional.」

 

  • NRI認定ITアーキテクト
  • Oracle ACE
  • Oracle MASTER Platinum10g,11g,12c(Platinum of the year 2016 in Japan)
  • Oracle MASTER Cloud Oracle Database Cloud Service
  • Oracle MASTER Cloud Oracle Java Cloud Service
  • Oracle Cloud Infrastructure 2018 Certified Architect Associate
  • Oracle Database Cloud Service 2019 Operations Certified Associate
  • Oracle Autonomous Database Cloud 2019 Certified Specialist
  • Oracle Cloud Infrastructure 2019 Architect Professional
著者紹介
著者紹介
  • これからの内容はOracle Cloud Infrastructure (以下OCI)のサービスを前提としたものです。
  • 検証時点(2019年3月末)のOCIのサービス内容に基づいて記載しているため、内容が一部異なる場合があります。
  • 最新の情報については公式Webサイト(https://www.oracle.com/jp/index.html)をご確認頂きたく思います。
  • 本連載は私個人の理解に基づいており、事実と異なる可能性があることをご了承いただきたく思います。

1.はじめに
こんにちは、NRIの大塚です。今回はBIG DATA領域の連載5回目です。
今回はAutonomous Data Warehouseへのリアルタイムでのデータ集約を実装したいと思います。

 

 

今回はAutonomous Data Warehouseへのリアルタイムでのデータ集約を実装します。
Oracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4 サーバへの5つの設定で実現します。
この設定により、ソースDB(DBaaS)で発生したデータの差分をAutonomous Data Warehouseへ反映・集約することができます。

 

 

実装手順は以下の6ステップとなります。

- Step1:Oracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4サーバからソースDB(DBaaS)へ接続するためのCredentialの作成
- Step2:Extract(ソースDBの差分データ抽出プロセス)の作成
- Step3:Path(ソースDBの差分データTrailをReplicatに連携するプロセス)の作成
- Step4:Oracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4サーバから
ターゲットDB(Autonomous Data Warehouse)へ接続するためのCredentialの作成
- Step5:Replicat(ターゲットDBへの差分データ反映プロセス)の作成
- Step6:動作確認
ソースDB(DBaaS)で発生したデータの差分をAutonomous Data Warehouseへ反映・集約

今回も少し長くなりますが、頑張って作っていきましょう。
それでは、さっそく始めたいと思います。
 
1.Oracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4サーバからソースDB(DBaaS)へ接続するためのCredentialの作成

下図赤枠のOracle GoldenGate Service Manager Web管理コンソールへアクセスするところからはじめていきます。

 

 

接続の仕方は以下URLにブラウザでアクセスしてください。
https:// Oracle GoldenGate Microservices Edition  for Oracle 19.1.0.0.4サーバのPublic IPアドレス
Oracle GoldenGate Service Manager Web管理コンソールのトップページは以下です。

 

 

Sign Inが成功すると以下の画面に遷移します。
Oracle GoldenGate Service Manager Web管理コンソールには以下のようなポータルサイトとなっています。
Administration Serverに接続してみたいと思います。下図赤枠を押下してみてください。

 

 

Administration ServerのWeb管理コンソールに接続できました。Sign Inします。

 

 

Sign Inが成功するとOverview画面に遷移します。

 

 

まずOracle GoldenGateで初期設定されているOracle GoldenGate管理ユーザーを変更します。
Oracle GoldenGate管理ユーザーは初期状態で「ggadmin」が設定されています。
ソースDB(DBaaS)はマルチテナント構成であり、該当ユーザーは「c##ggadmin」となりますので、これを反映します。
「Configuration」→「Parameter Files」タブを押下してください。

 

 

「GLOBALS」→「編集ボタン」を押下します。

 

 

「ggadmin」から「c##ggadmin」に修正を行い、「Submit」を押下します。

 

 

反映されました。

 

 

次にソースDB(DBaaS)に接続するためのCredentialを作成します。
「Database」タブを押下します。

 

 

値を入力していきます。まずコンテナDB(CDB)のCredentialを作成します。
「+」を押下し、値を入力します。

 

 

すぐに作成されます。

 

 

次にプラがブルDB(PDB)のCredentialを作成します。
「+」を押下し、値を入力します。

 

 

すぐに作成されます。
ソースDB(DBaaS)のPDBにHeartbeat Tableを作成します。
下図のようにボタンを押下し、DB接続してください。

 

 

「+」ボタンを押下し、設定値を確認の上、「Submit」を押下します。

 

 

以下のようになります。

 

 

2.Extract(ソースDBの差分データ抽出プロセス)の作成

それではソースDB(DBaaS)のPDBからデータを抽出する「Extract」を作成します。
「Overview」→「+」ボタンを押下します。

 

 

ナビゲートに沿ってExtractを作成していきます。
「Integrated Extract」を選択→「Next」を押下します。
(Classic ExtractはOracle GoldenGate 18cより非推奨となっております。)

 

 

続けて値を入力していきます。

 

 

最終ステップのParameter Filesは以下のように編集し、「Create & Run」を押下します。

Copied to Clipboard
Error: Could not Copy
Copied to Clipboard
Error: Could not Copy

extract EXT01
useridalias SRC1CDB domain OracleGoldenGate
exttrail ET
sourcecatalog SRC1PDB
table APPADMIN.*;
 

 

作成できました。

 

 

ソースDB(DBaaS)のOracle Databaseのバージョンが18.9.0.0.0 Standard Editionの場合、
Critical Eventsに以下が表示される場合があります。
「Oracle GoldenGate Capture for Oracle, <Extract process name>.prm: OCI Error 23,605.」
その場合はソースDB(DBaaS)へ個別パッチの適用をして頂ければ、解消します。
Patch 29374604 - IE not starting against 18c Oracle RDBMS Standard Edition.

個別パッチの適用方法は以下を参考に実施してください。
※Oracle Cloud Infrastructureドキュメント 
DBシステムへのパッチ適用
https://docs.oracle.com/cd/E97706_01/Content/Database/Tasks/patchingDB.htm

私の実行ログを抜粋して掲載しますので、有事の際はご利用ください。

Copied to Clipboard
Error: Could not Copy
Copied to Clipboard
Error: Could not Copy

事前作業:
・ソースDB(DBaaS)のDBを停止
・個別パッチの配置(私は/tmp配下で作業)
・個別パッチの解凍(unzip p29374604_189000DBRU_Linux-x86-64.zip)
・oracleユーザーへスイッチ
以下実行ログ:
[oracle@ソースDBのホスト名 tmp]$ export ORACLE_HOME=/u01/app/oracle/product/18.0.0/dbhome_1 
[oracle@ソースDBのホスト名 tmp]$ cd 29374604/      ←個別パッチのディレクトリに移動
[oracle@ソースDBのホスト名29374604]$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.18
Copyright (c) 2020, Oracle Corporation.  All rights reserved.
Oracle Home       : /u01/app/oracle/product/18.0.0/dbhome_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18.0.0/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.18
OUI version       : 12.2.0.4.0
Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29374604  
Do you want to proceed? [y|n]
y       ←「y」を入力
User Responded with: Y
All checks passed.
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/18.0.0/dbhome_1')
Is the local system ready for patching? [y|n]
y       ←「y」を入力
User Responded with: Y
Backing up files...
Applying interim patch '29374604' to OH '/u01/app/oracle/product/18.0.0/dbhome_1'
Patching component oracle.rdbms, 18.0.0.0.0...
Patch 29374604 successfully applied.
OPatch succeeded.                ←OPatchの適用が成功しました。
[oracle@ソースDBのホスト名29374604]$ exit

事後作業:DBaaSシステムの再起動

3.Path(ソースDBの差分データTrailをReplicatに連携するプロセス)の作成

Pathの作成に進みます。Deployment SourceのDistribution ServerのPort「9012」を押下します。

 

 

Distribution ServerのOverview画面において「+」ボタンを押下します。

 

 

値を入力し、「Create & Run」を押下します。

 

 

メッセージが表示されます。「OK」を押下します。

 

 

作成できました。

 

 

4.Oracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4サーバから
ターゲットDB(Autonomous Data Warehouse)へ接続するためのCredentialの作成

最後にターゲットDB(Autonomous Data Warehouse)へのデータ反映設定をしていきます。
Deployment「Target」のAdministration ServeのPort「9021」を押下します。

 

 

Administration ServeのOverview画面に遷移します。
ハンバーガーボタンを押下します。

 

 

Autonomous Data WarehouseへのCredentialを作成します。
「Configuration」を押下してください。
すると、Autonomous Data Warehouseの場合はすでにCredentialが登録されています。
パスワードの入力をするだけでCredentialの準備は完了します。

 

 

「Database」タブ→「+」を押下し、パスワードを入力します。

 

 

これでAutonomous Data WarehouseへのCredentialの準備は完了です。
次にAutonomous Data WarehouseにCheckpoint Tableを作成します。
データベース接続ボタンを押下します。

 

 

Checkpoint Table名を入力し、「Submit」を押下します。
Checkpoint Table名は「ggadmin.checkpoint_appadmin」とします。
(Oracle GoldenGate管理ユーザー名を含めます)

 

 

すぐに作成されます。次にReplicatを作成します。「Overview」ボタンを押下します。
ReplicatはソースDB(DBaaS)で抽出した差分データ(Trail)をPath経由で受け取り、ターゲットDB(Autonomous Data Warehouse)へ反映するプロセスです。

 

 

5.Replicat(ターゲットDBへの差分データ反映プロセス)の作成

Replicatを作成します。「+」ボタンを押下します。

 

 

Autonomous Data Warehouseがサポートしている「Nonintegrated Replicat」を選択、「Next」を押下します。

 

 

続けて値を入力していきます。

 

 

最終ステップのParameter Filesは以下のように編集し、「Create & Run」を押下します。

Copied to Clipboard
Error: Could not Copy
Copied to Clipboard
Error: Could not Copy

replicat REP01
useridalias target1adw_low domain OracleGoldenGate
dboptions enable_instantiation_filtering
sourcecatalog SRC1PDB
MAP APPADMIN.*, TARGET APPADMIN.*;
 

 

作成できました。

 

 

6.動作確認-ソースDB(DBaaS)で発生したデータの差分をAutonomous Data Warehouseへ反映・集約-

以下の流れで動作確認を行います(図中の番号①②の説明をします)
①    ソースDB(DBaaS)のAPPAMINユーザーが所有するemp tableにINSERT
②    ターゲットDB(Autonomous Data Warehouse)のAPPADMINユーザーが所有するemp tableでSELECT。ソースDB(DBaaS)における差分が反映されていることを確認します。
動作確認はOracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4サーバを基点として行います。

 

 

Oracle GoldenGate Microservices Edition for Oracle 19.1.0.0.4サーバへのアクセス方法は以下です。

 

 

システム構成図で表すと下図のようになります。

 

 

実際のコマンドで接続してみたいと思います。

Copied to Clipboard
Error: Could not Copy
Copied to Clipboard
Error: Could not Copy

[opc@プロキシサーバのhostname 鍵ファイル置き場]$ ssh -i myrsa opc@Oracle GoldenGate Microservices Edition  for Oracle 19.1.0.0.4サーバのPrivateIPアドレス
-bash-4.2$ export ORACLE_HOME=/u01/app/client/oracle18
-bash-4.2$ export TNS_ADMIN=/u02/deployments/Source/etc
-bash-4.2$ cd $ORACLE_HOME/bin
-bash-4.2$ ./sqlplus appadmin/*************@SRC1PDB   ←ソースDB(DBaaS)へ接続
SQL*Plus: Release 18.0.0.0.0 - Production on Tue Mar 31 08:47:47 2020 Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production Version 18.9.0.0.0

SQL> select emp_id, emp_name from emp;
no rows selected
SQL> insert into emp values(111,'otsuka111');
1 row created.
SQL> commit;
Commit complete.
SQL> select emp_id, emp_name from emp;
EMP EMP_NAME
--- ----------
111 otsuka111
SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.9.0.0.0

続けていきます。

Copied to Clipboard
Error: Could not Copy
Copied to Clipboard
Error: Could not Copy

-bash-4.2$ export TNS_ADMIN=/u02/deployments/Target/etc
-bash-4.2$ ./sqlplus appadmin/**************@target1adw_low    ←ターゲットDBへ接続
SQL*Plus: Release 18.0.0.0.0 - Production on Tue Mar 31 08:55:43 2020 Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production Version 18.4.0.0.0

SQL> select emp_id, emp_name from emp;
EMP EMP_NAME
--- ----------
111 otsuka111    ←データが反映されていることが確認できました。
SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

※実験を続けます(DELETEは反映されるのか?さらにINSERTしたら場合のターゲットDBのemp tabelの状態は?)
-bash-4.2$ export TNS_ADMIN=/u02/deployments/Source/etc
-bash-4.2$ ./sqlplus appadmin/*************@SRC1PDB   ←ソースDB(DBaaS)へ接続
SQL*Plus: Release 18.0.0.0.0 - Production on Tue Mar 31 08:47:47 2020 Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production Version 18.9.0.0.0

SQL> select emp_id, emp_name from emp;
EMP EMP_NAME
--- ----------
111 otsuka111
SQL> delete from emp where emp_id=111;
1 row deleted.
SQL> commit;
Commit complete.
SQL> insert into emp values(511,'otsuka511');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into emp values(512,'otsuka512');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into emp values(513,'otsuka513');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into emp values(514,'otsuka514');
1 row created.
SQL> commit;
Commit complete.
Copied to Clipboard
Error: Could not Copy
Copied to Clipboard
Error: Could not Copy

SQL> insert into emp values(515,'otsuka515');
1 row created.
SQL> commit;
Commit complete.
SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.9.0.0.0

-bash-4.2$ export TNS_ADMIN=/u02/deployments/Target/etc
-bash-4.2$ ./sqlplus appadmin/**************@target1adw_low    ←ターゲットDBへ接続
SQL*Plus: Release 18.0.0.0.0 - Production on Tue Mar 31 08:55:43 2020 Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production Version 18.4.0.0.0

SQL> select emp_id, emp_name from emp order by 1;
EMP EMP_NAME
--- ----------
511 otsuka511
512 otsuka512
513 otsuka513
514 otsuka514
515 otsuka515         ←DELETE、INSERT共に反映されていることが確認できました。

SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
-bash-4.2$ exit

操作の体感で分かると思いますが、「Autonomous Data Warehouseへのリアルタイムでのデータ集約」と呼ぶにふさわしい動作であると思います。ぜひいろいろと応用してみてください。

今回は以上となります。次回は、Oracle Cloud Infrastructure Data Catalogについてお話しします。


※コンパートメントに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Identity/Tasks/managingcompartments.htm

※仮想クラウド・ネットワークに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Network/Concepts/overview.htm

※セキュリティ・リストに関するマニュアル
https://docs.oracle.com/cd/E97706_01/Content/Network/Concepts/securitylists.htm

※Autonomous Data Warehouseマニュアル
https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/books.html

※Oracle Database Cloud Serviceの管理
https://docs.oracle.com/cd/E83857_01/paas/database-dbaas-cloud/csdbi/create-db-deployment-overview.html

※Oracle GoldenGate for Oracleに関するマニュアル

 

 

 

 

Keys to the Oracle Cloud indexページ▶▶