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
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
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
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.ssh azureuser@<publicIpAddress>
Växla till rotanvändaren:
sudo su -
Lägg till användaren i
oracle
filen /etc/sudoers :echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
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:sudo su - oracle
Innan du ansluter anger du miljövariabeln
ORACLE_SID
:export ORACLE_SID=test;
Du bör också lägga till variabeln
ORACLE_SID
ioracle
användarens .bashrc-fil för framtida inloggningar med hjälp av följande kommando:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
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
Skapa platsen för det snabba återställningsområdet:
mkdir /u02/fast_recovery_area
Anslut till databasen:
sqlplus / as sysdba
Starta databasen om den inte redan körs:
SQL> startup
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;
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;
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:
- Konfigurera Azure Files.
- Montera Azure-filresursen på den virtuella datorn.
- Säkerhetskopiera databasen.
- Å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:
I Azure Portal väljer du + Skapa en resurs och söker sedan efter och väljer Lagringskonto.
I fönstret Skapa lagringskonto :
- För Resursgrupp väljer du din befintliga resursgrupp, rg-oracle.
- För Lagringskontonamn anger du oracbkup1.
- Kontrollera att Plats är inställd på samma region som alla andra resurser i resursgruppen.
- Ange Prestanda till Standard.
- För Typ av konto väljer du StorageV2 (generell användning v2).
- För Replikering väljer du Lokalt redundant lagring (LRS).
Välj fliken Avancerat . Under Azure Files anger du Stora filresurser till Aktiverad. Välj Granska + skapaoch välj sedan Skapa.
När lagringskontot har skapats går du till resursen och väljer Filresurser.
Välj + Filresurs och sedan på panelen Ny filresurs :
Som Namn anger du orabkup1.
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.
Under Nivåer väljer du Transaktionsoptimerad.
Välj Skapa.
När filresursen skapas väljer du orabkup1 i fönstret Inställningar för filresurs.
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.
Montera Azure-filresursen på den virtuella datorn
Skapa monteringspunkten:
sudo mkdir /mnt/orabackup
Konfigurera autentiseringsuppgifter:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
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
Ändra behörigheter för filen med autentiseringsuppgifter:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
Lägg till monteringen i /etc/fstab-filen :
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'
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
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.
Konfigurera RMAN för att säkerhetskopiera till Monteringspunkten för Azure Files:
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';
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.RMAN> configure channel device type disk maxpiecesize 4000G;
Bekräfta konfigurationsändringsinformationen:
RMAN> show all;
Kör säkerhetskopian. Följande kommando tar en fullständig databassäkerhetskopia, inklusive arkivloggfiler, som en säkerhetskopia i komprimerat format:
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
Stäng av Oracle-instansen:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Ta bort databasdatafilerna:
cd /u02/oradata/TEST rm -f *.dbf
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;
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