Delen via


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

  • 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

  1. 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>
    
  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. 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
    
  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 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;
    
  11. 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;
    
  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
    

Een back-up maken van Azure Files

Voer de volgende stappen uit om een back-up te maken van Azure Files:

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

  1. Selecteer in Azure Portal + Een resource maken en zoek en selecteer opslagaccount.

    Schermopname die laat zien waar u een resource maakt en een opslagaccount selecteert.

  2. In het deelvenster Opslagaccount maken:

    1. Selecteer voor resourcegroep uw bestaande resourcegroep, rg-oracle.
    2. Voer oracbkup1 in als opslagaccountnaam.
    3. Zorg ervoor dat Locatie is ingesteld op dezelfde regio als alle andere resources in de resourcegroep.
    4. Stel de prestaties in op Standard.
    5. Selecteer StorageV2 (algemeen gebruik v2) als soort account.
    6. Selecteer lokaal redundante opslag (LRS) voor replicatie.

    Schermopname van basisinformatie voor het maken van een opslagaccount.

  3. Selecteer het tabblad Geavanceerd. Stel onder Azure Files 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 u bestandsshares voor een resource kunt selecteren.

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

    1. Voer orabkup1 in bij Naam.

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

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

  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 VIRTUELE machine

  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 <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
    
  4. Machtigingen voor het referentiesbestand wijzigen:

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

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

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

  1. Sluit het Oracle-exemplaar af:

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

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

Volgende stappen

Virtuele machines met hoge beschikbaarheid maken

Azure CLI-voorbeelden voor VM-implementatie verkennen