設定 Oracle GoldenGate - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Oracle GoldenGate

若要 GoldenGate 使用 Amazon 設定 OracleRDS,請在 Amazon EC2執行個體上設定中樞,然後設定來源和目標資料庫。下列各節提供如何設定 Oracle GoldenGate 以搭配 Amazon RDS for Oracle 使用的範例。

在 Amazon 上設定 Oracle GoldenGate 中樞 EC2

若要在 Amazon EC2執行個體上建立 Oracle GoldenGate 中樞,請先使用 Oracle 的完整用戶端安裝建立 Amazon EC2執行個體RDBMS。Amazon EC2執行個體也必須安裝 Oracle GoldenGate 軟體。Oracle GoldenGate 軟體版本取決於來源和目標資料庫版本。如需安裝 Oracle 的詳細資訊 GoldenGate,請參閱 Oracle GoldenGate 文件

作為 Oracle GoldenGate 中樞的 Amazon EC2執行個體會將來源資料庫中的交易資訊儲存並處理為追蹤檔案。若要支援此程序,請確定您符合下列需求:

  • 您已針對追蹤檔案配置足夠的儲存體。

  • Amazon EC2執行個體具有足夠的處理能力來管理資料量。

  • EC2 執行個體具有足夠的記憶體,可在交易資訊寫入追蹤檔案之前儲存該資訊。

在 Amazon EC2執行個體上設定 Oracle GoldenGate 經典架構中樞
  1. 在 Oracle GoldenGate 目錄中建立子目錄。

    在 Amazon EC2命令列 Shell 中,啟動 ggsci,Oracle GoldenGate 命令解譯器。CREATE SUBDIRS 命令會在 /gg 目錄下建立參數、報告和檢查點檔案的子目錄。

    prompt$ cd /gg prompt$ ./ggsci GGSCI> CREATE SUBDIRS
  2. 設定 mgr.prm 檔案。

    下列範例會將下列幾行新增至 $GGHOME/dirprm/mgr.prm 檔案。

    PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
  3. 啟動管理員。

    下列範例會啟動 ggsci 並執行 start mgr 命令。

    GGSCI> start mgr

Oracle GoldenGate 中樞現已準備就緒。

設定來源資料庫以搭配 Oracle 使用在 Amazon GoldenGate 上 RDS

完成下列任務,以設定來源資料庫以搭配 Oracle 使用 GoldenGate。

步驟 1:開啟來源資料庫上的補充記錄

若要開啟最低資料庫層級補充記錄,請執行下列 PL/SQL 程序:

EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')

步驟 2:將 ENABLE_GOLDENGATE_REPLICATION initialization 參數設定為 true

當您將 ENABLE_GOLDENGATE_REPLICATION 初始化參數設為 true 時,它會允許資料庫服務支援邏輯複寫。如果您的來源資料庫位於 Amazon RDS 資料庫執行個體上,請確定您已將 參數群組指派給資料庫執行個體,且ENABLE_GOLDENGATE_REPLICATION初始化參數設定為 true。如需 ENABLE_GOLDENGATE_REPLICATION 初始化參數的詳細資訊,請參閱 Oracle Database 文件

步驟 3:在來源資料庫上設定日誌保留期間

請確定來源資料庫設定為保留封存的重做日誌。請考量下列準則:

  • 指定記錄保留的持續時間 (以小時為單位)。最小值為一小時 。

  • 將持續時間設定為超過來源資料庫執行個體的任何潛在停機時間、通訊的任何潛在期間,以及來源執行個體聯網問題的任何潛在期間。這種持續時間可讓 Oracle GoldenGate 視需要從來源執行個體復原日誌。

  • 請確定執行個體有足夠的儲存空間可存放這些檔案。

例如,將封存重做日誌的保留期間設為 24 小時。

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

如果未啟用日誌保留,或如果保留值太小,您會收到如下訊息:

2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.

因為您的資料庫執行個體會保留您封存的重做日誌,所以請確定您有足夠的空間存放檔案。若要查看您過去使用多少空間 num_hours 小時,執行下列查詢,取代 num_hours 時數。

SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;

步驟 4:在來源資料庫中建立 Oracle GoldenGate 使用者帳戶

Oracle 以資料庫使用者身分 GoldenGate 執行,並需要適當的資料庫權限才能存取來源資料庫的重做和封存重做日誌。若要提供這些內容,在來源資料庫上建立使用者帳戶。如需有關 Oracle GoldenGate 使用者帳戶許可的詳細資訊,請參閱 Oracle 文件

下列陳述式會建立一個名為 oggadm1 的使用者帳戶。

CREATE TABLESPACE administrator; CREATE USER oggadm1  IDENTIFIED BY "password" DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
注意

