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
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
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í
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>
Přepněte na uživatele root:
sudo su -
oracle
Přidejte uživatele do souboru /etc/sudoers:echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
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
Před připojením nastavte proměnnou
ORACLE_SID
prostředí:export ORACLE_SID=test;
Proměnnou
ORACLE_SID
byste také měli přidat dooracle
souboru .bashrc uživatele pro budoucí přihlášení pomocí následujícího příkazu:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
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
Vytvořte umístění pro oblast rychlého obnovení:
mkdir /u02/fast_recovery_area
Připojte se k databázi:
sqlplus / as sysdba
Spusťte databázi, pokud ještě není spuštěná:
SQL> startup
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;
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;
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:
- Nastavení služby Azure Files
- Připojte sdílenou složku Azure k virtuálnímu počítači.
- Zálohujte databázi.
- 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ě:
Na webu Azure Portal vyberte + Vytvořit prostředek a pak vyhledejte a vyberte Účet úložiště.
V podokně Vytvořit účet úložiště:
- Jako skupinu prostředků vyberte existující skupinu prostředků rg-oracle.
- Jako název účtu úložiště zadejte oracbkup1.
- Ujistěte se, že je umístění nastavené na stejnou oblast jako všechny ostatní prostředky ve skupině prostředků.
- Nastavte výkon na standard.
- Jako druh účtu vyberte StorageV2 (pro obecné účely v2).
- V případě replikace vyberte místně redundantní úložiště (LRS).
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.
Po vytvoření účtu úložiště přejděte k prostředku a vyberte Sdílené složky.
Vyberte + Sdílená složka a potom na panelu Nová sdílená složka:
Jako název zadejte orabkup1.
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.
V části Vrstvy vyberte Optimalizováno pro transakce.
Vyberte Vytvořit.
Po vytvoření sdílené složky vyberte orabkup1 v podokně Nastavení sdílené složky.
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.
Připojení sdílené složky Azure k virtuálnímu počítači
Vytvořte přípojný bod:
sudo mkdir /mnt/orabackup
Nastavení přihlašovacích údajů:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
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
Změna oprávnění k souboru s přihlašovacími údaji:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
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'
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
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.
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';
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;
Potvrďte podrobnosti o změně konfigurace:
RMAN> show all;
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
Vypněte instanci Oracle:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Odeberte datové soubory databáze:
cd /u02/oradata/TEST rm -f *.dbf
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;
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