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

  • 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

  1. Untuk membuat sesi Secure Shell (SSH) dengan VM, gunakan perintah berikut. Ganti <publicIpAddress> dengan nilai alamat publik untuk VM Anda.

    ssh azureuser@<publicIpAddress>
    
  2. Beralih ke pengguna root:

    sudo su -
    
  3. oracle Tambahkan pengguna ke file /etc/sudoers:

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    
  4. Langkah ini mengasumsikan bahwa Anda memiliki instans Oracle (pengujian) yang berjalan pada VM bernama vmoracle19c.

    Pindahkan ke oracle

    sudo su - oracle
    
  5. Sebelum Anda tersambung, atur variabel ORACLE_SIDlingkungan :

    export ORACLE_SID=test;
    

    Anda juga harus menambahkan ORACLE_SID variabel ke oracle file .bashrc pengguna untuk masuk di masa mendatang dengan menggunakan perintah berikut:

    echo "export ORACLE_SID=test" >> ~oracle/.bashrc
    
  6. 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
    
  7. Buat lokasi untuk area pemulihan cepat:

    mkdir /u02/fast_recovery_area
    
  8. Sambungkan ke database:

    sqlplus / as sysdba
    
  9. Mulai database jika belum berjalan:

    SQL> startup
    
  10. 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;
    
  11. 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;
    
  12. 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:

  1. Siapkan Azure Files .
  2. Memasang berbagi file Azure ke mesin virtual Anda.
  3. Cadangkan databasenya.
  4. 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:

  1. Di portal Azure, pilih + Buat sumber daya, lalu cari dan pilih Akun Penyimpanan.

    Cuplikan layar yang memperlihatkan tempat untuk membuat sumber daya dan memilih akun penyimpanan.

  2. Pada panel Buat akun penyimpanan :

    1. Untuk Grup sumber daya, pilih grup sumber daya Anda yang sudah ada, rg-oracle.
    2. Untuk Nama akun penyimpanan, masukkan oracbkup1.
    3. Pastikan Lokasi diatur ke wilayah yang sama dengan semua sumber daya Anda yang lain dalam grup sumber daya.
    4. Atur Performa ke Standar.
    5. Untuk Jenis akun, pilih StorageV2 (tujuan umum v2).
    6. Untuk Replikasi, pilih Penyimpanan lokal berlebihan (LRS) .

    Cuplikan layar yang memperlihatkan informasi dasar untuk membuat akun penyimpanan.

  3. Pilih tab Tingkat Lanjut. Di bawah Azure Files, atur Berbagi file besar ke Diaktifkan. Pilih Tinjauan + Buat, kemudian pilih Buat.

    Cuplikan layar yang memperlihatkan tab untuk mengaktifkan berbagi file besar.

  4. Saat akun penyimpanan dibuat, buka sumber daya dan pilih Berbagi file.

    Cuplikan layar yang memperlihatkan tempat memilih berbagi file untuk sumber daya.

  5. Pilih + Berbagi file, lalu pada panel Berbagi file baru :

    1. Untuk Nama, masukkan orabkup1.

    2. 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.

    3. Di bawah Tingkatan, pilih Transaksi dioptimalkan.

    4. Pilih Buat.

    Cuplikan layar yang memperlihatkan pilihan untuk menambahkan berbagi file baru.

  6. Saat berbagi file dibuat, pilih orabkup1 pada panel Pengaturan berbagi file .

  7. Pilih tab Sambungkan untuk membuka panel Sambungkan , lalu pilih tab Linux . Salin perintah yang disediakan untuk memasang berbagi file dengan menggunakan protokol SMB.

    Cuplikan layar yang memperlihatkan panel untuk mengakses perintah untuk menyambungkan berbagi file ke komputer Linux.

Memasang berbagi file Azure ke VM Anda

  1. Membuat titik pemasangan:

    sudo mkdir /mnt/orabackup
    
  2. Menyiapkan info masuk:

    if [ ! -d "/etc/smbcredentials" ]; then
     sudo mkdir /etc/smbcredentials
    fi
    
  3. 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
    
  4. Mengubah izin pada berkas mandat:

    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. 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'
    
  6. 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
    
  7. 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.

  1. 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';
    
  2. 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;
    
  3. Konfirmasikan detail perubahan konfigurasi:

    RMAN> show all;
    
  4. 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

  1. Matikan instans Oracle:

    sqlplus / as sysdba
    SQL> shutdown abort
    ORACLE instance shut down.
    
  2. Menghapus file data database:

    cd /u02/oradata/TEST
    rm -f *.dbf
    
  3. 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;
    
  4. 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

Langkah berikutnya

Membuat komputer virtual yang sangat tersedia

Menjelajahi sampel Azure CLI untuk penyebaran VM