Реализация Oracle Golden Gate на виртуальной машине Linux в Azure

Область применения: ✔️ виртуальные машины Linux

Azure CLI используется для создания ресурсов Azure и управления ими из командной строки или с помощью скриптов. В этом руководстве описано, как с помощью Azure CLI развернуть базу данных Oracle 19c из образа коллекции Azure Marketplace.

В этом документе демонстрируется пошаговое создание, установка и настройка Oracle Golden Gate на виртуальной машине Azure. В этом руководстве две виртуальные машины настроены в группе доступности в одном регионе. С помощью этого же руководства можно настроить OracleGolden Gate для виртуальных машин в разных Зоны доступности в одном регионе Azure или для виртуальных машин, настроенных в двух разных регионах.

Перед началом работы убедитесь, что вы установили Azure CLI. Дополнительные сведения см. в руководстве по установке Azure CLI 2.0.

Введение

GoldenGate — это программное обеспечение логической репликации, которое обеспечивает репликацию, фильтрацию и преобразование данных из базы данных-источника в целевую. Эта функция гарантирует, что изменения в базе данных-источнике реплицируются в режиме реального времени, что позволяет обеспечить актуальность целевой базы данных с последними данными.

GoldenGate используется в основном для разнородных вариантов репликации, таких как репликация данных из разных баз данных-источников в одну базу данных. Например, хранилище данных. Его также можно использовать для кроссплатформенных миграций, таких как из SPARC и AIX в linux x86, а также для расширенных сценариев высокой доступности и масштабируемости.

Кроме того, GoldenGate также подходит для миграции с почти нулевым временем простоя, так как он поддерживает миграцию по сети с минимальным перебоем в работе исходных систем.

GoldenGate упрощает двунаправленную репликацию, но приложение должно быть настроено соответствующим образом. Кроме того, программное обеспечение позволяет фильтровать и преобразовывать данные в соответствии с конкретными бизнес-требованиями, позволяя пользователям использовать реплицированные данные для различных целей.

Подготовка среды

Чтобы выполнить установку Oracle Golden Gate, вам необходимо создать две виртуальные машины Azure в одной и той же группе доступности. Образ Marketplace, используемый для создания виртуальных машин, — Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

Вы также должны быть знакомы с редактором Unix vi и иметь базовое представление о X Server.

В следующей таблице приведена сводка конфигурации среды.

Первичный сайт Сайт репликации
Версия Oracle Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
Имя компьютера ggVM1 ggVM2
Операционная система Oracle Linux 7.x Oracle Linux 7.x
ИД безопасности Oracle CDB1 CDB1
Схема репликации TEST TEST
Владелец/репликация Golden Gate C##GGADMIN REPUSER
Процесс Golden Gate EXTORA REPORA

Вход в Azure

  1. Откройте предпочитаемую оболочку в Windows, Linux или Azure Shell.

  2. Войдите в подписку Azure, используя команду az login. Затем выполните инструкции на экране.

    $ az login
    
  3. Убедитесь, что вы подключены к правильной подписке, проверив имя и (или) идентификатор подписки.

    $ 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"
      }
    }
    

Создание ключей проверки подлинности

Для подключения к виртуальной машине Базы данных Oracle используется проверка подлинности на основе файлов ключей с помощью SSH. Убедитесь, что в оболочке созданы закрытые (именованныеid_rsa) и открытые (именованныеid_rsa.pub) файлы ключей.

Расположение файлов ключей зависит от исходной системы.

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

Если они не существуют, можно создать новую пару файлов ключей.

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

Создаются каталог SSH и файлы ключей. Дополнительные сведения см. в статье Создание ключей SSH и управление ими для проверки подлинности на виртуальной машине Linux в Azure.

Создание группы ресурсов

Чтобы создать группу ресурсов, используйте команду az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.

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

Создание и настройка сети

Создание виртуальной сети

Используйте следующую команду, чтобы создать виртуальную сеть, в которой размещаются ресурсы, создаваемые в этой лаборатории.

$ 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"

Создание группы безопасности сети (NSG)

  1. Создайте группу безопасности сети (NSG), чтобы заблокировать виртуальную сеть.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. Создайте правило NSG, чтобы разрешить обмен данными в виртуальной сети.

    $ 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. Создание правила NSG для запрета всех входящих подключений

    $ 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. Назначьте NSG подсети, в которой размещаются наши серверы.

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

Создание сети Бастиона

  1. Создайте подсеть Бастиона. Имя подсети должно быть AzureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. Создание общедоступного IP-адреса для Бастиона

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. Создайте ресурс Бастиона Azure. Развертывание ресурса занимает около 10 минут.

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

