Säkerhetskopiera och återställa Oracle Database på en virtuell Azure Linux-dator med hjälp av Azure Files

Gäller för: ✔️ Virtuella Linux-datorer

Den här artikeln visar hur du använder Azure Files som medium för att säkerhetskopiera och återställa en Oracle-databas som körs på en virtuell Azure-dator (VM). Stegen i den här artikeln har testats mot Oracle 12.1 och senare.

I den här artikeln använder du Oracle Recovery Manager (RMAN) för att säkerhetskopiera databasen till en Azure-filresurs som monterats på en virtuell dator via SMB-protokollet (Server Message Block). Att använda Azure Files för säkerhetskopieringsmedia är kostnadseffektivt och bra. Men för mycket stora databaser är Azure Backup en bättre lösning.

Förutsättningar

  • Om du vill utföra säkerhetskopierings- och återställningsprocessen måste du först skapa en virtuell Linux-dator som har en installerad instans av Oracle Database. Vi rekommenderar att du använder Oracle 12.x eller senare.

  • Skapa en Oracle Database-instans genom att följa stegen i Skapa en Oracle Database-instans på en virtuell Azure-dator.

Förbereda databasmiljön

  1. Använd följande kommando för att skapa en SSH-session (Secure Shell) med den virtuella datorn. Ersätt <publicIpAddress> med det offentliga adressvärdet för den virtuella datorn.

    ssh azureuser@<publicIpAddress>
    
  2. Växla till rotanvändaren:

    sudo su -
    
  3. Lägg till användaren i oracle filen /etc/sudoers :

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    
  4. Det här steget förutsätter att du har en Oracle-instans (test) som körs på en virtuell dator med namnet vmoracle19c.

    Växla till användaren oracle :

    sudo su - oracle
    
  5. Innan du ansluter anger du miljövariabeln ORACLE_SID:

    export ORACLE_SID=test;
    

    Du bör också lägga till variabeln ORACLE_SID i oracle användarens .bashrc-fil för framtida inloggningar med hjälp av följande kommando:

    echo "export ORACLE_SID=test" >> ~oracle/.bashrc
    
  6. Starta Oracle-lyssnaren om den inte redan körs:

    lsnrctl start
    

    Utdata bör se ut ungefär som följande exempel:

    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. Skapa platsen för det snabba återställningsområdet:

    mkdir /u02/fast_recovery_area
    
  8. Anslut till databasen:

    sqlplus / as sysdba
    
  9. Starta databasen om den inte redan körs:

    SQL> startup
    
  10. Ange databasmiljövariabler för det snabba återställningsområdet:

    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. Kontrollera att databasen är i ARCHIVELOG läge för att aktivera onlinesäkerhetskopior.

    Kontrollera loggarkivets status:

    SQL> SELECT log_mode FROM v$database;
    
    LOG_MODE
    ------------
    NOARCHIVELOG
    

    Om loggarkivet är i NOARCHIVELOG läge kör du följande kommandon i SQL Plus:

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  12. Skapa en tabell för att testa säkerhetskopierings- och återställningsåtgärderna:

    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
    

Säkerhetskopiera till Azure Files

Utför följande steg för att säkerhetskopiera till Azure Files:

  1. Konfigurera Azure Files.
  2. Montera Azure-filresursen på den virtuella datorn.
  3. Säkerhetskopiera databasen.
  4. Återställa och återställa databasen.

Konfigurera Azure Files

I det här avsnittet säkerhetskopierar du Oracle-databasen för att Azure Files med hjälp av Oracle RMAN. Azure-filresurser är fullständigt hanterade filresurser som finns kvar i molnet. Du kan komma åt dem med hjälp av antingen SMB-protokollet eller NFS-protokollet (Network File System).

Följande procedurer beskriver hur du skapar en filresurs som använder SMB-protokollet för att montera till den virtuella datorn. Information om hur du monterar med hjälp av NFS finns i Skapa en NFS-resurs.

När du monterar Azure-filresursen cache=none använder du alternativet för att inaktivera cachelagring av filresursdata. För att säkerställa att användaren oracle äger filerna som skapats i resursen anger du uid=oracle alternativen och gid=oinstall .

Konfigurera ditt lagringskonto:

  1. I Azure Portal väljer du + Skapa en resurs och söker sedan efter och väljer Lagringskonto.

    Skärmbild som visar var du skapar en resurs och väljer ett lagringskonto.

  2. I fönstret Skapa lagringskonto :

    1. För Resursgrupp väljer du din befintliga resursgrupp, rg-oracle.
    2. För Lagringskontonamn anger du oracbkup1.
    3. Kontrollera att Plats är inställd på samma region som alla andra resurser i resursgruppen.
    4. Ange Prestanda till Standard.
    5. För Typ av konto väljer du StorageV2 (generell användning v2).
    6. För Replikering väljer du Lokalt redundant lagring (LRS).

    Skärmbild som visar grundläggande information för att skapa ett lagringskonto.

  3. Välj fliken Avancerat. Under Azure Files anger du Stora filresurser till Aktiverad. Välj Granska + skapaoch välj sedan Skapa.

    Skärmbild som visar fliken för att aktivera stora filresurser.

  4. När lagringskontot har skapats går du till resursen och väljer Filresurser.

    Skärmbild som visar var du väljer filresurser för en resurs.

  5. Välj + Filresurs och sedan på panelen Ny filresurs :

    1. För Namn anger du orabkup1.

    2. Ange Kvot till 1 0240 gibibyte (GiB).

      Kvoten återspeglar en övre gräns som filresursen kan växa till. Eftersom du använder standardlagring i det här exemplet är resurserna betala per användning och etableras inte. Om du anger kvoten till 10 tebibyte (TiB) medför det alltså inte kostnader utöver det du använder. Om din strategi för säkerhetskopiering kräver mer lagringsutrymme anger du kvoten till en lämplig nivå för att lagra alla säkerhetskopior.

    3. Under Nivåer väljer du Transaktionsoptimerad.

    4. Välj Skapa.

    Skärmbild som visar val för att lägga till en ny filresurs.

  6. När filresursen har skapats väljer du orabkup1 i inställningsfönstret Filresurs .

  7. Välj fliken Anslut för att öppna panelen Anslut och välj sedan fliken Linux . Kopiera de angivna kommandona för att montera filresursen med hjälp av SMB-protokollet.

    Skärmbild som visar panelen för åtkomst till kommandon för att ansluta en filresurs till en Linux-dator.

