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

  • 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

  1. 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>
    
  2. Overschakelen naar de hoofdgebruiker:

    sudo su -
    
  3. Voeg de oracle gebruiker toe aan het bestand /etc/sudoers :

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    
  4. 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
    
  5. Voordat u verbinding maakt, stelt u de omgevingsvariabele ORACLE_SIDin:

    export ORACLE_SID=test;
    

    U moet ook de ORACLE_SID variabele toevoegen aan het bashrc-bestand van de oracle gebruiker voor toekomstige aanmeldingen met behulp van de volgende opdracht:

    echo "export ORACLE_SID=test" >> ~oracle/.bashrc
    
  6. 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
    
  7. Maak de locatie voor het snelle herstelgebied:

    mkdir /u02/fast_recovery_area
    
  8. Verbinding maken met de database:

    sqlplus / as sysdba
    
  9. Start de database als deze nog niet wordt uitgevoerd:

    SQL> startup
    
  10. 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;
    
  11. 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;
    
  12. 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:

  1. Stel Azure Files in.
  2. Koppel de Azure-bestandsshare aan uw VM.
  3. Maak een back-up van de database.
  4. 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:

  1. Selecteer in de Azure Portal de optie + Een resource maken en zoek en selecteer vervolgens Opslagaccount.

    Schermopname van het maken van een resource en het selecteren van een opslagaccount.

  2. In het deelvenster Opslagaccount maken :

    1. Selecteer bij Resourcegroep uw bestaande resourcegroep, rg-oracle.
    2. Voer bij Naam van opslagaccountoracbkup1 in.
    3. Zorg ervoor dat Locatie is ingesteld op dezelfde regio als al uw andere resources in de resourcegroep.
    4. Stel Prestaties in op Standaard.
    5. Selecteer storageV2 (algemeen gebruik v2) bij Soort account.
    6. Selecteer lokaal redundante opslag (LRS) bij Replicatie.

    Schermopname met basisinformatie voor het maken van een opslagaccount.

  3. Selecteer het tabblad Geavanceerd. Stel onder Azure Filesde optie Grote bestandsshares in op Ingeschakeld. Selecteer Controleren + maken en selecteer vervolgens Maken.

    Schermopname van het tabblad voor het inschakelen van grote bestandsshares.

  4. Wanneer het opslagaccount is gemaakt, gaat u naar de resource en selecteert u Bestandsshares.

    Schermopname die laat zien waar bestandsshares voor een resource moeten worden geselecteerd.

  5. Selecteer + Bestandsshare en vervolgens in het deelvenster Nieuwe bestandsshare :

    1. Voer bij Naamorabkup1 in.

    2. 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.

    3. Selecteer onder Lagen de optie Geoptimaliseerd voor transactie.

    4. Selecteer Maken.

    Schermopname van selecties voor het toevoegen van een nieuwe bestandsshare.

  6. Wanneer de bestandsshare is gemaakt, selecteert u orabkup1 in het deelvenster Instellingen voor bestandsshare .

  7. 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.

    Schermopname van het deelvenster voor toegang tot de opdrachten om een bestandsshare te verbinden met een Linux-computer.

De Azure-bestandsshare koppelen aan uw VM

  1. Maak het koppelpunt:

    sudo mkdir /mnt/orabackup
    
  2. Referenties instellen:

    if [ ! -d "/etc/smbcredentials" ]; then
     sudo mkdir /etc/smbcredentials
    fi
    
  3. 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
    
  4. Machtigingen wijzigen voor het referentiesbestand:

    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. 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'
    
  6. 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
    
  7. 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.

  1. 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';
    
  2. 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;
    
  3. Bevestig de details van de configuratiewijziging:

    RMAN> show all;
    
  4. 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

  1. Sluit het Oracle-exemplaar af:

    sqlplus / as sysdba
    SQL> shutdown abort
    ORACLE instance shut down.
    
  2. De databasegegevensbestanden verwijderen:

    cd /u02/oradata/TEST
    rm -f *.dbf
    
  3. 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;
    
  4. 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

Volgende stappen

Virtuele machines met hoge beschikbaarheid maken

Azure CLI-voorbeelden voor VM-implementatie verkennen