Zálohování a obnovení databáze Oracle na virtuálním počítači Azure s Linuxem pomocí Azure Files

Platí pro: ✔️ Virtuální počítače s Linuxem

Tento článek ukazuje použití Azure Files jako média k zálohování a obnovení databáze Oracle spuštěné na virtuálním počítači Azure. Kroky v tomto článku byly testovány s oraclem 12.1 a novějším.

V tomto článku použijete Oracle Recovery Manager (RMAN) k zálohování databáze do sdílené složky Azure připojené k virtuálnímu počítači prostřednictvím protokolu SMB (Server Message Block). Použití Azure Files pro zálohovací médium je nákladově efektivní a výkonné. Pro velmi velké databáze však Azure Backup poskytuje lepší řešení.

Požadavky

Příprava databázového prostředí

  1. K vytvoření relace SSH (Secure Shell) s virtuálním počítačem použijte následující příkaz. Nahraďte <publicIpAddress> hodnotou veřejné adresy pro váš virtuální počítač.

    ssh azureuser@<publicIpAddress>
    
  2. Přepněte na uživatele root:

    sudo su -
    
  3. oracle Přidejte uživatele do souboru /etc/sudoers:

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    
  4. Tento krok předpokládá, že máte instanci Oracle (test), která běží na virtuálním počítači s názvem vmoracle19c.

    Přepněte na oracle uživatele:

    sudo su - oracle
    
  5. Před připojením nastavte proměnnou ORACLE_SIDprostředí :

    export ORACLE_SID=test;
    

    Proměnnou ORACLE_SID byste také měli přidat do oracle souboru .bashrc uživatele pro budoucí přihlášení pomocí následujícího příkazu:

    echo "export ORACLE_SID=test" >> ~oracle/.bashrc
    
  6. Pokud ještě není spuštěný, spusťte naslouchací proces Oracle:

    lsnrctl start
    

    Výstup by měl vypadat zhruba jako v tomto příkladu:

    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. Vytvořte umístění pro oblast rychlého obnovení:

    mkdir /u02/fast_recovery_area
    
  8. Připojte se k databázi:

    sqlplus / as sysdba
    
  9. Spusťte databázi, pokud ještě není spuštěná:

    SQL> startup
    
  10. Nastavte proměnné prostředí databáze pro oblast rychlého obnovení:

    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. Ujistěte se, že je databáze v ARCHIVELOG režimu pro povolení online zálohování.

    Zkontrolujte stav archivu protokolu:

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

    Pokud je archiv protokolů v NOARCHIVELOG režimu, spusťte v SQL Plus následující příkazy:

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  12. Vytvořte tabulku pro testování operací zálohování a obnovení:

    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
    

Zálohování do Azure Files

Pokud chcete zálohovat do Azure Files, proveďte tyto kroky:

  1. Nastavte Azure Files.
  2. Připojte sdílenou složku Azure k virtuálnímu počítači.
  3. Zálohujte databázi.
  4. Obnovte a obnovte databázi.

Nastavení Azure Files

V této části zálohujete databázi Oracle do Azure Files pomocí oracle RMAN. Sdílené složky Azure jsou plně spravované sdílené složky, které zůstávají v cloudu. Můžete k nim přistupovat pomocí protokolu SMB nebo protokolu NFS (Network File System).

Následující postupy zahrnují vytvoření sdílené složky, která k připojení k vašemu virtuálnímu počítači používá protokol SMB. Informace o připojení pomocí systému souborů NFS najdete v tématu Vytvoření sdílené složky NFS.

Při připojování sdílené složky Azure použijte cache=none možnost zakázat ukládání dat sdílených složek do mezipaměti. Pokud chcete zajistit, aby oracle uživatel vlastní soubory vytvořené ve sdílené složce, nastavte uid=oracle možnosti a gid=oinstall .

Nastavení účtu úložiště:

  1. V Azure Portal vyberte + Vytvořit prostředek a pak vyhledejte a vyberte Účet úložiště.

    Snímek obrazovky, který ukazuje, kde vytvořit prostředek a vybrat účet úložiště

  2. V podokně Vytvořit účet úložiště :

    1. V části Skupina prostředků vyberte existující skupinu prostředků , rg-oracle.
    2. Jako Název účtu úložiště zadejte oracbkup1.
    3. Ujistěte se, že umístění je nastavené na stejnou oblast jako všechny ostatní prostředky ve skupině prostředků.
    4. Nastavte Výkon na Standard.
    5. V části Druh účtu vyberte StorageV2 (pro obecné účely v2).
    6. V části Replikace vyberte Místně redundantní úložiště (LRS).

    Snímek obrazovky se základními informacemi o vytvoření účtu úložiště

  3. Vyberte kartu Upřesnit. V části Azure Files nastavte Velké sdílené složky na Povoleno. Vyberte Zkontrolovat a vytvořit a potom vyberte Vytvořit.

    Snímek obrazovky znázorňující kartu pro povolení velkých sdílených složek

  4. Po vytvoření účtu úložiště přejděte k prostředku a vyberte Sdílené složky.

    Snímek obrazovky, který ukazuje, kde vybrat sdílené složky pro prostředek

  5. Vyberte + Sdílená složka a pak na panelu Nová sdílená složka :

    1. Jako Název zadejte orabkup1.

    2. Nastavte kvótu na 10240 gibibajtů (GiB).

      Kvóta odráží horní hranici, na kterou může sdílená složka narůstat. Vzhledem k tomu, že v tomto příkladu používáte úložiště úrovně Standard, jsou prostředky průběžné platby a nezřizují se. Takže nastavením kvóty na 10 tebibajtů (TiB) se nebudou účtovat náklady nad rámec toho, co používáte. Pokud vaše strategie zálohování vyžaduje více úložiště, nastavte kvótu na odpovídající úroveň pro uložení všech záloh.

    3. V části Vrstvy vyberte Optimalizované transakce.

    4. Vyberte Vytvořit.

    Snímek obrazovky znázorňující výběry pro přidání nové sdílené složky

  6. Po vytvoření sdílené složky vyberte v podokně Nastavení sdílené složkyorabkup1.

  7. Výběrem karty Připojit otevřete panel Připojit a pak vyberte kartu Linux . Zkopírujte zadané příkazy a připojte sdílenou složku pomocí protokolu SMB.

    Snímek obrazovky znázorňující panel pro přístup k příkazům pro připojení sdílené složky k počítači s Linuxem

