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
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'de Bash için Hızlı Başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yi yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz. Azure CLI'yi Docker kapsayıcısında çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
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
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>
Kök kullanıcıya geçin:
sudo su -
oracle
Kullanıcıyı /etc/sudoers dosyasına ekleyin:echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
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
Bağlanmadan önce ortam değişkenini
ORACLE_SID
ayarlayı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
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
Hızlı kurtarma alanı için konum oluşturun:
mkdir /u02/fast_recovery_area
Veritabanına bağlanın:
sqlplus / as sysdba
Henüz çalışmıyorsa veritabanını başlatın:
SQL> startup
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;
Ç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;
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:
- Azure Dosyalar ayarlayın.
- Azure dosya paylaşımını VM'nize bağlayın.
- Veritabanını yedekleyin.
- 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:
Azure portal + Kaynak oluştur'u seçin ve ardından Depolama Hesabı'nı arayıp seçin.
Depolama hesabı oluştur bölmesinde:
- Kaynak grubu için mevcut kaynak grubunuzu (rg-oracle) seçin.
- Depolama hesabı adı için oracbkup1 girin.
- Konum'un kaynak grubundaki diğer tüm kaynaklarınızla aynı bölgeye ayarlandığından emin olun.
- Performans'ıStandart olarak ayarlayın.
- Hesap türü içinStorageV2 (genel amaçlı v2)'yi seçin.
- Çoğaltma için Yerel olarak yedekli depolama (LRS) seçeneğini belirleyin.
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.
Depolama hesabı oluşturulduğunda kaynağa gidin ve Dosya paylaşımları'nı seçin.
+ Dosya paylaşımı'nı seçin ve ardından Yeni dosya paylaşımı panelinde:
Ad alanına orabkup1 girin.
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.
Katmanlar'ın altında İşlem için iyileştirilmiş'i seçin.
Oluştur’u seçin.
Dosya paylaşımı oluşturulduğunda, Dosya paylaşımı ayarları bölmesinde orabkup1'i seçin.
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.
Azure dosya paylaşımını VM'nize bağlama
Bağlama noktasını oluşturun:
sudo mkdir /mnt/orabackup
Kimlik bilgilerini ayarlama:
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
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
Kimlik bilgileri dosyasındaki izinleri değiştirin:
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
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'
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
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.
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';
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;
Yapılandırma değişikliği ayrıntılarını onaylayın:
RMAN> show all;
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
Oracle örneğini kapatın:
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Veritabanı veri dosyalarını kaldırın:
cd /u02/oradata/TEST rm -f *.dbf
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;
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