Azure Dosyalar kullanarak Azure Linux VM'sinde Oracle Veritabanını yedekleme ve kurtarma

Şunlar için geçerlidir: ✔️ Linux VM'leri

Bu makalede, Azure sanal makinesinde (VM) çalıştırılan Oracle veritabanını yedeklemek ve geri yüklemek için Azure Dosyalar bir ortam olarak kullanımı gösterilmektedir. Bu makaledeki adımlar Oracle 12.1 ve üzeri sürümlerde test edilmiştir.

Bu makalede, Veritabanını Sunucu İleti Bloğu (SMB) protokolü aracılığıyla vm'ye bağlı bir Azure dosya paylaşımına yedeklemek için Oracle Kurtarma Yöneticisi (RMAN) kullanacaksınız. Yedekleme medyası için Azure Dosyalar kullanmak uygun maliyetli ve yüksek performanslıdır. Ancak, çok büyük veritabanları için Azure Backup daha iyi bir çözüm sağlar.

Önkoşullar

  • Yedekleme ve kurtarma işlemini gerçekleştirmek için önce yüklü bir Oracle Database örneğine sahip bir Linux VM oluşturmanız gerekir. Oracle 12.x veya üzerini kullanmanızı öneririz.

  • Azure VM'de Oracle Veritabanı örneği oluşturma bölümünde yer alan adımları izleyerek bir Oracle Veritabanı örneği oluşturun.

Veritabanı ortamını hazırlama

  1. VM ile Secure Shell (SSH) oturumu oluşturmak için aşağıdaki komutu kullanın. değerini VM'nizin genel adres değeriyle değiştirin <publicIpAddress> .

    ssh azureuser@<publicIpAddress>
    
  2. Kök kullanıcıya geçin:

    sudo su -
    
  3. oracle Kullanıcıyı /etc/sudoers dosyasına ekleyin:

    echo "oracle   ALL=(ALL)      NOPASSWD: ALL" >> /etc/sudoers
    
  4. Bu adımda, vmoracle19c adlı bir VM üzerinde çalışan bir Oracle örneğiniz (test) olduğu varsayılır.

    oracle Kullanıcıya geçin:

    sudo su - oracle
    
  5. Bağlanmadan önce ortam değişkenini ORACLE_SIDayarlayın:

    export ORACLE_SID=test;
    

    Ayrıca aşağıdaki komutu kullanarak gelecekteki oturum açma işlemleri için değişkeni oracle kullanıcının .bashrc dosyasına eklemelisinizORACLE_SID:

    echo "export ORACLE_SID=test" >> ~oracle/.bashrc
    
  6. Henüz çalışmıyorsa Oracle dinleyicisini başlatın:

    lsnrctl start
    

    Çıkış aşağıdaki örneğe benzer görünmelidir:

    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. Hızlı kurtarma alanı için konum oluşturun:

    mkdir /u02/fast_recovery_area
    
  8. Veritabanına bağlanın:

    sqlplus / as sysdba
    
  9. Henüz çalışmıyorsa veritabanını başlatın:

    SQL> startup
    
  10. Hızlı kurtarma alanı için veritabanı ortam değişkenlerini ayarlayın:

    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. Çevrimiçi yedeklemeleri etkinleştirmek için veritabanının modunda ARCHIVELOG olduğundan emin olun.

    Günlük arşiv durumunu denetleyin:

    SQL> SELECT log_mode FROM v$database;
    
    LOG_MODE
    ------------
    NOARCHIVELOG
    

    Günlük arşivi modundaysa SQL Plus'ta NOARCHIVELOG aşağıdaki komutları çalıştırın:

    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
  12. Yedekleme ve geri yükleme işlemlerini test etmek için bir tablo oluşturun:

    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
    

Azure Dosyalar yedekleme

Azure Dosyalar yedeklemek için şu adımları tamamlayın:

  1. Azure Dosyalar ayarlayın.
  2. Azure dosya paylaşımını VM'nize bağlayın.
  3. Veritabanını yedekleyin.
  4. Veritabanını geri yükleyin ve kurtarın.

Azure Dosyalar ayarlama

Bu bölümde Oracle RMAN kullanarak Oracle veritabanını Azure Dosyalar için yedekleyebilirsiniz. Azure dosya paylaşımları, bulutta kalan tam olarak yönetilen dosya paylaşımlarıdır. Bunlara SMB protokollerini veya Ağ Dosya Sistemi (NFS) protokollerini kullanarak erişebilirsiniz.

