Implementowanie rozwiązania Oracle Golden Gate na maszynie wirtualnej z systemem Linux platformy Azure
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Interfejs wiersza polecenia platformy Azure umożliwia tworzenie zasobów Azure i zarządzanie nimi z poziomu wiersza polecenia lub skryptów. Ten przewodnik zawiera szczegółowe informacje na temat sposobu wdrażania bazy danych Oracle 19c przy użyciu interfejsu wiersza polecenia platformy Azure z obrazu galerii witryny Azure Marketplace.
W tym dokumencie pokazano krok po kroku, jak utworzyć, zainstalować i skonfigurować rozwiązanie Oracle Golden Gate na maszynie wirtualnej platformy Azure. W tym samouczku dwie maszyny wirtualne są konfigurowane w zestawie dostępności w jednym regionie. Ten sam samouczek może służyć do konfigurowania bramy OracleGolden Gate dla maszyn wirtualnych w różnych Strefy dostępności w jednym regionie platformy Azure lub w przypadku maszyn wirtualnych skonfigurowanych w dwóch różnych regionach.
Przed rozpoczęciem upewnij się, że interfejs wiersza polecenia platformy Azure jest zainstalowany. Aby uzyskać więcej informacji, zobacz Azure CLI installation guide (Przewodnik instalacji interfejsu wiersza polecenia platformy Azure).
Wprowadzenie
GoldenGate to oprogramowanie replikacji logicznej, które umożliwia replikację, filtrowanie i przekształcanie danych ze źródłowej bazy danych do docelowej bazy danych w czasie rzeczywistym. Ta funkcja zapewnia, że zmiany w źródłowej bazie danych są replikowane w czasie rzeczywistym, dzięki czemu docelowa baza danych będzie aktualna z najnowszymi danymi.
Opcja GoldenGate jest używana głównie w przypadku heterogenicznych przypadków replikacji, takich jak replikowanie danych z różnych baz danych źródłowych do pojedynczej bazy danych. Na przykład magazyn danych. Można go również używać do migracji międzyplatformowych, takich jak z SPARC i AIX do środowisk x86 systemu Linux oraz zaawansowanych scenariuszy wysokiej dostępności i skalowalności.
Ponadto rozwiązanie GoldenGate jest również odpowiednie do migracji niemal zerowych przestojów, ponieważ obsługuje migracje online z minimalnymi zakłóceniami w systemach źródłowych.
Chociaż element GoldenGate ułatwia replikację dwukierunkową, należy odpowiednio skonfigurować aplikację. Ponadto oprogramowanie umożliwia filtrowanie i przekształcanie danych w celu spełnienia określonych wymagań biznesowych, umożliwiając użytkownikom korzystanie z replikowanych danych w różnych celach.
Przygotowywanie środowiska
Aby przeprowadzić instalację programu Oracle Golden Gate, należy utworzyć dwie maszyny wirtualne platformy Azure w tym samym zestawie dostępności. Obraz witryny Marketplace używany do tworzenia maszyn wirtualnych to Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.
Musisz również zapoznać się z edytorem systemu Unix vi i mieć podstawową wiedzę na temat serwera X.
Poniższa tabela zawiera podsumowanie konfiguracji środowiska:
Lokacja główna | Replikowanie lokacji | |
---|---|---|
Wydanie oracle | Oracle Database 19.3.1.0 | Oracle Database 19.3.1.0 |
Nazwa maszyny | ggVM1 | ggVM2 |
System operacyjny | Oracle Linux 7.x | Oracle Linux 7.x |
Oracle SID | CDB1 | CDB1 |
Schemat replikacji | TESTOWANIE | TESTOWANIE |
Właściciel/replika złotej bramy | C##GGADMIN | REPUSER |
Proces Golden Gate | EXTORA | REPORA |
Logowanie się do platformy Azure
Otwórz preferowaną powłokę w systemach Windows, Linux lub Azure Shell.
Zaloguj się do subskrypcji platformy Azure za pomocą polecenia az login . Następnie postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
$ az login
Upewnij się, że masz połączenie z poprawną subskrypcją, weryfikując nazwę subskrypcji i/lub identyfikator.
$ 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" } }
Generowanie kluczy uwierzytelniania
Do nawiązania połączenia z maszyną wirtualną bazy danych Oracle Database używamy uwierzytelniania opartego na plikach za pomocą protokołu SSH. Upewnij się, że masz prywatne (nazwane id_rsa
) i publiczne (nazwane id_rsa.pub
) pliki kluczy są tworzone w powłoce.
Lokalizacja kluczowych plików zależy od systemu źródłowego.
Windows: %USERPROFILE%.ssh Linux: ~/.ssh
Jeśli nie istnieją, możesz utworzyć nową parę plików kluczy.
ssh-keygen -m PEM -t rsa -b 4096
Tworzone są pliki katalogów i kluczy ssh. Aby uzyskać więcej informacji, zobacz Tworzenie kluczy SSH i zarządzanie nimi na potrzeby uwierzytelniania na maszynie wirtualnej z systemem Linux na platformie Azure
Tworzenie grupy zasobów
Aby utworzyć grupę zasobów, użyj polecenia az group create. Grupa zasobów platformy Azure to logiczny kontener, w którym zasoby platformy Azure są wdrażane i zarządzane.
$ az group create --name GoldenGateOnAzureLab --location westus
Tworzenie i konfigurowanie sieci
Tworzenie sieci wirtualnej
Użyj następującego polecenia, aby utworzyć sieć wirtualną, która hostuje zasoby tworzone w tym laboratorium.
$ 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"
Tworzenie sieciowej grupy zabezpieczeń
Utwórz sieciową grupę zabezpieczeń, aby zablokować sieć wirtualną.
$ az network nsg create \ --resource-group GoldenGateOnAzureLab \ --name ggVnetNSG
Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwolić na komunikację w sieci wirtualnej.
$ 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
Utwórz regułę sieciowej grupy zabezpieczeń, aby odmówić wszystkich połączeń przychodzących.
$ 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
Przypisz sieciową grupę zabezpieczeń do podsieci, w której hostujemy nasze serwery.
$ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
Tworzenie sieci usługi Bastion
Utwórz podsieć usługi Bastion. Nazwa podsieci musi być AzureBastionSubnet.
$ az network vnet subnet create \ --resource-group GoldenGateOnAzureLab \ --name AzureBastionSubnet \ --vnet-name ggVnet \ --address-prefixes 10.0.1.0/24
Utwórz publiczny adres IP dla usługi Bastion.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
Utwórz zasób usługi Azure Bastion. Wdrożenie zasobu trwa około 10 minut.
$ az network bastion create \ --resource-group GoldenGateOnAzureLab \ --name ggBastion \ --public-ip-address ggBastionIP \ --vnet-name ggVnet \ --sku Standard \ --enable-tunneling \ --enable-ip-connect true
Tworzenie maszyny wirtualnej X Server (ggXServer)
Zastąp hasło i uruchom następujące polecenie, aby utworzyć maszynę wirtualną stacji roboczej z systemem Windows, na której wdrażamy serwer X.
$ 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>
Nawiązywanie połączenia z serwerem ggXServer za pośrednictwem usługi Bastion
Połącz się z serwerem ggXServer przy użyciu usługi Bastion.
- Przejdź do serwera ggXServer z witryny Azure Portal
- Znajdź przegląd w obszarze nawigacji po lewej stronie
- Wybierz pozycję Połącz>usługę Bastion w menu u góry
- Wybierz kartę Bastion
- Kliknij pozycję Użyj usługi Bastion
Przygotowywanie serwera ggXServer do uruchamiania serwera X
Serwer X jest wymagany do wykonania późniejszych kroków tego laboratorium. Wykonaj następujące kroki, aby zainstalować i uruchomić serwer X.
Pobierz Xming X Server dla systemu Windows , aby ggXServer i zainstalować ze wszystkimi opcjami domyślnymi.
Upewnij się, że nie wybrano opcji Uruchom na końcu instalacji
Uruchom aplikację "XLAUNCH" z menu Start.
Wybierz wiele systemu Windows
Wybierz pozycję Rozpocznij bez klienta
Wybierz pozycję Brak kontroli dostępu
Wybierz pozycję Zezwalaj na dostęp , aby zezwolić na korzystanie z serwera X za pośrednictwem zapory systemu Windows
Jeśli uruchomisz ponownie maszynę wirtualną ggXServer , wykonaj kroki 2–6 powyżej, aby ponownie uruchomić aplikację X Server.
Tworzenie maszyn wirtualnych bazy danych Oracle
W tym laboratorium utworzymy maszyny ggVM1
wirtualne i ggVM2
obraz Oracle Database 19c. Jeśli jeszcze nie istnieją w domyślnej lokalizacji klucza, to polecenie spowoduje również utworzenie kluczy SSH. Aby użyć określonego zestawu kluczy, użyj opcji --ssh-key-value
. Jeśli klucze SSH zostały już utworzone w sekcji Generowanie kluczy uwierzytelniania, te klucze są używane.
Podczas tworzenia nowej maszyny size
wirtualnej parametr wskazuje rozmiar i typ utworzonej maszyny wirtualnej. W zależności od regionu platformy Azure wybranego do utworzenia maszyny wirtualnej i ustawień subskrypcji niektóre rozmiary i typy maszyn wirtualnych mogą nie być dostępne do użycia. W poniższym przykładzie użyto minimalnego wymaganego rozmiaru dla tego laboratorium Standard_DS1_v2
. Jeśli chcesz zmienić specyfikacje maszyny wirtualnej, wybierz jeden z dostępnych rozmiarów z obszaru Rozmiary maszyn wirtualnych platformy Azure. Do celów testowych można wybrać typy maszyn wirtualnych Ogólnego przeznaczenia (D-Series). W przypadku wdrożeń produkcyjnych lub pilotażowych bardziej odpowiednie są zoptymalizowane pod kątem pamięci (seria E i seria M).
Tworzenie maszyny wirtualnej ggVM1 (podstawowa)
$ 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
Tworzenie maszyny wirtualnej ggVM2 (replikowanie)
$ 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
Nawiązywanie połączenia z maszyną wirtualną ggVM1 (podstawowa)
Połącz się z maszyną wirtualną ggVM1 przy użyciu usługi Bastion.
- Przejdź do maszyny ggVM1 z witryny Azure Portal.
- Przejdź do obszaru Przegląd w okienku po lewej stronie.
- Wybierz pozycję Połącz>usługę Bastion w menu u góry
- Wybierz kartę Bastion
- Wybierz pozycję Użyj usługi Bastion
Tworzenie bazy danych na maszynie ggVM1 (podstawowej)
Oprogramowanie Oracle jest już zainstalowane na obrazie witryny Marketplace, więc następnym krokiem jest utworzenie bazy danych.
- Uruchom oprogramowanie jako
oracle
użytkownik.
$ sudo su - oracle
- Utwórz bazę danych przy użyciu następującego polecenia. Wykonanie tego polecenia może potrwać od 30 do 40 minut.
$ 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
Dane wyjściowe powinny wyglądać podobnie do poniższej odpowiedzi.
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.
- Ustaw zmienne ORACLE_SID i LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Uruchom następujące polecenie, aby dodać ORACLE_SID i LD_LIBRARY_PATH do pliku bashrc, aby te ustawienia zostały zapisane na potrzeby przyszłych logowania. ORACLE_HOME zmienna powinna być już ustawiona w pliku bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Uruchamianie odbiornika Oracle
$ lsnrctl start
Nawiązywanie połączenia z maszyną wirtualną ggVM2 (replikowanie)
Połącz się z maszyną wirtualną ggVM2 przy użyciu usługi Bastion.
- Przejdź do maszyny ggVM2 z witryny Azure Portal.
- Przejdź do obszaru Przegląd w okienku po lewej stronie.
- Wybierz pozycję Połącz>usługę Bastion w menu u góry
- Wybierz kartę Bastion
- Wybierz pozycję Użyj usługi Bastion
Otwieranie portów zapory dla maszyny wirtualnej ggVM1
Skonfiguruj zaporę tak, aby zezwalała na połączenia z maszyny wirtualnej ggVM1. Następujące polecenie jest uruchamiane na maszynie wirtualnej ggVM2.
$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit
Tworzenie bazy danych na maszynie ggVM2 (replikowanie)
- Przełącz się do
oracle
użytkownika, jeśli to konieczne
$ sudo su - oracle
- Tworzenie bazy danych
$ 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
- Ustaw zmienne ORACLE_SID i ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Uruchom następujące polecenie, aby dodać ORACLE_SID i LD_LIBRARY_PATH do pliku bashrc, aby te ustawienia zostały zapisane na potrzeby przyszłych logowania. ORACLE_HOME zmienna powinna być już ustawiona w pliku bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Uruchamianie odbiornika Oracle
$ lsnrctl start
Konfigurowanie złotej bramy na maszynie ggVM1
Wykonaj kroki opisane w tej sekcji, aby zainstalować i skonfigurować rozwiązanie Golden Gate.
Włączanie trybu dziennika archiwum na maszynie ggVM1 (podstawowa)
- Nawiązywanie połączenia z usługą
sqlplus
$ sqlplus / as sysdba
- Włączanie dziennika archiwum
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
- Włącz rejestrowanie wymuszone i upewnij się, że istnieje co najmniej jeden plik dziennika.
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;
Pobierz oprogramowanie Golden Gate
Pobierz plik 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip ze strony pobierania Oracle Golden Gate pod tytułem pobierania Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64.
Po pobraniu pliku .zip na komputer kliencki można użyć protokołu Secure Copy Protocol (SCP), aby skopiować pliki na maszyny wirtualne (ggVM1 i ggVM2). Upewnij się, że
scp
polecenie wskazuje poprawną ścieżkę .zip pliku.Kopiowanie do maszyny ggVM1
Zaloguj się i upewnij się, że używasz odpowiedniej subskrypcji zgodnie z opisem w temacie Logowanie do platformy Azure
Otwórz tunel na docelowej maszynie wirtualnej przy użyciu następującego polecenia programu 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
Aby nawiązać połączenie z docelową maszyną wirtualną za pośrednictwem tunelu, pozostaw pierwszy wiersz polecenia uruchomiony i otwórz drugi wiersz polecenia . W tym drugim oknie wiersza polecenia możesz przekazać pliki z komputera lokalnego do docelowej maszyny wirtualnej przy użyciu następującego polecenia. Prawidłowy
id_rsa
plik klucza, aby uzyskać dostęp do maszyny wirtualnej, musi znajdować się w.ssh
katalogu lub można wskazać inny plik klucza przy użyciu-i
parametru doscp
polecenia.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Kopiowanie do maszyny wirtualnej ggVM2
Otwórz tunel na docelowej maszynie wirtualnej przy użyciu następującego polecenia programu 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
Pozostaw pierwszy wiersz polecenia uruchomiony i otwórz drugi wiersz polecenia, aby nawiązać połączenie z docelową maszyną wirtualną za pośrednictwem tunelu. W tym drugim oknie wiersza polecenia możesz przekazać pliki z komputera lokalnego do docelowej maszyny wirtualnej przy użyciu następującego polecenia. Prawidłowy
id_rsa
plik klucza, aby uzyskać dostęp do maszyny wirtualnej, musi znajdować się w.ssh
katalogu lub można wskazać inny plik klucza przy użyciu-i
parametru doscp
polecenia.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Instalowanie oprogramowania Golden Gate
Połącz się z maszyną wirtualną ggVM1 przy użyciu usługi Bastion.
- Przejdź do maszyny ggVM1 z witryny Azure Portal.
- Przejdź do obszaru Przegląd w panelu po lewej stronie
- Wybierz pozycję Połącz>usługę Bastion w menu u góry
- Wybierz kartę Bastion
- Wybierz pozycję Użyj usługi Bastion
Przenieś plik .zip do folderu /opt , a następnie zmień właściciela
$ sudo su - $ mv /home/azureuser/*.zip /opt
Rozpakuj pliki (zainstaluj narzędzie rozpakuj, jeśli jeszcze nie zainstalowano)
$ yum install unzip $ cd /opt $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
Zmień uprawnienie
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
Uruchom instalatora golden gate
$ sudo su - oracle $ export DISPLAY=10.0.0.4:0.0 $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
Instalator zostanie otwarty na serwerze ggXServer.
Wybierz pozycję "Oracle GoldenGate for Oracle Database 21c". Następnie wybierz przycisk Dalej , aby kontynuować.
Ustaw lokalizację oprogramowania na /u01/app/oracle/product/19.0.0/oggcore_1, upewnij się, że wybrano pole Start Manager i wybierz przycisk Dalej , aby kontynuować.
Na ekranie Podsumowanie wybierz pozycję Zainstaluj , aby kontynuować.
Poczekaj na zakończenie instalacji.
Wybierz pozycję Zamknij , aby kontynuować.
Połącz się z maszyną wirtualną ggVM2 przy użyciu usługi Bastion.
- Przejdź do maszyny ggVM2 z witryny Azure Portal.
- Przejdź do obszaru Przegląd w okienku po lewej stronie
- Wybierz pozycję Połącz>usługę Bastion w menu u góry
- Wybierz kartę Bastion
- Wybierz pozycję Użyj usługi Bastion
Powtórz kroki 2–10 powyżej na maszynie wirtualnej ggVM2
Konfigurowanie usługi na maszynie ggVM1 (podstawowa)
Utwórz lub zaktualizuj plik tnsnames.ora.
$ sudo su - oracle $ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Po otwarciu edytora vi musisz nacisnąć
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
,:wq!
aby zapisać plik.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) ) )
Utwórz konto właściciela i użytkownika golden gate.
Uwaga
Konto właściciela musi mieć prefiks języka 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;
Tworzenie konta użytkownika testowego aplikacji 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;
Skonfiguruj plik wyodrębniania parametrów.
Uruchom interfejs wiersza polecenia 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
Naciśnij
i
, aby przełączyć się do trybu wstawiania i skopiować i wkleić (kliknij prawym przyciskiem myszy okno SSH) poniżej pliku PARAMETRów EXTRACT. Naciśnij Esc,:wq!
aby zapisać plik.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;
Zarejestruj wyodrębnianie zintegrowane wyodrębnianie.
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
Konfigurowanie wyodrębniania punktów kontrolnych i uruchamiania wyodrębniania w czasie rzeczywistym
$ ./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
W tym kroku znajdziesz początkową nazwę SCN, która jest używana później, w innej sekcji.
$ 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
Po otwarciu edytora vi musisz nacisnąć
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
,:wq!
aby zapisać plik.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
Konfigurowanie usługi na maszynie wirtualnej ggVM2 (replikowanie)
Utwórz lub zaktualizuj plik tnsnames.ora.
$ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Po otwarciu edytora vi musisz nacisnąć
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
,:wq!
aby zapisać plik.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) ) )
Utwórz konto replikowania.
$ 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;
Utwórz konto użytkownika testowego aplikacji 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;
Plik parametrów REPLICAT w celu replikowania zmian.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> EDIT PARAMS REPORA
Po otwarciu edytora vi musisz nacisnąć
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
,:wq!
aby zapisać plik.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.*;
Konfigurowanie replikowanego punktu kontrolnego.
GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt GGSCI> EDIT PARAMS INITREP
Po otwarciu edytora vi musisz nacisnąć
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
,:wq!
aby zapisać plik.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
Konfigurowanie replikacji (ggVM1 i ggVM2)
1. Konfigurowanie replikacji na maszynie wirtualnej ggVM2 (replikowanie)
Zaloguj się do ggsci
.
$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR
Zaktualizuj plik, wykonując następujące czynności.
PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW
Uruchom ponownie usługę Menedżer.
GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT
2. Konfigurowanie replikacji na maszynie ggVM1 (podstawowej)
Uruchom początkowe ładowanie i sprawdź, czy występują błędy.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT
3. Konfigurowanie replikacji na maszynie wirtualnej ggVM2 (replikowanie)
Zmień numer SCN na liczbę uzyskaną wcześniej.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191
Rozpoczęto replikację, można ją przetestować, wstawiając nowe rekordy do tabel TEST.
Wyświetlanie stanu zadania i rozwiązywanie problemów
Wyświetlanie raportów
Aby wyświetlić raporty na maszynie ggVM1, uruchom następujące polecenia.
GGSCI> VIEW REPORT EXTORA
Aby wyświetlić raporty na maszynie ggVM2, uruchom następujące polecenia.
GGSCI> VIEW REPORT REPORA
Wyświetlanie stanu i historii
Aby wyświetlić stan i historię na maszynie ggVM1, uruchom następujące polecenia.
GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin GGSCI> INFO EXTRACT EXTORA, DETAIL
Aby wyświetlić stan i historię na maszynie wirtualnej ggVM2, uruchom następujące polecenia.
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;
Obserwowanie replikacji danych
Nawiązywanie połączenia z podstawową bazą danych na maszynie ggVM1
$ sqlplus test/test@pdb1
Wybieranie istniejących rekordów z tabeli
SQL> select * from TCUSTORD;
Tworzenie rekordu testowego
SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102); SQL> COMMIT; SQL> EXIT;
Obserwowanie transakcji odebranych przez Golden Gate (Uwaga Całkowita wartość wstawiania )
$ 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.
Nawiązywanie połączenia z podstawową bazą danych na maszynie wirtualnej ggVM2
$ sqlplus test/test@pdb1
Sprawdzanie, czy nowy rekord jest replikowany
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
Instalacja i konfiguracja rozwiązania Golden Gate w systemie Oracle linux została ukończona.
Usuwanie maszyny wirtualnej ggXServer
Maszyna wirtualna ggXServer jest używana tylko podczas instalacji. Możesz bezpiecznie usunąć go po ukończeniu tego dokumentu laboratoryjnego, ale zachować konfigurację laboratorium GoldenGate w laboratorium platformy Azure bez zmian.
$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes
$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP
Usuwanie rozwiązania Golden Gate w konfiguracji laboratorium platformy Azure
Gdy grupa zasobów, maszyna wirtualna i wszystkie powiązane zasoby dla tego laboratorium nie będą już potrzebne, można użyć następującego polecenia.
$ az group delete --name GoldenGateOnAzureLab
Następne kroki
Samouczek dotyczący tworzenia maszyn wirtualnych o wysokiej dostępności