Läs på engelska

Dela via


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 användningen av 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 högpresterande. För stora databaser ger Azure Backup dock en bättre lösning.

Förutsättningar

  • För att kunna 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. Om du vill skapa en SSH-session (Secure Shell) med den virtuella datorn använder du följande kommando. Ersätt <publicIpAddress> med det offentliga adressvärdet för den virtuella datorn.

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

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

    Bash
    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 oracle användaren:

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

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

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

    Bash
    lsnrctl start
    

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

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

    Bash
    mkdir /u02/fast_recovery_area
    
  8. Anslut till databasen:

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

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

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

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

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

    Bash
    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 till 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. Ange alternativen och gid=oinstall för att säkerställa att användaren oracle äger filerna som skapats i resursenuid=oracle.

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. Som 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. Att ange kvoten till 10 tebibyte (TiB) medför inte kostnader utöver det du använder. Om säkerhetskopieringsstrategin 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 skapas väljer du orabkup1 i fönstret Inställningar för 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:

    Bash
    sudo mkdir /mnt/orabackup
    
  2. Konfigurera autentiseringsuppgifter:

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

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

    Bash
    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. Lägg till monteringen i /etc/fstab-filen :

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

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

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

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

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

    Bash
    df -h
    

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

    Output
    $ 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 Monteringspunkten för Azure Files:

    Bash
    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äkerhetskopieringsdelar till 4 GiB. RMAN-säkerhetskopieringsvärdet maxpiecesize kan dock gå upp till 4 TiB, vilket är filstorleksgränsen för Azures standardfilresurser och premiumfilresurser. Mer information finns i Skalbarhets- och prestandamål för Azure Files.

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

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

    Bash
    RMAN> backup as compressed backupset database plus archivelog;
    

Du säkerhetskopierade 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.

Det finns många fördelar med att använda RMAN och Azure Files för databassäkerhetskopiering. Säkerhetskopierings- och återställningstiden är länkad till databasens storlek. För 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:

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

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

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

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

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