Создание виртуальной машины X Server (ggXServer)

Замените пароль и выполните следующую команду, чтобы создать виртуальную машину рабочей станции Windows, на которой развертывается 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>

Подключение к ggXServer через Бастион

Подключитесь к ggXServer с помощью Бастиона.

  1. Перейдите к ggXServer из портал Azure.
  2. Перейдите к обзору в левой колонке.
  3. Выберите Подключить>Бастион в меню в верхней части окна.
  4. Выбор вкладки "Бастион"
  5. Щелкните Использовать Бастион.

Подготовка ggXServer к запуску X Server

X Server требуется для последующих шагов этой лаборатории. Выполните следующие действия, чтобы установить и запустить X Server.

  1. Скачайте XMing X Server для Windows вggXServer и установите его со всеми параметрами по умолчанию.

  2. Убедитесь, что вы не выбрали Запустить в конце установки.

  3. Запустите приложение XLAUNCH из меню "Пуск".

  4. Выбор нескольких окон

    Снимок экрана мастера XLaunch, шаг 1.

  5. Выберите Запустить без клиента.

    Снимок экрана мастера XLaunch, шаг 2.

  6. Выберите Без управления доступом

    Снимок экрана мастера XLaunch, шаг 3.

  7. Выберите Разрешить доступ , чтобы разрешить X Server через брандмауэр Windows

    Снимок экрана мастера XLaunch, шаг 4.

При перезапуске виртуальной машины ggXServer выполните шаги 2–6 выше, чтобы перезапустить приложение X Server.

Создание виртуальных машин базы данных Oracle

Для этого задания мы создадим виртуальные машины ggVM1 и ggVM2 из образа Oracle Database 19c. Если они еще не существуют в расположении ключа по умолчанию, эта команда также создает ключи SSH. Чтобы использовать определенный набор ключей, используйте параметр --ssh-key-value. Если вы уже создали ключи SSH в разделе Создание ключей проверки подлинности , эти ключи будут использоваться.

При создании параметра виртуальной машины size указывается размер и тип созданной виртуальной машины. В зависимости от региона Azure, выбранного для создания виртуальной машины, и параметров подписки некоторые размеры и типы виртуальных машин могут быть недоступны для использования. В следующем примере используется минимальный требуемый размер для этой лаборатории Standard_DS1_v2. Если вы хотите изменить спецификации виртуальной машины, выберите один из доступных размеров в разделе Размеры виртуальных машин Azure. В целях тестирования можно выбрать один из общего назначения типов виртуальных машин серии D. Для рабочих или пилотных развертываний больше подходят оптимизированные для памяти (серии E и M).

Создание ggVM1 (основной)

$ 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

Создание ggVM2 (репликация)

$ 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

Подключение к ggVM1 (основной)

Подключитесь к ggVM1 с помощью Бастиона.

  1. Перейдите к ggVM1 из портал Azure.
  2. Перейдите в раздел Обзор на левой панели.
  3. Выберите Подключить>Бастион в меню в верхней части окна.
  4. Выбор вкладки "Бастион"
  5. Щелкните Использовать бастион.

Создание базы данных на ggVM1 (источнике)

Программное обеспечение Oracle уже установлено в образе Marketplace, поэтому следующим шагом является создание базы данных.

  1. Запустите программное обеспечение от имени oracle пользователя.
$ sudo su - oracle
  1. Создайте базу данных с помощью следующей команды. Выполнение этой команды может занять 30–40 минут.
$ 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

Выходные данные должны выглядеть примерно так, как в следующем ответе.

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. Задайте переменные ORACLE_SID и LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Выполните следующую команду, чтобы добавить ORACLE_SID и LD_LIBRARY_PATH в BASHRC-файл, чтобы сохранить эти параметры для будущих входов. ORACLE_HOME переменная уже должна быть задана в файле .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Запуск прослушивателя Oracle
$ lsnrctl start

Подключение к ggVM2 (репликация)

Подключитесь к ggVM2 с помощью Бастиона.

  1. Перейдите к ggVM2 из портал Azure.
  2. Перейдите в раздел Обзор на левой панели.
  3. Выберите Подключить>Бастион в меню в верхней части окна.
  4. Выбор вкладки "Бастион"
  5. Щелкните Использовать бастион.

Открытие портов брандмауэра для ggVM1

Настройте брандмауэр, чтобы разрешить подключения из ggVM1. Следующая команда выполняется в ggVM2.

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

Создание базы данных на ggVM2 (репликация)

  1. При необходимости переключитесь на oracle пользователя
