Mencadangkan dan memulihkan Oracle Database di VM Linux Azure dengan menggunakan Azure Files
Diterapkan ke: ✔️ VM Linux
Artikel ini menunjukkan penggunaan Azure Files sebagai media untuk mencadangkan dan memulihkan database Oracle yang berjalan pada komputer virtual (VM) Azure. Langkah-langkah dalam artikel ini telah diuji terhadap Oracle 12.1 dan yang lebih baru.
Dalam artikel ini, Anda menggunakan Oracle Recovery Manager (RMAN) untuk mencadangkan database ke berbagi file Azure yang dipasang ke VM melalui protokol Blok Pesan Server (SMB). Menggunakan Azure Files untuk media cadangan hemat biaya dan berkinerja. Namun, untuk database yang sangat besar, Azure Backup memberikan solusi yang lebih baik.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih memilih untuk menjalankan perintah referensi CLI secara lokal, pasang Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Untuk melakukan proses pencadangan dan pemulihan, Anda harus terlebih dahulu membuat mesin virtual Linux yang memiliki instans Oracle Database yang sudah dipasang. Sebaiknya gunakan Oracle 12.x atau yang lebih baru.
Buat instans Oracle Database dengan mengikuti langkah-langkah dalam Membuat instans Oracle Database di Azure VM.
Menyiapkan lingkungan database
Untuk membuat sesi Secure Shell (SSH) dengan VM, gunakan perintah berikut. Ganti
<publicIpAddress>
dengan nilai alamat publik untuk VM Anda.ssh azureuser@<publicIpAddress>
Beralih ke pengguna root:
sudo su -
oracle
Tambahkan pengguna ke file /etc/sudoers:echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Langkah ini mengasumsikan bahwa Anda memiliki instans Oracle (pengujian) yang berjalan pada VM bernama vmoracle19c.
Pindahkan ke
oracle
sudo su - oracle
Sebelum Anda tersambung, atur variabel
ORACLE_SID
lingkungan :export ORACLE_SID=test;
Anda juga harus menambahkan
ORACLE_SID
variabel keoracle
file .bashrc pengguna untuk masuk di masa mendatang dengan menggunakan perintah berikut:echo "export ORACLE_SID=test" >> ~oracle/.bashrc
Mulai pendengar Oracle jika belum berjalan:
lsnrctl start
Output akan terlihat mirip dengan contoh berikut:
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
Buat lokasi untuk area pemulihan cepat:
mkdir /u02/fast_recovery_area
Sambungkan ke database:
sqlplus / as sysdba
Mulai database jika belum berjalan:
SQL> startup
Atur variabel lingkungan database untuk area pemulihan cepat:
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;
Pastikan database dalam
ARCHIVELOG
mode untuk mengaktifkan pencadangan online.Periksa status arsip log:
SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG
Jika arsip log dalam
NOARCHIVELOG
mode , jalankan perintah berikut di SQL Plus:SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> ALTER SYSTEM SWITCH LOGFILE;
Buat tabel untuk menguji operasi pencadangan dan pengembalian:
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
Mencadangkan ke Azure Files
Untuk mencadangkan ke Azure Files, selesaikan langkah-langkah berikut ini:
- Siapkan Azure Files .
- Memasang berbagi file Azure ke mesin virtual Anda.
- Cadangkan databasenya.
- Memulihkan dan memulihkan database.
Menyiapkan Azure Files
Di bagian ini, Anda mencadangkan database Oracle ke Azure Files dengan menggunakan Oracle RMAN. Berbagi file Azure adalah berbagi file yang dikelola sepenuhnya yang tetap berada di cloud. Anda dapat mengaksesnya dengan menggunakan protokol SMB atau protokol Network File System (NFS).
Prosedur berikut mencakup pembuatan berbagi file yang menggunakan protokol SMB untuk dipasang ke VM Anda. Untuk informasi tentang cara memasang dengan menggunakan NFS, lihat Membuat berbagi NFS.
Saat Anda memasang berbagi file Azure, gunakan cache=none
opsi untuk menonaktifkan penembolokan data berbagi file. Untuk memastikan bahwa oracle
pengguna memiliki file yang dibuat dalam berbagi, atur uid=oracle
opsi dan gid=oinstall
.
Siapkan akun penyimpanan Anda:
Di portal Azure, pilih + Buat sumber daya, lalu cari dan pilih Akun Penyimpanan.
Pada panel Buat akun penyimpanan :
- Untuk Grup sumber daya, pilih grup sumber daya Anda yang sudah ada, rg-oracle.
- Untuk Nama akun penyimpanan, masukkan oracbkup1.
- Pastikan Lokasi diatur ke wilayah yang sama dengan semua sumber daya Anda yang lain dalam grup sumber daya.
- Atur Performa ke Standar.
- Untuk Jenis akun, pilih StorageV2 (tujuan umum v2).
- Untuk Replikasi, pilih Penyimpanan lokal berlebihan (LRS) .
Pilih tab Tingkat Lanjut. Di bawah Azure Files, atur Berbagi file besar ke Diaktifkan. Pilih Tinjauan + Buat, kemudian pilih Buat.
Saat akun penyimpanan dibuat, buka sumber daya dan pilih Berbagi file.
Pilih + Berbagi file, lalu pada panel Berbagi file baru :
Untuk Nama, masukkan orabkup1.
Atur Kuota ke 10240 gibibyte (GiB).
Kuota mencerminkan batas atas yang dapat bertambah bagikan file. Karena Anda menggunakan penyimpanan standar dalam contoh ini, sumber daya berbayar sesuai pemakaian dan tidak disediakan. Jadi, mengatur kuota menjadi 10 tebibyte (TiB) tidak akan dikenakan biaya di luar apa yang Anda gunakan. Jika strategi pencadangan Anda memerlukan lebih banyak penyimpanan, atur kuota ke tingkat yang sesuai untuk menyimpan semua cadangan.
Di bawah Tingkatan, pilih Transaksi dioptimalkan.
Pilih Buat.
Saat berbagi file dibuat, pilih orabkup1 pada panel Pengaturan berbagi file .
Pilih tab Sambungkan untuk membuka panel Sambungkan , lalu pilih tab Linux . Salin perintah yang disediakan untuk memasang berbagi file dengan menggunakan protokol SMB.
Memasang berbagi file Azure ke VM Anda
Membuat titik pemasangan:
sudo mkdir /mnt/orabackup
Menyiapkan info masuk:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
Jalankan perintah berikut. Ganti
<Your Storage Account Key1>
dengan kunci akun penyimpanan yang Anda ambil sebelumnya.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
Mengubah izin pada berkas mandat:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
Tambahkan pemasangan ke file /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'
Jalankan perintah untuk memasang berbagi file Azure dengan menggunakan protokol 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
Jika Anda mendapatkan kesalahan yang mirip dengan contoh berikut, paket Common Internet File System (CIFS) mungkin tidak diinstal pada host Linux Anda:
mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
Untuk memeriksa apakah paket CIFS diinstal, jalankan perintah berikut:
sudo rpm -qa|grep cifs-utils
Jika perintah tidak mengembalikan output, instal paket CIFS dengan menggunakan perintah berikut. Kemudian jalankan
mount
kembali perintah untuk memasang berbagi file Azure.sudo yum install cifs-utils
Periksa apakah berbagi file dipasang dengan benar dengan menggunakan perintah berikut:
df -h
Output akan terlihat mirip dengan contoh ini:
$ 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
Mencadangkan database
Di bagian ini, Anda menggunakan Oracle RMAN untuk mengambil cadangan penuh database dan log arsip. Anda kemudian menulis cadangan sebagai cadangan yang diatur ke berbagi file Azure yang Anda pasang sebelumnya.
Mengonfigurasi RMAN untuk mencadangkan ke titik kait 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';
Dalam contoh ini, Anda membatasi ukuran potongan cadangan RMAN hingga 4 GiB. Namun, nilai cadangan
maxpiecesize
RMAN dapat mencapai 4 TiB, yang merupakan batas ukuran file untuk berbagi file standar Azure dan berbagi file premium. Untuk informasi selengkapnya, lihat Target skalabilitas dan performa Azure Files.RMAN> configure channel device type disk maxpiecesize 4000G;
Konfirmasikan detail perubahan konfigurasi:
RMAN> show all;
Jalankan pencadangan. Perintah berikut mengambil cadangan database lengkap, termasuk file log arsip, sebagai kumpulan cadangan dalam format terkompresi:
RMAN> backup as compressed backupset database plus archivelog;
Anda sekarang telah mencadangkan database secara online dengan menggunakan Oracle RMAN, dengan cadangan yang terletak di Azure Files. Karena Anda menyimpan cadangan di Azure Files, Anda dapat mengaksesnya dari VM lain jika Anda perlu mengkloning database.
Meskipun menggunakan RMAN dan Azure Files untuk pencadangan database memiliki banyak keuntungan, waktu pencadangan dan pemulihan ditautkan ke ukuran database. Untuk database yang sangat besar, operasi ini dapat memakan waktu yang cukup lama.
Alternatifnya adalah menggunakan pencadangan VM yang konsisten dengan aplikasi melalui Azure Backup. Mekanisme ini menggunakan teknologi rekam jepret untuk melakukan pencadangan cepat terlepas dari ukuran database. Integrasi dengan vault Layanan Pemulihan menyediakan penyimpanan cloud cadangan Oracle Database Anda, sehingga Anda dapat mengaksesnya dari VM lain dan wilayah Azure lainnya.
Memulihkan dan memulihkan database
Matikan instans Oracle:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Menghapus file data database:
cd /u02/oradata/TEST rm -f *.dbf
Perintah berikut menggunakan RMAN untuk memulihkan file datat yang hilang dan memulihkan database:
rman target / RMAN> startup mount; RMAN> restore database; RMAN> recover database; RMAN> alter database open;
Periksa apakah konten database sepenuhnya dipulihkan:
RMAN> SELECT * FROM scott.scott_table;
Pencadangan dan pemulihan database Oracle Database 19c pada Azure Linux VM sekarang selesai.
Menghapus VM
Saat Anda tidak lagi memerlukan VM, Anda bisa menggunakan perintah berikut untuk menghapus grup sumber daya, VM, dan semua sumber daya terkait:
az group delete --name rg-oracle