Delen via


Een back-up maken van Oracle Database op een Virtuele Azure Linux-machine en deze herstellen met behulp van Azure Backup

Van toepassing op: ✔️ Virtuele Linux-machines

In dit artikel wordt het gebruik van Azure Backup gedemonstreert om momentopnamen van schijven van virtuele machines (VM's) te maken, waaronder de Oracle Database-bestanden en het snelle herstelgebied van Oracle. Met behulp van Azure Backup kunt u volledige schijfmomentopnamen maken die geschikt zijn als back-ups en worden opgeslagen in een Recovery Services-kluis.

Azure Backup biedt ook toepassingsconsistente back-ups, waardoor er niet meer oplossingen nodig zijn om de gegevens te herstellen. Toepassingsconsistente back-ups werken met zowel bestandssysteem- als ASM-databases (Oracle Automatic Storage Management).

Het herstellen van toepassingsconsistente gegevens vermindert de hersteltijd, zodat u snel kunt terugkeren naar een actieve status. Oracle Database-herstel is nog steeds nodig na herstel. U faciliteert het herstel met behulp van gearchiveerde logboekbestanden van Oracle die zijn vastgelegd en opgeslagen in een afzonderlijke Azure-bestandsshare.

In dit artikel worden de volgende taken beschreven:

  • Maak een back-up van de database met toepassingsconsistente back-up.
  • Herstel en herstel de database vanaf een herstelpunt.
  • Herstel de VIRTUELE machine vanaf een herstelpunt.

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 12.1 of hoger.

  • Maak een Oracle Database-exemplaar door de stappen te volgen in Een Oracle Database-exemplaar maken in een Azure-VM.

De omgeving voorbereiden

Voer de volgende stappen uit om de omgeving voor te bereiden:

  1. Maak verbinding met de VM.
  2. Azure Files-opslag instellen.
  3. Bereid de databases voor.

Verbinding maken met de VM

  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
    

Azure Files-opslag instellen voor de met Oracle gearchiveerde redo-logboekbestanden

De gearchiveerde redo-logboekbestanden van het Oracle Database-exemplaar spelen een cruciale rol bij databaseherstel. Ze slaan de vastgelegde transacties op die nodig zijn voor het doorsturen van een momentopname van een database die in het verleden is gemaakt.

Wanneer de database in ARCHIVELOG de modus is, wordt de inhoud van online logboekbestanden opnieuw gearchiveerd wanneer ze vol zijn en overschakelen. Samen met een back-up moeten ze herstel naar een bepaald tijdstip bereiken wanneer de database verloren gaat.

Oracle biedt de mogelijkheid om logboekbestanden opnieuw op verschillende locaties te archiveren. De aanbevolen procedure voor de branche is dat ten minste één van deze bestemmingen zich op externe opslag moet bevinden, dus deze is gescheiden van de hostopslag en beveiligd met onafhankelijke momentopnamen. Azure Files voldoet aan deze vereisten.

Een Azure-bestandsshare is opslag die u als een gewone bestandssysteemcomponent koppelt aan een Linux- of Windows-VM, met behulp van het SMB-protocol (Server Message Block) of het NFS-protocol (Network File System). Als u een Azure-bestandsshare wilt instellen in Linux (met behulp van het SMB 3.0-protocol) voor gebruik als archieflogboekopslag, raadpleegt u Een SMB Azure-bestandsshare koppelen in Linux. Wanneer u de installatie hebt voltooid, gaat u terug naar deze handleiding en voert u alle resterende stappen uit.

De databases voorbereiden

In dit deel van het proces wordt ervan uitgegaan dat u een Oracle Database-exemplaar hebt gevolgd in een Azure-VM. Als gevolg hiervan:

  • U hebt een Oracle-exemplaar dat oratest1 wordt uitgevoerd op een virtuele machine met de naam vmoracle19c.
  • U gebruikt het standaard Oracle-script oraenv met de afhankelijkheid van het standaard Oracle-configuratiebestand /etc/oratab om omgevingsvariabelen in te stellen in een shell-sessie.

Voer de volgende stappen uit voor elke database op de VM:

  1. Overschakelen naar de oracle gebruiker:

     sudo su - oracle
    
  2. Stel de omgevingsvariabele ORACLE_SID in door het script uit te oraenv voeren. U wordt gevraagd de ORACLE_SID naam in te voeren.

    . oraenv
    
  3. Voeg de Azure-bestandsshare toe als een andere bestemming voor logboekbestanden van het databasearchief.

    In deze stap wordt ervan uitgegaan dat u een Azure-bestandsshare hebt geconfigureerd en gekoppeld op de Virtuele Linux-machine. Voor elke database die op de VIRTUELE machine is geïnstalleerd, maakt u een submap met de naam van uw sid (Database Security Identifier).

    In dit voorbeeld is /backup de naam van het koppelpunt en de SID.oratest1 U maakt dus de submap /backup/oratest1 en wijzigt het eigendom van de oracle gebruiker. Vervang deze /backup/SID door de naam van het koppelpunt en de database-SID.

    sudo mkdir /backup/oratest1
    sudo chown oracle:oinstall /backup/oratest1
    
  4. Verbinding maken met de database:

    sqlplus / as sysdba
    
  5. Start de database als deze nog niet wordt uitgevoerd:

    SQL> startup
    
  6. Stel de eerste archieflogboekbestemming van de database in op de bestandssharemap die u eerder hebt gemaakt:

    SQL> alter system set log_archive_dest_1='LOCATION=/backup/oratest1' scope=both;
    
  7. Definieer het beoogde herstelpunt (RPO) voor de database.

    Als u een consistente RPO wilt bereiken, moet u rekening houden met de frequentie waarmee de online logboekbestanden opnieuw worden gearchiveerd. Deze factoren bepalen de frequentie:

    • De grootte van de online opnieuw uitgevoerde logboekbestanden. Als een onlinelogboekbestand vol raakt, wordt het overgeschakeld en gearchiveerd. Hoe groter het onlinelogboekbestand, hoe langer het duurt om op te vullen. De toegevoegde tijd verlaagt de frequentie van het genereren van archiveren.
    • De instelling van de ARCHIVE_LAG_TARGET parameter bepaalt het maximum aantal seconden dat is toegestaan voordat het huidige onlinelogboekbestand moet worden overgeschakeld en gearchiveerd.

    Om de frequentie van schakelen en archiveren te minimaliseren, samen met de bijbehorende controlepuntbewerking, hebben Oracle online logboekbestanden over het algemeen een grote grootte (bijvoorbeeld 1.024M, 4.096M of 8.192M). In een drukke databaseomgeving worden logboeken waarschijnlijk om de paar seconden of minuten overgeschakeld en gearchiveerd. In een minder actieve database kunnen ze uren of dagen duren voordat de meest recente transacties worden gearchiveerd, wat de archiveringsfrequentie aanzienlijk zou verlagen.

    U wordt aangeraden om ARCHIVE_LAG_TARGET een consistente RPO te garanderen. Een instelling van 5 minuten (300 seconden) is een voorzichtige waarde voor ARCHIVE_LAG_TARGET. Het zorgt ervoor dat een databaseherstelbewerking binnen 5 minuten na de fout kan worden hersteld.

    Voer deze opdracht uit om in te stellen ARCHIVE_LAG_TARGET:

    SQL> alter system set archive_lag_target=300 scope=both;
    

    Zie Referentiearchitecturen voor Oracle Database voor Oracle Database voor meer informatie over het implementeren van maximaal beschikbare Oracle Database-exemplaren in Azure met nul RPO's.

  8. Zorg ervoor dat de database zich in de archieflogboekmodus bevindt om online back-ups in te schakelen.

    Controleer eerst de status van het logboekarchief:

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

    Als deze zich in NOARCHIVELOG de modus bevindt, voert u de volgende opdrachten uit:

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  9. 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 uw gegevens met behulp van Azure Backup

De Azure Backup-service biedt oplossingen voor het maken van back-ups van uw gegevens en het herstellen van de Microsoft Azure-cloud. Azure Backup biedt onafhankelijke en geïsoleerde back-ups om te voorkomen dat oorspronkelijke gegevens per ongeluk worden vernietigd. Back-ups worden opgeslagen in een Recovery Services-kluis met ingebouwd beheer van herstelpunten, zodat u indien nodig kunt herstellen.

In deze sectie gebruikt u Azure Backup om toepassingsconsistente momentopnamen te maken van uw actieve VM- en Oracle Database-exemplaren. De databases worden in de back-upmodus geplaatst, waardoor een transactioneel consistente online back-up kan plaatsvinden terwijl Azure Backup een momentopname maakt van de VM-schijven. De momentopname is een volledige kopie van de opslag en niet een incrementele of copy-on-write-momentopname. Het is een effectief medium om uw database te herstellen.

Het voordeel van het gebruik van azure Backup-toepassingsconsistente momentopnamen is dat ze snel kunnen worden gemaakt, ongeacht hoe groot uw database is. U kunt een momentopname gebruiken voor herstelbewerkingen zodra u deze neemt, zonder dat u hoeft te wachten totdat deze wordt overgedragen naar de Recovery Services-kluis.

Als u Azure Backup wilt gebruiken om een back-up van de database te maken, voert u de volgende stappen uit:

  1. Meer informatie over het Azure Backup-framework.
  2. Bereid de omgeving voor op een toepassingsconsistente back-up.
  3. Toepassingsconsistente back-ups instellen.
  4. Activeer een toepassingsconsistente back-up van de virtuele machine.

Inzicht in het Azure Backup-framework

De Azure Backup-service biedt een framework voor het bereiken van toepassingsconsistentie tijdens back-ups van Windows- en Linux-VM's voor verschillende toepassingen. Dit framework omvat het aanroepen van een prescript om de toepassingen stil te zetten voordat u een momentopname van schijven maakt. Er wordt een postscript aanroepen om de blokkering van de toepassingen op te heffen nadat de momentopname is voltooid.

Microsoft heeft het framework verbeterd, zodat de Azure Backup-service verpakte prescripts en postscripts biedt voor geselecteerde toepassingen. Deze prescripts en postscripts zijn al geladen op de Linux-installatiekopieën, zodat u niets hoeft te installeren. U noemt alleen de toepassing en vervolgens roept Azure Backup automatisch de relevante scripts aan. Microsoft beheert de verpakte prescripts en postscripts, zodat u verzekerd bent van de ondersteuning, het eigendom en de geldigheid ervan.

Momenteel zijn de ondersteunde toepassingen voor het verbeterde framework Oracle 12.x of hoger en MySQL. Zie ondersteuningsmatrix voor beheerde Back-ups van Virtuele Azure-machines voor meer informatie.

U kunt uw eigen scripts maken voor Azure Backup voor gebruik met pre-12.x-databases. Voorbeeldscripts zijn beschikbaar op GitHub.

Telkens wanneer u een back-up uitvoert, worden met het verbeterde framework de prescripts en postscripts uitgevoerd op alle Oracle Database-exemplaren die op de VIRTUELE machine zijn geïnstalleerd. De configuration_path parameter in het bestand workload.conf verwijst naar de locatie van het Oracle /etc/oratab-bestand (of een door de gebruiker gedefinieerd bestand dat de oratab-syntaxis volgt). Zie Toepassingsconsistente back-ups instellen voor meer informatie.

Azure Backup voert de prescripts en postscripts uit voor elke database die wordt vermeld in het bestand waarnaar configuration_path verwijst. Uitzonderingen zijn regels die beginnen met # (behandeld als opmerking) of +ASM (een Oracle ASM-exemplaar).

Het verbeterde Framework van Azure Backup maakt online back-ups van Oracle Database-exemplaren die in ARCHIVELOG de modus werken. De prescripts en postscripts gebruiken de ALTER DATABASE BEGIN en END BACKUP opdrachten om toepassingsconsistentie te bereiken.

Voor een consistente databaseback-up moeten databases in NOARCHIVELOG de modus schoon worden afgesloten voordat de momentopname wordt gestart.

De omgeving voorbereiden voor een toepassingsconsistente back-up

Oracle Database maakt gebruik van functierolscheiding om taken te scheiden met behulp van minimale bevoegdheden. Het koppelt afzonderlijke besturingssysteemgroepen aan afzonderlijke databasebeheerdersrollen. Gebruikers kunnen vervolgens verschillende databasebevoegdheden aan hen toewijzen, afhankelijk van hun lidmaatschap van besturingssysteemgroepen.

De SYSBACKUP databaserol (algemene naam OSBACKUPDBA) biedt beperkte bevoegdheden voor het uitvoeren van back-upbewerkingen in de database. Azure Backup vereist dit.

Tijdens de installatie van Oracle raden we u aan om te gebruiken backupdba als de naam van de besturingssysteemgroep om te koppelen aan de SYSBACKUP rol. Maar u kunt elke naam gebruiken, dus u moet eerst de naam bepalen van de besturingssysteemgroep die de Oracle-rol SYSBACKUP vertegenwoordigt.

  1. Overschakelen naar de oracle gebruiker:

    sudo su - oracle
    
  2. De Oracle-omgeving instellen:

    export ORACLE_SID=oratest1
    export ORAENV_ASK=NO
    . oraenv
    
  3. Bepaal de naam van de besturingssysteemgroep die de Oracle-rol SYSBACKUP vertegenwoordigt:

    grep "define SS_BKP" $ORACLE_HOME/rdbms/lib/config.c
    

    De uitvoer ziet er ongeveer als volgt uit:

    #define SS_BKP_GRP "backupdba"
    

    In de uitvoer is de waarde tussen dubbele aanhalingstekens de naam van de Linux-besturingssysteemgroep waaraan de Oracle-rol SYSBACKUP extern wordt geverifieerd. In dit voorbeeld is het backupdba. Noteer de werkelijke waarde.

  4. Controleer of de besturingssysteemgroep bestaat door de volgende opdracht uit te voeren. Vervang <group name> door de waarde die door de vorige opdracht is geretourneerd (zonder de aanhalingstekens).

    grep <group name> /etc/group
    

    De uitvoer ziet er ongeveer als volgt uit:

    backupdba:x:54324:oracle
    

    Belangrijk

    Als de uitvoer niet overeenkomt met de Oracle OS-groepswaarde die u in stap 3 hebt opgehaald, gebruikt u de volgende opdracht om de besturingssysteemgroep te maken die de Oracle-rol SYSBACKUP vertegenwoordigt. Vervang deze <group name> door de groepsnaam die u in stap 3 hebt opgehaald.

    sudo groupadd <group name>
    
  5. Maak een nieuwe back-upgebruiker met de naam azbackup die deel uitmaakt van de besturingssysteemgroep die u in de vorige stappen hebt geverifieerd of gemaakt. Vervang deze <group name> door de naam van de geverifieerde groep. De gebruiker wordt ook toegevoegd aan de oinstall groep zodat deze ASM-schijven kan openen.

    sudo useradd -g <group name> -G oinstall azbackup
    
  6. Stel externe verificatie in voor de nieuwe back-upgebruiker.

    De back-upgebruiker azbackup moet toegang hebben tot de database met behulp van externe verificatie, zodat deze niet wordt gevraagd door een wachtwoord. Als u deze toegang wilt inschakelen, moet u een databasegebruiker maken die extern wordt geverifieerd via azbackup. De database gebruikt een voorvoegsel voor de gebruikersnaam, die u moet vinden.

    Voer de volgende stappen uit voor elke database die op de VM is geïnstalleerd:

    1. Meld u aan bij de database met behulp van SQL Plus en controleer de standaardinstellingen voor externe verificatie:

      sqlplus / as sysdba
      SQL> show parameter os_authent_prefix
      SQL> show parameter remote_os_authent
      

      De uitvoer moet eruitzien zoals in dit voorbeeld, dat wordt weergegeven ops$ als het voorvoegsel voor de gebruikersnaam van de database:

      NAME                                 TYPE        VALUE
      ------------------------------------ ----------- ------------------------------
      os_authent_prefix                    string      ops$
      remote_os_authent                    boolean     FALSE
      
    2. Maak een databasegebruiker met de naam ops$azbackup externe verificatie voor de azbackup gebruiker en verdeel SYSBACKUP bevoegdheden:

      SQL> CREATE USER ops$azbackup IDENTIFIED EXTERNALLY;
      SQL> GRANT CREATE SESSION, ALTER SESSION, SYSBACKUP TO ops$azbackup;
      
  7. Als u de fout ORA-46953: The password file is not in the 12.2 format ontvangt wanneer u de GRANT instructie uitvoert, volgt u deze stappen om het orapwd-bestand te migreren naar de 12.2-indeling. Voer deze stappen uit voor elk Oracle Database-exemplaar op de VIRTUELE machine.

    1. Sluit SQL Plus af.

    2. Verplaats het wachtwoordbestand met de oude indeling naar een nieuwe naam.

    3. Migreer het wachtwoordbestand.

    4. Verwijder het oude bestand.

    5. Voer de volgende opdrachten uit:

      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
      
    6. Voer de GRANT bewerking opnieuw uit in SQL Plus.

  8. Maak een opgeslagen procedure voor het vastleggen van back-upberichten in het waarschuwingslogboek van de database. Gebruik de volgende code voor elke database die op de VM is geïnstalleerd:

    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
    

Toepassingsconsistente back-ups instellen

  1. Overschakelen naar de hoofdgebruiker:

    sudo su -
    
  2. Controleer op de map /etc/azure . Als deze niet aanwezig is, maakt u de werkmap voor de toepassingsconsistente back-up:

    if [ ! -d "/etc/azure" ]; then
       mkdir /etc/azure
    fi
    
  3. Controleer of het bestand workload.conf zich in de map bevindt. Als deze niet aanwezig is, maakt u deze in de map /etc/azure en geeft u deze de volgende inhoud. De opmerkingen moeten beginnen met [workload]. Als het bestand al aanwezig is, bewerkt u de velden zodat deze overeenkomen met de volgende inhoud. Anders wordt met de volgende opdracht het bestand gemaakt en wordt de inhoud gevuld:

    echo "[workload]
    workload_name = oracle
    configuration_path = /etc/oratab
    timeout = 90
    linux_user = azbackup" > /etc/azure/workload.conf
    

    Het bestand workload.conf gebruikt de volgende indeling:

    • De workload_name parameter geeft het type databaseworkload aan. In dit geval stelt u de parameter in zodat Oracle Azure Backup de juiste prescripts en postscripts (consistentieopdrachten) kan uitvoeren voor Oracle Database-exemplaren.
    • De timeout parameter geeft de maximale tijd aan, in seconden, dat elke database opslagmomentopnamen moet voltooien.
    • De linux_user parameter geeft het Linux-gebruikersaccount aan dat door Azure Backup wordt gebruikt voor het uitvoeren van database-quiesce-bewerkingen. U hebt deze gebruiker gemaakt, azbackupeerder.
    • De configuration_path parameter geeft de absolute padnaam aan voor een tekstbestand op de VIRTUELE machine. Elke regel bevat een database-exemplaar dat wordt uitgevoerd op de virtuele machine. Dit is meestal het /etc/oratab-bestand dat Oracle tijdens de installatie van de database genereert, maar het kan elk bestand zijn met elke naam die u kiest. Deze moet de volgende notatieregels volgen:
      • Het bestand is een tekstbestand. Elk veld wordt gescheiden door het dubbele punt (:).
      • Het eerste veld in elke regel is de naam voor een ORACLE_SID exemplaar.
      • Het tweede veld in elke regel is de absolute padnaam voor ORACLE_HOME dat ORACLE_SID exemplaar.
      • Alle tekst na de eerste twee velden wordt genegeerd.
      • Als de lijn begint met een hekje (#), wordt de hele lijn genegeerd als opmerking.
      • Als het eerste veld de waarde +ASMheeft, die een Oracle ASM-exemplaar aangeeft, wordt dit genegeerd.

Een toepassingsconsistente back-up van de VM activeren

  1. Ga in Azure Portal naar uw rg-oracle-resourcegroep en selecteer uw virtuele machine vmoracle19c .

  2. In het deelvenster Back-up :

    1. Selecteer Onder Recovery Services-kluis de optie Nieuwe maken.
    2. Gebruik myVault voor de naam van de kluis.
    3. Voor resourcegroep selecteert u rg-oracle.
    4. Gebruik (nieuw) DailyPolicy voor Back-upbeleid kiezen. Als u de back-upfrequentie of het bewaarbereik wilt wijzigen, selecteert u in plaats daarvan Een nieuw beleid maken.

    Schermopname van het deelvenster voor het configureren van een nieuwe Recovery Services-kluis.

  3. Selecteer Back-up inschakelen.

    Het back-upproces wordt pas gestart als de geplande tijd verloopt. Voltooi de volgende stap om een onmiddellijke back-up in te stellen.

  4. Selecteer in het deelvenster van de resourcegroep de zojuist gemaakte Recovery Services-kluis met de naam myVault. Mogelijk moet u de pagina vernieuwen om deze te zien.

  5. Selecteer in het deelvenster MyVault - Back-upitems onder AANTAL BACK-UPITEMS het aantal back-upitems.

    Schermopname met details voor een Recovery Services-kluis.

  6. Selecteer in het deelvenster Back-upitems (Virtuele Azure-machine) de knop met het beletselteken (...) en selecteer nu Back-up maken.

    Schermopname van de opdracht voor het maken van een back-up van Recovery Services-kluizen.

  7. Accepteer de standaardwaarde Back-up behouden tot en selecteer VERVOLGENS OK. Wacht tot het back-upproces is voltooid.

  8. Als u de status van de back-uptaak wilt weergeven, selecteert u Back-uptaken.

    Schermopname van het deelvenster met back-uptaken voor een Recovery Services-kluis.

    Selecteer de back-uptaak om details over de status ervan weer te geven.

    Schermopname van gedetailleerde statusinformatie voor een back-uptaak.

    Hoewel het enkele seconden duurt om de momentopname uit te voeren, kan het langer duren voordat deze naar de kluis wordt overgedragen. De back-uptaak is pas voltooid als de overdracht is voltooid.

  9. Voor een toepassingsconsistente back-up kunt u eventuele fouten in het logboekbestand oplossen op /var/log/azure/Microsoft.Azure.RecoveryServices.VMSnapshotLinux/extension.log.

De virtuele machine herstellen

Als u een hele VIRTUELE machine herstelt, betekent dit dat u de VIRTUELE machine en de gekoppelde schijven vanaf een geselecteerd herstelpunt herstelt naar een nieuwe VIRTUELE machine. Met deze actie worden ook alle databases hersteld die op de VIRTUELE machine worden uitgevoerd. Daarna moet u elke database herstellen.

Voer de volgende stappen uit om een volledige VIRTUELE machine te herstellen:

  1. Stop de virtuele machine en verwijder deze.
  2. Herstel de VIRTUELE machine.
  3. Stel het openbare IP-adres in.
  4. Herstel de database.

Er zijn twee hoofdopties wanneer u een virtuele machine herstelt:

  • Herstel de VIRTUELE machine waaruit de back-ups oorspronkelijk zijn gemaakt.
  • Herstel (kloon) een nieuwe VIRTUELE machine zonder dat dit van invloed is op de VM van waaruit de back-ups oorspronkelijk zijn gemaakt.

Met de eerste stappen in deze oefening (stoppen, verwijderen en vervolgens de VM herstellen) wordt de eerste use-case gesimuleerd.

De VIRTUELE machine stoppen en verwijderen

  1. Ga in Azure Portal naar de virtuele machine vmoracle19c en selecteer Vervolgens Stoppen.

  2. Wanneer de virtuele machine niet meer wordt uitgevoerd, selecteert u Verwijderen en vervolgens Ja.

    Schermopname van het bevestigingsbericht voor het verwijderen van een virtuele machine.

De VIRTUELE machine herstellen

  1. Maak een opslagaccount voor fasering in Azure Portal:

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

      Schermopname van waar een resource moet worden gemaakt.

    2. In het deelvenster Opslagaccount maken:

      1. Selecteer voor resourcegroep uw bestaande resourcegroep, rg-oracle.
      2. Voer oracrestore 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 Controleren + maken en selecteer vervolgens Maken.

  2. Zoek in Azure Portal naar de myVault Recovery Services-kluis en selecteer deze.

    Schermopname van het selecteren van een Recovery Services-kluis.

  3. Selecteer Back-upitems in het deelvenster Overzicht. Selecteer vervolgens virtuele Azure-machine, die een niet-nulnummer moet hebben voor HET AANTAL BACK-UPSITEMS.

    Schermopname van selecties voor een back-upitem van een virtuele machine voor een Recovery Services-kluis.

  4. Selecteer in het deelvenster Back-upsitems (Azure Virtual Machine) de VM vmoracle19c .

    Schermopname van het deelvenster voor back-upitems van virtuele machines.

  5. Kies in het deelvenster vmoracle19c een herstelpunt met een consistentietype Toepassingsconsistente. Selecteer het beletselteken (...) en selecteer vervolgens Vm herstellen.

    Schermopname van de opdracht voor het herstellen van een VIRTUELE machine.

  6. In het deelvenster Virtuele machine herstellen:

    1. Selecteer Nieuwe maken.

    2. Selecteer voor Hersteltype de optie Nieuwe virtuele machine maken.

    3. Voer voor de naam van de virtuele machine vmoracle19c in.

    4. Voor virtueel netwerk selecteert u vmoracle19cVNET.

      Het subnet wordt automatisch ingevuld op basis van uw selectie voor het virtuele netwerk.

    5. Voor faseringslocatie is voor het herstellen van een VIRTUELE machine een Azure-opslagaccount in dezelfde resourcegroep en regio vereist. U kunt een opslagaccount of een hersteltaak kiezen die u eerder hebt ingesteld.

    Schermopname van waarden voor het herstellen van een virtuele machine.

  7. Als u de VIRTUELE machine wilt herstellen, selecteert u de knop Herstellen .

  8. Als u de status van het herstelproces wilt weergeven, selecteert u Taken en selecteert u vervolgens Back-uptaken.

    Schermopname van een lijst met back-uptaken.

    Selecteer de bewerking Wordt uitgevoerd om details weer te geven over de status van het herstelproces.

    Schermopname van gedetailleerde statusinformatie over een herstelproces.

Het openbare IP-adres instellen

Nadat de VIRTUELE machine is hersteld, moet u het oorspronkelijke IP-adres opnieuw toewijzen aan de nieuwe VIRTUELE machine.

  1. Ga in Azure Portal naar uw virtuele machine met de naam vmoracle19c. Er wordt een nieuw openbaar IP- en NIC-adres toegewezen dat vergelijkbaar is met vmoracle19c-nic-XXXXXXXXXXXXXX, maar er is geen DNS-adres. Toen de oorspronkelijke VM werd verwijderd, werden het openbare IP- en NIC behouden. De volgende stappen koppelen ze opnieuw aan de nieuwe VIRTUELE machine.

    Schermopname van een lijst met openbare IP-adressen.

  2. Stop de virtuele machine.

    Schermopname van selecties voor het stoppen van een virtuele machine.

  3. Ga naar Netwerken.

    Schermopname van netwerkgegevens.

  4. Selecteer Netwerkinterface koppelen. Selecteer de oorspronkelijke NIC vmoracle19cVMNic waaraan het oorspronkelijke openbare IP-adres nog steeds is gekoppeld. Selecteer vervolgens OK.

    Schermopname van het selecteren van resourcetype en NIC-waarden.

  5. Ontkoppel de NIC die u hebt gemaakt met de herstelbewerking van de virtuele machine, omdat deze is geconfigureerd als de primaire interface. Selecteer Netwerkinterface loskoppelen, selecteer de NIC die vergelijkbaar is met vmoracle19c-nic-XXXXXXXXXXXXXX EN selecteer VERVOLGENS OK.

    Schermopname van het deelvenster voor het loskoppelen van een netwerkinterface.

    Uw opnieuw gemaakte VIRTUELE machine heeft nu de oorspronkelijke NIC, die is gekoppeld aan de oorspronkelijke IP-adres- en netwerkbeveiligingsgroepsregels.

    Schermopname van een IP-adreswaarde.

  6. Ga terug naar het deelvenster Overzicht en selecteer Start.

De database herstellen

Een database herstellen na een voltooide VM-herstel:

  1. Opnieuw verbinding maken met de virtuele machine:

    ssh azureuser@<publicIpAddress>
    
    

    Wanneer de hele VIRTUELE machine wordt hersteld, is het belangrijk dat u de databases op de virtuele machine herstelt door de volgende stappen uit te voeren op elke database.

  2. Het kan zijn dat het exemplaar wordt uitgevoerd, omdat de autostart heeft geprobeerd de database te starten bij het opstarten van de VIRTUELE machine. De database vereist echter herstel en bevindt zich waarschijnlijk alleen in de koppelfase. Voer een voorbereidende afsluiting uit voordat u de koppelfase start:

    sudo su - oracle
    sqlplus / as sysdba
    SQL> shutdown immediate
    SQL> startup mount
    
  3. Databaseherstel uitvoeren.

    Het is belangrijk om de USING BACKUP CONTROLFILE syntaxis op te geven om de RECOVER AUTOMATIC DATABASE opdracht te informeren dat herstel niet mag stoppen bij het Oracle-systeemwijzigingsnummer (SCN) dat is vastgelegd in het herstelde databasebeheerbestand.

    Het herstelde databasebeheerbestand was een momentopname, samen met de rest van de database. De SCN die erin is opgeslagen, is vanaf het tijdstip van de momentopname. Er kunnen transacties worden vastgelegd na dit punt en u wilt herstellen naar het punt van de laatste transactie die is doorgevoerd in de database.

    SQL> recover automatic database using backup controlfile until cancel;
    
  4. Wanneer het laatst beschikbare archieflogboekbestand wordt toegepast, voert u CANCEL het herstelproces uit.

    Wanneer het herstel is voltooid, wordt het bericht Media recovery complete weergegeven.

    Wanneer u echter de BACKUP CONTROLFILE component gebruikt, negeert de herstelopdracht onlinelogboekbestanden. Het is mogelijk dat wijzigingen in het huidige online opnieuw logboek vereist zijn om herstel naar een bepaald tijdstip te voltooien. In deze situatie ziet u mogelijk berichten die vergelijkbaar zijn met deze voorbeelden:

    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}
    

    Belangrijk

    Als het huidige online opnieuw logboek verloren gaat of beschadigd is en u het niet kunt gebruiken, kunt u het herstel op dit moment annuleren.

    Om deze situatie te verhelpen, kunt u bepalen welk onlinelogboek niet is gearchiveerd en de volledig gekwalificeerde bestandsnaam aan de prompt opgeven.

  5. Open de database.

    De RESETLOGS optie is vereist wanneer de RECOVER opdracht gebruikmaakt van de USING BACKUP CONTROLFILE optie. RESETLOGS maakt een nieuwe incarnatie van de database door de geschiedenis opnieuw in te stellen op het begin, omdat er geen manier is om te bepalen hoeveel van de vorige database-incarnatie is overgeslagen in het herstel.

    SQL> alter database open resetlogs;
    
  6. Controleer of de database-inhoud is hersteld:

    SQL> select * from scott.scott_table;
    

De back-up en het herstel van Oracle Database op een Virtuele Linux-machine van Azure zijn nu voltooid.

Meer informatie over Oracle-opdrachten en -concepten vindt u in de Oracle-documentatie, waaronder:

De VM verwijderen

Wanneer u de VIRTUELE machine niet meer nodig hebt, kunt u de volgende opdrachten gebruiken om de resourcegroep, de VM en alle gerelateerde resources te verwijderen:

  1. Schakel voorlopig verwijderen van back-ups in de kluis uit:

    az backup vault backup-properties set --name myVault --resource-group rg-oracle --soft-delete-feature-state disable
    
  2. Stop de beveiliging voor de virtuele machine en verwijder back-ups:

    az backup protection disable --resource-group rg-oracle --vault-name myVault --container-name vmoracle19c --item-name vmoracle19c --delete-backup-data true --yes
    
  3. Verwijder de resourcegroep, inclusief alle resources:

    az group delete --name rg-oracle
    

Volgende stappen

Virtuele machines met hoge beschikbaarheid maken

Azure CLI-voorbeelden voor VM-implementatie verkennen