Implementowanie programu Oracle Golden Gate na maszynie wirtualnej z systemem Linux na platformie 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. W tym przewodniku szczegółowo przedstawiono sposób wdrażania bazy danych Oracle 19c przy użyciu interfejsu wiersza polecenia platformy Azure z obrazu galerii 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 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 został zainstalowany. Aby uzyskać więcej informacji, zobacz Azure CLI installation guide (Przewodnik instalacji interfejsu wiersza polecenia platformy Azure).
Wprowadzenie
GoldenGate to oprogramowanie do 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 może być aktualna z najnowszymi danymi.
Funkcja GoldenGate jest używana głównie w przypadku heterogenicznych przypadków replikacji, takich jak replikowanie danych z różnych źródłowych baz danych 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ż 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 do różnych celów.
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 | TEST | TEST |
Właściciel/replikowanie bramy Golden Gate | C##GGADMIN | REPUSER |
Proces Golden Gate | EXTORA | REPORA |
Logowanie 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
Używamy uwierzytelniania opartego na plikach kluczy za pomocą protokołu SSH, aby nawiązać połączenie z maszyną wirtualną bazy danych Oracle. Upewnij się, że masz prywatne (nazwane id_rsa
) i publiczne (nazwane id_rsa.pub
) pliki kluczy są tworzone w powłoce.
Lokalizacja plików kluczy 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 Create and manage SSH keys for authentication to a Linux VM in Azure (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
Tworzenie reguły sieciowej grupy zabezpieczeń w celu odmowy 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
Tworzenie publicznego adresu 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 program 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>
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 Azure Portal.
- Przejdź do obszaru Przegląd w bloku po lewej stronie
- Wybierz pozycję Połącz>bastion w menu u góry
- Wybieranie karty Bastion
- Kliknij pozycję Użyj bastionu
Przygotowywanie serwera ggXServer do uruchamiania serwera X
Program X Server jest wymagany do wykonania dalszych kroków tego laboratorium. Wykonaj następujące kroki, aby zainstalować i uruchomić program X Server.
Pobierz program Xming X Server dla systemu Windows do serwera ggXServer i zainstaluj go przy użyciu wszystkich opcji domyślnych.
Upewnij się, że nie wybrano opcji Uruchom na końcu instalacji
Uruchom aplikację "XLAUNCH" z menu Start.
Wybierz wiele okien
Wybierz pozycję Uruchom bez klienta
Wybierz pozycję Brak kontroli dostępu
Wybierz pozycję Zezwalaj na dostęp , aby zezwolić na serwer 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 tworzy również klucze 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 będą używane.
Podczas tworzenia nowego parametru maszyny size
wirtualnej 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ć specyfikację maszyny wirtualnej, wybierz jeden z dostępnych rozmiarów z obszaru Rozmiary maszyn wirtualnych platformy Azure. Do celów testowych można wybrać spośród typów maszyn wirtualnych Ogólnego przeznaczenia (D-Series). W przypadku wdrożeń produkcyjnych lub pilotażowych zoptymalizowane pod kątem pamięci (seria E i seria M) są bardziej odpowiednie.
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ą ggVM1 (podstawową)
Połącz się z maszyną ggVM1 przy użyciu usługi Bastion.
- Przejdź do maszyny ggVM1 z Azure Portal.
- Przejdź do pozycji Przegląd w okienku 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
Tworzenie bazy danych na maszynie ggVM1 (podstawowa)
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 były zapisywane w przyszłych logowaniach. 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ą ggVM2 (replikowanie)
Połącz się z maszyną ggVM2 przy użyciu usługi Bastion.
- Przejdź do pozycji ggVM2 z Azure Portal.
- Przejdź do pozycji Przegląd w okienku 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
Otwieranie portów zapory dla maszyny 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 w razie potrzeby
$ 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 były zapisywane w przyszłych logowaniach. 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 golden gate na maszynie ggVM1
Wykonaj kroki opisane w tej sekcji, aby zainstalować i skonfigurować golden gate.
Włączanie trybu dziennika archiwum na maszynie ggVM1 (podstawowa)
- Nawiązywanie połączenia z
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. W ramach tytułu pobierania Oracle GoldenGate 21.3.0.0.0 for Oracle w systemie Linux x86-64.
Po pobraniu pliku .zip na komputer kliencki można użyć protokołu Secure Copy Protocol (SCP), aby skopiować pliki do maszyn wirtualnych (ggVM1 i ggVM2). Upewnij się, że
scp
polecenie wskazuje poprawną ścieżkę pliku .zip.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
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 maszyny lokalnej 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 maszyny lokalnej 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ą ggVM1 przy użyciu usługi Bastion.
- Przejdź do maszyny ggVM1 z Azure Portal.
- Przejdź do pozycji Przegląd w panelu 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
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 nie jest jeszcze zainstalowane)
$ 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ą ggVM2 przy użyciu usługi Bastion.
- Przejdź do pozycji ggVM2 z Azure Portal.
- Przejdź do pozycji Przegląd w okienku 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
Powtórz kroki 2–10 powyżej na maszynie 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ąć klawisz
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
klawisz,: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 konta 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 parametrów wyodrębniania.
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
klawisz, aby przełączyć się do trybu wstawiania i skopiować i wkleić (kliknij prawym przyciskiem myszy okno SSH) po pliku parametrów EXTRACT. Naciśnij klawisz 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 zintegrowanego wyodrębniania.
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ąć klawisz
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
klawisz,: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 ggVM2 (replikowanie)
Utwórz lub zaktualizuj plik tnsnames.ora.
$ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Po otwarciu edytora vi musisz nacisnąć klawisz
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
klawisz,: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 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 do replikowania zmian.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> EDIT PARAMS REPORA
Po otwarciu edytora vi musisz nacisnąć klawisz
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
klawisz,: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ąć klawisz
i
, aby przełączyć się do trybu wstawiania, a następnie skopiować i wkleić zawartość pliku i nacisnąćEsc
klawisz,: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ę Manager.
GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT
2. Konfigurowanie replikacji na maszynie wirtualnej ggVM1 (podstawowej)
Uruchom początkowe ładowanie i sprawdź 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ę i 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
Sprawdź, 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 Golden Gate w systemie Oracle Linux została ukończona.
Usuwanie maszyny wirtualnej ggXServer
Maszyna wirtualna ggXServer jest używana tylko podczas instalacji. Można go bezpiecznie usunąć po ukończeniu tego dokumentu laboratoryjnego, ale zachować konfigurację laboratorium GoldenGate na platformie 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 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