Een back-up maken van Oracle Database en deze herstellen op een Azure Linux-VM met behulp van Azure Files
Van toepassing op: ✔️ Linux-VM's
In dit artikel wordt beschreven hoe Azure Files wordt gebruikt als medium voor het maken van back-ups en het herstellen van een Oracle-database die wordt uitgevoerd op een virtuele Azure-machine (VM). De stappen in dit artikel zijn getest met 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 VM via het SMB-protocol (Server Message Block). Het gebruik van Azure Files voor back-upmedia is rendabel en presterend. Voor zeer 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 Linux-VM maken met een geïnstalleerd exemplaar van Oracle Database. U wordt aangeraden 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) te maken met de VM. Vervang door
<publicIpAddress>
de waarde van het openbare adres voor uw VM.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
Bij deze stap wordt ervan uitgegaan dat u een Oracle-exemplaar (test) hebt dat wordt uitgevoerd op een VM met de naam vmoracle19c.
Schakel over 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 gebied voor snel herstel:
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;
Zorg ervoor dat de database zich in
ARCHIVELOG
de modus bevindt 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
Back-up maken naar Azure Files
Voer de volgende stappen uit om een back-up te maken van Azure Files:
- Stel Azure Files in.
- Koppel de Azure-bestandsshare aan uw VM.
- Maak een back-up van de database.
- De database herstellen en herstellen.
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 aan uw VM te koppelen. Zie Een NFS-share maken voor informatie over het koppelen met behulp van NFS.
Wanneer u de Azure-bestandsshare wilt koppelen, gebruikt u de cache=none
optie om het opslaan in de cache van bestandssharegegevens uit te schakelen. Stel de opties en gid=oinstall
in om ervoor te zorgen dat de oracle
gebruiker eigenaar is van de uid=oracle
bestanden die in de share zijn gemaakt.
Uw opslagaccount instellen:
Selecteer in de Azure Portal de optie + Een resource maken en zoek en selecteer vervolgens Opslagaccount.
In het deelvenster Opslagaccount maken :
- Selecteer bij Resourcegroep uw bestaande resourcegroep, rg-oracle.
- Voer bij Naam van opslagaccountoracbkup1 in.
- Zorg ervoor dat Locatie is ingesteld op dezelfde regio als al uw andere resources in de resourcegroep.
- Stel Prestaties in op Standaard.
- Selecteer storageV2 (algemeen gebruik v2) bij Soort account.
- Selecteer lokaal redundante opslag (LRS) bij Replicatie.
Selecteer het tabblad Geavanceerd. Stel onder Azure Filesde optie 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 vervolgens in het deelvenster Nieuwe bestandsshare :
Voer bij Naamorabkup1 in.
Stel Quotum in op 10240 gibibytes (GiB).
Het quotum weerspiegelt een bovengrens waar de bestandsshare naar kan groeien. Omdat u in dit voorbeeld standaardopslag gebruikt, zijn resources betalen per gebruik en niet ingericht. Als u het quotum instelt op 10 tebibytes (TiB), worden er dus geen kosten in rekening gebracht die hoger zijn dan 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 bestandsshare .
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 VM
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 door
<Your Storage Account Key1>
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 wijzigen voor het referentiesbestand:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
Voeg de koppeling toe aan het bestand /etc/fstab :
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 u een fout krijgt die vergelijkbaar is met 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 met behulp van de volgende opdracht of de bestandsshare correct is gekoppeld:
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 en archieflogboeken te maken. Vervolgens schrijft u de back-up als een back-up die is ingesteld op de Azure-bestandsshare die u eerder hebt gekoppeld.
Configureer RMAN om een back-up te maken naar 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 oplopen tot 4 TiB, wat de maximale bestandsgrootte is voor Standaard-Azure-bestandsshares en Premium-bestandsshares. Zie schaalbaarheids- en prestatiedoelen Azure Files 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 maakt u een volledige databaseback-up, inclusief archieflogboekbestanden, als back-upset in gecomprimeerde indeling:
RMAN> backup as compressed backupset database plus archivelog;
U hebt nu online een back-up van de database gemaakt met behulp van Oracle RMAN. De back-up bevindt zich in Azure Files. Omdat u de back-ups opslaat in Azure Files, kunt u deze openen vanaf andere VM's als u de database moet klonen.
Hoewel het gebruik van RMAN en Azure Files voor databaseback-up veel voordelen heeft, is de back-up- en hersteltijd gekoppeld aan de grootte van de database. Voor zeer 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 databasegrootte. Integratie met een Recovery Services-kluis biedt cloudopslag van uw Oracle Database-back-ups, zodat u deze kunt openen vanuit 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.
De databasegegevensbestanden verwijderen:
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 Azure Linux-VM zijn nu voltooid.
De VM verwijderen
Wanneer u de VM niet meer nodig hebt, kunt u de volgende opdracht gebruiken om de resourcegroep, de VM en alle gerelateerde resources te verwijderen:
az group delete --name rg-oracle