Säkerhetskopiera och återställa Oracle Database på en virtuell Azure Linux-dator med hjälp av Azure Backup
Gäller för: ✔️ Virtuella Linux-datorer
Den här artikeln visar hur du använder Azure Backup för att ta ögonblicksbilder av virtuella diskar (VM), bland annat Oracle Database-filerna och området för snabb återställning av Oracle. Med hjälp av Azure Backup kan du ta fullständiga diskögonblicksbilder som är lämpliga som säkerhetskopior och lagras i ett Recovery Services-valv.
Azure Backup tillhandahåller även programkonsekventa säkerhetskopior, vilket säkerställer att fler korrigeringar inte krävs för att återställa data. Programkonsekventa säkerhetskopieringar fungerar med både filsystem- och Oracle-databaser för automatisk lagringshantering (ASM).
Återställning av programkonsekventa data minskar återställningstiden, så att du snabbt kan återgå till ett körningstillstånd. Oracle Database-återställning är fortfarande nödvändigt efter återställningen. Du underlättar återställningen med hjälp av Oracle-arkiverade redo-loggfiler som samlas in och lagras i en separat Azure-filresurs.
Den här artikeln vägleder dig genom följande uppgifter:
- Säkerhetskopiera databasen med programkonsekvent säkerhetskopiering.
- Återställa och återställa databasen från en återställningspunkt.
- Återställ den virtuella datorn från en återställningspunkt.
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 göra det installerar du Azure CLI-tillägget vid första användning. 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.
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 12.1 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 miljön
Förbered miljön genom att utföra följande steg:
Anslut till VM:en
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>
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
Konfigurera Azure Files lagring för Oracle-arkiverade redo-loggfiler
Oracle Database-instansens arkiverade redo-loggfiler spelar en viktig roll vid databasåterställning. De lagrar de bekräftade transaktioner som behövs för att vidarebefordra från en ögonblicksbild av databasen som tagits tidigare.
När databasen är i ARCHIVELOG
läge arkiveras innehållet i online-redo-loggfiler när de blir fulla och växlar. Tillsammans med en säkerhetskopia måste de uppnå återställning till tidpunkt när databasen går förlorad.
Oracle tillhandahåller möjligheten att arkivera redo-loggfiler till olika platser. Branschens bästa praxis är att minst ett av dessa mål ska finnas på fjärrlagring, så det är separat från värdlagringen och skyddas med oberoende ögonblicksbilder. Azure Files uppfyller dessa krav.
En Azure-filresurs är lagring som du ansluter till en virtuell Linux- eller Windows-dator som en vanlig filsystemkomponent med hjälp av protokollet Server Message Block (SMB) eller NFS (Network File System). Information om hur du konfigurerar en Azure-filresurs i Linux (med SMB 3.0-protokollet) för användning som arkivlogglagring finns i Montera en SMB Azure-filresurs i Linux. När du har slutfört installationen går du tillbaka till den här guiden och slutför alla återstående steg.
Förbereda databaserna
Den här delen av processen förutsätter att du har följt Skapa en Oracle Database-instans på en virtuell Azure-dator. Som ett resultat:
- Du har en Oracle-instans med namnet
oratest1
som körs på en virtuell dator med namnetvmoracle19c
. - Du använder Standard Oracle-skriptet
oraenv
med dess beroende av Oracle-standardkonfigurationsfilen /etc/oratab för att konfigurera miljövariabler i en shell-session.
Utför följande steg för varje databas på den virtuella datorn:
Växla till användaren
oracle
:sudo su - oracle
Ange miljövariabeln
ORACLE_SID
genom att köra skriptetoraenv
. Du uppmanas att ange namnetORACLE_SID
.. oraenv
Lägg till Azure-filresursen som ett annat mål för databasarkivloggfiler.
Det här steget förutsätter att du har konfigurerat och monterat en Azure-filresurs på den virtuella Linux-datorn. För varje databas som är installerad på den virtuella datorn skapar du en underkatalog som namnges efter din databassäkerhetsidentifierare (SID).
I det här exemplet är
/backup
monteringspunktens namn och SID äroratest1
. Så du skapar underkatalogen/backup/oratest1
och ändrar ägarskapet till användarenoracle
. Ersätt/backup/SID
med monteringspunktens namn och databas-SID.sudo mkdir /backup/oratest1 sudo chown oracle:oinstall /backup/oratest1
Anslut till databasen:
sqlplus / as sysdba
Starta databasen om den inte redan körs:
SQL> startup
Ange databasens första arkivloggmål till den filresurskatalog som du skapade tidigare:
SQL> alter system set log_archive_dest_1='LOCATION=/backup/oratest1' scope=both;
Definiera mål för återställningspunkt (RPO) för databasen.
Om du vill uppnå ett konsekvent återställningspunktpunktobjekt bör du överväga hur ofta loggfilerna för onlineåterställning ska arkiveras. Dessa faktorer styr frekvensen:
- Storleken på onlinefilerna för att göra om loggfilerna. När en onlineloggfil blir full växlas den och arkiveras. Ju större onlineloggfil, desto längre tid tar det att fylla upp. Den extra tiden minskar frekvensen för arkivgenerering.
- Inställningen för parametern
ARCHIVE_LAG_TARGET
styr det maximala antalet sekunder som tillåts innan den aktuella onlineloggfilen måste växlas och arkiveras.
För att minimera växlings- och arkiveringsfrekvensen, tillsammans med den tillhörande kontrollpunktsåtgärden, har Oracle online redo-loggfiler vanligtvis en stor storlek (till exempel 1 024 M, 4 096 M eller 8 192 M). I en upptagen databasmiljö är det fortfarande troligt att loggarna växlar och arkiverar med några sekunders eller minuts mellanrum. I en mindre aktiv databas kan de gå timmar eller dagar innan de senaste transaktionerna arkiveras, vilket avsevärt skulle minska arkiveringsfrekvensen.
Vi rekommenderar att du ställer in
ARCHIVE_LAG_TARGET
för att säkerställa ett konsekvent återställningspunktpunktobjekt. Inställningen 5 minuter (300 sekunder) är ett försiktigt värde förARCHIVE_LAG_TARGET
. Det säkerställer att alla databasåterställningsåtgärder kan återställas till inom 5 minuter efter feltiden.Om du vill ange
ARCHIVE_LAG_TARGET
kör du det här kommandot:SQL> alter system set archive_lag_target=300 scope=both;
Information om hur du distribuerar Oracle Database-instanser med hög tillgänglighet i Azure utan RPO finns i Referensarkitekturer för Oracle Database.
Kontrollera att databasen är i arkivloggläge för att aktivera onlinesäkerhetskopieringar.
Kontrollera loggarkivets status först:
SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG
Om den är i
NOARCHIVELOG
läge kör du följande kommandon: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 dina data med hjälp av Azure Backup
Tjänsten Azure Backup tillhandahåller lösningar för att säkerhetskopiera dina data och återställa dem från Microsoft Azure-molnet. Med Azure Backup får du oberoende och isolerade säkerhetskopior, vilket skyddar originaldata från att förstöras oavsiktligt. Säkerhetskopior lagras i ett Recovery Services-valv med inbyggd hantering av återställningspunkter, så att du kan återställa efter behov.
I det här avsnittet använder du Azure Backup för att ta programkonsekventa ögonblicksbilder av den virtuella dator som körs och Oracle Database-instanser. Databaserna placeras i säkerhetskopieringsläge, vilket gör att en transaktionsmässigt konsekvent onlinesäkerhetskopiering kan utföras medan Azure Backup tar en ögonblicksbild av de virtuella datordiskarna. Ögonblicksbilden är en fullständig kopia av lagringen och inte en inkrementell eller kopiering vid skrivning. Det är ett effektivt medium att återställa databasen från.
Fördelen med att använda Azure Backup programkonsekventa ögonblicksbilder är att de är snabba att ta, oavsett hur stor din databas är. Du kan använda en ögonblicksbild för återställningsåtgärder så fort du tar den, utan att behöva vänta tills den överförs till Recovery Services-valvet.
Utför följande steg om du vill använda Azure Backup för att säkerhetskopiera databasen:
- Förstå Azure Backup ramverket.
- Förbered miljön för en programkonsekvent säkerhetskopiering.
- Konfigurera programkonsekventa säkerhetskopieringar.
- Utlös en programkonsekvent säkerhetskopiering av den virtuella datorn.
Förstå det Azure Backup ramverket
Tjänsten Azure Backup tillhandahåller ett ramverk för att uppnå programkonsekvens vid säkerhetskopiering av virtuella Windows- och Linux-datorer för olika program. Det här ramverket omfattar att anropa ett förskript för att kvitta programmen innan du tar en ögonblicksbild av diskar. Den anropar ett efterskript för att låsa upp programmen när ögonblicksbilden har slutförts.
Microsoft har förbättrat ramverket så att Azure Backup-tjänsten tillhandahåller paketerade förskript och efterskript för valda program. Dessa förskript och efterskript har redan lästs in på Linux-avbildningen, så det finns inget att installera. Du namnger bara programmet och sedan anropar Azure Backup automatiskt relevanta skript. Microsoft hanterar paketerade förskript och efterskript, så att du kan vara säker på support, ägarskap och giltighet för dem.
För närvarande är de program som stöds för det förbättrade ramverket Oracle 12.x eller senare och MySQL. Mer information finns i Supportmatris för hanterade säkerhetskopieringar av virtuella Azure-datorer.
Du kan skapa egna skript för Azure Backup som ska användas med databaser före 12.x. Exempelskript är tillgängliga på GitHub.
Varje gång du säkerhetskopierar kör det förbättrade ramverket förskript och efterskript på alla Oracle Database-instanser som är installerade på den virtuella datorn. Parametern configuration_path
i filen workload.conf pekar på platsen för oracle-filen /etc/oratab (eller en användardefinierad fil som följer oratab-syntaxen). Mer information finns i Konfigurera programkonsekventa säkerhetskopieringar.
Azure Backup kör förskript och efterskript för varje databas som anges i filen som configuration_path
pekar på. Undantag är rader som börjar med #
(behandlas som kommentarer) eller +ASM
(en Oracle ASM-instans).
Det Azure Backup förbättrade ramverket tar onlinesäkerhetskopieringar av Oracle Database-instanser som körs i ARCHIVELOG
läge. Förskripten och efterskripten använder kommandona ALTER DATABASE BEGIN
och END BACKUP
för att uppnå programkonsekvens.
För att databassäkerhetskopian ska vara konsekvent måste databaser i NOARCHIVELOG
läge stängas av helt innan ögonblicksbilden startar.
Förbereda miljön för en programkonsekvent säkerhetskopiering
Oracle Database använder jobbrollsavgränsning för att tillhandahålla uppdelning av uppgifter med minsta möjliga behörighet. Den associerar separata operativsystemgrupper (OS) med separata administrativa databasroller. Användare kan sedan ha olika databasprivilegier, beroende på deras medlemskap i OS-grupper.
Databasrollen SYSBACKUP
(allmänt namn OSBACKUPDBA
) ger begränsade behörigheter för att utföra säkerhetskopieringsåtgärder i databasen. Azure Backup kräver det.
Under Oracle-installationen rekommenderar vi att du använder backupdba
som os-gruppnamn för att associera med SYSBACKUP
rollen. Men du kan använda valfritt namn, så du måste bestämma namnet på os-gruppen som representerar Oracle-rollen SYSBACKUP
först.
Växla till användaren
oracle
:sudo su - oracle
Ange Oracle-miljön:
export ORACLE_SID=oratest1 export ORAENV_ASK=NO . oraenv
Fastställ namnet på den OS-grupp som representerar Oracle-rollen
SYSBACKUP
:grep "define SS_BKP" $ORACLE_HOME/rdbms/lib/config.c
Utdata ser ut ungefär som i följande exempel:
#define SS_BKP_GRP "backupdba"
I utdata är värdet inom dubbla citattecken namnet på den Linux OS-grupp som Oracle-rollen
SYSBACKUP
autentiseras till externt. I det här exemplet ärbackupdba
det . Anteckna det faktiska värdet.Kontrollera att os-gruppen finns genom att köra följande kommando. Ersätt
<group name>
med det värde som föregående kommando returnerade (utan citattecken).grep <group name> /etc/group
Utdata ser ut ungefär som i följande exempel:
backupdba:x:54324:oracle
Viktigt
Om utdata inte matchar värdet för Oracle OS-gruppen som du hämtade i steg 3 använder du följande kommando för att skapa den OS-grupp som representerar Oracle-rollen
SYSBACKUP
. Ersätt<group name>
med det gruppnamn som du hämtade i steg 3.sudo groupadd <group name>
Skapa en ny säkerhetskopieringsanvändare med namnet
azbackup
som tillhör den OS-grupp som du verifierade eller skapade i föregående steg. Ersätt<group name>
med namnet på den verifierade gruppen. Användaren läggs också till ioinstall
gruppen så att den kan öppna ASM-diskar.sudo useradd -g <group name> -G oinstall azbackup
Konfigurera extern autentisering för den nya säkerhetskopieringsanvändaren.
Säkerhetskopieringsanvändaren
azbackup
måste kunna komma åt databasen med hjälp av extern autentisering, så att den inte utmanas av ett lösenord. Om du vill aktivera den här åtkomsten måste du skapa en databasanvändare som autentiserar externt viaazbackup
. Databasen använder ett prefix för användarnamnet som du behöver hitta.Utför följande steg för varje databas som är installerad på den virtuella datorn:
Logga in på databasen med hjälp av SQL Plus och kontrollera standardinställningarna för extern autentisering:
sqlplus / as sysdba SQL> show parameter os_authent_prefix SQL> show parameter remote_os_authent
Utdata bör se ut som i det här exemplet, som visas
ops$
som databasens användarnamnprefix:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ os_authent_prefix string ops$ remote_os_authent boolean FALSE
Skapa en databasanvändare med namnet
ops$azbackup
för extern autentisering förazbackup
användaren och beviljaSYSBACKUP
behörigheter:SQL> CREATE USER ops$azbackup IDENTIFIED EXTERNALLY; SQL> GRANT CREATE SESSION, ALTER SESSION, SYSBACKUP TO ops$azbackup;
Om du får felet
ORA-46953: The password file is not in the 12.2 format
när du kör -instruktionenGRANT
följer du dessa steg för att migrera orapwd-filen till 12.2-format. Utför de här stegen för varje Oracle Database-instans på den virtuella datorn.Avsluta SQL Plus.
Flytta lösenordsfilen med det gamla formatet till ett nytt namn.
Migrera lösenordsfilen.
Ta bort den gamla filen.
Kör följande kommandon:
mv $ORACLE_HOME/dbs/orapworatest1 $ORACLE_HOME/dbs/orapworatest1.tmp orapwd file=$ORACLE_HOME/dbs/orapworatest1 input_file=$ORACLE_HOME/dbs/orapworatest1.tmp rm $ORACLE_HOME/dbs/orapworatest1.tmp
Kör åtgärden igen
GRANT
i SQL Plus.
Skapa en lagrad procedur för att logga säkerhetskopieringsmeddelanden till databasens aviseringslogg. Använd följande kod för varje databas som är installerad på den virtuella datorn:
sqlplus / as sysdba SQL> GRANT EXECUTE ON DBMS_SYSTEM TO SYSBACKUP; SQL> CREATE PROCEDURE sysbackup.azmessage(in_msg IN VARCHAR2) AS v_timestamp VARCHAR2(32); BEGIN SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') INTO v_timestamp FROM DUAL; DBMS_OUTPUT.PUT_LINE(v_timestamp || ' - ' || in_msg); SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.ALERT_FILE, in_msg); END azmessage; / SQL> SHOW ERRORS SQL> QUIT
Konfigurera programkonsekventa säkerhetskopieringar
Växla till rotanvändaren:
sudo su -
Sök efter mappen /etc/azure . Om den inte finns skapar du arbetskatalogen för den programkonsekventa säkerhetskopieringen:
if [ ! -d "/etc/azure" ]; then mkdir /etc/azure fi
Sök efter filen workload.conf i mappen . Om den inte finns skapar du den i katalogen /etc/azure och ger den följande innehåll. Kommentarerna måste börja med
[workload]
. Om filen redan finns redigerar du bara fälten så att de matchar följande innehåll. Annars skapar följande kommando filen och fyller i innehållet:echo "[workload] workload_name = oracle configuration_path = /etc/oratab timeout = 90 linux_user = azbackup" > /etc/azure/workload.conf
Filen workload.conf använder följande format:
- Parametern
workload_name
anger databasens arbetsbelastningstyp. Om du i det här fallet anger parametern tillOracle
kan Azure Backup köra rätt förskript och efterskript (konsekvenskommandon) för Oracle Database-instanser. - Parametern
timeout
anger den maximala tiden i sekunder som varje databas måste slutföra ögonblicksbilder av lagringen. - Parametern
linux_user
anger det Linux-användarkonto som Azure Backup använder för att köra quiesce-åtgärder för databasen. Du skapade den här användaren,azbackup
, tidigare. - Parametern
configuration_path
anger det absoluta sökvägsnamnet för en textfil på den virtuella datorn. Varje rad visar en databasinstans som körs på den virtuella datorn. Detta är vanligtvis den /etc/oratab-fil som Oracle genererar under databasinstallationen, men det kan vara vilken fil som helst med valfritt namn som du väljer. Den måste följa dessa formatregler:- Filen är en textfil. Varje fält avgränsas med kolontecknet (
:
). - Det första fältet på varje rad är namnet på en
ORACLE_SID
instans. - Det andra fältet på varje rad är det absoluta sökvägsnamnet för
ORACLE_HOME
denORACLE_SID
instansen. - All text efter de två första fälten ignoreras.
- Om raden börjar med ett pundtecken (
#
) ignoreras hela raden som en kommentar. - Om det första fältet har värdet
+ASM
, som anger en Oracle ASM-instans, ignoreras det.
- Filen är en textfil. Varje fält avgränsas med kolontecknet (
- Parametern
Utlösa en programkonsekvent säkerhetskopiering av den virtuella datorn
I Azure Portal går du till resursgruppen rg-oracle och väljer den virtuella datorn vmoracle19c.
I fönstret Säkerhetskopiering :
- Under Recovery Services-valv väljer du Skapa ny.
- Använd myVault som namn på valvet.
- För Resursgrupp väljer du rg-oracle.
- För Välj säkerhetskopieringsprincip använder du (ny) DailyPolicy. Om du vill ändra säkerhetskopieringsfrekvensen eller kvarhållningsintervallet väljer du Skapa en ny princip i stället.
Välj Aktivera säkerhetskopiering.
Säkerhetskopieringen startar inte förrän den schemalagda tiden går ut. Om du vill konfigurera en omedelbar säkerhetskopiering slutför du nästa steg.
I resursgruppsfönstret väljer du det nyligen skapade Recovery Services-valvet myVault. Du kan behöva uppdatera sidan för att se den.
I fönstret myVault – Säkerhetskopieringsobjekt går du till ANTAL SÄKERHETSKOPIERINGSOBJEKT och väljer antalet säkerhetskopierade objekt.
I fönstret Säkerhetskopieringsobjekt (virtuell Azure-dator) väljer du ellipsknappen (...) och väljer sedan Säkerhetskopiera nu.
Acceptera standardvärdet Behåll säkerhetskopiering till och välj sedan OK. Vänta tills säkerhetskopieringen har slutförts.
Om du vill visa status för säkerhetskopieringsjobbet väljer du Säkerhetskopieringsjobb.
Välj säkerhetskopieringsjobbet för att se information om dess status.
Även om det bara tar några sekunder att köra ögonblicksbilden kan det ta lite tid att överföra den till valvet. Säkerhetskopieringsjobbet slutförs inte förrän överföringen är klar.
För en programkonsekvent säkerhetskopiering kan du åtgärda eventuella fel i loggfilen på /var/log/azure/Microsoft.Azure.RecoveryServices.VMSnapshotLinux/extension.log.
Återställa den virtuella datorn
Om du återställer en hel virtuell dator innebär det att du återställer den virtuella datorn och dess anslutna diskar till en ny virtuell dator från en vald återställningspunkt. Den här åtgärden återställer även alla databaser som körs på den virtuella datorn. Efteråt måste du återställa varje databas.
Utför följande steg för att återställa en hel virtuell dator:
- Stoppa och ta bort den virtuella datorn.
- Återställa den virtuella datorn.
- Ange den offentliga IP-adressen.
- Återställ databasen.
Det finns två huvudsakliga alternativ när du återställer en virtuell dator:
- Återställ den virtuella dator som säkerhetskopiorna ursprungligen gjordes från.
- Återställ (klona) en ny virtuell dator utan att påverka den virtuella dator som säkerhetskopiorna ursprungligen togs från.
De första stegen i den här övningen (stoppa, ta bort och sedan återställa den virtuella datorn) simulerar det första användningsfallet.
Stoppa och ta bort den virtuella datorn
I Azure Portal går du till den virtuella datorn vmoracle19c och väljer sedan Stoppa.
När den virtuella datorn inte längre körs väljer du Ta bort och sedan Ja.
Återställa den virtuella datorn
Skapa ett lagringskonto för mellanlagring i Azure Portal:
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 oracrestore.
- 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 Granska + skapaoch välj sedan Skapa.
I Azure Portal söker du efter valvet myVault Recovery Services och väljer det.
I fönstret Översikt väljer du Säkerhetskopieringsobjekt. Välj sedan Azure Virtual Machine, som ska ha ett icke-nollnummer för ANTAL SÄKERHETSKOPIERINGSOBJEKT.
I fönstret Säkerhetskopieringsobjekt (virtuell Azure-dator) väljer du den virtuella datorn vmoracle19c .
I fönstret vmoracle19c väljer du en återställningspunkt som har konsekvenstypen Programkonsekvent. Välj ellipsen (...) och välj sedan Återställ virtuell dator.
I fönstret Återställ virtuell dator :
Välj Skapa ny.
Som Återställningstyp väljer du Skapa ny virtuell dator.
Som Namn på virtuell dator anger du vmoracle19c.
För Virtuellt nätverk väljer du vmoracle19cVNET.
Undernätet fylls i automatiskt baserat på ditt val för det virtuella nätverket.
För mellanlagringsplats kräver processen för att återställa en virtuell dator ett Azure-lagringskonto i samma resursgrupp och region. Du kan välja ett lagringskonto eller en återställningsaktivitet som du konfigurerade tidigare.
Om du vill återställa den virtuella datorn väljer du knappen Återställ .
Om du vill visa status för återställningsprocessen väljer du Jobb och sedan Säkerhetskopieringsjobb.
Välj återställningsåtgärden Pågår för att visa information om återställningsprocessens status.
Ange den offentliga IP-adressen
När den virtuella datorn har återställts bör du tilldela om den ursprungliga IP-adressen till den nya virtuella datorn.
I Azure Portal går du till den virtuella datorn med namnet vmoracle19c. Den har tilldelats en ny offentlig IP- och nätverkskort som liknar vmoracle19c-nic-XXXXXXXXXXXXXX, men den har ingen DNS-adress. När den ursprungliga virtuella datorn togs bort bevarades dess offentliga IP-adress och nätverkskort. Nästa steg är att koppla dem till den nya virtuella datorn.
Stoppa den virtuella datorn.
Gå till Nätverk.
Välj Anslut nätverksgränssnitt. Välj det ursprungliga NIC vmoracle19cVMNic, som den ursprungliga offentliga IP-adressen fortfarande är associerad med. Välj sedan OK.
Koppla från nätverkskortet som du skapade med återställningsåtgärden för den virtuella datorn eftersom det är konfigurerat som det primära gränssnittet. Välj Koppla från nätverksgränssnitt, välj det nätverkskort som liknar vmoracle19c-nic-XXXXXXXXXXXX OCH välj sedan OK.
Den återskapade virtuella datorn har nu det ursprungliga nätverkskortet, som är associerat med den ursprungliga IP-adressen och reglerna för nätverkssäkerhetsgrupper.
Gå tillbaka till fönstret Översikt och välj Starta.
Återställa databasen
Så här återställer du en databas efter en fullständig återställning av den virtuella datorn:
Återanslut till den virtuella datorn:
ssh azureuser@<publicIpAddress>
När hela den virtuella datorn har återställts är det viktigt att återställa databaserna på den virtuella datorn genom att utföra följande steg på varje databas.
Du kanske upptäcker att instansen körs eftersom autostarten försökte starta databasen vid start av den virtuella datorn. Databasen kräver dock återställning och kommer troligen endast att vara i monteringsfasen. Kör en förberedande avstängning innan du startar monteringssteget:
sudo su - oracle sqlplus / as sysdba SQL> shutdown immediate SQL> startup mount
Utför databasåterställning.
Det är viktigt att ange syntaxen
USING BACKUP CONTROLFILE
för att informera kommandot omRECOVER AUTOMATIC DATABASE
att återställningen inte ska stoppa vid oracle-systemets ändringsnummer (SCN) som registrerats i den återställde databaskontrollfilen.Den återställde databaskontrollfilen var en ögonblicksbild, tillsammans med resten av databasen. SCN som lagras i det är från tidpunkten för ögonblicksbilden. Det kan finnas transaktioner som registrerats efter den här punkten och du vill återställa till tidpunkten för den senaste transaktionen som checkats in i databasen.
SQL> recover automatic database using backup controlfile until cancel;
När den senast tillgängliga arkivloggfilen har tillämpats anger du
CANCEL
för att avsluta återställningen.När återställningen har slutförts visas meddelandet
Media recovery complete
.Men när du använder
BACKUP CONTROLFILE
-satsen ignorerar återställningskommandot onlineloggfiler. Det är möjligt att ändringar i den aktuella online-redo-loggen krävs för att slutföra återställning till tidpunkt. I den här situationen kan du se meddelanden som liknar dessa exempel:SQL> recover automatic database until cancel using backup controlfile; ORA-00279: change 2172930 generated at 04/08/2021 12:27:06 needed for thread 1 ORA-00289: suggestion : /u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc ORA-00280: change 2172930 for thread 1 is in sequence #13 ORA-00278: log file '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc' no longer needed for this recovery ORA-00308: cannot open archived log '/u02/fast_recovery_area/ORATEST1/archivelog/2021_04_08/o1_mf_1_13_%u_.arc' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 7 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
Viktigt
Om den aktuella online-redo-loggen förloras eller skadas och du inte kan använda den kan du avbryta återställningen nu.
För att åtgärda det här problemet kan du identifiera vilken onlinelogg som inte arkiverades och ange det fullständigt kvalificerade filnamnet i prompten.
Öppna databasen.
Alternativet
RESETLOGS
krävs närRECOVER
kommandot använderUSING BACKUP CONTROLFILE
alternativet .RESETLOGS
skapar en ny inkarnation av databasen genom att återställa redo-historiken till början, eftersom det inte finns något sätt att avgöra hur mycket av den tidigare databas-inkarnationen som hoppades över i återställningen.SQL> alter database open resetlogs;
Kontrollera att databasinnehållet har återställts:
SQL> select * from scott.scott_table;
Säkerhetskopieringen och återställningen av Oracle Database på en virtuell Azure Linux-dator är nu klar.
Du hittar mer information om Oracle-kommandon och -begrepp i Oracle-dokumentationen, inklusive:
- Utföra användarhanterade Oracle-säkerhetskopior av hela databasen
- Utföra fullständig användarhanterad databasåterställning
- Oracle STARTUP-kommando
- Oracle RECOVER-kommando
- Oracle ALTER DATABASE-kommando
- Oracle LOG_ARCHIVE_DEST_n-parameter
- Oracle ARCHIVE_LAG_TARGET parameter
Ta bort den virtuella datorn
När du inte längre behöver den virtuella datorn kan du använda följande kommandon för att ta bort resursgruppen, den virtuella datorn och alla relaterade resurser:
Inaktivera mjuk borttagning av säkerhetskopior i valvet:
az backup vault backup-properties set --name myVault --resource-group rg-oracle --soft-delete-feature-state disable
Stoppa skyddet för den virtuella datorn och ta bort säkerhetskopior:
az backup protection disable --resource-group rg-oracle --vault-name myVault --container-name vmoracle19c --item-name vmoracle19c --delete-backup-data true --yes
Ta bort resursgruppen, inklusive alla 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