$ sudo su - oracle
  1. Создание базы данных
$ 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. Задайте переменные ORACLE_SID и ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Выполните следующую команду, чтобы добавить ORACLE_SID и LD_LIBRARY_PATH в BASHRC-файл, чтобы сохранить эти параметры для будущих входов. ORACLE_HOME переменная уже должна быть задана в файле .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. Запуск прослушивателя Oracle
$ lsnrctl start

Настройка Golden Gate на ggVM1

Выполните действия, описанные в этом разделе, чтобы установить и настроить Golden Gate.

Включение режима архивного журнала в ggVM1 (основной)

  1. Подключитесь к sqlplus.
$ sqlplus / as sysdba
  1. Включение журнала архивации
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. Включите принудительное ведение журнала и убедитесь, что есть хотя бы один файл журнала.
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;

Загрузка программного обеспечения Golden Gate

  1. Скачайте файл 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip со страницы загрузки Oracle Golden Gate. Под заголовком для скачивания Oracle GoldenGate 21.3.0.0.0 для Oracle в Linux x86-64.

  2. Скачав файл .zip на клиентский компьютер, вы можете скопировать файлы на виртуальные машины (ggVM1 и ggVM2) с помощью протокола SCP. Убедитесь, что scp команда указывает на правильный путь к .zip файлу.

  3. Копирование в ggVM1

    1. Войдите и убедитесь, что вы используете правильную подписку, как описано в разделе Вход в Azure.

    2. Откройте туннель для целевой виртуальной машины с помощью следующей команды PowerShell.

      $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. Оставьте первую командную строку запущенной и откройте вторую, чтобы подключиться к целевой виртуальной машине через туннель. Во втором окне командной строки можно отправить файлы с локального компьютера на целевую виртуальную машину с помощью следующей команды. Правильный id_rsa файл ключа для доступа к виртуальной машине должен находиться в .ssh каталоге, иначе можно указать на другой файл ключа с помощью -i параметра для scp команды .

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. Копирование в ggVM2

    1. Откройте туннель для целевой виртуальной машины с помощью следующей команды PowerShell.

      $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. Оставьте первую командную строку запущенной и откройте вторую, чтобы подключиться к целевой виртуальной машине через туннель. Во втором окне командной строки можно отправить файлы с локального компьютера на целевую виртуальную машину с помощью следующей команды. Правильный id_rsa файл ключа для доступа к виртуальной машине должен находиться в .ssh каталоге, иначе можно указать на другой файл ключа с помощью -i параметра для scp команды .

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

Установка программного обеспечения Golden Gate

  1. Подключитесь к ggVM1 с помощью Бастиона.

    1. Перейдите к ggVM1 из портал Azure.
    2. Перейдите к обзору на панели слева.
    3. Выберите Подключить>Бастион в меню в верхней части окна.
    4. Выбор вкладки "Бастион"
    5. Щелкните Использовать бастион.
  2. Переместите файл .zip в папку /opt , а затем измените владельца.

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. Распакуйте файлы (установите служебную программу распакуки, если она еще не установлена)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Изменение разрешения

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. Запуск установщика Golden Gate

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

    Установщик откроется в ggXServer.

  6. Выберите Oracle GoldenGate для Oracle Database 21c. Нажмите кнопку Далее, чтобы продолжить.

    Снимок экрана: мастер установки Golden Gate, шаг 1.

  7. Задайте расположение программного обеспечения /u01/app/oracle/product/19.0.0/oggcore_1, убедитесь, что выбрано поле Пуск диспетчера , и нажмите кнопку Далее , чтобы продолжить.

    Снимок экрана: мастер установки Golden Gate, шаг 2.

  8. На экране Сводка выберите Установить, чтобы продолжить.

    Снимок экрана: мастер установки Golden Gate, шаг 3.

  9. Дождитесь завершения установки.

    Снимок экрана: мастер установки Golden Gate, шаг 4.

  10. Нажмите кнопку Закрыть , чтобы продолжить.

Снимок экрана: мастер установки Golden Gate, шаг 5.

  1. Подключитесь к ggVM2 с помощью Бастиона.

    1. Перейдите к ggVM2 из портал Azure.
    2. Перейдите к обзору на левой панели
    3. Выберите Подключить>Бастион в меню в верхней части окна.
    4. Выбор вкладки "Бастион"
    5. Щелкните Использовать бастион.
  2. Повторите шаги 2–10 выше на ggVM2