指定此處所顯示提示以外的密碼,作為安全最佳實務。

步驟 5:在來源資料庫上將帳戶權限授予使用者

在此任務中,您會將必要的帳戶權限授予來源資料庫上的資料庫使用者。

在來源資料庫上授予帳戶權限
  1. 使用 SQL命令grantrdsadmin.rdsadmin_util 程序 將必要的權限授予 Oracle GoldenGate 使用者帳戶grant_sys_object。下列陳述式會將權限授予一個名為 oggadm1 的使用者。

    GRANT CREATE SESSION, ALTER SESSION TO oggadm1; GRANT RESOURCE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT FLASHBACK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION; EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1'); GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1; GRANT SELECT ON SYS.V_$DATABASE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1;
  2. 授予使用者帳戶成為 Oracle GoldenGate 管理員所需的權限。執行下列 PL/SQL 程式。

    EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'capture', grant_select_privileges => true, do_grants => TRUE);

    若要撤銷權限,請在同一套件中使用程序 revoke_admin_privilege

步驟 6:為來源資料庫新增TNS別名

將下列項目新增至 Oracle 主目錄中要由 EXTRACT 程序使用的 $ORACLE_HOME/network/admin/tnsnames.ora。如需 tnsnames.ora 檔案的詳細資訊,請參閱 Oracle 文件

OGGSOURCE= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )

設定目標資料庫,以在 Amazon GoldenGate 上使用 Oracle RDS

在此任務中,您可以設定目標資料庫執行個體,以搭配 Oracle 使用 GoldenGate。

步驟 1:將 ENABLE_GOLDENGATE_REPLICATION initialization 參數設為 true

當您將 ENABLE_GOLDENGATE_REPLICATION 初始化參數設為 true 時,它會允許資料庫服務支援邏輯複寫。如果您的來源資料庫位於 Amazon RDS 資料庫執行個體上,請確定您已將 參數群組指派給資料庫執行個體,且ENABLE_GOLDENGATE_REPLICATION初始化參數設定為 true。如需 ENABLE_GOLDENGATE_REPLICATION 初始化參數的詳細資訊,請參閱 Oracle Database 文件

步驟 2:在目標資料庫中建立 Oracle GoldenGate 使用者帳戶

Oracle 以資料庫使用者身分 GoldenGate 執行,並需要適當的資料庫權限。若要確定它具有這些權限,請在目標資料庫上建立一個使用者帳戶。

下列陳述式會建立一個名為 oggadm1 的使用者。

CREATE TABLESPSACE administrator; CREATE USER oggadm1  IDENTIFIED BY "password" DEFAULT TABLESPACE administrator TEMPORARY TABLESPACE temp; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
注意

指定此處所顯示提示以外的密碼,作為安全最佳實務。

步驟 3:在目標資料庫上授予帳戶權限

在此任務中,您會將必要的帳戶權限授予目標資料庫上的資料庫使用者。

在目標資料庫上授予帳戶權限
  1. 將必要的權限授予目標資料庫中的 Oracle GoldenGate 使用者帳戶。在下列範例中,您會將權限授予 oggadm1

    GRANT CREATE SESSION        TO oggadm1; GRANT ALTER SESSION         TO oggadm1; GRANT CREATE CLUSTER        TO oggadm1; GRANT CREATE INDEXTYPE      TO oggadm1; GRANT CREATE OPERATOR       TO oggadm1; GRANT CREATE PROCEDURE      TO oggadm1; GRANT CREATE SEQUENCE       TO oggadm1; GRANT CREATE TABLE          TO oggadm1; GRANT CREATE TRIGGER        TO oggadm1; GRANT CREATE TYPE           TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT CREATE ANY TABLE      TO oggadm1; GRANT ALTER ANY TABLE       TO oggadm1; GRANT LOCK ANY TABLE        TO oggadm1; GRANT SELECT ANY TABLE      TO oggadm1; GRANT INSERT ANY TABLE      TO oggadm1; GRANT UPDATE ANY TABLE      TO oggadm1; GRANT DELETE ANY TABLE      TO oggadm1;
  2. 授予使用者帳戶成為 Oracle GoldenGate 管理員所需的權限。執行下列 PL/SQL 程式。

    EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'apply', grant_select_privileges => true, do_grants => TRUE);

    若要撤銷權限,請在同一套件中使用程序 revoke_admin_privilege

步驟 4:新增目標資料庫的TNS別名

將下列項目新增至 Oracle 主目錄中要由 REPLICAT 程序使用的 $ORACLE_HOME/network/admin/tnsnames.ora。對於 Oracle TNS 多租戶資料庫,請確定別名指向 的服務名稱PDB。如需 tnsnames.ora 檔案的詳細資訊,請參閱 Oracle 文件

OGGTARGET= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )