Menerapkan Oracle Golden Gate pada komputer virtual Azure Linux

Berlaku untuk: ✔️ mesin virtual Linux

Azure CLI digunakan untuk membuat dan mengelola sumber daya Azure dari baris perintah atau dalam skrip. Panduan ini merinci cara menggunakan Azure CLI untuk menyebarkan database Oracle 19c dari gambar galeri Marketplace Azure.

Dokumen ini memperlihatkan kepada Anda langkah demi langkah cara membuat, menginstal, dan mengonfigurasi Oracle Golden Gate di Azure VM. Dalam tutorial ini, dua komputer virtual disiapkan dalam ketersediaan yang diatur dalam satu wilayah. Tutorial yang sama dapat digunakan untuk menyiapkan Gerbang OracleGolden untuk VM di Zona Ketersediaan yang berbeda dalam satu wilayah Azure atau untuk VM yang disiapkan di dua wilayah yang berbeda.

Sebelum Memulai, pastikan Azure CLI telah dipasang. Untuk informasi selengkapnya, lihat Panduan penginstalan Azure CLI.

Pengantar

GoldenGate adalah perangkat lunak replikasi logis yang memungkinkan replikasi, pemfilteran, dan transformasi data real time dari database sumber ke database target. Fitur ini memastikan bahwa perubahan dalam database sumber direplikasi secara real-time, sehingga database target dapat diperbarui dengan data terbaru.

Gunakan GoldenGate terutama untuk kasus replikasi heterogen, seperti mereplikasi data dari database sumber yang berbeda ke database tunggal. Misalnya, gudang data. Anda juga dapat menggunakannya untuk migrasi lintas platform, seperti dari lingkungan SPARC dan AIX ke Linux x86, dan skenario ketersediaan dan skalabilitas tinggi tingkat lanjut.

Selain itu, GoldenGate juga cocok untuk migrasi waktu henti hampir nol karena mendukung migrasi online dengan gangguan minimal pada sistem sumber.

Meskipun GoldenGate memfasilitasi replikasi dua arah, aplikasi harus dikonfigurasi dengan sesuai. Selain itu, perangkat lunak mengizinkan pemfilteran dan transformasi data untuk memenuhi persyaratan bisnis tertentu, memungkinkan pengguna memanfaatkan data yang direplikasi untuk berbagai tujuan.

Menyiapkan lingkungan

Untuk melakukan instalasi Oracle Golden Gate, Anda perlu membuat dua Azure VM pada kumpulan ketersediaan yang sama. Gambar Marketplace yang Anda gunakan untuk membuat VM adalah Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

Anda juga harus terbiasa dengan editor Vi Unix dan memiliki pemahaman dasar tentang X Server.

Tabel berikut adalah ringkasan konfigurasi lingkungan:

Situs Utama Situs replikasi
Rilis Oracle Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
Nama mesin ggVM1 ggVM2
Sistem Operasi Oracle Linux 7.x Oracle Linux 7.x
SID Oracle CDB1 CDB1
Skema replikasi TEST TEST
Pemilik/replikasi Golden Gate C##GGADMIN REPUSER
Proses Golden Gate EXTORA REPORA

Masuk ke Azure

  1. Buka shell pilihan Anda di Windows, Linux, atau Azure Shell.

  2. Masuk ke langganan Azure Anda dengan perintah az login. Kemudian, ikuti petunjuk di layar.

    $ az login
    
  3. Pastikan Anda tersambung ke langganan yang benar dengan memverifikasi nama langganan dan/atau ID.

    $ az account show
    
    {
      "environmentName": "XXXXX",
      "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "id": "<SUBSCRIPTION_ID>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<SUBSCRIPTION_NAME>",
      "state": "Enabled",
      "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "user": {
        "cloudShellID": true,
        "name": "aaaaa@bbbbb.com",
        "type": "user"
      }
    }
    

Membuat kunci autentikasi

Kami menggunakan autentikasi berbasis file kunci dengan ssh untuk menyambungkan ke VM Oracle Database. Pastikan Anda memiliki file kunci privat (bernama id_rsa) dan publik (bernama id_rsa.pub) dibuat di shell Anda.

Lokasi file kunci tergantung pada sistem sumber Anda.

Windows: %USERPROFILE%.ssh Linux: ~/.ssh

Jika tidak ada, Anda dapat membuat pasangan keyfile baru.

ssh-keygen -m PEM -t rsa -b 4096

Direktori .ssh dan file kunci dibuat. Untuk informasi selengkapnya, lihat Membuat dan mengelola kunci SSH untuk autentikasi ke VM Linux di Azure

Membuat grup sumber daya

Untuk membuat grup sumber daya, jalankan perintah az group create. Grup sumber daya Azure adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure.

$ az group create --name GoldenGateOnAzureLab --location westus

Membuat dan mengonfigurasi jaringan

Membuat jaringan virtual

Gunakan perintah berikut untuk membuat jaringan virtual yang menghosting sumber daya yang kita buat di lab ini.

$ az network vnet create \
  --name ggVnet \
  --resource-group GoldenGateOnAzureLab \
  --address-prefixes "10.0.0.0/16" \
  --subnet-name ggSubnet1 \
  --subnet-prefixes "10.0.0.0/24"

Membuat Kelompok Keamanan Jaringan (NSG)

  1. Buat kelompok keamanan jaringan (NSG) untuk mengunci jaringan virtual Anda.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. Buat aturan NSG untuk memungkinkan komunikasi dalam jaringan virtual.

    $ az network nsg rule create  --resource-group GoldenGateOnAzureLab --nsg-name ggVnetNSG \
        --name ggAllowVnet \
        --protocol '*' --direction inbound --priority 3400 \
        --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
        --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
    
  3. Membuat aturan NSG untuk menolak semua koneksi masuk

    $ az network nsg rule create \
      --resource-group GoldenGateOnAzureLab \
      --nsg-name ggVnetNSG \
      --name ggDenyAllInBound \
      --protocol '*' --direction inbound --priority 3500 \
      --source-address-prefix '*' --source-port-range '*' \
      --destination-address-prefix '*' --destination-port-range '*' --access deny
    
  4. Tetapkan NSG ke Subnet tempat kami menghosting server kami.

    $ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
    

Membuat Jaringan Bastion

  1. Buat subnet Bastion. Nama subnet harus AzureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. Membuat IP publik untuk Bastion

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. Membuat sumber daya Azure Bastion. Dibutuhkan sekitar 10 menit agar sumber daya dapat disebarkan.

    $ az network bastion create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastion \
        --public-ip-address ggBastionIP \
        --vnet-name ggVnet \
        --sku Standard \
        --enable-tunneling \
        --enable-ip-connect true
    

Membuat VM X Server (ggXServer)

Ganti kata sandi Anda dan jalankan perintah berikut untuk membuat VM stasiun kerja Windows tempat kami menyebarkan X Server.

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggXServer \
     --image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
     --size Standard_DS1_v2  \
     --vnet-name ggVnet \
     --subnet ggSubnet1 \
     --public-ip-sku Standard \
     --nsg "" \
     --data-disk-delete-option Delete \
     --os-disk-delete-option Delete \
     --nic-delete-option Delete \
     --admin-username azureuser \
     --admin-password <ENTER_YOUR_PASSWORD_HERE>

Menyambungkan ke ggXServer melalui Bastion

Sambungkan ke ggXServer menggunakan Bastion.

  1. Navigasi ke ggXServer dari portal Azure.
  2. Buka Gambaran Umum di bilah kiri
  3. Pilih Sambungkan>Bastion pada menu di bagian atas
  4. Pilih tab Bastion
  5. Klik Gunakan Bastion

Menyiapkan ggXServer untuk menjalankan X Server

X Server diperlukan untuk langkah-langkah selanjutnya dari lab ini. Lakukan langkah-langkah berikut untuk menginstal dan memulai X Server.

  1. Unduh Xming X Server untuk Windows ke ggXServer dan instal dengan semua opsi default.

  2. Pastikan Anda tidak memilih Luncurkan di akhir penginstalan

  3. Luncurkan aplikasi "XLAUNCH" dari menu mulai.

  4. Pilih Beberapa Windows

    Cuplikan layar wizard XLaunch langkah 1.

  5. Pilih Mulai tanpa klien

    Cuplikan layar wizard XLaunch langkah 2.

  6. Pilih Tidak ada kontrol akses

    Cuplikan layar wizard XLaunch langkah 3.

  7. Pilih Izinkan Akses untuk mengizinkan X Server melalui Windows Firewall

    Cuplikan layar wizard XLaunch langkah 4.

Jika Anda menghidupkan ulang VM ggXServer Anda, ikuti langkah 2-6 di atas untuk memulai ulang aplikasi X Server.

Membuat komputer virtual database Oracle

Untuk lab ini, kami membuat komputer ggVM1 virtual dan ggVM2 dari gambar Oracle Database 19c. Jika belum ada di lokasi kunci default, perintah ini juga membuat kunci SSH. Untuk menggunakan set tombol tertentu, gunakan opsi --ssh-key-value. Jika Anda telah membuat kunci SSH di bagian Hasilkan kunci autentikasi , kunci tersebut akan digunakan.

Saat membuat parameter komputer size virtual baru menunjukkan ukuran dan jenis komputer virtual yang dibuat. Bergantung pada wilayah Azure yang Anda pilih untuk membuat komputer virtual dan pengaturan langganan Anda, beberapa ukuran dan jenis komputer virtual mungkin tidak tersedia untuk Anda gunakan. Contoh berikut menggunakan ukuran minimum yang diperlukan untuk lab Standard_DS1_v2ini. Jika Anda ingin mengubah spesifikasi komputer virtual, pilih salah satu ukuran yang tersedia dari Ukuran Azure VM. Untuk tujuan pengujian, Anda dapat memilih dari jenis komputer virtual Tujuan Umum (Seri D). Untuk penyebaran produksi atau pilot, Memory Optimized (E-Series dan M-Series) lebih cocok.

Membuat ggVM1 (utama)

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggVM1 \
     --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
     --size Standard_DS1_v2 \
     --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 1

Membuat ggVM2 (replikasi)

$ az vm create \
    --resource-group GoldenGateOnAzureLab \
    --name ggVM2 \
    --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
    --size Standard_DS1_v2  \
    --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 2

Menyambungkan ke ggVM1 (utama)

Sambungkan ke ggVM1 menggunakan Bastion.

  1. Navigasi ke ggVM1 dari portal Azure.
  2. Buka Gambaran Umum di panel kiri.
  3. Pilih Sambungkan>Bastion pada menu di bagian atas
  4. Pilih tab Bastion
  5. Klik Gunakan Bastion

Membuat database di ggVM1 (utama)

Perangkat lunak Oracle sudah diinstal pada gambar Marketplace, jadi langkah selanjutnya adalah membuat database.

  1. Jalankan perangkat lunak sebagai oracle pengguna.
$ sudo su - oracle
  1. Buat database menggunakan perintah berikut. Perintah ini mungkin membutuhkan waktu 30-40 menit untuk menyelesaikannya.
$ dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname cdb1 \
   -sid cdb1 \
   -responseFile NO_VALUE \
   -characterSet AL32UTF8 \
   -sysPassword OraPasswd1 \
   -systemPassword OraPasswd1 \
   -createAsContainerDatabase true \
   -numberOfPDBs 1 \
   -pdbName pdb1 \
   -pdbAdminPassword OraPasswd1 \
   -databaseType MULTIPURPOSE \
   -automaticMemoryManagement false \
   -storageType FS \
   -datafileDestination "/u01/app/oracle/oradata/" \
   -ignorePreReqs

Output akan terlihat mirip dengan respons berikut.

Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for more details.
  1. Atur variabel ORACLE_SID dan LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Jalankan berikut ini untuk menambahkan ORACLE_SID dan LD_LIBRARY_PATH ke file .bashrc, sehingga pengaturan ini disimpan untuk masuk di masa mendatang. ORACLE_HOME variabel harus sudah diatur dalam file .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Mulai Oracle listener
$ lsnrctl start

Menyambungkan ke ggVM2 (replikasi)

Sambungkan ke ggVM2 menggunakan Bastion.

  1. Navigasi ke ggVM2 dari portal Azure.
  2. Buka Gambaran Umum di panel kiri.
  3. Pilih Sambungkan>Bastion pada menu di bagian atas
  4. Pilih tab Bastion
  5. Klik Gunakan Bastion

Buka port firewall untuk ggVM1

Konfigurasikan firewall untuk mengizinkan koneksi dari ggVM1. Perintah berikut dijalankan pada ggVM2.

$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit

Membuat database di ggVM2 (replikasi)

  1. Beralih ke oracle pengguna jika perlu
$ sudo su - oracle
  1. Buat database
$ dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname cdb1 \
   -sid cdb1 \
   -responseFile NO_VALUE \
   -characterSet AL32UTF8 \
   -sysPassword OraPasswd1 \
   -systemPassword OraPasswd1 \
   -createAsContainerDatabase true \
   -numberOfPDBs 1 \
   -pdbName pdb1 \
   -pdbAdminPassword OraPasswd1 \
   -databaseType MULTIPURPOSE \
   -automaticMemoryManagement false \
   -storageType FS \
   -datafileDestination "/u01/app/oracle/oradata/" \
   -ignorePreReqs
  1. Atur variabel ORACLE_SID dan ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Jalankan berikut ini untuk menambahkan ORACLE_SID dan LD_LIBRARY_PATH ke file .bashrc, sehingga pengaturan ini disimpan untuk masuk di masa mendatang. ORACLE_HOME variabel harus sudah diatur dalam file .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Mulai Oracle listener
$ lsnrctl start

Mengonfigurasi Golden Gate di ggVM1

Ikuti langkah-langkah di bagian ini untuk menginstal dan mengonfigurasi Golden Gate.

Aktifkan mode log arsip pada ggVM1 (utama)

  1. Sambungkan ke sqlplus
$ sqlplus / as sysdba
  1. Aktifkan log arsip
SQL> SELECT log_mode FROM v$database;

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

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
  1. Aktifkan pembuatan log force, dan pastikan ada sedikitnya satu file log.
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER SYSTEM set enable_goldengate_replication=true;
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SESSION SET CONTAINER=PDB1;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> EXIT;

Unduh perangkat lunak Golden Gate

  1. Unduh file 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip dari halaman unduhan Oracle Golden Gate. Di bawah judul unduhan Oracle GoldenGate 21.3.0.0.0 untuk Oracle di Linux x86-64.

  2. Setelah mengunduh file .zip ke komputer klien, Anda dapat menggunakan Secure Copy Protocol (SCP) untuk menyalin file ke komputer virtual Anda (ggVM1 dan ggVM2). Pastikan perintah scp menunjuk ke jalur file .zip yang benar.

  3. Salin ke ggVM1

    1. Masuk dan pastikan Anda menggunakan langganan yang benar seperlunya seperti yang dijelaskan dalam Masuk ke Azure

    2. Buka terowongan ke VM target Anda menggunakan perintah PowerShell berikut

      $ggVM1id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM1 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM1id --resource-port 22 --port 57500
      
    3. Biarkan perintah pertama berjalan dan buka prompt perintah kedua untuk terhubung ke VM target Anda melalui terowongan. Di jendela prompt perintah kedua ini, Anda dapat mengunggah file dari komputer lokal ke VM target Anda menggunakan perintah berikut. Keyfile yang benar id_rsa untuk mengakses komputer virtual harus berada di .ssh direktori atau Anda dapat menunjuk ke file kunci yang berbeda menggunakan -i parameter ke scp perintah.

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. Salin ke ggVM2

    1. Buka terowongan ke VM target Anda menggunakan perintah PowerShell berikut

      $ggVM2id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM2 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM2id --resource-port 22 --port 57501
      
    2. Biarkan perintah pertama berjalan dan buka prompt perintah kedua untuk terhubung ke VM target Anda melalui terowongan. Di jendela prompt perintah kedua ini, Anda dapat mengunggah file dari komputer lokal ke VM target Anda menggunakan perintah berikut. Keyfile yang benar id_rsa untuk mengakses komputer virtual harus berada di .ssh direktori atau Anda dapat menunjuk ke file kunci yang berbeda menggunakan -i parameter ke scp perintah.

      scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      

Instal perangkat lunak Golden Gate

  1. Sambungkan ke ggVM1 menggunakan Bastion.

    1. Navigasi ke ggVM1 dari portal Azure.
    2. Buka Gambaran Umum di panel kiri
    3. Pilih Sambungkan>Bastion pada menu di bagian atas
    4. Pilih tab Bastion
    5. Klik Gunakan Bastion
  2. Pindahkan file .zip ke folder /opt , lalu ubah pemilik

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. Unzip file (instal utilitas unzip jika belum diinstal)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Ubah izin

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. Mulai penginstal Golden Gate

    $ sudo su - oracle
    $ export DISPLAY=10.0.0.4:0.0
    $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1
    $ ./runInstaller
    

    Alat penginstal terbuka di ggXServer.

  6. Pilih 'Oracle GoldenGate untuk Oracle Database 21c'. Kemudian pilih Berikutnya untuk melanjutkan.

    Cuplikan layar wizard penginstalan Golden Gate langkah 1.

  7. Atur lokasi perangkat lunak ke /u01/app/oracle/product/19.0.0/oggcore_1, pastikan kotak Start Manager dipilih dan pilih Berikutnya untuk melanjutkan.

    Cuplikan layar wizard penginstalan Golden Gate langkah 2.

  8. Pada layar Ringkasan, pilih Instal untuk melanjutkan.

    Cuplikan layar wizard penginstalan Golden Gate langkah 3.

  9. Tunggu hingga penginstalan selesai.

    Cuplikan layar wizard penginstalan Golden Gate langkah 4.

  10. Pilih Tutup untuk melanjutkan.

Cuplikan layar wizard penginstalan Golden Gate langkah 5.

  1. Sambungkan ke ggVM2 menggunakan Bastion.

    1. Navigasi ke ggVM2 dari portal Azure.
    2. Buka Gambaran Umum di panel kiri
    3. Pilih Sambungkan>Bastion pada menu di bagian atas
    4. Pilih tab Bastion
    5. Klik Gunakan Bastion
  2. Ulangi langkah 2-10 di atas pada ggVM2

Menyiapkan layanan di ggVM1 (utama)

  1. Buat atau perbarui file tnsnames.ora.

    $ sudo su - oracle
    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    Ketika editor vi terbuka, Anda harus menekan i untuk beralih ke mode sisipkan, lalu salin dan tempel konten file dan tekan Esc tombol, :wq! untuk menyimpan file.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. Buat pemilik dan akun pengguna Golden Gate.

    Catatan

    Akun pemilik harus memiliki awalan C##.

    $ sqlplus / as sysdba
    
     SQL> CREATE USER C##GGADMIN identified by ggadmin;
     SQL> EXEC dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');
     SQL> GRANT DBA to C##GGADMIN container=all;
     SQL> connect C##GGADMIN/ggadmin
     SQL> ALTER SESSION SET CONTAINER=PDB1;
     SQL> EXIT;
    
  3. Membuat akun pengguna uji Golden Gate

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> connect test/test@pdb1
    SQL> @demo_ora_create
    SQL> @demo_ora_insert
    SQL> EXIT;
    
  4. Konfigurasikan file parameter ekstrak.

    Mulai antarmuka baris perintah Golden gate (ggsci):

    $ sudo su - oracle
    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> DBLOGIN USERID test@pdb1, PASSWORD test
    Successfully logged into database  pdb1
    GGSCI>  ADD SCHEMATRANDATA pdb1.test
    2017-05-23 15:44:25  INFO    OGG-01788  SCHEMATRANDATA has been added on schema test.
    2017-05-23 15:44:25  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema test.
    
    GGSCI> EDIT PARAMS EXTORA
    
  5. Tekan i tombol untuk beralih ke mode sisipkan dan salin dan tempel (klik kanan pada jendela SSH) mengikuti ke file parameter EXTRACT. Tekan tombol Esc, :wq! untuk menyimpan file.

    EXTRACT EXTORA
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.5, MGRPORT 7809
    RMTTRAIL ./dirdat/rt
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    TABLE pdb1.test.TCUSTMER;
    TABLE pdb1.test.TCUSTORD;
    
  6. Daftarkan ekstrak--ekstrak terintegrasi.

    GGSCI> dblogin userid C##GGADMIN@cdb1, password ggadmin
    Successfully logged into database CDB$ROOT.
    
    GGSCI> REGISTER EXTRACT EXTORA DATABASE CONTAINER(pdb1)
    
    2023-03-03 19:37:01  INFO    OGG-02003  Extract group EXTORA successfully registered with database at SCN 2142014.
    
    GGSCI> exit
    
  7. Menyiapkan titik pemeriksaan ekstrak dan memulai ekstrak real-time

    $ ./ggsci
    
    GGSCI>  ADD EXTRACT EXTORA, INTEGRATED TRANLOG, BEGIN NOW
    EXTRACT (Integrated) added.
    
    GGSCI>  ADD RMTTRAIL ./dirdat/rt, EXTRACT EXTORA, MEGABYTES 10
    RMTTRAIL added.
    
    GGSCI>  START EXTRACT EXTORA
    
    Sending START request to MANAGER ...
    EXTRACT EXTORA starting
    
    GGSCI > INFO ALL
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    
    MANAGER     RUNNING
    EXTRACT     RUNNING     EXTORA      00:00:11      00:00:04
    
    GGSCI > EXIT
    

    Dalam langkah ini, Anda menemukan SCN awal, yang digunakan nanti, di bagian yang berbeda.

    $ sqlplus / as sysdba
    
    SQL> alter session set container = pdb1;
    SQL> SELECT current_scn from v$database;
    CURRENT_SCN
    -----------
       2172191
    SQL> EXIT;
    
    $ ./ggsci
    GGSCI> EDIT PARAMS INITEXT
    

    Ketika editor vi terbuka, Anda harus menekan i untuk beralih ke mode sisipkan, lalu salin dan tempel konten file dan tekan Esc tombol, :wq! untuk menyimpan file.

    EXTRACT INITEXT
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.6, MGRPORT 7809
    RMTTASK REPLICAT, GROUP INITREP
    TABLE pdb1.test.*, SQLPREDICATE 'AS OF SCN 2172191';
    
    GGSCI> ADD EXTRACT INITEXT, SOURCEISTABLE
    Extract added.
    GGSCI> EXIT
    

Menyiapkan layanan pada ggVM2 (replikasi)

  1. Buat atau perbarui file tnsnames.ora.

    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    Ketika editor vi terbuka, Anda harus menekan i untuk beralih ke mode sisipkan, lalu salin dan tempel konten file dan tekan Esc tombol, :wq! untuk menyimpan file.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. Buat akun replikasi.

    $ sqlplus / as sysdba
    
    SQL> ALTER SYSTEM set enable_goldengate_replication=true;
    SQL> ALTER SESSION SET CONTAINER = pdb1;
    SQL> CREATE USER REPUSER IDENTIFIED BY REP_PASS CONTAINER=CURRENT;
    SQL> GRANT DBA TO REPUSER;
    SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('REPUSER',CONTAINER=>'PDB1');
    SQL> CONNECT REPUSER/REP_PASS@PDB1
    SQL> EXIT;
    
  3. Buat akun pengguna uji Golden Gate.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> CONNECT test/test@pdb1
    SQL> @demo_ora_create
    SQL> EXIT;
    
  4. File parameter REPLICAT untuk mereplikasi perubahan.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> EDIT PARAMS REPORA
    

    Ketika editor vi terbuka, Anda harus menekan i untuk beralih ke mode sisipkan, lalu salin dan tempel konten file dan tekan Esc tombol, :wq! untuk menyimpan file.

    REPLICAT REPORA
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/repora.dsc, PURGE, MEGABYTES 100
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
  5. Siapkan titik pemeriksaan replikasi.

    GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt
    GGSCI> EDIT PARAMS INITREP
    

    Ketika editor vi terbuka, Anda harus menekan i untuk beralih ke mode sisipkan, lalu salin dan tempel konten file dan tekan Esc tombol, :wq! untuk menyimpan file.

    REPLICAT INITREP
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/tcustmer.dsc, APPEND
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
    GGSCI> ADD REPLICAT INITREP, SPECIALRUN
    GGSCI> EXIT
    