Aşağıdaki yordamlar, VM'nize bağlanmak için SMB protokolünü kullanan bir dosya paylaşımı oluşturmayı kapsar. NFS kullanarak bağlama hakkında bilgi için bkz. NFS paylaşımı oluşturma.

Azure dosya paylaşımını bağlarken dosya paylaşımı verilerinin önbelleğe alınmasını devre dışı bırakma seçeneğini kullanın cache=none . Paylaşımda oracle oluşturulan dosyaların kullanıcıya ait olduğundan emin olmak için ve gid=oinstall seçeneklerini ayarlayınuid=oracle.

Depolama hesabınızı ayarlayın:

  1. Azure portal + Kaynak oluştur'u seçin ve ardından Depolama Hesabı'nı arayıp seçin.

    Kaynağın nerede oluşturulacağını ve depolama hesabının seçileceği yeri gösteren ekran görüntüsü.

  2. Depolama hesabı oluştur bölmesinde:

    1. Kaynak grubu için mevcut kaynak grubunuzu (rg-oracle) seçin.
    2. Depolama hesabı adı için oracbkup1 girin.
    3. Konum'un kaynak grubundaki diğer tüm kaynaklarınızla aynı bölgeye ayarlandığından emin olun.
    4. Performans'ıStandart olarak ayarlayın.
    5. Hesap türü içinStorageV2 (genel amaçlı v2)'yi seçin.
    6. Çoğaltma için Yerel olarak yedekli depolama (LRS) seçeneğini belirleyin.

    Depolama hesabı oluşturmaya yönelik temel bilgileri gösteren ekran görüntüsü.

  3. Gelişmiş sekmesini seçin. Azure Dosyalar altında Büyük dosya paylaşımları seçeneğini Etkin olarak ayarlayın. Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin.

    Büyük dosya paylaşımlarını etkinleştirme sekmesini gösteren ekran görüntüsü.

  4. Depolama hesabı oluşturulduğunda kaynağa gidin ve Dosya paylaşımları'nı seçin.

    Kaynak için dosya paylaşımlarının seçileceği yeri gösteren ekran görüntüsü.

  5. + Dosya paylaşımı'nı seçin ve ardından Yeni dosya paylaşımı panelinde:

    1. Ad alanına orabkup1 girin.

    2. Kota'yı10240 gibibayt (GiB) olarak ayarlayın.

      Kota, dosya paylaşımının büyüyebileceği bir üst sınırı yansıtır. Bu örnekte standart depolamayı kullandığınız için kaynaklar kullandıkça öde şeklindedir ve sağlanmaz. Bu nedenle, kotayı 10 tebibayt (TiB) olarak ayarlamak, kullandığınızın ötesinde bir maliyete neden olmaz. Yedekleme stratejiniz daha fazla depolama alanı gerektiriyorsa, tüm yedeklemeleri tutmak için kotayı uygun bir düzeye ayarlayın.

    3. Katmanlar'ın altında İşlem için iyileştirilmiş'i seçin.

    4. Oluştur’u seçin.

    Yeni dosya paylaşımı ekleme seçimlerini gösteren ekran görüntüsü.

  6. Dosya paylaşımı oluşturulduğunda, Dosya paylaşımı ayarları bölmesinde orabkup1'i seçin.

  7. Bağlan sekmesini seçerek Bağlan panelini açın ve ardından Linux sekmesini seçin. SMB protokolunu kullanarak dosya paylaşımını bağlamak için sağlanan komutları kopyalayın.

    Bir dosya paylaşımını Linux bilgisayara bağlamak için komutlara erişme panelini gösteren ekran görüntüsü.

Azure dosya paylaşımını VM'nize bağlama

  1. Bağlama noktasını oluşturun:

    sudo mkdir /mnt/orabackup
    
  2. Kimlik bilgilerini ayarlama:

    if [ ! -d "/etc/smbcredentials" ]; then
     sudo mkdir /etc/smbcredentials
    fi
    
  3. Aşağıdaki komutu çalıştırın. yerine <Your Storage Account Key1> daha önce aldığınız depolama hesabı anahtarını yazın.

    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. Kimlik bilgileri dosyasındaki izinleri değiştirin:

    sudo chmod 600 /etc/smbcredentials/orabackup1.cred
    
  5. Bağlamayı /etc/fstab dosyasına ekleyin:

    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. SMB protokolunu kullanarak Azure dosya paylaşımını bağlamak için komutlarını çalıştırın:

    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
    

    Aşağıdaki örneğe benzer bir hata alırsanız, Linux konağınıza Common Internet File System (CIFS) paketi yüklenmemiş olabilir:

    mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
    

    CIFS paketinin yüklü olup olmadığını denetlemek için aşağıdaki komutu çalıştırın:

    sudo rpm -qa|grep cifs-utils
    

    Komut hiçbir çıkış döndürmezse, aşağıdaki komutu kullanarak CIFS paketini yükleyin. Ardından Azure dosya paylaşımını mount bağlamak için komutunu yeniden çalıştırın.

    sudo yum install cifs-utils
    
  7. Aşağıdaki komutu kullanarak dosya paylaşımının düzgün bağlandığını denetleyin:

    df -h
    

    Çıktı şu örneğe benzer görünmelidir:

    $ 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
    

