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

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

Tento článek ukazuje použití služby 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 proti Oracle 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 přes protokol SMB (Server Message Block). Použití služby Azure Files pro zálohovací médium je nákladově efektivní a výkonné. Azure Backup ale pro velké databáze poskytuje lepší řešení.

Požadavky

  • Pokud chcete provést proces zálohování a obnovení, musíte nejprve vytvořit virtuální počítač s Linuxem, který má nainstalovanou instanci Oracle Database. Doporučujeme používat Oracle 12.x nebo novější.

  • Vytvořte instanci Oracle Database podle kroků v tématu Vytvoření instance Oracle Database na virtuálním počítači Azure.

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 vašeho virtuálního počítače.

    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. Ověřte, že je databáze v ARCHIVELOG režimu, aby bylo možné povolit online zálohy.

    Zkontrolujte stav archivu protokolu:

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

    Pokud je archiv protokolu 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 otestová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 služby Azure Files

Pokud chcete zálohovat soubory Azure, proveďte následující kroky:

  1. Nastavení služby 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í služby Azure Files

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

Následující postupy popisují vytvoření sdílené složky, která k připojení k virtuálnímu počítači používá protokol SMB. Informace o připojení pomocí systému souborů NFS naleznete 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é složky do mezipaměti. Pokud chcete zajistit, aby oracle uživatel vlastní soubory vytvořené ve sdílené složce, nastavte nastavení uid=oracle a gid=oinstall možnosti.

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

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

    Snímek obrazovky znázorňující, kde vytvořit prostředek a vybrat účet úložiště

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

    1. Jako skupinu 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 je umístění nastavené na stejnou oblast jako všechny ostatní prostředky ve skupině prostředků.
    4. Nastavte výkon na standard.
    5. Jako druh účtu vyberte StorageV2 (pro obecné účely v2).
    6. V případě replikace vyberte místně redundantní úložiště (LRS).

    Snímek obrazovky znázorňující základní informace pro vytvoření účtu úložiště

  3. Vyberte kartu Upřesnit. V části Soubory Azure 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 znázorňující, kde vybrat sdílené složky pro prostředek

  5. Vyberte + Sdílená složka a potom 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 růst. Vzhledem k tomu, že v tomto příkladu používáte úložiště úrovně Standard, prostředky jsou průběžné platby a nezřizují se. Nastavení kvóty na 10 tebibajtů (TiB) neúčtují náklady nad rámec toho, co používáte. Pokud vaše strategie zálohování vyžaduje větší úložiště, nastavte kvótu na odpovídající úroveň pro uložení všech záloh.

    3. V části Vrstvy vyberte Optimalizováno pro 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 orabkup1 v podokně Nastavení sdílené složky.

  7. Výběrem karty Připojit otevřete panel Připojení a pak vyberte kartu Linux. Zkopírujte zadané příkazy pro připojení sdílené složky 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> dříve načteným klíčem účtu úložiště.

    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 s přihlašovacími údaji:

    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) nainstalovaný na vašem hostiteli s Linuxem:

    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. Pak 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í protokolů databáze a archivu. Pak zapíšete zálohu jako zálohu nastavenou na sdílenou složku Azure, kterou jste připojili dříve.

  1. Nakonfigurujte RMAN pro zálohování do přípojného bodu služby 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áložních kusů RMAN na 4 GiB. Hodnota zálohování maxpiecesize RMAN ale může jít až 4 TiB, což je limit velikosti souboru pro sdílené složky Azure Úrovně Standard a sdílené složky úrovně Premium. Další informace najdete v tématu Škálovatelnost a výkonnostní cíle služby Azure Files.

    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ě souborů protokolu archivu, jako záložní sadu v komprimovaném formátu:

    RMAN> backup as compressed backupset database plus archivelog;
    

Databázi jste zálohovali online pomocí Oracle RMAN se zálohou umístěnou ve službě Azure Files. Vzhledem k tomu, že zálohy ukládáte ve službě Azure Files, můžete k nim přistupovat z jiných virtuálních počítačů, pokud potřebujete naklonovat databázi.

Použití služby RMAN a Azure Files pro zálohování databází má mnoho výhod. Doba zálohování a obnovení je propojena s velikostí databáze. U velkých databází může tyto operace trvat poměrně dlouho.

Alternativou je použití záloh virtuálních počítačů konzistentních vzhledem k aplikacím prostřednictvím služby 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 databáze Oracle, 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. Vypněte instanci 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ího počítače