Реализация 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
Откройте предпочитаемую оболочку в 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
Если они не существуют, можно создать новую пару файлов ключей.
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
Назначьте NSG подсети, в которой размещаются наши серверы.
$ 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 Server
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. Для рабочих или пилотных развертываний больше подходят оптимизированные для памяти (серии 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 с помощью Бастиона.
- Перейдите к 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 для Oracle в Linux x86-64.
Скачав файл .zip на клиентский компьютер, вы можете скопировать файлы на виртуальные машины (ggVM1 и ggVM2) с помощью протокола SCP. Убедитесь, что
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
Перезапустите службу диспетчера.
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 (примечание . Общее значение вставок )
$ 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
Дальнейшие действия
Изучите руководство по созданию высокодоступных виртуальных машин.
Изучите примеры развертывания виртуальных машин с помощью интерфейса командной строки.