Montera Azure-filresursen på den virtuella datorn

  1. Skapa monteringspunkten:

    sudo mkdir /mnt/orabackup
    
  2. Konfigurera autentiseringsuppgifter:

    if [ ! -d "/etc/smbcredentials" ]; then
     sudo mkdir /etc/smbcredentials
    fi
    
  3. Kör följande kommando. Ersätt <Your Storage Account Key1> med lagringskontonyckeln som du hämtade tidigare.

    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. Ändra behörigheter för filen med autentiseringsuppgifter:

    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. Lägg till monteringen i filen /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. Kör kommandona för att montera Azure-filresursen med hjälp av SMB-protokollet:

    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
    

    Om du får ett fel som liknar följande exempel kanske cifs-paketet (Common Internet File System) inte är installerat på Linux-värden:

    mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
    

    Kontrollera om CIFS-paketet är installerat genom att köra följande kommando:

    sudo rpm -qa|grep cifs-utils
    

    Om kommandot inte returnerar några utdata installerar du CIFS-paketet med hjälp av följande kommando. Kör sedan kommandot igen mount för att montera Azure-filresursen.

    sudo yum install cifs-utils
    
  7. Kontrollera att filresursen är korrekt monterad med hjälp av följande kommando:

    df -h
    

    Utdata bör se ut ungefär som i det här exemplet:

    $ 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
    

Säkerhetskopiera databasen

I det här avsnittet använder du Oracle RMAN för att göra en fullständig säkerhetskopia av databas- och arkivloggarna. Sedan skriver du säkerhetskopian som en säkerhetskopia till den Azure-filresurs som du monterade tidigare.

  1. Konfigurera RMAN för att säkerhetskopiera till Azure Files monteringspunkt:

    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. I det här exemplet begränsar du storleken på RMAN-säkerhetskopior till 4 GiB. RMAN-säkerhetskopieringsvärdet maxpiecesize kan dock gå upp till 4 TiB, vilket är filstorleksgränsen för Azures standardfilresurser och Premium-filresurser. Mer information finns i Azure Files skalbarhets- och prestandamål.

    RMAN> configure channel device type disk maxpiecesize 4000G;
    
  3. Bekräfta konfigurationsändringsinformationen:

    RMAN> show all;
    
  4. Kör säkerhetskopieringen. Följande kommando tar en fullständig säkerhetskopia av databasen, inklusive arkivloggfiler, som en säkerhetskopia i komprimerat format:

    RMAN> backup as compressed backupset database plus archivelog;
    

Nu har du säkerhetskopierat databasen online med hjälp av Oracle RMAN, med säkerhetskopian i Azure Files. Eftersom du lagrar säkerhetskopiorna i Azure Files kan du komma åt dem från andra virtuella datorer om du behöver klona databasen.

Även om användning av RMAN och Azure Files för databassäkerhetskopiering har många fördelar, är säkerhetskopierings- och återställningstiden länkad till databasens storlek. För mycket stora databaser kan dessa åtgärder ta lång tid.

Ett alternativ är att använda programkonsekventa säkerhetskopieringar av virtuella datorer via Azure Backup. Den här mekanismen använder teknik för ögonblicksbilder för att utföra snabba säkerhetskopieringar oavsett databasstorlek. Integrering med ett Recovery Services-valv ger molnlagring av dina Oracle Database-säkerhetskopior, så att du kan komma åt dem från andra virtuella datorer och andra Azure-regioner.

Återställa och återställa databasen

  1. Stäng av Oracle-instansen:

    sqlplus / as sysdba
    SQL> shutdown abort
    ORACLE instance shut down.
    
  2. Ta bort databasdatafilerna:

    cd /u02/oradata/TEST
    rm -f *.dbf
    
  3. Följande kommandon använder RMAN för att återställa saknade datafiler och återställa databasen:

    rman target /
    RMAN> startup mount;
    RMAN> restore database;
    RMAN> recover database;
    RMAN> alter database open;
    
  4. Kontrollera att databasinnehållet är helt återställt:

    RMAN> SELECT * FROM scott.scott_table;
    

Säkerhetskopieringen och återställningen av Oracle Database 19c-databasen på en virtuell Azure Linux-dator är nu klar.

Ta bort den virtuella datorn

När du inte längre behöver den virtuella datorn kan du använda följande kommando för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser:

az group delete --name rg-oracle

Nästa steg

Skapa virtuella datorer med hög tillgänglighet

Utforska Azure CLI-exempel för distribution av virtuella datorer