

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan Oracle GoldenGate dengan Amazon RDS for Oracle
<a name="Appendix.OracleGoldenGate"></a>

Oracle GoldenGate mengumpulkan, mereplikasi, dan mengelola data transaksional antar database. Ini adalah change data capture (CDC) dan paket perangkat lunak replikasi berbasis log yang digunakan dengan basis data untuk sistem online transaction processing (OLTP). Oracle GoldenGate membuat file jejak yang berisi data perubahan terbaru dari database sumber. Perangkat lunak ini mendorong file-file ini ke server, dan melibatkan proses mengubah file jejak menjadi SQL standar ke basis data target.

Oracle GoldenGate dengan RDS untuk Oracle mendukung fitur-fitur berikut:
+ Replikasi basis data Active-Active
+ Pemulihan bencana
+ Perlindungan data
+ Replikasi di-wilayah dan lintas-wilayah
+ Migrasi dan pembaruan zero-downtime
+ Replikasi data antara instans DB RDS for Oracle dan basis data non-Oracle
**catatan**  
Untuk daftar basis data yang didukung, lihat [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) dalam dokumentasi Oracle.

Anda dapat menggunakan Oracle GoldenGate dengan RDS untuk Oracle untuk meningkatkan ke versi utama Oracle Database. Misalnya, Anda dapat menggunakan Oracle GoldenGate untuk meningkatkan dari database lokal Oracle Database 11g ke Oracle Database 19c pada instans Amazon RDS DB.

