Tworzenie kopii zapasowej i odzyskiwanie bazy danych Oracle Database na maszynie wirtualnej z systemem Linux platformy Azure przy użyciu usługi Azure Files
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
W tym artykule przedstawiono użycie usługi Azure Files jako nośnika do tworzenia kopii zapasowych i przywracania bazy danych Oracle działającej na maszynie wirtualnej platformy Azure. Kroki opisane w tym artykule zostały przetestowane pod kątem programu Oracle 12.1 lub nowszego.
W tym artykule użyjesz programu Oracle Recovery Manager (RMAN), aby utworzyć kopię zapasową bazy danych w udziale plików platformy Azure zainstalowanym na maszynie wirtualnej za pośrednictwem protokołu bloku komunikatów serwera (SMB). Korzystanie z usługi Azure Files na potrzeby nośnika kopii zapasowych jest opłacalne i wydajne. Jednak w przypadku dużych baz danych usługa Azure Backup zapewnia lepsze rozwiązanie.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Aby wykonać proces tworzenia kopii zapasowej i odzyskiwania, należy najpierw utworzyć maszynę wirtualną z systemem Linux z zainstalowanym wystąpieniem bazy danych Oracle Database. Zalecamy używanie programu Oracle 12.x lub nowszego.
Utwórz wystąpienie bazy danych Oracle, wykonując kroki opisane w temacie Tworzenie wystąpienia bazy danych Oracle Database na maszynie wirtualnej platformy Azure.
Przygotowywanie środowiska bazy danych
Aby utworzyć sesję protokołu Secure Shell (SSH) z maszyną wirtualną, użyj następującego polecenia. Zastąp
<publicIpAddress>
ciąg wartością publicznego adresu maszyny wirtualnej.ssh azureuser@<publicIpAddress>
Przejdź do użytkownika głównego:
sudo su -
oracle
Dodaj użytkownika do pliku /etc/sudoers:echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
W tym kroku założono, że masz wystąpienie Oracle (test) uruchomione na maszynie wirtualnej o nazwie vmoracle19c.
Przełącz się do
oracle
użytkownika:sudo su - oracle
Przed nawiązaniem połączenia ustaw zmienną środowiskową
ORACLE_SID
:export ORACLE_SID=test;
Należy również dodać zmienną
ORACLE_SID
dooracle
pliku bashrc użytkownika na potrzeby przyszłych logowania przy użyciu następującego polecenia:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
Uruchom odbiornik Oracle, jeśli jeszcze nie jest uruchomiony:
lsnrctl start
Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:
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
Utwórz lokalizację dla obszaru szybkiego odzyskiwania:
mkdir /u02/fast_recovery_area
Połącz się z bazą danych:
sqlplus / as sysdba
Uruchom bazę danych, jeśli nie jest jeszcze uruchomiona:
SQL> startup
Ustaw zmienne środowiskowe bazy danych dla obszaru szybkiego odzyskiwania:
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;
Sprawdź, czy baza danych jest w
ARCHIVELOG
trybie, aby włączyć kopie zapasowe online.Sprawdź stan archiwum dziennika:
SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG
Jeśli archiwum dzienników jest w
NOARCHIVELOG
trybie, uruchom następujące polecenia w programie SQL Plus:SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> ALTER SYSTEM SWITCH LOGFILE;
Utwórz tabelę, aby przetestować operacje tworzenia kopii zapasowej i przywracania:
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
Tworzenie kopii zapasowej w usłudze Azure Files
Aby utworzyć kopię zapasową w usłudze Azure Files, wykonaj następujące kroki:
- Konfigurowanie usługi Azure Files.
- Zainstaluj udział plików platformy Azure na maszynie wirtualnej.
- Tworzenie kopii zapasowej bazy danych.
- Przywracanie i odzyskiwanie bazy danych.
Konfigurowanie usługi Azure Files
W tej sekcji utworzysz kopię zapasową bazy danych Oracle w usłudze Azure Files przy użyciu narzędzia Oracle RMAN. Udziały plików platformy Azure to w pełni zarządzane udziały plików, które pozostają w chmurze. Dostęp do nich można uzyskać przy użyciu protokołu SMB lub protokołu sieciowego systemu plików (NFS).
Poniższe procedury obejmują tworzenie udziału plików, który używa protokołu SMB do zainstalowania na maszynie wirtualnej. Aby uzyskać informacje o sposobie instalowania przy użyciu systemu plików NFS, zobacz Tworzenie udziału NFS.
Podczas instalowania udziału plików platformy Azure użyj cache=none
opcji wyłączania buforowania danych udziału plików. Aby upewnić się, że użytkownik jest właścicielem oracle
plików utworzonych w udziale, ustaw uid=oracle
opcje i gid=oinstall
.
Skonfiguruj konto magazynu:
W witrynie Azure Portal wybierz pozycję + Utwórz zasób, a następnie wyszukaj i wybierz pozycję Konto magazynu.
W okienku Tworzenie konta magazynu:
- W obszarze Grupa zasobów wybierz istniejącą grupę zasobów rg-oracle.
- W polu Nazwa konta magazynu wprowadź wartość oracbkup1.
- Upewnij się, że opcja Lokalizacja jest ustawiona na ten sam region co wszystkie inne zasoby w grupie zasobów.
- Ustaw wartość Wydajność na Standardowa.
- W polu Rodzaj konta wybierz pozycję StorageV2 (ogólnego przeznaczenia w wersji 2).
- W obszarze Replikacja wybierz pozycję Magazyn lokalnie nadmiarowy (LRS).
Wybierz kartę Zaawansowane. W obszarze Azure Files ustaw pozycję Duże udziały plików na wartość Włączone. Wybierz pozycję Przejrzyj i utwórz, a następnie wybierz pozycję Utwórz.
Po utworzeniu konta magazynu przejdź do zasobu i wybierz pozycję Udziały plików.
Wybierz pozycję + Udział plików, a następnie na panelu Nowy udział plików:
W polu Nazwa wprowadź wartość orabkup1.
Ustaw wartość Limit przydziału na 10240 gibibajtów (GiB).
Limit przydziału odzwierciedla górną granicę, do której może wzrosnąć udział plików. Ponieważ w tym przykładzie używasz magazynu standardowego, zasoby są płatne zgodnie z rzeczywistym użyciem i nie są aprowidowane. Ustawienie limitu przydziału na 10 tebibajtów (TiB) nie powoduje ponoszenia kosztów poza użyciem. Jeśli strategia tworzenia kopii zapasowych wymaga większej ilości miejsca do magazynowania, ustaw limit przydziału na odpowiedni poziom, aby przechowywać wszystkie kopie zapasowe.
W obszarze Warstwy wybierz pozycję Zoptymalizowane pod kątem transakcji.
Wybierz pozycję Utwórz.
Po utworzeniu udziału plików wybierz pozycję orabkup1 w okienku Ustawienia udziału plików.
Wybierz kartę Połącz, aby otworzyć panel Połącz, a następnie wybierz kartę Linux. Skopiuj podane polecenia, aby zainstalować udział plików przy użyciu protokołu SMB.
Instalowanie udziału plików platformy Azure na maszynie wirtualnej
Utwórz punkt instalacji:
sudo mkdir /mnt/orabackup
Konfigurowanie poświadczeń:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
Uruchom następujące polecenie. Zastąp element
<Your Storage Account Key1>
kluczem konta magazynu pobranym wcześniej.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
Zmień uprawnienia w pliku poświadczeń:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
Dodaj instalację do pliku /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'
Uruchom polecenia, aby zainstalować udział plików platformy Azure przy użyciu protokołu 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
Jeśli wystąpi błąd podobny do poniższego przykładu, pakiet common Internet File System (CIFS) może nie zostać zainstalowany na hoście systemu Linux:
mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
Aby sprawdzić, czy pakiet CIFS jest zainstalowany, uruchom następujące polecenie:
sudo rpm -qa|grep cifs-utils
Jeśli polecenie nie zwraca żadnych danych wyjściowych, zainstaluj pakiet CIFS przy użyciu następującego polecenia. Następnie uruchom ponownie polecenie,
mount
aby zainstalować udział plików platformy Azure.sudo yum install cifs-utils
Sprawdź, czy udział plików jest poprawnie zainstalowany, używając następującego polecenia:
df -h
Dane wyjściowe powinny wyglądać podobnie do tego przykładu:
$ 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
Tworzenie kopii zapasowej bazy danych
W tej sekcji użyjesz narzędzia Oracle RMAN, aby utworzyć pełną kopię zapasową dzienników bazy danych i archiwum. Następnie zapisujesz kopię zapasową jako zestaw kopii zapasowych do zainstalowanego wcześniej udziału plików platformy Azure.
Skonfiguruj narzędzie RMAN, aby utworzyć kopię zapasową punktu instalacji usługi 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';
W tym przykładzie ograniczasz rozmiar elementów kopii zapasowych RMAN do 4 GiB. Jednak wartość kopii zapasowej
maxpiecesize
RMAN może przejść do 4 TiB, czyli limit rozmiaru plików dla standardowych udziałów plików platformy Azure i udziałów plików w warstwie Premium. Aby uzyskać więcej informacji, zobacz Cele dotyczące skalowalności i wydajności usługi Azure Files.RMAN> configure channel device type disk maxpiecesize 4000G;
Potwierdź szczegóły zmiany konfiguracji:
RMAN> show all;
Uruchom kopię zapasową. Następujące polecenie wykonuje pełną kopię zapasową bazy danych, w tym pliki dziennika archiwum, jako zestaw kopii zapasowych w formacie skompresowanym:
RMAN> backup as compressed backupset database plus archivelog;
Utworzono kopię zapasową bazy danych w trybie online przy użyciu narzędzia Oracle RMAN z kopią zapasową znajdującą się w usłudze Azure Files. Ponieważ przechowujesz kopie zapasowe w usłudze Azure Files, możesz uzyskać do nich dostęp z innych maszyn wirtualnych, jeśli musisz sklonować bazę danych.
Korzystanie z narzędzi RMAN i Azure Files na potrzeby tworzenia kopii zapasowej bazy danych ma wiele zalet. Czas tworzenia i przywracania kopii zapasowej jest połączony z rozmiarem bazy danych. W przypadku dużych baz danych te operacje mogą zająć dużo czasu.
Alternatywą jest użycie kopii zapasowych maszyn wirtualnych spójnych na poziomie aplikacji za pośrednictwem usługi Azure Backup. Ten mechanizm używa technologii migawek do wykonywania szybkich kopii zapasowych niezależnie od rozmiaru bazy danych. Integracja z magazynem usługi Recovery Services zapewnia magazyn w chmurze kopii zapasowych bazy danych Oracle, dzięki czemu można uzyskać do nich dostęp z innych maszyn wirtualnych i innych regionów świadczenia usługi Azure.
Przywracanie i odzyskiwanie bazy danych
Zamknij wystąpienie Oracle:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Usuń pliki danych bazy danych:
cd /u02/oradata/TEST rm -f *.dbf
Następujące polecenia używają narzędzia RMAN do przywrócenia brakujących plików danych i odzyskania bazy danych:
rman target / RMAN> startup mount; RMAN> restore database; RMAN> recover database; RMAN> alter database open;
Sprawdź, czy zawartość bazy danych jest w pełni odzyskana:
RMAN> SELECT * FROM scott.scott_table;
Tworzenie kopii zapasowej i odzyskiwanie bazy danych Oracle Database 19c na maszynie wirtualnej z systemem Linux platformy Azure zostało zakończone.
Usuwanie maszyny wirtualnej
Jeśli maszyna wirtualna nie jest już potrzebna, możesz użyć następującego polecenia, aby usunąć grupę zasobów, maszynę wirtualną i wszystkie powiązane zasoby:
az group delete --name rg-oracle