0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle GoldenGate 23ai における TRANDATAについて

Posted at

はじめに

Oracle GoldenGate 23ai でレプリケーション環境を構築するケースでは、Database への最小サプリメンタル・ロギングに加えてスキーマ、あるいは表レベルのサプリメンタル・ロギングを行います。(推奨はスキーマ)
この時、GoldenGate 23ai の 管理サービス (GUI) から TRANDATA情報+で実行する場合が多いと思いますが、その確認操作まわりを実施してみたいと思います。

デプロイメントの準備とTRANDATA情報+まで

Oracle GoldenGate 23ai for Oracle 簡易インストール をご参照下さい。

(デプロイメント作成後の管理サービス・ホーム画面)
Q11-01.png
・ TRANDATA情報 + から SCOTT スキーマレベルのサプリメンタル・ロギング設定をします。
Q11-02.png
用意された表の数が5となっています。

scott@PDBTK> select TABLE_NAME from user_tables;
TABLE_NAME
--------------------
DEPT
EMP
BONUS
SALGRADE
GALAXIES 👈

これは、Vector型のレプリケーションを試した際に、GALAXIES表を作成したためです。
ちなみにスキーマレベルでTRANDATAしている場合、GALAXIES表は作成直後からサプリメンタル・ロギング対象となります。
Oracle GoldenGate 23ai による Vector 型のレプリケーションについてを参照して下さい。

AdminClient から TRANDATA情報を取得する

GoldenGate 23ai S/Wには AdminClient (管理クライアント)というコマンド・ラインI/Fがあります。GoldenGate が Microservice Architecture (Edition)へ完全移行する前に存在していた ggsciというツールに類似するものです。

・ AdminClient の起動

[oracle@ggtest bin]$ cd /u01/app/oracle/product/goldengate/23ai/bin
[oracle@ggtest bin]$ ./adminclient
Oracle GoldenGate Administration Client for Oracle
Version 23.4.1.24.05 OGGCORE_23.4.0.0.0OGGR_LINUX.X64_240529.0500_FBO
Copyright (C) 1995, 2024, Oracle and/or its affiliates. All rights reserved.
Linux, x64, 64bit (optimized) on May 29 2024 09:21:59
オペレーティング・システムの文字セットはUTF-8と識別されました。
OGG (接続されていません) 1>
OGG (接続されていません) 1>connect http://ggtest:9001 DEPLOYMENT dep01 as ggadmin PASSWORD パスワード <return>

PDBに接続し、EMP表のサプリメンタル・ロギングの状況を確認します。

OGG (http://ggtest:9001 dep01) 2> DBLOGIN USERIDALIAS PDB
データベースに正常にログインしました。

OGG (http://ggtest:9001 dep01 as PDB@ORCL235) 8> INFO TRANDATA scott.EMP <return>
表SCOTT.EMPのサプリメンタル・トランザクション・ログ・データのロギングは有効です。
表SCOTT.EMPの論理レプリケーションは有効化されています。
表SCOTT.EMPの列が補足的にログに記録されます:
  - "EMPNO"
表SCOTT.EMPの準備済CSN: 3917223
表SCOTT.EMPのJSONの部分更新が無効化されています

サプリメンタル・ロギングが有効である事に加え、準備済(Instantiation) CSN 値が表示されます。これは、初期データ・ロードの際に使用されるSCNになります。(GoldenGateだとCSNと表記される)
GUIからの ADD (SCHEMA)TRANDATA が正常に処理できた事が確認できました。

Oracle Database 21c 新機能 - LOGICAL REPLICATION

GoldenGateによる ADD (SCHEMA)TRANDATA と同等な機能として、Oracle Database 21c から実装されたDLLにLOGICAL REPLICATION句があるので、ここで試してみます。
Oracle 21cのマニュアル・リンクはこちら

Q11-03.png

これは表定義に対してENABLE LOGICAL REPLICATION を付加する事でGoldenGate による論理的なレプリケーションが可能なスキーマ・オブジェクトとして作成または変更できる機能です。以下サンプルです。

SQL>Create table foo
(
    pk_col number primary key, 
    b varchar(200)
) 
enable logical replication; 👈
表が作成されました。

scott@PDBTK> select TABLE_NAME from user_tables;

TABLE_NAME
--------------------
DEPT
EMP
BONUS
SALGRADE
FOO 👈
GALAXIES

先ほどと同様にAdminClient から状況を確認します。

OGG (http://ggtest:9001 dep01 as PDB@ORCL235) 10> INFO TRANDATA scott.foo
表SCOTT.FOOのサプリメンタル・トランザクション・ログ・データのロギングは有効です。
表SCOTT.FOOの論理レプリケーションは有効化されています。
表SCOTT.FOOの列が補足的にログに記録されます:
  - "PK_COL"
表SCOTT.FOOの準備済CSN: 13780348
表SCOTT.FOOのJSONの部分更新が無効化されています

参考までに、以下でサプリメンタル・ロギングを止める事もできます。

scott@PDB>Alter table 表名 disable LOGICAL REPLICATION;

Oracle Database ディクショナリによる確認

AdminClient は PDBに接続して情報を収集していますが、SQL*PlusやSQL Developer などの標準的なツールでディクショナリを検索する事でも確認が可能です。
・ DBA_CAPTURE_PREPARED_TABLES

sys@ORCL235> select * from dba_capture_prepared_tables;
TABLE_OWNER          TABLE_NAME                  SCN TIMESTAM SUPPLEME SUPPLEME SUPPLEME SUPPLEME PARTIAL_
-------------------- -------------------- ---------- -------- -------- -------- -------- -------- --------
SCOTT                BONUS                   3917218 24-07-19 NO       NO       NO       NO       DISABLED
SCOTT                DEPT                    3917220 24-07-19 NO       NO       NO       NO       DISABLED
SCOTT                EMP                     3917223 24-07-19 NO       NO       NO       NO       DISABLED
SCOTT                SALGRADE                3917226 24-07-19 NO       NO       NO       NO       DISABLED
SCOTT                GALAXIES                3976630 24-07-22 NO       NO       NO       NO       DISABLED
SCOTT                FOO                    13780348 24-08-20 NO       NO       NO       NO       DISABLED

・ DBA_OGG_AUTO_CAPTURED_TABLES

sys@ORCL235> select* from SYS.DBA_OGG_AUTO_CAPTURED_TABLES;

OWNER                NAME                 ALLOW_NOVALIDATE_PK
-------------------- -------------------- ----------------------------
SCOTT                DEPT                 NO
SCOTT                EMP                  NO
SCOTT                BONUS                NO
SCOTT                SALGRADE             NO
SCOTT                GALAXIES             NO
SCOTT                FOO                  NO

・ USER_OGG_AUTO_CAPTURED_TABLES (scott から)

scott@PDB> select * from USER_OGG_AUTO_CAPTURED_TABLES;
NAME                 ALLOW_NOVALIDATE_PK
-------------------- --------------------------------
BONUS                NO
DEPT                 NO
EMP                  NO
FOO                  NO
GALAXIES             NO
SALGRADE             NO

最後に

ここでの内容は、あまり表立って話題になるケースは少ないかも知れません。が、GoldenGate による論理的なレプリケーション環境を構築する際には重要です。特定の表だけがレプリケーションに失敗するなどの状況においては、まず調査すべき内容かも知れません。また、ADD (SCHEMA)TRANDATAで表に対する準備済CSNが付加される仕組みは別途まとめたいと考えています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?