Menyiapkan replikasi (ggVM1 dan ggVM2)

1. Siapkan replikasi pada ggVM2 (replikasi)

Masuk ke ggsci.

$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR

Perbarui file dengan yang berikut ini.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

Mulai ulang layanan Manajer.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. Siapkan replikasi pada ggVM1 (primer)

Mulai beban awal dan periksa kesalahan.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT

3. Siapkan replikasi pada ggVM2 (replikasi)

Ubah nomor SCN dengan nomor yang Anda peroleh sebelumnya.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191

Replikasi telah dimulai, dan Anda dapat mengujinya dengan menyisipkan data baru ke tabel TEST.

Menampilkan status pekerjaan dan pemecahan masalah

Menampilkan laporan

  • Untuk melihat laporan di ggVM1, jalankan perintah berikut.

    GGSCI> VIEW REPORT EXTORA
    
  • Untuk melihat laporan di ggVM2, jalankan perintah berikut.

    GGSCI> VIEW REPORT REPORA
    

Menampilkan status dan riwayat

  • Untuk melihat status dan riwayat di ggVM1, jalankan perintah berikut.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • Untuk melihat status dan riwayat di ggVM2, jalankan perintah berikut.

    GGSCI> DBLOGIN USERID REPUSER@PDB1 PASSWORD REP_PASS
    GGSCI> INFO REP REPORA, DETAIL
    
    $ sqlplus test/test@pdb1
    
    SQL> select * from TCUSTMER;
    SQL> select * from TCUSTORD;
    

Amati Replikasi Data

  1. Menyambungkan ke database utama di ggVM1

    $ sqlplus test/test@pdb1
    
  2. Pilih rekaman yang sudah ada dari tabel

    SQL> select * from TCUSTORD;
    
  3. Buat rekaman uji

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. Amati transaksi yang diambil oleh Golden Gate (Catatan Total nilai sisipan )

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> STATS EXTORA
  Sending STATS request to Extract group EXTORA ...

  Start of statistics at 2023-03-24 19:41:54.

  DDL replication statistics (for all trails):

  *** Total statistics since extract started     ***
  Operations                           0.00
  Mapped operations                    0.00
  Unmapped operations                    0.00
  Other operations                    0.00
  Excluded operations                    0.00

  Output to ./dirdat/rt:

  Extracting from PDB1.TEST.TCUSTORD to PDB1.TEST.TCUSTORD:

  *** Total statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Daily statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Hourly statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Latest statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  End of statistics.
  1. Menyambungkan ke database utama di ggVM2

    $ sqlplus test/test@pdb1
    
  2. Verifikasi bahwa rekaman baru direplikasi

    SQL> select * from TCUSTORD;
    
     CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
     ---- --------- -------- ---------- ------------- -------------- --------------
     OLLJ 11-APR-99 CYCLE       400   16000      1    102
     WILL 30-SEP-94 CAR       144   17520      3    100
     JANE 11-NOV-95 PLANE       256  133300      1    100
    

Penginstalan dan konfigurasi Golden Gate di Oracle linux sekarang selesai.

Menghapus VM ggXServer

ggXServer VM hanya digunakan selama penyiapan. Anda dapat menghapusnya dengan aman setelah menyelesaikan dokumen lab ini tetapi menjaga GoldenGate Anda tetap utuh di penyiapan lab Azure.

$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes

$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP

Menghapus Golden Gate pada penyiapan Azure Lab

Ketika tidak lagi diperlukan, perintah berikut dapat digunakan untuk menghapus grup sumber daya, VM, dan semua sumber daya terkait untuk lab ini.

$ az group delete --name GoldenGateOnAzureLab

Langkah berikutnya

Membuat tutorial mesin virtual yang sangat tersedia

Jelajahi sampel CLI penyebaran VM