Implementieren von Oracle Golden Gate auf einer Azure-Linux-VM
Gilt für: ✔️ Linux-VMs
Die Azure CLI dient zum Erstellen und Verwalten von Azure-Ressourcen über die Befehlszeile oder mit Skripts. In diesem Leitfaden wird beschrieben, wie Sie die Azure-Befehlszeilenschnittstelle verwenden, um eine Oracle 19c-Datenbank aus dem Azure Marketplace-Katalogimage bereitzustellen.
Dieses Dokument veranschaulicht schrittweise das Erstellen, Installieren und Konfigurieren von Oracle Golden Gate in einer Azure-VM. In diesem Tutorial werden zwei VMs in einer Verfügbarkeitsgruppe in einer einzelnen Region eingerichtet. Das gleiche Tutorial kann verwendet werden, um Oracle GoldenGate für VMs in verschiedenen Verfügbarkeitszonen in einer einzelnen Azure-Region oder für VMs in zwei verschiedenen Regionen einzurichten.
Stellen Sie sicher, dass die Azure CLI installiert ist, bevor Sie beginnen. Weitere Informationen finden Sie im Azure CLI-Installationshandbuch.
Einführung
GoldenGate ist eine logische Replikationssoftware, welche die Echtzeitreplikation, Filterung und Transformation von Daten aus einer Quelldatenbank in eine Zieldatenbank ermöglicht. Dieses Feature stellt sicher, dass Änderungen in der Quelldatenbank in Echtzeit repliziert werden, sodass die Zieldatenbank auf dem neuesten Stand der Daten ist.
GoldenGate sollte hauptsächlich für heterogene Replikationsfälle verwendet werden (also etwa zum Replizieren von Daten aus verschiedenen Quelldatenbanken in einer einzelnen Datenbank). Ein Beispiel wäre ein Data Warehouse. Weitere Verwendungsmöglichkeiten sind plattformübergreifende Migrationen (z. B. von SPARC und AIX zu Linux-x86-Umgebungen) sowie erweiterte Hochverfügbarkeits- und Skalierbarkeitsszenarien.
Darüber hinaus eignet sich GoldenGate auch für Migrationen nahezu ohne Downtime, da es Onlinemigrationen mit minimalen Unterbrechungen für die Quellsysteme unterstützt.
GoldenGate ermöglicht zwar die bidirektionale Replikation, die Anwendung muss jedoch entsprechend konfiguriert sein. Zusätzlich ermöglicht die Software das Filtern und Transformieren von Daten, um bestimmte geschäftliche Anforderungen zu erfüllen, sodass Benutzer die replizierten Daten für verschiedene Zwecke nutzen können.
Vorbereiten der Umgebung
Für die Installation von Oracle Golden Gate müssen Sie zwei Azure-VMs in derselben Verfügbarkeitsgruppe erstellen. Das Marketplace-Image, das Sie zum Erstellen der VMs verwenden, ist Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.
Sie müssen zudem mit dem Unix-Editor „vi“ vertraut sein und ein grundlegendes Verständnis von X-Server haben.
Die folgende Tabelle ist eine Zusammenfassung der Umgebungskonfiguration:
Primärer Standort | Replikatstandort | |
---|---|---|
Oracle Release | Oracle Database 19.3.1.0 | Oracle Database 19.3.1.0 |
Computername | ggVM1 | ggVM2 |
Betriebssystem | Oracle Linux 7.x | Oracle Linux 7.x |
Oracle SID | CDB1 | CDB1 |
Replikationsschema | TEST | TEST |
Golden Gate-Besitzer/-Replikat | C##GGADMIN | REPUSER |
Golden Gate-Prozess | EXTORA | REPORA |
Anmelden bei Azure
Öffnen Sie Ihre bevorzugte Shell unter Windows, Linux oder Azure Shell.
Melden Sie sich mit dem Befehl az login bei Ihrem Azure-Abonnement an. Befolgen Sie dann die Anweisungen auf dem Bildschirm.
$ az login
Überprüfen Sie den Abonnementnamen und/oder die ID, um sich zu vergewissern, dass Sie mit dem richtigen Abonnement verbunden sind.
$ 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" } }
Generieren von Authentifizierungsschlüsseln
Wir verwenden die auf der Schlüsseldatei basierte Authentifizierung mit SSH, um eine Verbindung mit der Oracle Database-VM herzustellen. Stellen Sie sicher, dass Ihre privaten (mit Namen id_rsa
) und öffentlichen (mit Namen id_rsa.pub
) Schlüsseldateien in Ihrer Shell erstellt haben.
Der Speicherort der Schlüsseldateien hängt von Ihrem Quellsystem ab.
Windows: %USERPROFILE%.ssh Linux: ~/.ssh
Wenn es nicht vorhanden ist, können Sie ein neues Schlüsseldateipaar erstellen.
ssh-keygen -m PEM -t rsa -b 4096
Das SSH-Verzeichnis und die Schlüsseldateien werden erstellt. Weitere Informationen finden Sie unter Erstellen und Verwalten von SSH-Schlüsseln für die Authentifizierung bei einer Linux-VM in Azure.
Erstellen einer Ressourcengruppe
Verwenden Sie zum Erstellen einer Ressourcengruppe den Befehl az group create. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.
$ az group create --name GoldenGateOnAzureLab --location westus
Erstellen und Konfigurieren eines Netzwerks
Virtuelles Netzwerk erstellen
Verwenden Sie den folgenden Befehl, um das virtuelle Netzwerk zu erstellen, das Ressourcen hostet, die wir in diesem Lab erstellen.
$ 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"
Erstellen einer Netzwerksicherheitsgruppe (NSG)
Erstellen Sie eine Netzwerksicherheitsgruppe (NSG), um Ihr virtuelles Netzwerk zu sperren.
$ az network nsg create \ --resource-group GoldenGateOnAzureLab \ --name ggVnetNSG
Erstellen Sie eine NSG-Regel, um die Kommunikation innerhalb des virtuellen Netzwerks zuzulassen.
$ 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
Erstellen Sie eine NSG-Regel zum Verweigern aller eingehenden Verbindungen.
$ 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
Weisen Sie die NSG dem Subnetz zu, in dem wir unsere Server hosten.
$ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
Erstellen eines Bastion-Netzwerks
Erstellen Sie ein Bastion-Subnetz. Der Name des Subnetzes muss AzureBastionSubnet lauten.
$ az network vnet subnet create \ --resource-group GoldenGateOnAzureLab \ --name AzureBastionSubnet \ --vnet-name ggVnet \ --address-prefixes 10.0.1.0/24
Erstellen Sie eine öffentliche IP-Adresse für Bastion.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
Erstellen Sie eine Azure Bastion-Ressource. Die Bereitstellung der Ressource dauert etwa 10 Minuten.
$ az network bastion create \ --resource-group GoldenGateOnAzureLab \ --name ggBastion \ --public-ip-address ggBastionIP \ --vnet-name ggVnet \ --sku Standard \ --enable-tunneling \ --enable-ip-connect true
Erstellen einer X Server-VM (ggXServer)
Ersetzen Sie Ihr Kennwort, und führen Sie den folgenden Befehl aus, um eine Windows-Arbeitsstation-VM zu erstellen, auf der Sie X Server bereitstellen.
$ 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>
Herstellen einer Verbindung mit ggXServer über Bastion
Stellen Sie mithilfe von Bastion eine Verbindung mit ggXServer her.
- Navigieren aus dem Azure-Portal zu ggXServer
- Suchen von Übersicht im linken Navigationsbereich
- Wählen Sie im Menü ganz oben Verbinden>Bastion aus
- Registerkarte „Bastion“ auswählen
- Klicken Sie auf Bastion verwenden
Vorbereiten von ggXServer für die Ausführung von X Server
X Server ist für spätere Schritte dieses Labs erforderlich. Führen Sie die folgenden Schritte aus, um X Server zu installieren und zu starten.
Laden Sie Xming X Server für Windows auf ggXServer herunter, und installieren Sie mit allen Standardoptionen.
Achten Sie darauf, dass am Ende der Installation nicht Starten ausgewählt ist.
Starten Sie die „XLAUNCH“-Anwendung über das Startmenü.
Wählen Sie mehrere Fenster aus
Wählen Sie Keinen Client starten aus
Wählen Sie Keine Zugriffssteuerung aus
Wählen Sie Zugriff zulassen aus, um X Server über die Windows-Firewall zuzulassen
Wenn Sie Ihre ggXServer-VM neu starten, führen Sie die Schritte 2–6 oben aus, um die X Server-Anwendung neu zu starten.
Erstellen von Oracle-Datenbank-VMs
Für dieses Lab erstellen wir VMs ggVM1
und ggVM2
aus dem Oracle Database 19c-Image. Darüber hinaus erstellt dieser Befehl SSH-Schlüssel, falls diese nicht bereits am Standardschlüsselspeicherort vorhanden sind. Um einen bestimmten Satz von Schlüsseln zu verwenden, nutzen Sie die Option --ssh-key-value
. Wenn Sie Ihre SSH-Schlüssel bereits im Abschnitt Authentifizierungsschlüssel generieren erstellt haben, werden diese Schlüssel verwendet.
Beim Erstellen einer neuen VM gibt der size
-Parameter die Größe und den Typ der erstellten VM an. Abhängig von der Azure-Region, die Sie zum Erstellen der VM ausgewählt haben, und Ihren Abonnementeinstellungen sind einige VM-Größen und -Typen möglicherweise nicht für Sie verfügbar. Im folgenden Beispiel wird die erforderliche Mindestgröße für dieses Lab (Standard_DS1_v2
) verwendet. Wenn Sie die Spezifikationen der VM ändern möchten, wählen Sie eine der verfügbaren Größen unter Azure VM-Größen aus. Zu Testzwecken können Sie aus universellen VM-Typen (D-Serie) auswählen. Für Produktions- oder Pilotbereitstellungen sind arbeitsspeicheroptimierte (E- und M-Serie) VM-Typen besser geeignet.
Erstellen von ggVM1 (primär)
$ 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
Erstellen von ggVM2 (Replikat)
$ 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
Herstellen einer Verbindung mit ggVM1 (primär)
Stellen Sie mithilfe von Bastion eine Verbindung mit ggVM1 her.
- Navigieren Sie aus dem Azure-Portal zu ggVM1.
- Navigieren Sie im linken Bereich zu Übersicht.
- Wählen Sie im Menü ganz oben Verbinden>Bastion aus
- Auswählen der Registerkarte „Bastion“
- Wählen Sie Bastion verwenden aus.
Erstellen der Datenbank auf ggVM1 (primär)
Die Oracle-Software ist bereits auf dem Marketplace-Image installiert, daher umfasst der nächste Schritt das Erstellen der Datenbank.
- Führen Sie die Software als
oracle
-Benutzer aus.
$ sudo su - oracle
- Erstellen Sie die Datenbank mithilfe des folgenden Befehls. Das Ausführen dieses Befehls kann 30–40 Minuten dauern.
$ 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
Die Ausgabe sollte etwa wie folgende Antwort aussehen.
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.
- Legen Sie die Variablen ORACLE_SID und LD_LIBRARY_PATH fest.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Führen Sie die folgenden Schritte aus, um ORACLE_SID und LD_LIBRARY_PATH zur BASHRC-Datei hinzuzufügen, damit diese Einstellungen für zukünftige Anmeldungen gespeichert werden. Die ORACLE_HOME-Variable sollte bereits in der BASHRC-Datei festgelegt werden.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Starten des Oracle-Listeners
$ lsnrctl start
Herstellen einer Verbindung mit ggVM2 (Replikat)
Stellen Sie mithilfe von Bastion eine Verbindung mit ggVM2 her.
- Navigieren Sie aus dem Azure-Portal zu ggVM2.
- Navigieren Sie im linken Bereich zu Übersicht.
- Wählen Sie im Menü ganz oben Verbinden>Bastion aus
- Auswählen der Registerkarte „Bastion“
- Wählen Sie Bastion verwenden aus.
Öffnen von Firewallports für ggVM1
Konfigurieren Sie die Firewall, um Verbindungen von ggVM1 zuzulassen. Der folgende Befehl wird auf „ggVM2“ ausgeführt.
$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit
Erstellen der Datenbank in ggVM2 (Replikat)
- Wechseln zum
oracle
-Benutzer bei Bedarf
$ sudo su - oracle
- Erstellen der Datenbank
$ 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
- Legen Sie die Variablen ORACLE_SID und ORACLE_HOME fest.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Führen Sie die folgenden Schritte aus, um ORACLE_SID und LD_LIBRARY_PATH zur BASHRC-Datei hinzuzufügen, damit diese Einstellungen für zukünftige Anmeldungen gespeichert werden. Die ORACLE_HOME-Variable sollte bereits in der BASHRC-Datei festgelegt werden.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Starten des Oracle-Listeners
$ lsnrctl start
Konfigurieren von GoldenGate auf ggVM1
Führen Sie die Schritte in diesem Abschnitt aus, um GoldenGate zu installieren und zu konfigurieren.
Aktivieren des Archivprotokollmodus in ggVM1 (primär)
- Rufen Sie
sqlplus
auf.
$ sqlplus / as sysdba
- Aktivieren des Archivprotokolls
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
- Erzwingen Sie die Protokollierung, und stellen Sie sicher, dass mindestens eine Protokolldatei vorhanden ist.
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;
Herunterladen der Golden Gate-Software
Laden Sie die Datei 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip von der Oracle Golden Gate-Downloadseite unter dem Downloadtitel Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64 herunter.
Nachdem Sie die ZIP-Datei auf den Clientcomputer heruntergeladen haben, können Sie mit dem Secure Copy Protocol (SCP) die Dateien auf Ihre VMs (ggVM1 und ggVM2) kopieren. Stellen Sie sicher, dass der
scp
-Befehl auf den richtigen Pfad der ZIP-Datei zeigt.Kopieren nach ggVM1
Melden Sie sich an, und vergewissern Sie sich, wie unter Anmelden bei Azure beschrieben, dass Sie das richtige Abonnement verwenden.
Öffnen Sie den Tunnel zu Ihrer Ziel-VM mithilfe des folgenden PowerShell-Befehls
$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
Lassen Sie die erste Eingabeaufforderung ausgeführt, und öffnen Sie eine zweite Eingabeaufforderung, um über den Tunnel eine Verbindung mit Ihrer Ziel-VM herzustellen. In diesem zweiten Eingabeaufforderungsfenster können Sie Dateien von Ihrem lokalen Computer mit dem folgenden Befehl auf Ihre Ziel-VM hochladen. Die richtige
id_rsa
-Schlüsseldatei für den Zugriff auf die VM muss sich im.ssh
-Verzeichnis befinden, oder Sie können mithilfe des-i
-Parameters zumscp
-Befehl auf eine andere Schlüsseldatei verweisen.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Kopieren nach ggVM2
Öffnen Sie den Tunnel zu Ihrer Ziel-VM mithilfe des folgenden PowerShell-Befehls
$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
Lassen Sie die erste Eingabeaufforderung laufen, und öffnen Sie eine zweite Eingabeaufforderung, um über den Tunnel eine Verbindung mit Ihrer Ziel-VM herzustellen. In diesem zweiten Eingabeaufforderungsfenster können Sie Dateien von Ihrem lokalen Computer mit dem folgenden Befehl auf Ihre Ziel-VM hochladen. Die richtige
id_rsa
-Schlüsseldatei für den Zugriff auf die VM muss sich im.ssh
-Verzeichnis befinden, oder Sie können mithilfe des-i
-Parameters zumscp
-Befehl auf eine andere Schlüsseldatei verweisen.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Installieren der Golden Gate-Software
Stellen Sie mithilfe von Bastion eine Verbindung mit ggVM1 her.
- Navigieren Sie aus dem Azure-Portal zu ggVM1.
- Navigieren Sie im linken Bereich zu Übersicht.
- Wählen Sie im Menü ganz oben Verbinden>Bastion aus
- Auswählen der Registerkarte „Bastion“
- Wählen Sie Bastion verwenden aus.
Verschieben Sie die ZIP-Datei in den Ordner /opt , und ändern Sie dann den Besitzer
$ sudo su - $ mv /home/azureuser/*.zip /opt
Entpacken Sie die Dateien. Installieren Sie ein Hilfsprogramm dafür, sofern noch keines installiert ist.
$ yum install unzip $ cd /opt $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
Ändern der Berechtigung
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
Starten des GoldenGate-Installationsprogramms
$ sudo su - oracle $ export DISPLAY=10.0.0.4:0.0 $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
Das Installationsprogramm wird auf ggXServer geöffnet.
Wählen Sie „Oracle GoldenGate for Oracle Database 21c“ aus. Klicken Sie dann auf Weiter, um fortzufahren.
Legen Sie den Softwarespeicherort auf /u01/app/oracle/product/19.0.0/oggcore_1 fest, stellen Sie sicher, dass das Feld Start Manager ausgewählt ist, und wählen Sie Weiter aus, um fortzufahren.
Wählen Sie auf der Summary (Zusammenfassung) Install (Installieren) aus, um den Vorgang fortzusetzen.
Warten Sie, bis die Installation abgeschlossen ist.
Wählen Sie Schließen aus, um fortzufahren.
Stellen Sie mithilfe von Bastion eine Verbindung mit ggVM2 her.
- Navigieren Sie aus dem Azure-Portal zu ggVM2.
- Navigieren Sie im linken Bereich zu Übersicht.
- Wählen Sie im Menü ganz oben Verbinden>Bastion aus
- Auswählen der Registerkarte „Bastion“
- Wählen Sie Bastion verwenden aus.
Wiederholen Sie die Schritte 2–10 oben auf ggVM2
Einrichten des Diensts auf ggVM1 (primär)
Erstellen oder aktualisieren Sie die Datei „tnsnames.ora“.
$ sudo su - oracle $ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Wenn der VI-Editor geöffnet wird, müssen Sie
i
drücken, um in den Einfügemodus zu wechseln, dann Dateiinhalte kopieren und einfügen und dieEsc
-Taste drücken,:wq!
, um die Datei zu speichern.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) ) )
Erstellen Sie den Golden Gate-Besitzer und Benutzerkonten.
Hinweis
Das Konto des Besitzers muss das Präfix „C##“ haben.
$ 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;
Erstellen des GoldenGate-Testbenutzerkontos
$ 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;
Konfigurieren Sie die EXTRACT-Parameterdatei.
Starten Sie die Golden Gate-Befehlszeilen-Schnittstelle (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
Drücken Sie die
i
-Taste, um in den Einfügemodus zu wechseln, um mit Kopieren und Einfügen (rechtsklick auf das SSH-Fenster) folgendes die EXTRACT-Parameterdatei einzufügen. Drücken Sie die ESC-TASTE,:wq!
, um die Datei zu speichern.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;
Registrieren Sie „extract--integrated extract“.
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
Einrichten von Extrahieren-Prüfpunkten und starten der Echtzeit-Extrahierung
$ ./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
In diesem Schritt finden Sie den Start-SCN, der später in einem anderen Abschnitt verwendet wird.
$ 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
Wenn der VI-Editor geöffnet wird, müssen Sie
i
drücken, um in den Einfügemodus zu wechseln, dann Dateiinhalte kopieren und einfügen und dieEsc
-Taste drücken,:wq!
, um die Datei zu speichern.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
Einrichten des Diensts auf ggVM2 (Replikat)
Erstellen oder aktualisieren Sie die Datei „tnsnames.ora“.
$ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Wenn der VI-Editor geöffnet wird, müssen Sie
i
drücken, um in den Einfügemodus zu wechseln, dann Dateiinhalte kopieren und einfügen und dieEsc
-Taste drücken,:wq!
, um die Datei zu speichern.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) ) )
Erstellen Sie ein Replikatkonto.
$ 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;
Erstellen Sie ein GoldenGate-Testbenutzerkonto.
$ 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-Parameterdatei zum Replizieren von Änderungen.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> EDIT PARAMS REPORA
Wenn der VI-Editor geöffnet wird, müssen Sie
i
drücken, um in den Einfügemodus zu wechseln, dann Dateiinhalte kopieren und einfügen und dieEsc
-Taste drücken,:wq!
, um die Datei zu speichern.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.*;
Richten Sie einen Replikatprüfpunkt ein.
GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt GGSCI> EDIT PARAMS INITREP
Wenn der VI-Editor geöffnet wird, müssen Sie
i
drücken, um in den Einfügemodus zu wechseln, dann Dateiinhalte kopieren und einfügen und dieEsc
-Taste drücken,:wq!
, um die Datei zu speichern.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
Einrichten der Replikation (ggVM1 und ggVM2)
1. Einrichten der Replikation auf ggVM2 (Replikat)
Melden Sie sich bei ggsci
an.
$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR
Aktualisieren Sie die Datei mit dem folgenden Inhalt.
PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW
Starten Sie dann den Manager-Dienst neu.
GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT
2. Einrichten der Replikation auf ggVM1 (primär)
Starten Sie die Anfangslast, und überprüfen Sie auf Fehler.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT
3. Einrichten der Replikation auf ggVM2 (Replikat)
Ändern Sie die SCN-Nummer durch den Wert, den Sie zuvor erhalten haben.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191
Die Replikation wurde gestartet, und Sie können sie testen, indem Sie in die TEST-Tabellen neue Datensätze einfügen.
Anzeigen des Auftragsstatus und Problembehandlung
Berichte anzeigen
Um Berichte für ggVM1 anzuzeigen, führen Sie die folgenden Befehle aus.
GGSCI> VIEW REPORT EXTORA
Um Berichte für ggVM2 anzuzeigen, führen Sie die folgenden Befehle aus.
GGSCI> VIEW REPORT REPORA
Anzeigen des Status und Verlaufs
Um den Status und Verlauf für ggVM1 anzuzeigen, führen Sie die folgenden Befehle aus.
GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin GGSCI> INFO EXTRACT EXTORA, DETAIL
Um den Status und Verlauf für ggVM2 anzuzeigen, führen Sie die folgenden Befehle aus.
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;
Beobachten der Datenreplikation
Herstellen einer Verbindung mit der primären Datenbank auf ggVM1
$ sqlplus test/test@pdb1
Auswählen der vorhandenen Datensätze aus der Tabelle
SQL> select * from TCUSTORD;
Erstellen eines Testeintrags
SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102); SQL> COMMIT; SQL> EXIT;
Beobachten der von GoldenGate aufgenommenen Transaktion (Notieren Sie den Wert Einfügungen insgesamt)
$ 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.
Herstellen einer Verbindung mit der primären Datenbank auf ggVM2
$ sqlplus test/test@pdb1
Überprüfen, ob ein neuer Datensatz repliziert wird
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
Die Installation und Konfiguration von GoldenGate unter Oracle Linux ist jetzt abgeschlossen.
Löschen der ggXServer-VM
Die ggXServer-VM wird nur während des Setups verwendet. Sie können sie sicher löschen, nachdem Sie dieses Lab-Dokument abgeschlossen haben, aber halten Sie Ihr Setup für GoldenGate in Azure Lab intakt.
$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes
$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP
Löschen des Setup für GoldenGate in Azure Lab
Wenn die Ressourcengruppe, die VM und alle zugehörigen Ressourcen für dieses Lab nicht mehr benötigt werden, können Sie diese mit dem folgenden Befehl entfernen.
$ az group delete --name GoldenGateOnAzureLab
Nächste Schritte
Erstellen einer vollständigen Linux-Umgebung mit der Azure CLI 2.0