Implementace Oracle Data Guard na virtuálním počítači Azure s Linuxem
Platí pro: ✔️ Virtuální počítače s Linuxem
Azure CLI slouží k vytváření a správě prostředků Azure z příkazového řádku nebo ve skriptech. Tento článek popisuje, jak pomocí Azure CLI nasadit databázi Oracle Database 12c z Azure Marketplace image. V tomto článku se pak můžete krok za krokem se způsobem instalace a konfigurace ochrany Data Guard na virtuálním počítači Azure.
Než začnete, ujistěte se, že je nainstalované Rozhraní příkazového řádku Azure CLI. Další informace najdete v průvodci instalací Azure CLI.
Příprava prostředí
Předpoklady
Pokud chcete nainstalovat Oracle Data Guard, musíte vytvořit dva virtuální počítače Azure ve stejné skupině dostupnosti:
- Primární virtuální počítač (myVM1) má spuštěnou instanci Oracle.
- Pohotovostní virtuální počítač (myVM2) má nainstalovaný jenom software Oracle.
Image z Marketplace, kterou použijete k vytvoření virtuálních počítačů, je Oracle:Oracle-Database-Ee:12.1.0.2:latest.
Přihlášení k Azure
Přihlaste se ke svému předplatnému Azure pomocí příkazu az login a postupujte podle pokynů na obrazovce.
az login
Vytvoření skupiny prostředků
Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasadí a spravují prostředky Azure.
Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění westus:
az group create --name myResourceGroup --location westus
Vytvoření skupiny dostupnosti
Vytvoření skupiny dostupnosti je volitelné, ale doporučujeme ji. Další informace najdete v pokynech pro skupiny dostupnosti Azure.
az vm availability-set create \
--resource-group myResourceGroup \
--name myAvailabilitySet \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
Vytvoření virtuálního počítače
Vytvořte virtuální počítač pomocí příkazu az vm create.
Následující příklad vytvoří dva virtuální počítače s názvem a myVM1 myVM2 . Vytvoří také klíče SSH, pokud ještě neexistují ve výchozím umístění klíče. Chcete-li použít konkrétní sadu klíčů, použijte možnost --ssh-key-value.
Vytvoření virtuálního počítače myVM1 (primární):
az vm create \
--resource-group myResourceGroup \
--name myVM1 \
--availability-set myAvailabilitySet \
--image Oracle:Oracle-Database-Ee:12.1.0.2:latest \
--size Standard_DS1_v2 \
--admin-username azureuser \
--generate-ssh-keys \
Po vytvoření virtuálního počítače se v Azure CLI zobrazí podobné informace jako v následujícím příkladu. Poznamenejte si hodnotu publicIpAddress . Tuto adresu použijete pro přístup k virtuálnímu počítače.
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "westus",
"macAddress": "00-0D-3A-36-2F-56",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "13.64.104.241",
"resourceGroup": "myResourceGroup"
}
Vytvoření virtuálního počítače myVM2 (pohotovostní režim):
az vm create \
--resource-group myResourceGroup \
--name myVM2 \
--availability-set myAvailabilitySet \
--image Oracle:Oracle-Database-Ee:12.1.0.2:latest \
--size Standard_DS1_v2 \
--admin-username azureuser \
--generate-ssh-keys \
Poznamenejte si hodnotu publicIpAddress po vytvoření virtuálního počítače myVM2.
Otevření portu TCP pro připojení
Tento krok nakonfiguruje externí koncové body, které umožňují vzdálený přístup k databázi Oracle.
Otevřete port pro myVM1:
az network nsg rule create --resource-group myResourceGroup\
--nsg-name myVM1NSG --name allow-oracle\
--protocol tcp --direction inbound --priority 999 \
--source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range 1521 --access allow
Výsledek by měl vypadat podobně jako následující odpověď:
{
"access": "Allow",
"description": null,
"destinationAddressPrefix": "*",
"destinationPortRange": "1521",
"direction": "Inbound",
"etag": "W/\"bd77dcae-e5fd-4bd6-a632-26045b646414\"",
"id": "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVmNSG/securityRules/allow-oracle",
"name": "allow-oracle",
"priority": 999,
"protocol": "Tcp",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
}
Otevřete port pro myVM2:
az network nsg rule create --resource-group myResourceGroup\
--nsg-name myVM2NSG --name allow-oracle\
--protocol tcp --direction inbound --priority 999 \
--source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range 1521 --access allow
Připojení k virtuálnímu počítači
Pomocí následujícího příkazu vytvořte s virtuálním počítačem relaci SSH. Nahraďte IP adresu publicIpAddress hodnotou vašeho virtuálního počítače.
$ ssh azureuser@<publicIpAddress>
Vytvoření databáze na myVM1 (primární)
Software Oracle je už nainstalovaný na ibitové kopii Marketplace, takže dalším krokem je instalace databáze.
Přepněte na superuživatele Oracle:
$ sudo su - oracle
Vytvořte databázi:
$ 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 \
-ignorePreReqs
Výstupy by měly vypadat podobně jako následující odpověď:
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 further details.
Nastavte ORACLE_SID a ORACLE_HOME proměnné:
$ ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1; export ORACLE_HOME
$ ORACLE_SID=cdb1; export ORACLE_SID
Volitelně můžete přidat ORACLE_HOME a ORACLE_SID do souboru /home/oracle/.bashrc, aby se tato nastavení uložila pro budoucí přihlášení:
# add oracle home
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
# add oracle sid
export ORACLE_SID=cdb1
Konfigurace ochrany Data Guard
Povolení režimu archivního protokolu na virtuálním počítači myVM1 (primární)
$ sqlplus / as sysdba
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
Povolte vynucené protokolování a ujistěte se, že je k dispozici alespoň jeden soubor protokolu:
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
Vytvořte pohotovostní protokoly pro znovunastavování stejné velikosti a množství jako protokoly znovunastavování primární databáze:
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo01.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo02.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo03.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo04.log') SIZE 200M;
Zapněte Flashback (což velmi usnadňuje obnovení) a nastavte STANDBY FILE MANAGEMENT na auto. Exit SQLPlus after that (Správa SOUBORŮ V POHOTOVOSTNÍM REŽIMU) nastavte na auto. Exit SQLPlus after that (Správa SOUBORŮ V POHOTOVOSTNÍM REŽIMU) nastavte na _ auto. Exit SQL*Plus after that (Správa souborů v pohotovostním režimu) nastavte na _ auto.
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> EXIT;
Nastavení služby na myVM1 (primární)
Upravte nebo vytvořte soubor tnsnames.ora, který je ve složce $ORACLE_HOME\network\admin.
Přidejte následující položky:
cdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
cdb1_stby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
Upravte nebo vytvořte soubor listener.ora, který je ve složce $ORACLE_HOME\network\admin.
Přidejte následující položky:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cdb1_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = cdb1)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
Povolení zprostředkovatele ochrany Data Guard:
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET dg_broker_start=true;
SQL> EXIT;
Spusťte naslouchací proces:
$ lsnrctl stop
$ lsnrctl start
Nastavení služby na virtuálním počítači myVM2 (pohotovostní režim)
SSH k virtuálnímu počítače myVM2:
$ ssh azureuser@<publicIpAddress>
Přihlaste se jako Oracle:
$ sudo su - oracle
Upravte nebo vytvořte soubor tnsnames.ora, který je ve složce $ORACLE_HOME\network\admin.
Přidejte následující položky:
cdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
cdb1_stby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
Upravte nebo vytvořte soubor listener.ora, který je ve složce $ORACLE_HOME\network\admin.
Přidejte následující položky:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cdb1_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = cdb1)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
Spusťte naslouchací proces:
$ lsnrctl stop
$ lsnrctl start
Obnovení databáze do virtuálního počítače myVM2 (pohotovostní režim)
Vytvořte soubor parametrů /tmp/initcdb1_stby.ora s následujícím obsahem:
*.db_name='cdb1'
Vytváření složek:
mkdir -p /u01/app/oracle/oradata/cdb1/pdbseed
mkdir -p /u01/app/oracle/oradata/cdb1/pdb1
mkdir -p /u01/app/oracle/fast_recovery_area/cdb1
mkdir -p /u01/app/oracle/admin/cdb1/adump
Vytvořte soubor hesla:
$ orapwd file=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/orapwcdb1 password=OraPasswd1 entries=10
Spusťte databázi na virtuálním počítači myVM2:
$ export ORACLE_SID=cdb1
$ sqlplus / as sysdba
SQL> STARTUP NOMOUNT PFILE='/tmp/initcdb1_stby.ora';
SQL> EXIT;
Obnovte databázi pomocí nástroje RMAN:
$ rman TARGET sys/OraPasswd1@cdb1 AUXILIARY sys/OraPasswd1@cdb1_stby
V nástroji RMAN spusťte následující příkazy:
DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
SPFILE
SET db_unique_name='CDB1_STBY' COMMENT 'Is standby'
NOFILENAMECHECK;
Po dokončení příkazu by se měly zobrazit podobné zprávy jako v následujícím příkladu. Ukončete nástroj RMAN.
media recovery complete, elapsed time: 00:00:00
Finished recover at 29-JUN-17
Finished Duplicate Db at 29-JUN-17
RMAN> EXIT;
Volitelně můžete přidat ORACLE_HOME a ORACLE_SID do souboru /home/oracle/.bashrc, aby se tato nastavení uložila pro budoucí přihlášení:
# add oracle home
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
# add oracle sid
export ORACLE_SID=cdb1
Povolení zprostředkovatele ochrany Data Guard:
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET dg_broker_start=true;
SQL> EXIT;
Konfigurace zprostředkovatele ochrany Data Guard na virtuálním počítači myVM1 (primární)
Spusťte Data Guard Manager a přihlaste se pomocí SYS a hesla. (Nepoužívejte ověřování operačního systému.) Proveďte následující:
$ dgmgrl sys/OraPasswd1@cdb1
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDBA.
DGMGRL> CREATE CONFIGURATION my_dg_config AS PRIMARY DATABASE IS cdb1 CONNECT IDENTIFIER IS cdb1;
Configuration "my_dg_config" created with primary database "cdb1"
DGMGRL> ADD DATABASE cdb1_stby AS CONNECT IDENTIFIER IS cdb1_stby MAINTAINED AS PHYSICAL;
Database "cdb1_stby" added
DGMGRL> ENABLE CONFIGURATION;
Enabled.
Zkontrolujte konfiguraci:
DGMGRL> SHOW CONFIGURATION;
Configuration - my_dg_config
Protection Mode: MaxPerformance
Members:
cdb1 - Primary database
cdb1_stby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 26 seconds ago)
Dokončili jste nastavení Oracle Data Guard. V další části si ukážeme, jak otestovat připojení a přepnout.
Připojení databáze z klientského počítače
Na klientském počítači aktualizujte nebo vytvořte soubor tnsnames.ora. Tento soubor je obvykle ve $ORACLE_HOME\network\admin.
Nahraďte IP adresy publicIpAddress vašimi hodnotami pro myVM1 a myVM2:
cdb1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=<myVM1 IP address>)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=cdb1)
)
)
cdb1_stby=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=<myVM2 IP address>)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=cdb1_stby)
)
)
Začněte SQL*Plus:
$ sqlplus sys/OraPasswd1@cdb1
SQL*Plus: Release 12.2.0.1.0 Production on Wed May 10 14:18:31 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
Testování konfigurace ochrany Data Guard
Přepněte databázi na myVM1 (primární)
Přepnutí z primárního na pohotovostní (cdb1 na cdb1_stby):
$ dgmgrl sys/OraPasswd1@cdb1
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDBA.
DGMGRL> SWITCHOVER TO cdb1_stby;
Performing switchover NOW, please wait...
Operation requires a connection to instance "cdb1" on database "cdb1_stby"
Connecting to instance "cdb1"...
Connected as SYSDBA.
New primary database "cdb1_stby" is opening...
Operation requires start up of instance "cdb1" on database "cdb1"
Starting instance "cdb1"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "cdb1_stby"
DGMGRL>
Teď se můžete připojit k pohotovostní databázi.
Začněte SQL*Plus:
$ sqlplus sys/OraPasswd1@cdb1_stby
SQL*Plus: Release 12.2.0.1.0 Production on Wed May 10 14:18:31 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
Přepněte databázi na myVM2 (pohotovostní režim).
Pokud chcete přepnout, spusťte na počítači myVM2 následující příkaz:
$ dgmgrl sys/OraPasswd1@cdb1_stby
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDBA.
DGMGRL> SWITCHOVER TO cdb1;
Performing switchover NOW, please wait...
Operation requires a connection to instance "cdb1" on database "cdb1"
Connecting to instance "cdb1"...
Connected as SYSDBA.
New primary database "cdb1" is opening...
Operation requires start up of instance "cdb1" on database "cdb1_stby"
Starting instance "cdb1"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "cdb1"
Opět byste se teď měli být schopni připojit k primární databázi.
Začněte SQL*Plus:
$ sqlplus sys/OraPasswd1@cdb1
SQL*Plus: Release 12.2.0.1.0 Production on Wed May 10 14:18:31 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
Dokončili jste instalaci a konfiguraci ochrany Data Guard na Oracle Linux.
Odstraňte virtuální počítač
Pokud už virtuální počítač nepotřebujete, můžete k odebrání skupiny prostředků, virtuálního počítače a všech souvisejících prostředků použít následující příkaz:
az group delete --name myResourceGroup
Další kroky
Kurz: Vytvoření vysoce dostupných virtuálních počítačů
Prozkoumejte ukázky Azure CLI pro nasazení virtuálního počítače.