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
Použijte prostředí Bash v Azure Cloud Shell. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shell.
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 databáze Oracle 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 pro váš virtuální počítač.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;
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;
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:
- Nastavte 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í 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ě:
V Azure Portal vyberte + Vytvořit prostředek a pak vyhledejte a vyberte Účet úložiště.
V podokně Vytvořit účet úložiště :
- V části Skupina prostředků vyberte existující skupinu prostředků , rg-oracle.
- Jako Název účtu úložiště zadejte oracbkup1.
- Ujistěte se, že umístění je nastavené na stejnou oblast jako všechny ostatní prostředky ve skupině prostředků.
- Nastavte Výkon na Standard.
- V části Druh účtu vyberte StorageV2 (pro obecné účely v2).
- V části Replikace vyberte Místně redundantní úložiště (LRS).
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.
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 pak 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 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.
V části Vrstvy vyberte Optimalizované transakce.
Vyberte Vytvořit.
Po vytvoření sdílené složky vyberte v podokně Nastavení sdílené složkyorabkup1.
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.
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>
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
Změna oprávnění k souboru přihlašovacích údajů:
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) 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
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.
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';
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;
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ě 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
Vypnutí instance 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ích počítačů