Připojení sdílené složky Azure k virtuálnímu počítači

  1. Vytvořte přípojný bod:

    sudo mkdir /mnt/orabackup
    
  2. Nastavení přihlašovacích údajů:

    if [ ! -d "/etc/smbcredentials" ]; then
     sudo mkdir /etc/smbcredentials
    fi
    
  3. Spusťte následující příkaz. Nahraďte <Your Storage Account Key1> klíčem účtu úložiště, který jste načetli dříve.

    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. Změna oprávnění k souboru přihlašovacích údajů:

    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. Přidejte připojení do souboru /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. Spuštěním příkazů připojte sdílenou složku Azure pomocí protokolu SMB:

    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
    

    Pokud se zobrazí chyba podobná následujícímu příkladu, nemusí být balíček CIFS (Common Internet File System) na linuxovém hostiteli nainstalovaný:

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

    Pokud chcete zkontrolovat, jestli je balíček CIFS nainstalovaný, spusťte následující příkaz:

    sudo rpm -qa|grep cifs-utils
    

    Pokud příkaz nevrátí žádný výstup, nainstalujte balíček CIFS pomocí následujícího příkazu. Potom znovu spusťte mount příkaz pro připojení sdílené složky Azure.

    sudo yum install cifs-utils
    
  7. Pomocí následujícího příkazu zkontrolujte, jestli je sdílená složka správně připojená:

    df -h
    

    Výstup by měl vypadat podobně jako v tomto příkladu:

    $ 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
    

Zálohování databáze

V této části použijete Oracle RMAN k úplnému zálohování databázových a archivních protokolů. Potom zapíšete zálohu jako záložní sadu do sdílené složky Azure, kterou jste připojili dříve.

  1. Nakonfigurujte RMAN pro zálohování do přípojného bodu 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';
    
  2. V tomto příkladu omezujete velikost záloh RMAN na 4 GiB. Hodnota zálohování maxpiecesize RMAN však může být až 4 TiB, což je limit velikosti souborů pro sdílené složky Azure Standard a sdílené složky Úrovně Premium. Další informace najdete v tématu Azure Files cíle škálovatelnosti a výkonu.

    RMAN> configure channel device type disk maxpiecesize 4000G;
    
  3. Potvrďte podrobnosti o změně konfigurace:

    RMAN> show all;
    
  4. Spusťte zálohování. Následující příkaz převezme úplnou zálohu databáze, včetně archivačních souborů protokolů, jako záložní sadu v komprimovaném formátu:

    RMAN> backup as compressed backupset database plus archivelog;
    

Teď jste databázi zálohovali online pomocí Oracle RMAN, přičemž záloha se nachází v Azure Files. Vzhledem k tomu, že zálohy ukládáte do Azure Files, můžete k nim přistupovat z jiných virtuálních počítačů, pokud potřebujete databázi naklonovat.

I když použití RMAN a Azure Files pro zálohování databáze má řadu výhod, doba zálohování a obnovení je propojená s velikostí databáze. U velmi rozsáhlých databází můžou tyto operace trvat poměrně dlouho.

Alternativou je použít zálohy virtuálních počítačů konzistentní vzhledem k aplikacím prostřednictvím Azure Backup. Tento mechanismus používá technologii snímků k provádění rychlých záloh bez ohledu na velikost databáze. Integrace s trezorem služby Recovery Services poskytuje cloudové úložiště záloh Oracle Database, abyste k nim měli přístup z jiných virtuálních počítačů a dalších oblastí Azure.

Obnovení a obnovení databáze

  1. Vypnutí instance Oracle:

    sqlplus / as sysdba
    SQL> shutdown abort
    ORACLE instance shut down.
    
  2. Odeberte datové soubory databáze:

    cd /u02/oradata/TEST
    rm -f *.dbf
    
  3. Následující příkazy používají RMAN k obnovení chybějících datových souborů a obnovení databáze:

    rman target /
    RMAN> startup mount;
    RMAN> restore database;
    RMAN> recover database;
    RMAN> alter database open;
    
  4. Zkontrolujte, jestli je obsah databáze plně obnovený:

    RMAN> SELECT * FROM scott.scott_table;
    

Zálohování a obnovení databáze Oracle Database 19c na virtuálním počítači Azure s Linuxem je teď hotové.

Odstranění virtuálního počítače

Pokud už virtuální počítač nepotřebujete, můžete pomocí následujícího příkazu odebrat skupinu prostředků, virtuální počítač a všechny související prostředky:

az group delete --name rg-oracle

Další kroky

Vytvoření vysoce dostupných virtuálních počítačů

Prozkoumání ukázek Azure CLI pro nasazení virtuálních počítačů