Настройка службы на ggVM1 (основной)

  1. Создайте или обновите файл tnsnames.ora.

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

    При открытии редактора vi необходимо нажать клавишу i , чтобы переключиться в режим вставки, а затем скопировать и вставить содержимое файла, а затем нажать Esc клавишу , :wq! чтобы сохранить файл.

    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. Создайте учетные записи владельца и пользователя Golden Gate.

    Примечание

    Учетная запись владельца должна иметь префикс 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. Создание тестовой учетной записи пользователя 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. Настройте файл параметров извлечения.

    Запустите интерфейс командной строки 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. Нажмите i клавишу , чтобы переключиться в режим вставки и скопировать и вставить (щелкните правой кнопкой мыши в окне SSH) после файла параметров EXTRACT. Нажмите клавишу ESC, :wq! чтобы сохранить файл.

    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. Регистрация извлечения, интегрированного с извлечением.

    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. Настройка контрольных точек извлечения и запуск извлечения в режиме реального времени

    $ ./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
    

    На этом шаге вы найдете начальный SCN, который будет использоваться позже, в другом разделе.

    $ 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
    

    При открытии редактора vi необходимо нажать клавишу i , чтобы переключиться в режим вставки, а затем скопировать и вставить содержимое файла, а затем нажать Esc клавишу , :wq! чтобы сохранить файл.

    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
    

Настройка службы на ggVM2 (репликация)

  1. Создайте или обновите файл tnsnames.ora.

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

    При открытии редактора vi необходимо нажать клавишу i , чтобы переключиться в режим вставки, а затем скопировать и вставить содержимое файла, а затем нажать Esc клавишу , :wq! чтобы сохранить файл.

    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. Создайте учетную запись репликации.

    $ 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. Создайте тестовую учетную запись пользователя 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. Файл параметров REPLICAT для репликации изменений.

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

    При открытии редактора vi необходимо нажать клавишу i , чтобы переключиться в режим вставки, а затем скопировать и вставить содержимое файла, а затем нажать Esc клавишу , :wq! чтобы сохранить файл.

    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. Настройте контрольную точку репликации.

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

    При открытии редактора vi необходимо нажать клавишу i , чтобы переключиться в режим вставки, а затем скопировать и вставить содержимое файла, а затем нажать Esc клавишу , :wq! чтобы сохранить файл.

    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
    

Настройка репликации (ggVM1 и ggVM2)

1. Настройка репликации на ggVM2 (репликация)

Войдите в ggsci.

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

Обновите файл следующим образом.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

Перезапустите службу диспетчера.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. Настройка репликации на ggVM1 (основной)

Запустите начальную загрузку и проверка ошибок.

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

3. Настройка репликации на ggVM2 (репликация)

Измените номер SCN на номер, полученный ранее.

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

Репликация началась и вы можете протестировать ее, вставив новые записи в таблицы TEST.

Просмотр состояния задания и устранение неполадок

Просмотр отчетов

  • Чтобы просмотреть отчеты на ggVM1, выполните следующие команды.

    GGSCI> VIEW REPORT EXTORA
    
  • Чтобы просмотреть отчеты на ggVM2, выполните следующие команды.

    GGSCI> VIEW REPORT REPORA
    

Просмотр сведений о состоянии и журналов

  • Чтобы просмотреть состояние и журнал на ggVM1, выполните следующие команды.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • Чтобы просмотреть состояние и журнал на ggVM2, выполните следующие команды.

    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;
    

Наблюдение за репликацией данных

  1. Подключение к базе данных-источнику на ggVM1

    $ sqlplus test/test@pdb1
    
  2. Выбор существующих записей из таблицы

    SQL> select * from TCUSTORD;
    
  3. Создание тестовой записи

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. Наблюдайте транзакцию, выбранную Golden Gate (примечание . Общее значение вставок )

$ 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. Подключение к базе данных-источнику на ggVM2

    $ sqlplus test/test@pdb1
    
  2. Проверка репликации новой записи

    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
    

Установка и настройка Golden Gate в Oracle Linux завершены.

Удаление виртуальной машины ggXServer

Виртуальная машина ggXServer используется только во время установки. Вы можете безопасно удалить его после завершения работы с этим документом, но не изменяйте настройки GoldenGate в лаборатории Azure.

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

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

Удаление Golden Gate в настройке лаборатории Azure

Если она больше не нужна, можно использовать следующую команду, чтобы удалить группу ресурсов, виртуальную машину и все связанные с ней ресурсы для этой лаборатории.

$ az group delete --name GoldenGateOnAzureLab

Дальнейшие действия

Изучите руководство по созданию высокодоступных виртуальных машин.

Изучите примеры развертывания виртуальных машин с помощью интерфейса командной строки.