**Topics**
+ [

## Versi yang didukung dan opsi lisensi untuk Oracle GoldenGate
](#Appendix.OracleGoldenGate.licensing)
+ [

## Persyaratan dan batasan untuk Oracle GoldenGate
](#Appendix.OracleGoldenGate.requirements)
+ [

# Arsitektur Oracle GoldenGate
](Appendix.OracleGoldenGate.Overview.md)
+ [

# Menyiapkan Oracle GoldenGate
](Appendix.OracleGoldenGate.setting-up.md)
+ [

# Bekerja dengan utilitas EXTRACT dan REPLIKAT Oracle GoldenGate
](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [

# Memantau Oracle GoldenGate
](Appendix.OracleGoldenGate.Monitoring.md)
+ [

# Pemecahan Masalah Oracle GoldenGate
](Appendix.OracleGoldenGate.Troubleshooting.md)

## Versi yang didukung dan opsi lisensi untuk Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.licensing"></a>

Anda dapat menggunakan Standard Edition 2 (SE2) atau Enterprise Edition (EE) dari RDS untuk Oracle dengan Oracle GoldenGate versi 12c dan lebih tinggi. Anda dapat menggunakan GoldenGate fitur Oracle berikut:
+ Oracle GoldenGate Remote Capture (ekstrak) didukung.
+ Pengambilan (ekstrak) didukung pada RDS untuk instans Oracle DB yang menggunakan arsitektur basis data non-CDB tradisional. Oracle GoldenGate Remote PDB capture didukung saat CDBs menjalankan Oracle Database 21c atau Oracle Database 19c versi 19.0.0.0.ru-2024-04.rur-2024-04.r1 atau lebih tinggi.
+ Oracle GoldenGate Remote Delivery (replika) didukung pada RDS untuk instans Oracle DB yang menggunakan arsitektur non-CDB atau CDB. Pengiriman Jarak Jauh mendukung Replika Terpadu, Replika Paralel, Replika Terkoordinasi, dan Replika klasik.
+ RDS untuk Oracle mendukung arsitektur Classic dan Microservices dari Oracle. GoldenGate
+ Oracle GoldenGate DDL dan replikasi nilai Urutan didukung saat menggunakan mode tangkapan Terpadu.

Anda bertanggung jawab untuk mengelola GoldenGate lisensi Oracle (BYOL) untuk digunakan dengan Amazon RDS secara keseluruhan. Wilayah AWS Untuk informasi selengkapnya, lihat [Opsi lisensi RDS for Oracle](Oracle.Concepts.Licensing.md).

## Persyaratan dan batasan untuk Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.requirements"></a>

Saat Anda bekerja dengan Oracle GoldenGate dan RDS untuk Oracle, pertimbangkan persyaratan dan batasan berikut: 
+ Anda bertanggung jawab untuk mengatur dan mengelola Oracle GoldenGate untuk digunakan dengan RDS untuk Oracle. 
+ Anda bertanggung jawab untuk menyiapkan GoldenGate versi Oracle yang disertifikasi dengan sumber dan basis data target. Untuk informasi selengkapnya, lihat [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) dalam dokumentasi Oracle.
+ Anda dapat menggunakan Oracle GoldenGate di banyak AWS lingkungan yang berbeda untuk banyak kasus penggunaan yang berbeda. Jika Anda memiliki masalah terkait dukungan yang berkaitan dengan Oracle, GoldenGate hubungi Oracle Support Services.
+ Anda dapat menggunakan Oracle GoldenGate pada RDS untuk instans Oracle DB yang menggunakan Oracle Transparent Data Encryption (TDE). Untuk menjaga integritas data yang direplikasi, konfigurasikan enkripsi pada GoldenGate hub Oracle menggunakan volume terenkripsi Amazon EBS atau enkripsi file jejak. Juga konfigurasikan enkripsi untuk data yang dikirim antara GoldenGate hub Oracle dan instance database sumber dan target. Instans DB RDS for Oracle mendukung enkripsi dengan [Lapisan Soket Aman Oracle](Appendix.Oracle.Options.SSL.md) atau [Enkripsi jaringan asli Oracle](Appendix.Oracle.Options.NetworkEncryption.md).

# Arsitektur Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Overview"></a>

 GoldenGate Arsitektur Oracle untuk digunakan dengan Amazon RDS terdiri dari modul terpisah berikut:

Basis data sumber  
basis data sumber Anda dapat berupa basis data Oracle on-premise, basis data Oracle di instans Amazon EC2, atau basis data Oracle di instans DB Amazon RDS.

Hub Oracle GoldenGate   
 GoldenGate Hub Oracle memindahkan informasi transaksi dari database sumber ke database target. Hub Anda dapat berupa salah satu dari berikut ini:  
+ Instans Amazon EC2 dengan Oracle Database dan Oracle diinstal GoldenGate 
+ Penginstalan Oracle on-premise
Anda dapat memiliki lebih dari satu hub Amazon EC2. Kami menyarankan Anda menggunakan dua hub jika Anda menggunakan Oracle GoldenGate untuk replikasi lintas wilayah.

Basis data target  
Basis data target Anda dapat berada di instans DB Amazon RDS, instans Amazon EC2, atau lokasi on-premise.

Bagian berikut menjelaskan skenario umum untuk Oracle GoldenGate di Amazon RDS.

**Topics**
+ [

## Database sumber lokal dan hub Oracle GoldenGate
](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [

## Basis data sumber on-premise dan hub Amazon EC2
](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [

## Basis data sumber Amazon RDS dan hub Amazon EC2
](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [

## Basis data sumber Amazon EC2 dan hub Amazon EC2
](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [

## Hub Amazon EC2 di berbagai Wilayah AWS
](#Appendix.OracleGoldenGate.cross-region-hubs)

## Database sumber lokal dan hub Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

Dalam skenario ini, database sumber Oracle lokal dan GoldenGate hub Oracle lokal menyediakan data ke instans Amazon RDS DB target. 

![\[GoldenGate Konfigurasi Oracle 0 menggunakan Amazon RDS\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## Basis data sumber on-premise dan hub Amazon EC2
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

Dalam skenario ini, basis data Oracle on-premise bertindak sebagai basis data sumber. Ini terhubung ke hub instans Amazon EC2. Hub ini menyediakan data ke instans DB RDS for Oracle target.

![\[GoldenGate Konfigurasi Oracle 1 menggunakan Amazon RDS\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Basis data sumber Amazon RDS dan hub Amazon EC2
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

Dalam skenario ini, RDS untuk instans Oracle DB bertindak sebagai basis data sumber. Ini terhubung ke hub instans Amazon EC2. Hub ini menyediakan data ke instans DB RDS for Oracle target.

![\[GoldenGate Konfigurasi Oracle 2 menggunakan Amazon RDS\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Basis data sumber Amazon EC2 dan hub Amazon EC2
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

Dalam skenario ini, basis data Oracle di instans Amazon EC2 bertindak sebagai basis data sumber. Ini terhubung ke hub instans Amazon EC2. Hub ini menyediakan data ke instans DB RDS for Oracle target.

![\[GoldenGate Konfigurasi Oracle 3 menggunakan Amazon RDS\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## Hub Amazon EC2 di berbagai Wilayah AWS
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

Dalam skenario ini, database Oracle pada instans Amazon RDS DB terhubung ke hub instans Amazon EC2 di Wilayah yang sama. AWS Hub terhubung ke hub instans Amazon EC2 di Wilayah yang berbeda AWS . Hub kedua ini menyediakan data ke RDS target untuk instans Oracle DB di AWS Wilayah yang sama dengan hub instans Amazon EC2 kedua.

![\[GoldenGate Konfigurasi Oracle 4 menggunakan Amazon RDS\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**catatan**  
Masalah apa pun yang memengaruhi menjalankan Oracle GoldenGate di lingkungan lokal juga memengaruhi menjalankan GoldenGate Oracle. AWS Kami sangat menyarankan Anda memantau GoldenGate hub Oracle untuk memastikannya `EXTRACT` dan `REPLICAT` dilanjutkan jika terjadi failover. Karena GoldenGate hub Oracle dijalankan pada instans Amazon EC2, Amazon RDS tidak mengelola hub GoldenGate Oracle dan tidak dapat memastikan bahwa itu berjalan.

# Menyiapkan Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.setting-up"></a>

Untuk mengatur Oracle GoldenGate menggunakan Amazon RDS, konfigurasikan hub pada instans Amazon EC2, lalu konfigurasikan basis data sumber dan target. Bagian berikut memberikan contoh cara mengatur Oracle untuk digunakan dengan Amazon RDS GoldenGate for Oracle.

**Topics**
+ [

## Menyiapkan GoldenGate hub Oracle di Amazon EC2
](#Appendix.OracleGoldenGate.Hub)
+ [

## Menyiapkan database sumber untuk digunakan dengan Oracle GoldenGate di Amazon RDS
](#Appendix.OracleGoldenGate.Source)
+ [

## Menyiapkan database target untuk digunakan dengan Oracle GoldenGate di Amazon RDS
](#Appendix.OracleGoldenGate.Target)

## Menyiapkan GoldenGate hub Oracle di Amazon EC2
<a name="Appendix.OracleGoldenGate.Hub"></a>

Untuk membuat GoldenGate hub Oracle di instans Amazon EC2, pertama-tama Anda membuat instans Amazon EC2 dengan instalasi klien penuh Oracle RDBMS. Instans Amazon EC2 juga harus memiliki perangkat lunak Oracle GoldenGate yang diinstal. Versi GoldenGate perangkat lunak Oracle bergantung pada versi basis data sumber dan target. Untuk informasi selengkapnya tentang menginstal Oracle GoldenGate, lihat dokumentasi [Oracle GoldenGate](https://docs.oracle.com/en/middleware/goldengate/core/index.html).

Instans Amazon EC2 yang berfungsi sebagai GoldenGate hub Oracle menyimpan dan memproses informasi transaksi dari database sumber ke dalam file jejak. Untuk mendukung proses ini, pastikan Anda memenuhi persyaratan berikut:
+ Anda telah mengalokasikan penyimpanan yang cukup untuk file jejak.
+ Instans Amazon EC2 memiliki kekuatan pemrosesan yang cukup untuk mengelola jumlah data.
+ Instans EC2 juga memiliki cukup memori untuk menyimpan informasi transaksi sebelum ditulis ke file jejak.

**Untuk menyiapkan hub arsitektur GoldenGate klasik Oracle pada instans Amazon EC2**

1. Buat subdirektori di direktori GoldenGate Oracle.

   Di shell baris perintah Amazon EC2, mulai`ggsci`, penerjemah perintah Oracle GoldenGate . Perintah `CREATE SUBDIRS` membuat subdirektori di bawah direktori `/gg` untuk file parameter, laporan, dan titik pemeriksaan.

   ```
   prompt$ cd /gg
   prompt$ ./ggsci
   
   GGSCI> CREATE SUBDIRS
   ```

1. Konfigurasikan file `mgr.prm`.

   Contoh berikut menambahkan baris ke file `$GGHOME/dirprm/mgr.prm`.

   ```
   PORT 8199
   PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
   ```

1. Mulai pengelola.

   Contoh berikut memulai perintah `ggsci` dan menjalankan perintah `start mgr`.

   ```
   GGSCI> start mgr
   ```

 GoldenGate Hub Oracle sekarang siap digunakan.

## Menyiapkan database sumber untuk digunakan dengan Oracle GoldenGate di Amazon RDS
<a name="Appendix.OracleGoldenGate.Source"></a>

Selesaikan tugas-tugas berikut untuk menyiapkan database sumber untuk digunakan dengan Oracle GoldenGate.

**Topics**
+ [

### Langkah 1: Mengaktifkan pencatatan log tambahan pada basis data sumber
](#Appendix.OracleGoldenGate.Source.Logging)
+ [

### Langkah 2: Menetapkan parameter inisialisasi ENABLE\$1GOLDENGATE\$1REPLICATION ke benar
](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [

### Langkah 3: Menetapkan periode retensi log pada basis data sumber
](#Appendix.OracleGoldenGate.Source.Retention)
+ [

### Langkah 4: Buat akun GoldenGate pengguna Oracle di database sumber
](#Appendix.OracleGoldenGate.Source.Account)
+ [

### Langkah 5: Memberi hak akses akun pengguna pada basis data sumber
](#Appendix.OracleGoldenGate.Source.Privileges)
+ [

### Langkah 6: Menambahkan alias TNS untuk basis data sumber
](#Appendix.OracleGoldenGate.Source.TNS)

### Langkah 1: Mengaktifkan pencatatan log tambahan pada basis data sumber
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

Untuk mengaktifkan pencatatan log tambahan tingkat basis data minimum, jalankan prosedur PL/SQL berikut: 

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

### Langkah 2: Menetapkan parameter inisialisasi ENABLE\$1GOLDENGATE\$1REPLICATION ke benar
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

Ketika Anda mengatur parameter inisialisasi `ENABLE_GOLDENGATE_REPLICATION` ke `true`, pengaturan ini memungkinkan layanan basis data untuk mendukung replikasi logis. Jika basis data sumber Anda berada di instans DB Amazon RDS, pastikan Anda memiliki grup parameter yang ditetapkan ke instans DB dengan parameter inisialisasi `ENABLE_GOLDENGATE_REPLICATION` yang diatur ke `true`. Untuk informasi parameter inisialisasi `ENABLE_GOLDENGATE_REPLICATION` selengkapnya, lihat [dokumentasi Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Langkah 3: Menetapkan periode retensi log pada basis data sumber
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

Pastikan Anda mengonfigurasi basis data sumber untuk mempertahankan log pengulangan yang diarsipkan. Pertimbangkan panduan-panduan berikut ini:
+ Tentukan durasi retensi log dalam jam. Nilai minimumnya adalah satu jam.
+ Tetapkan durasi untuk melebihi potensi waktu henti instans DB sumber, potensi periode komunikasi, dan periode potensi masalah jaringan apa pun untuk instans sumber. Durasi seperti itu memungkinkan Oracle GoldenGate memulihkan log dari instans sumber sesuai kebutuhan.
+ Pastikan Anda memiliki penyimpanan yang cukup di instans Anda untuk file.

Misalnya, setel periode retensi untuk log pengulangan yang diarsipkan menjadi 24 jam.

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

Jika Anda belum mengaktifkan retensi log, atau jika nilai retensi terlalu kecil, Anda akan menerima pesan kesalahan yang mirip dengan berikut ini.

```
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.
```

Karena instans DB Anda menyimpan log pengulangan yang diarsipkan, pastikan Anda memiliki ruang yang cukup untuk file tersebut. Untuk melihat berapa banyak ruang yang telah Anda gunakan dalam *num\$1hours* beberapa jam terakhir, jalankan kueri berikut, ganti *num\$1hours* dengan jumlah jam.

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

### Langkah 4: Buat akun GoldenGate pengguna Oracle di database sumber
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

Oracle GoldenGate berjalan sebagai pengguna database dan memerlukan hak database yang sesuai untuk mengakses redo dan arsip redo log untuk database sumber. Untuk menyediakan kebutuhan ini, buat akun pengguna di basis data sumber. Untuk informasi selengkapnya tentang izin untuk akun GoldenGate pengguna Oracle, lihat dokumentasi [Oracle](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053).

Pernyataan berikut membuat akun pengguna dengan nama `oggadm1`. 

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

**catatan**  
Tetapkan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

### Langkah 5: Memberi hak akses akun pengguna pada basis data sumber
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

Dalam tugas ini, Anda memberikan hak istimewa akun yang diperlukan untuk pengguna basis data di basis data sumber Anda.

**Memberikan hak akses akun pada basis data sumber**

1. Berikan hak istimewa yang diperlukan ke akun GoldenGate pengguna Oracle menggunakan perintah SQL `grant` dan prosedurnya. `rdsadmin.rdsadmin_util` `grant_sys_object` Pernyataan berikut memberikan hak akses untuk pengguna dengan nama `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;
   ```

1. Berikan hak istimewa yang dibutuhkan oleh akun pengguna untuk menjadi administrator Oracle GoldenGate . Jalankan PL/SQL program berikut.

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

   Untuk mencabut hak akses, gunakan prosedur `revoke_admin_privilege` dalam paket yang sama.

### Langkah 6: Menambahkan alias TNS untuk basis data sumber
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

Tambahkan entri berikut ke `$ORACLE_HOME/network/admin/tnsnames.ora` di beranda Oracle untuk digunakan oleh proses `EXTRACT`. Untuk informasi selengkapnya tentang file `tnsnames.ora`, lihat [Oracle documentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
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))
    )
```

## Menyiapkan database target untuk digunakan dengan Oracle GoldenGate di Amazon RDS
<a name="Appendix.OracleGoldenGate.Target"></a>

Dalam tugas ini, Anda menyiapkan instans DB target untuk digunakan dengan Oracle GoldenGate.

**Topics**
+ [

### Langkah 1: Menetapkan parameter inisialisasi ENABLE\$1GOLDENGATE\$1REPLICATION ke benar
](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [

### Langkah 2: Buat akun GoldenGate pengguna Oracle pada database target
](#Appendix.OracleGoldenGate.Target.User)
+ [

### Langkah 3: Memberi hak akses akun pada basis data target
](#Appendix.OracleGoldenGate.Target.Privileges)
+ [

### Langkah 4: Menambahkan alias TNS untuk basis data target
](#Appendix.OracleGoldenGate.Target.TNS)

### Langkah 1: Menetapkan parameter inisialisasi ENABLE\$1GOLDENGATE\$1REPLICATION ke benar
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

Ketika Anda mengatur parameter inisialisasi `ENABLE_GOLDENGATE_REPLICATION` untuk `true`, ini memungkinkan layanan basis data untuk mendukung replikasi logis. Jika basis data sumber Anda berada di instans DB Amazon RDS, pastikan Anda memiliki grup parameter yang ditetapkan ke instans DB dengan parameter inisialisasi `ENABLE_GOLDENGATE_REPLICATION` yang diatur ke `true`. Untuk informasi parameter inisialisasi `ENABLE_GOLDENGATE_REPLICATION` selengkapnya, lihat [dokumentasi Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Langkah 2: Buat akun GoldenGate pengguna Oracle pada database target
<a name="Appendix.OracleGoldenGate.Target.User"></a>

Oracle GoldenGate berjalan sebagai pengguna database dan membutuhkan hak istimewa database yang sesuai. Untuk memastikannya, buat akun pengguna di basis data target.

Pernyataan berikut akan membuat pengguna dengan nama `oggadm1`.

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

**catatan**  
Tetapkan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

### Langkah 3: Memberi hak akses akun pada basis data target
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

Dalam tugas ini, Anda memberikan hak istimewa akun yang diperlukan untuk pengguna basis data di basis data target Anda.

**Untuk memberikan hak akses akun pada basis data target**

1. Berikan hak istimewa yang diperlukan ke akun GoldenGate pengguna Oracle pada basis data target. Pada contoh berikut, Anda memberikan hak akses untuk `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;
   ```

1. Berikan hak istimewa yang dibutuhkan oleh akun pengguna untuk menjadi administrator Oracle GoldenGate . Jalankan PL/SQL program berikut.

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

   Untuk mencabut hak akses, gunakan prosedur `revoke_admin_privilege` dalam paket yang sama.

### Langkah 4: Menambahkan alias TNS untuk basis data target
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

Tambahkan entri berikut ke `$ORACLE_HOME/network/admin/tnsnames.ora` di beranda Oracle untuk digunakan oleh proses `REPLICAT`. Untuk basis data Oracle Multitenant, pastikan alias TNS menunjuk ke nama layanan PDB. Untuk informasi selengkapnya tentang file `tnsnames.ora`, lihat [Oracle documentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
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))
    )
```

# Bekerja dengan utilitas EXTRACT dan REPLIKAT Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

 GoldenGate Utilitas Oracle `EXTRACT` dan `REPLICAT` bekerja sama untuk menjaga database sumber dan target tetap sinkron melalui replikasi transaksi inkremental menggunakan file jejak. Semua perubahan yang terjadi pada database sumber secara otomatis terdeteksi oleh`EXTRACT`, kemudian diformat dan ditransfer ke file jejak di hub instans Oracle GoldenGate lokal atau Amazon EC2. Setelah pemuatan awal selesai, data dibaca dari file ini dan direplikasi ke basis data target oleh utilitas `REPLICAT`.

## Menjalankan utilitas Oracle GoldenGate EXTRACT
<a name="Appendix.OracleGoldenGate.Extract"></a>

Utilitas `EXTRACT` mengambil, mengubah, dan mengeluarkan data dari basis data sumber ke file jejak. Prosesnya adalah sebagai berikut:

1. `EXTRACT` memasukkan detail transaksi ke memori atau ke penyimpanan disk sementara.

1. Basis data sumber melakukan transaksi.

1. `EXTRACT` menulis detail transaksi ke file jejak.

1. File trail merutekan detail ini ke Oracle GoldenGate lokal atau hub instans Amazon EC2 dan kemudian ke database target.

Langkah-langkah berikut memulai utilitas `EXTRACT`, menangkap data dari `EXAMPLE.TABLE` pada basis data sumber `OGGSOURCE`, dan membuat file jejak. 

**Untuk menjalankan utilitas EXTRACT**

1. Konfigurasikan file `EXTRACT` parameter di GoldenGate hub Oracle (instans Amazon EC2 lokal atau Amazon). Daftar berikut menunjukkan contoh file parameter `EXTRACT` bernama `$GGHOME/dirprm/eabc.prm`.

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. Di GoldenGate hub Oracle, masuk ke database sumber dan luncurkan antarmuka baris GoldenGate perintah Oracle. `ggsci` Contoh berikut menunjukkan format untuk pencatatan log masuk.

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. Tambahkan data transaksi untuk mengaktifkan pencatatan log tambahan untuk tabel basis data.

   ```
   add trandata EXAMPLE.TABLE
   ```

1. Dengan menggunakan baris perintah `ggsci`, aktifkan utilitas `EXTRACT` menggunakan perintah berikut.

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. Daftarkan utilitas `EXTRACT` dengan basis data sehingga log arsip tidak terhapus. Tugas ini memungkinkan Anda memulihkan transaksi lama yang belum terikat jika perlu. Untuk mendaftarkan utilitas `EXTRACT` dengan basis data, gunakan perintah berikut.

   ```
   register EXTRACT EABC, DATABASE
   ```

1. Mulai utilitas `EXTRACT` dengan perintah berikut.

   ```
   start EABC
   ```

## Menjalankan utilitas Oracle GoldenGate REPLIKAT
<a name="Appendix.OracleGoldenGate.Replicat"></a>

Utilitas `REPLICAT` "mendorong" informasi transaksi dalam file jejak ke basis data target.

Langkah-langkah berikut mengaktifkan dan memulai utilitas `REPLICAT` sehingga dapat mereplikasi data yang diambil ke tabel `EXAMPLE.TABLE` dalam basis data target `OGGTARGET`.

**Menjalankan utilitas REPLICATE**

1. Konfigurasikan file `REPLICAT` parameter pada GoldenGate hub Oracle (instans lokal atau EC2). Daftar berikut menunjukkan contoh file parameter `REPLICAT` bernama `$GGHOME/dirprm/rabc.prm`.

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**catatan**  
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.

1. Masuk ke database target dan luncurkan antarmuka baris GoldenGate perintah Oracle (`ggsci`). Contoh berikut menunjukkan format untuk pencatatan log masuk.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Dengan menggunakan baris perintah `ggsci`, tambahkan tabel titik pemeriksaan. Pengguna yang ditunjukkan harus menjadi akun GoldenGate pengguna Oracle, bukan pemilik skema tabel target. Contoh berikut membuat tabel titik pemeriksaan bernama `gg_checkpoint`.

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. Untuk mengaktifkan utilitas `REPLICAT`, gunakan perintah berikut.

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. Mulai utilitas `REPLICAT` dengan menggunakan perintah berikut.

   ```
   start RABC
   ```

# Memantau Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Ketika Anda menggunakan Oracle GoldenGate untuk replikasi, pastikan bahwa GoldenGate proses Oracle aktif dan berjalan dan sumber dan database target disinkronkan. Anda dapat menggunakan alat pemantauan berikut:
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) adalah layanan pemantauan yang digunakan dalam pola ini untuk memantau log GoldenGate kesalahan.
+ [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) adalah layanan pemberitahuan pesan yang digunakan dalam pola ini untuk mengirim pemberitahuan email.

Untuk petunjuk terperinci, lihat [Memantau GoldenGate log Oracle menggunakan Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html).

# Pemecahan Masalah Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

Bagian ini menjelaskan masalah paling umum saat menggunakan Oracle GoldenGate dengan Amazon RDS for Oracle.

**Topics**
+ [

## Kesalahan saat membuka log pengulangan online
](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [

## Oracle GoldenGate tampaknya dikonfigurasi dengan benar tetapi replikasi tidak berfungsi
](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [

## REPLICAT terintegrasi lambat karena kueri pada SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"
](#Appendix.OracleGoldenGate.IR)

## Kesalahan saat membuka log pengulangan online
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

Pastikan Anda mengonfigurasi basis data Anda untuk mempertahankan log pengulangan yang diarsipkan. Pertimbangkan panduan-panduan berikut ini:
+ Tentukan durasi retensi log dalam jam. Nilai minimumnya adalah satu jam.
+ Tetapkan durasi untuk melebihi potensi waktu henti instans DB sumber, potensi periode komunikasi, dan periode potensi masalah jaringan apa pun untuk instans DB sumber. Durasi seperti itu memungkinkan Oracle GoldenGate memulihkan log dari instance DB sumber sesuai kebutuhan.
+ Pastikan Anda memiliki penyimpanan yang cukup di instans Anda untuk file.

Jika Anda belum mengaktifkan retensi log, atau jika nilai retensi terlalu kecil, Anda akan menerima pesan kesalahan yang mirip dengan berikut ini.

```
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.
```

## Oracle GoldenGate tampaknya dikonfigurasi dengan benar tetapi replikasi tidak berfungsi
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

Untuk tabel yang sudah ada sebelumnya, Anda harus menentukan SCN tempat Oracle bekerja GoldenGate .

**Untuk memperbaiki masalah ini**

1. Masuk ke database sumber dan luncurkan antarmuka baris GoldenGate perintah Oracle (`ggsci`). Contoh berikut menunjukkan format untuk pencatatan log masuk.

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. Dengan menggunakan baris perintah `ggsci`, siapkan SCN awal untuk proses `EXTRACT`. Contoh berikut mengatur SCN ke 223274 untuk `EXTRACT`.

   ```
   ALTER EXTRACT EABC SCN 223274
   start EABC
   ```

1. Masuk ke basis data target. Contoh berikut menunjukkan format untuk pencatatan log masuk.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Dengan menggunakan baris perintah `ggsci`, siapkan SCN awal untuk proses `REPLICAT`. Contoh berikut mengatur SCN ke 223274 untuk `REPLICAT`.

   ```
   start RABC atcsn 223274
   ```

## REPLICAT terintegrasi lambat karena kueri pada SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"
<a name="Appendix.OracleGoldenGate.IR"></a>

Oracle GoldenGate Conflict Detection and Resolution (CDR) menyediakan rutinitas resolusi konflik dasar. Misalnya, CDR dapat menyelesaikan konflik unik untuk pernyataan `INSERT`.

Saat CDR menyelesaikan bentrokan, CDR dapat memasukkan catatan ke dalam tabel pengecualian `_DBA_APPLY_CDR_INFO` untuk sementara. `REPLICAT` yang terintegrasi menghapus catatan ini nanti. Dalam skenario yang jarang terjadi, `REPLICAT` yang terintegrasi dapat memproses banyak bentrokan, tetapi `REPLICAT` baru yang terintegrasi tidak dapat menggantikannya. Alih-alih dihapus, baris yang ada di `_DBA_APPLY_CDR_INFO` menjadi terabaikan. Semua proses `REPLICAT` baru yang terintegrasi melambat karena mengueri baris yang terabaikan di `_DBA_APPLY_CDR_INFO`.

Untuk menghapus semua baris dari `_DBA_APPLY_CDR_INFO`, gunakan prosedur Amazon RDS `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info`. Prosedur ini dirilis sebagai bagian dari rilis Oktober 2020 dan pembaruan patch. Prosedur ini tersedia dalam versi basis data berikut:
+ [Versi 21.0.0.0.ru-2022-01.rur-2022-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-21-0.html#oracle-version-RU-RUR.21.0.0.0.ru-2022-01.rur-2022-01.r1) dan yang lebih baru
+ [Versi 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) dan yang lebih baru

Contoh berikut memotong tabel `_DBA_APPLY_CDR_INFO`.

```
SET SERVEROUTPUT ON SIZE 2000
EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;
```