Реализация 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 19.3.1.0 | База данных Oracle 19.3.1.0 |
Имя компьютера | ggVM1 | ggVM2 |
Операционная система | Oracle Linux 7.x | Oracle Linux 7.x |
ИД безопасности Oracle | CDB1 | CDB1 |
Схема репликации | ТЕСТ | ТЕСТ |
Владелец/репликация Golden Gate | C##GGADMIN | REPUSER |
Процесс Golden Gate | EXTORA | REPORA |
Вход в Azure
Откройте предпочитаемую оболочку в Windows, Linux или Azure Shell.
Войдите в подписку Azure, используя команду az login. Затем выполните инструкции на экране.
$ az login
Убедитесь, что вы подключены к правильной подписке, проверяя имя подписки и /или идентификатор.
$ 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
Если они не существуют, можно создать новую пару keyfile.
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)
Создайте группу безопасности сети (NSG), чтобы заблокировать виртуальную сеть.
$ az network nsg create \ --resource-group GoldenGateOnAzureLab \ --name ggVnetNSG
Создайте правило 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
Создайте правило 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
Назначьте группу безопасности сети подсети, где размещаются наши серверы.
$ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
Создание сети бастиона
Создайте подсеть Бастиона. Имя подсети должно быть AzureBastionSubnet.
$ az network vnet subnet create \ --resource-group GoldenGateOnAzureLab \ --name AzureBastionSubnet \ --vnet-name ggVnet \ --address-prefixes 10.0.1.0/24
Создайте общедоступный IP-адрес бастиона.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
Создайте ресурс Бастиона 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 с помощью бастиона.
- Перейдите к ggXServer из портал Azure
- Поиск обзора в области навигации слева
- Выберите "Подключить>бастион" в меню в верхней части
- Вкладка "Выбор бастиона"
- Нажмите кнопку "Использовать бастион"
Подготовка ggXServer к запуску X-сервера
X Server требуется для последующих шагов этой лаборатории. Выполните следующие действия, чтобы установить и запустить X Server.
Скачайте Xming X Server для Windows в ggXServer и установите все параметры по умолчанию.
Убедитесь, что вы не выбрали "Запустить " в конце установки
Запустите приложение XLAUNCH из меню "Пуск".
Выбор нескольких окон
Выбор кнопки "Пуск" без клиента
Выберите " Нет управления доступом"
Выберите "Разрешить доступ", чтобы разрешить X Server через брандмауэр Windows
Если перезапустить виртуальную машину ggXServer, выполните шаги 2–6 выше, чтобы перезапустить приложение X Server.
Создание виртуальных машин базы данных Oracle
Для этой лаборатории мы создадим виртуальные машины ggVM1
и ggVM2
из образа Oracle Database 19c. Если они еще не существуют в расположении ключа по умолчанию, эта команда также создает ключи SSH. Чтобы использовать определенный набор ключей, используйте параметр --ssh-key-value
. Если вы уже создали ключи SSH в разделе "Создание ключей проверки подлинности", эти ключи используются.
При создании новой виртуальной машины size
параметр указывает размер и тип созданной виртуальной машины. В зависимости от региона Azure, выбранного для создания виртуальной машины и параметров подписки, некоторые размеры и типы виртуальных машин могут быть недоступны для использования. В следующем примере используется минимальный обязательный размер для этой лаборатории Standard_DS1_v2
. Если вы хотите изменить спецификации виртуальной машины, выберите один из доступных размеров виртуальных машин Azure. В целях тестирования можно выбрать типы виртуальных машин общего назначения (D-Series). Для рабочих или пилотных развертываний оптимизированы память (серии E и M-Series) более подходящими.
Создание 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 с помощью Бастиона.
- Перейдите к ggVM1 из портал Azure.
- Перейдите к обзору в левой области.
- Выберите "Подключить>бастион" в меню в верхней части
- Выберите вкладку Бастиона
- Выбор "Использовать бастион"
Создание базы данных на ggVM1 (основной)
Программное обеспечение Oracle уже установлено на образе Marketplace, поэтому следующий шаг — создать базу данных.
- Запустите программное обеспечение от имени
oracle
пользователя.
$ sudo su - oracle
- Создайте базу данных с помощью следующей команды. Эта команда может занять 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.
- Задайте переменные ORACLE_SID и LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Выполните следующую команду, чтобы добавить 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
- Запуск прослушивателя Oracle
$ lsnrctl start
Подключение к ggVM2 (репликация)
Подключитесь к ggVM2 с помощью Бастиона.
- Перейдите к ggVM2 из портал Azure.
- Перейдите к обзору в левой области.
- Выберите "Подключить>бастион" в меню в верхней части
- Выберите вкладку Бастиона
- Выбор "Использовать бастион"
Открытие портов брандмауэра для ggVM1
Настройте брандмауэр, чтобы разрешить подключения из ggVM1. Следующая команда выполняется в ggVM2.
$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit
Создание базы данных на ggVM2 (репликация)
- При необходимости переключитесь на
oracle
пользователя
$ sudo su - oracle
- Создание базы данных
$ 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
- Задайте переменные ORACLE_SID и ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Выполните следующую команду, чтобы добавить 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
- Запуск прослушивателя Oracle
$ lsnrctl start
Настройка Golden Gate на ggVM1
Выполните действия, описанные в этом разделе, чтобы установить и настроить Golden Gate.
Включение режима архивного журнала в ggVM1 (основной)
- Подключитесь к
sqlplus
.
$ sqlplus / as sysdba
- Включение архивного журнала
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
- Включите принудительное ведение журнала и убедитесь, что есть хотя бы один файл журнала.
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
Скачайте файл 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip с страницы скачивания Oracle Golden Gate под названием Oracle GoldenGate 21.3.0.0.0.0 для Oracle на платформе Linux x86-64.
После скачивания файла .zip на клиентский компьютер можно использовать протокол безопасного копирования (SCP) для копирования файлов на виртуальные машины (ggVM1 и ggVM2). Убедитесь, что
scp
команда указывает на правильный путь к файлу .zip.Копирование в ggVM1
Войдите и убедитесь, что вы используете правильную подписку, как описано в разделе "Вход в Azure"
Откройте туннель на целевую виртуальную машину с помощью следующей команды 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
Чтобы подключиться к целевой виртуальной машине через туннель, оставьте первую командную строку запущенной и откройте вторую командную строку. В этом втором окне командной строки вы можете передать файлы с локального компьютера на целевую виртуальную машину с помощью следующей команды. Правильный
id_rsa
файл ключей для доступа к виртуальной машине должен находиться в.ssh
каталоге или указывать на другой файл ключа с помощью-i
параметра дляscp
команды.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Копирование в ggVM2
Откройте туннель на целевую виртуальную машину с помощью следующей команды 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
Оставьте первую командную строку запущенной и откройте вторую командную строку, чтобы подключиться к целевой виртуальной машине через туннель. В этом втором окне командной строки вы можете передать файлы с локального компьютера на целевую виртуальную машину с помощью следующей команды. Правильный
id_rsa
файл ключей для доступа к виртуальной машине должен находиться в.ssh
каталоге или указывать на другой файл ключа с помощью-i
параметра дляscp
команды.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Установка программного обеспечения Golden Gate
Подключитесь к ggVM1 с помощью Бастиона.
- Перейдите к ggVM1 из портал Azure.
- Перейти к обзору на левой панели
- Выберите "Подключить>бастион" в меню в верхней части
- Выберите вкладку Бастиона
- Выбор "Использовать бастион"
Переместите файл .zip в папку /opt , а затем измените владельца
$ sudo su - $ mv /home/azureuser/*.zip /opt
Распакуйте файлы (установите служебную программу распаки, если она еще не установлена)
$ yum install unzip $ cd /opt $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
Изменение разрешения
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
Запуск установщика Golden Gate
$ sudo su - oracle $ export DISPLAY=10.0.0.4:0.0 $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
Установщик открывается на ggXServer.
Выберите Oracle GoldenGate для Oracle Database 21c. Нажмите кнопку Далее, чтобы продолжить.
Задайте для расположения программного обеспечения значение /u01/app/oracle/product/19.0.0/oggcore_1, убедитесь, что выбрано поле "Пуск" и нажмите кнопку "Далее ".
На экране Сводка выберите Установить, чтобы продолжить.
Дождитесь завершения установки.
Нажмите кнопку "Закрыть ", чтобы продолжить.
Подключитесь к ggVM2 с помощью Бастиона.
- Перейдите к ggVM2 из портал Azure.
- Перейти к обзору в левой области
- Выберите "Подключить>бастион" в меню в верхней части
- Выберите вкладку Бастиона
- Выбор "Использовать бастион"
Повторите шаги 2-10 выше на ggVM2
Настройка службы на ggVM1 (основной)
Создайте или обновите файл 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) ) )
Создайте учетные записи владельца и пользователя 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;
Создание тестовой учетной записи пользователя 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;
Настройте файл параметров извлечения.
Запустите интерфейс командной строки 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
Нажмите
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;
Зарегистрируйте извлечение с интегрированным извлечением.
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
Настройка контрольных точек и запуск извлечения в режиме реального времени
$ ./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 (репликация)
Создайте или обновите файл 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) ) )
Создайте учетную запись репликации.
$ 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;
Создайте тестовую учетную запись пользователя 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;
Файл параметров 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.*;
Настройте реплицируемую контрольную точку.
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
Перезапустите службу Manager.
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;
Наблюдение за репликацией данных
Подключение к базе данных-источнику в ggVM1
$ sqlplus test/test@pdb1
Выбор существующих записей из таблицы
SQL> select * from TCUSTORD;
Создание тестовой записи
SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102); SQL> COMMIT; SQL> EXIT;
Наблюдение за транзакцией, выбранной Golden Gate (значение вставки примечания total)
$ 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.
Подключение к базе данных-источнику на ggVM2
$ sqlplus test/test@pdb1
Проверка репликации новой записи
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
Следующие шаги
Изучите руководство по созданию высокодоступных виртуальных машин.
Изучите примеры развертывания виртуальных машин с помощью интерфейса командной строки.