Aracılığıyla paylaş


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ışan oracle veritabanını yedeklemek ve geri yüklemek için Azure Dosyalar bir ortam olarak kullanılması gösterilmektedir. Bu makaledeki adımlar Oracle 12.1 ve sonraki 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) kullanırsınız. Yedekleme medyası için Azure Dosyalar kullanmak uygun maliyetli ve yüksek performanslıdır. Ancak, 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 Oracle Veritabanı'nın yüklü bir ö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ım, vmoracle19c adlı bir VM üzerinde çalışan bir Oracle örneğiniz (test) olduğunu varsayar.

    oracle Kullanıcıya geçin:

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

    export ORACLE_SID=test;
    

    Aşağıdaki komutu kullanarak gelecekte oturum açmak için değişkeni oracle kullanıcının .bashrc dosyasına da eklemeniz ORACLE_SID gerekir:

    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 modda ARCHIVELOG olduğunu doğrulayın.

    Günlük arşiv durumunu denetleyin:

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

    Günlük arşivi modundaysa NOARCHIVELOG SQL Plus'ta 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 yedeklersiniz. Azure dosya paylaşımları, bulutta kalan tam olarak yönetilen dosya paylaşımlarıdır. SMB protokollerini veya Ağ Dosya Sistemi (NFS) protokollerini kullanarak bunlara 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 . Kullanıcının paylaşımda oluşturulan dosyalara sahip olduğundan emin olmak oracle için ve gid=oinstall seçeneklerini ayarlayınuid=oracle.

Depolama hesabınızı ayarlayın:

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

    Screenshot that shows where to create a resource and select a storage account.Kaynak oluşturma ve depolama hesabı seçme adımlarını 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çin StorageV2 (genel amaçlı v2) öğesini seçin.
    6. Çoğaltma için Yerel olarak yedekli depolama (LRS) seçeneğini belirleyin.

    Screenshot that shows basic information for creating a storage account.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ını Etkin olarak ayarlayın. Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin.

    Screenshot that shows the tab for enabling large file shares.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.

    Screenshot that shows where to select file shares for a resource.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 depolama kullandığınız için kaynaklar kullandıkça öde şeklindedir ve sağlanmaz. Kotayı 10 tebibayt (TiB) olarak ayarlamak, kullandığınızdan daha fazla 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 belirleyin.

    Screenshot that shows selections for adding a new file share.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.

    Screenshot that shows the panel for accessing the commands to connect a file share to a Linux computer.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 ana bilgisayarınızda Common Internet File System (CIFS) paketi yüklü olmayabilir:

    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'a 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 sıkıştırılmış biçimde ayarlanmış bir yedekleme olarak tam veritabanı yedeğini alır:

    RMAN> backup as compressed backupset database plus archivelog;
    

Oracle RMAN'ı kullanarak veritabanını çevrimiçi olarak yedeklediyseniz, yedekleme Azure Dosyalar. Yedeklemeleri Azure Dosyalar depoladığınız için, veritabanını kopyalamanız gerekiyorsa bunlara diğer VM'lerden erişebilirsiniz.

Veritabanı yedeklemesi için RMAN ve Azure Dosyalar kullanmanın birçok avantajı vardır. Yedekleme ve geri yükleme süresi, veritabanının boyutuna bağlıdır. 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 tamamen 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