Een back-up maken van Oracle Database op een Virtuele Azure Linux-machine en deze herstellen met behulp van Azure Files
Van toepassing op: ✔️ Virtuele Linux-machines
In dit artikel wordt het gebruik van Azure Files gedemonstreert als medium om een back-up te maken van een Oracle-database die wordt uitgevoerd op een virtuele Azure-machine (VM). De stappen in dit artikel zijn getest op Oracle 12.1 en hoger.
In dit artikel gebruikt u Oracle Recovery Manager (RMAN) om een back-up van de database te maken naar een Azure-bestandsshare die is gekoppeld aan een virtuele machine via het SMB-protocol (Server Message Block). Het gebruik van Azure Files voor back-upmedia is rendabel en presterend. Voor grote databases biedt Azure Backup echter een betere oplossing.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Als u het back-up- en herstelproces wilt uitvoeren, moet u eerst een Virtuele Linux-machine maken met een geïnstalleerd exemplaar van Oracle Database. We raden u aan Oracle 12.x of hoger te gebruiken.
Maak een Oracle Database-exemplaar door de stappen te volgen in Een Oracle Database-exemplaar maken in een Azure-VM.
De databaseomgeving voorbereiden
Gebruik de volgende opdracht om een SSH-sessie (Secure Shell) met de VIRTUELE machine te maken. Vervang
<publicIpAddress>
door de waarde van het openbare adres voor uw VIRTUELE machine.ssh azureuser@<publicIpAddress>
Overschakelen naar de hoofdgebruiker:
sudo su -
Voeg de
oracle
gebruiker toe aan het bestand /etc/sudoers :echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
In deze stap wordt ervan uitgegaan dat u een Oracle-exemplaar (test) hebt dat wordt uitgevoerd op een virtuele machine met de naam vmoracle19c.
Overschakelen naar de
oracle
gebruiker:sudo su - oracle
Voordat u verbinding maakt, stelt u de omgevingsvariabele
ORACLE_SID
in:export ORACLE_SID=test;
U moet ook de
ORACLE_SID
variabele toevoegen aan het bashrc-bestand van deoracle
gebruiker voor toekomstige aanmeldingen met behulp van de volgende opdracht:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
Start de Oracle-listener als deze nog niet wordt uitgevoerd:
lsnrctl start
De uitvoer moet er als in het volgende voorbeeld uitzien:
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 18-SEP-2020 03:23:49 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production System parameter file is /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 18-SEP-2020 03:23:49 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully
Maak de locatie voor het snelle herstelgebied:
mkdir /u02/fast_recovery_area
Verbinding maken met de database:
sqlplus / as sysdba
Start de database als deze nog niet wordt uitgevoerd:
SQL> startup
Stel databaseomgevingsvariabelen in voor het snelle herstelgebied:
SQL> alter system set db_recovery_file_dest_size=4096M scope=both; SQL> alter system set db_recovery_file_dest='/u02/fast_recovery_area' scope=both;
Controleer of de database in
ARCHIVELOG
de modus is om online back-ups in te schakelen.Controleer de status van het logboekarchief:
SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG
Als het logboekarchief zich in
NOARCHIVELOG
de modus bevindt, voert u de volgende opdrachten uit in SQL Plus:SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> ALTER SYSTEM SWITCH LOGFILE;
Maak een tabel om de back-up- en herstelbewerkingen te testen:
SQL> create user scott identified by tiger quota 100M on users; SQL> grant create session, create table to scott; SQL> connect scott/tiger SQL> create table scott_table(col1 number, col2 varchar2(50)); SQL> insert into scott_table VALUES(1,'Line 1'); SQL> commit; SQL> quit
Een back-up maken van Azure Files
Voer de volgende stappen uit om een back-up te maken van Azure Files:
- Azure Files instellen.
- Koppel de Azure-bestandsshare aan uw VIRTUELE machine.
- Maak een back-up van de database.
- Herstel en herstel de database.
Azure Files instellen
In deze sectie maakt u een back-up van de Oracle-database naar Azure Files met behulp van Oracle RMAN. Azure-bestandsshares zijn volledig beheerde bestandsshares die in de cloud blijven. U kunt ze openen met behulp van het SMB-protocol of het NFS-protocol (Network File System).
De volgende procedures hebben betrekking op het maken van een bestandsshare die gebruikmaakt van het SMB-protocol om te koppelen aan uw VIRTUELE machine. Zie Een NFS-share maken voor informatie over het koppelen met NFS.
Wanneer u de Azure-bestandsshare aan het koppelen bent, gebruikt u de cache=none
optie om caching van bestandssharegegevens uit te schakelen. Om ervoor te zorgen dat de oracle
gebruiker eigenaar is van de bestanden die in de share zijn gemaakt, stelt u de uid=oracle
en gid=oinstall
opties in.
Uw opslagaccount instellen:
Selecteer in Azure Portal + Een resource maken en zoek en selecteer opslagaccount.
In het deelvenster Opslagaccount maken:
- Selecteer voor resourcegroep uw bestaande resourcegroep, rg-oracle.
- Voer oracbkup1 in als opslagaccountnaam.
- Zorg ervoor dat Locatie is ingesteld op dezelfde regio als alle andere resources in de resourcegroep.
- Stel de prestaties in op Standard.
- Selecteer StorageV2 (algemeen gebruik v2) als soort account.
- Selecteer lokaal redundante opslag (LRS) voor replicatie.
Selecteer het tabblad Geavanceerd. Stel onder Azure Files grote bestandsshares in op Ingeschakeld. Selecteer Controleren + maken en selecteer vervolgens Maken.
Wanneer het opslagaccount is gemaakt, gaat u naar de resource en selecteert u Bestandsshares.
Selecteer + Bestandsshare en klik vervolgens in het deelvenster Nieuwe bestandsshare :
Voer orabkup1 in bij Naam.
Stel quotum in op 10240 gibibytes (GiB).
Het quotum weerspiegelt een bovengrens waartoe de bestandsshare kan groeien. Omdat u in dit voorbeeld standaardopslag gebruikt, worden resources betalen per gebruik en niet ingericht. Als u het quotum instelt op 10 tebibytes (TiB), worden er geen kosten in rekening gebracht buiten wat u gebruikt. Als voor uw back-upstrategie meer opslag is vereist, stelt u het quotum in op een geschikt niveau om alle back-ups op te slaan.
Selecteer onder Lagen de optie Geoptimaliseerd voor transactie.
Selecteer Maken.
Wanneer de bestandsshare is gemaakt, selecteert u orabkup1 in het deelvenster Instellingen voor bestandsshares.
Selecteer het tabblad Verbinding maken om het deelvenster Verbinding maken te openen en selecteer vervolgens het tabblad Linux. Kopieer de opgegeven opdrachten om de bestandsshare te koppelen met behulp van het SMB-protocol.
De Azure-bestandsshare koppelen aan uw VIRTUELE machine
Maak het koppelpunt:
sudo mkdir /mnt/orabackup
Referenties instellen:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
Voer de volgende opdracht uit. Vervang
<Your Storage Account Key1>
deze door de opslagaccountsleutel die u eerder hebt opgehaald.if [ ! -f "/etc/smbcredentials/orabackup1.cred" ]; then sudo bash -c 'echo "username=orabackup1" >> /etc/smbcredentials/orabackup1.cred' sudo bash -c 'echo "password=<Your Storage Account Key1>" >> /etc/smbcredentials/orabackup1.cred' fi
Machtigingen voor het referentiesbestand wijzigen:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
Voeg de koppeling toe aan het /etc/fstab-bestand :
sudo bash -c 'echo "//orabackup1.file.core.windows.net/orabackup /mnt/orabackup cifs nofail,vers=3.0,credentials=/etc/smbcredentials/orabackup1.cred,dir_mode=0777,file_mode=0777,serverino,cache=none,uid=oracle,gid=oinstall" >> /etc/fstab'
Voer de opdrachten uit om de Azure-bestandsshare te koppelen met behulp van het SMB-protocol:
sudo mount -t cifs //orabackup1.file.core.windows.net/orabackup /mnt/orabackup -o vers=3.0,credentials=/etc/smbcredentials/orabackup1.cred,dir_mode=0777,file_mode=0777,serverino,cache=none,uid=oracle,gid=oinstall
Als er een fout optreedt die lijkt op het volgende voorbeeld, is het CIFS-pakket (Common Internet File System) mogelijk niet geïnstalleerd op uw Linux-host:
mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
Voer de volgende opdracht uit om te controleren of het CIFS-pakket is geïnstalleerd:
sudo rpm -qa|grep cifs-utils
Als de opdracht geen uitvoer retourneert, installeert u het CIFS-pakket met behulp van de volgende opdracht. Voer vervolgens de
mount
opdracht opnieuw uit om de Azure-bestandsshare te koppelen.sudo yum install cifs-utils
Controleer of de bestandsshare correct is gekoppeld met behulp van de volgende opdracht:
df -h
De uitvoer moet er ongeveer uitzien als in dit voorbeeld:
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.3G 0 3.3G 0% /dev tmpfs 3.3G 0 3.3G 0% /dev/shm tmpfs 3.3G 17M 3.3G 1% /run tmpfs 3.3G 0 3.3G 0% /sys/fs/cgroup /dev/sda2 30G 9.1G 19G 34% / /dev/sdc1 59G 2.7G 53G 5% /u02 /dev/sda1 497M 199M 298M 41% /boot /dev/sda15 495M 9.7M 486M 2% /boot/efi tmpfs 671M 0 671M 0% /run/user/54321 /dev/sdb1 14G 2.1G 11G 16% /mnt/resource tmpfs 671M 0 671M 0% /run/user/54322 //orabackup1.file.core.windows.net/orabackup 10T 0 10T 0% /mnt/orabackup
Een back-up maken van de database
In deze sectie gebruikt u Oracle RMAN om een volledige back-up van de database te maken en logboeken te archiveren. Vervolgens schrijft u de back-up als back-up die is ingesteld op de Azure-bestandsshare die u eerder hebt gekoppeld.
Configureer RMAN om een back-up te maken van het Azure Files-koppelpunt:
rman target / RMAN> configure snapshot controlfile name to '/mnt/orabkup/snapcf_ev.f'; RMAN> configure channel 1 device type disk format '/mnt/orabkup/%d/Full_%d_%U_%T_%s'; RMAN> configure channel 2 device type disk format '/mnt/orabkup/%d/Full_%d_%U_%T_%s';
In dit voorbeeld beperkt u de grootte van RMAN-back-uponderdelen tot 4 GiB. De RMAN-back-upwaarde
maxpiecesize
kan echter maximaal 4 TiB zijn. Dit is de maximale bestandsgrootte voor Azure Standard-bestandsshares en Premium-bestandsshares. Zie Azure Files-schaalbaarheids- en prestatiedoelen voor meer informatie.RMAN> configure channel device type disk maxpiecesize 4000G;
Bevestig de details van de configuratiewijziging:
RMAN> show all;
Voer de back-up uit. Met de volgende opdracht wordt een volledige databaseback-up gemaakt, inclusief archieflogboekbestanden, als back-upset in gecomprimeerde indeling:
RMAN> backup as compressed backupset database plus archivelog;
U hebt online een back-up van de database gemaakt met Oracle RMAN, met de back-up die zich in Azure Files bevindt. Omdat u de back-ups opslaat in Azure Files, kunt u deze openen vanaf andere VM's als u de database moet klonen.
Het gebruik van RMAN en Azure Files voor databaseback-up heeft veel voordelen. De back-up- en hersteltijd is gekoppeld aan de grootte van de database. Voor grote databases kunnen deze bewerkingen veel tijd in beslag nemen.
Een alternatief is het gebruik van toepassingsconsistente VM-back-ups via Azure Backup. Dit mechanisme maakt gebruik van momentopnametechnologie om snelle back-ups uit te voeren, ongeacht de grootte van de database. Integratie met een Recovery Services-kluis biedt cloudopslag van uw Oracle Database-back-ups, zodat u deze kunt openen vanaf andere VM's en andere Azure-regio's.
De database herstellen en herstellen
Sluit het Oracle-exemplaar af:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Verwijder de databasegegevensbestanden:
cd /u02/oradata/TEST rm -f *.dbf
De volgende opdrachten gebruiken RMAN om de ontbrekende gegevensbestanden te herstellen en de database te herstellen:
rman target / RMAN> startup mount; RMAN> restore database; RMAN> recover database; RMAN> alter database open;
Controleer of de database-inhoud volledig is hersteld:
RMAN> SELECT * FROM scott.scott_table;
De back-up en het herstel van de Oracle Database 19c-database op een Virtuele Linux-machine van Azure zijn nu voltooid.
De VM verwijderen
Wanneer u de VIRTUELE machine niet meer nodig hebt, kunt u de volgende opdracht gebruiken om de resourcegroep, de VIRTUELE machine en alle gerelateerde resources te verwijderen:
az group delete --name rg-oracle