Veritabanını yedekleme

Bu bölümde Oracle RMAN kullanarak veritabanının ve arşiv günlüklerinin tam yedeğini alırsınız. Ardından yedeklemeyi daha önce bağladığınız Azure dosya paylaşımına bir yedekleme kümesi olarak yazarsınız.

  1. RMAN'ı Azure Dosyalar bağlama noktasına yedeklemek için yapılandırın:

    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. Bu örnekte, RMAN yedekleme parçalarının boyutunu 4 GiB ile sınırlandırıyorsunuz. Ancak RMAN yedekleme maxpiecesize değeri, Azure standart dosya paylaşımları ve premium dosya paylaşımları için dosya boyutu sınırı olan 4 TiB'ye kadar çıkabiliyor. Daha fazla bilgi için bkz. ölçeklenebilirlik ve performans hedefleri Azure Dosyalar.

    RMAN> configure channel device type disk maxpiecesize 4000G;
    
  3. Yapılandırma değişikliği ayrıntılarını onaylayın:

    RMAN> show all;
    
  4. Yedeklemeyi çalıştırın. Aşağıdaki komut, arşiv günlük dosyaları da dahil olmak üzere tam veritabanı yedeklemesini sıkıştırılmış biçimde bir yedekleme kümesi olarak alır:

    RMAN> backup as compressed backupset database plus archivelog;
    

Şimdi oracle RMAN kullanarak veritabanını çevrimiçi olarak yedeklediniz ve yedekleme Azure Dosyalar' de bulunuyor. Yedeklemeleri Azure Dosyalar'da depoladığınız için, veritabanını kopyalamanız gerekirse bunlara diğer VM'lerden erişebilirsiniz.

Veritabanı yedeklemesi için RMAN ve Azure Dosyalar kullanmanın birçok avantajı olsa da, yedekleme ve geri yükleme süresi veritabanının boyutuna bağlıdır. Çok büyük veritabanları için bu işlemler önemli ölçüde zaman alabilir.

Alternatif olarak, Azure Backup aracılığıyla uygulamayla tutarlı VM yedeklemeleri kullanabilirsiniz. Bu mekanizma, veritabanı boyutundan bağımsız olarak hızlı yedeklemeler gerçekleştirmek için anlık görüntü teknolojisini kullanır. Kurtarma Hizmetleri kasasıyla tümleştirme, Oracle Veritabanı yedeklemelerinizin bulut depolama alanını sağlar, böylece bunlara diğer VM'lerden ve diğer Azure bölgelerinden erişebilirsiniz.

Veritabanını geri yükleme ve kurtarma

  1. Oracle örneğini kapatın:

    sqlplus / as sysdba
    SQL> shutdown abort
    ORACLE instance shut down.
    
  2. Veritabanı veri dosyalarını kaldırın:

    cd /u02/oradata/TEST
    rm -f *.dbf
    
  3. Aşağıdaki komutlar, eksik veri dosyalarını geri yüklemek ve veritabanını kurtarmak için RMAN kullanır:

    rman target /
    RMAN> startup mount;
    RMAN> restore database;
    RMAN> recover database;
    RMAN> alter database open;
    
  4. Veritabanı içeriğinin tam olarak kurtarıldığını denetleyin:

    RMAN> SELECT * FROM scott.scott_table;
    

Azure Linux VM'sinde Oracle Database 19c veritabanını yedekleme ve kurtarma işlemi tamamlandı.

VM’yi silin

VM'ye artık ihtiyacınız kalmadığında, kaynak grubunu, VM'yi ve tüm ilgili kaynakları kaldırmak için aşağıdaki komutu kullanabilirsiniz:

az group delete --name rg-oracle

Sonraki adımlar

Yüksek oranda kullanılabilir VM’ler oluşturma

VM dağıtımı için Azure CLI örneklerini keşfetme