Blog / Bilişim

Netbackup ile HANA redirected restore yapımı

Bu yazımızda backup ürünleri arasında kendini kanıtlamış olan Veritas NetBackup üzerinden alınan HANA yedeklerini redirected yöntemiyle farklı bir sunucuya nasıl dönebiliriz, ne gibi konfigürasyon yapmamız gerekiyor onları göreceğiz.

Redirected restore ne demek?

Normalde bir sunucunun yedeğini yine aynı sunucuya geri döneriz. Redirected restore ise bir sunucunun yedeğini başka bir sunucuya dönmek demek. Örneğin canlı ortamdaki HANA veritabanının yedeğini test sunucusuna dönüp test ortamını canlıyla aynı hale getirmek istediğinizde ya da canlı sunucu çöktüğünde yedeği yeni bir sunucuya açmak istediğinizde bu yöntemi kullanıyoruz.

NetBackup varsayılan olarak bir sunucunun yedeğini sadece o sunucunun kendisine verir, başka bir sunucu gelip "o yedeği bana ver" diyemez. Aşağıda yapacağımız ayarların hepsi aslında NetBackup'a "bu iki sunucu birbirinin yedeğini kullanabilir" demek için.

Başlamadan önce

Aklınızın karışmaması için sunucularımızın isimlerini belirleyelim:

  • Yedeklerin alındığı sunucu (source): sourcehana.alifurkan.local
  • Yedeği döneceğimiz sunucu (destination): destinationhana.alifurkan.local

Siz kendi ortamınızda bu isimlerin yerine kendi sunucularınızın isimlerini yazacaksınız. Başlamadan önce şunlardan emin olun:

  • İki sunucuda da NetBackup client kurulu olmalı.
  • İki sunucu da birbirinin ismini çözebilmeli. Her birinden diğerine ping destinationhana.alifurkan.local ve ping sourcehana.alifurkan.local atarak kontrol edebilirsiniz.
  • HANA sürümleri aynı olmalı. Destination'daki sürüm source'takinden eskiyse restore hiç başlamaz.
  • Sunuculara root olarak ya da sudo yetkisi olan bir kullanıcıyla bağlanabiliyor olmalısınız.

1. Source sunucuda nodenames.txt dosyası oluşturmak

Source sunucumuza SSH ile bağlanıyoruz. NetBackup'ın SAP ayarlarını okuduğu /usr/openv/netbackup/ext/db_ext/sap/ dizininde nodenames.txt adında bir dosya oluşturacağız. Bu dosya NetBackup'a hangi sunucuların aynı yedekleri kullanabileceğini söylüyor.

Dosyayı vi ile açıyoruz. Dosya yoksa vi bu komutla boş bir dosya olarak oluşturur.

Terminal
sudo vi /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt

vi'yi daha önce kullanmadıysanız: dosya açıldığında klavyeden i tuşuna basın, sol altta INSERT yazısı çıkınca yazmaya başlayabilirsiniz. Dosyanın içine iki sunucumuzun ismini her biri ayrı satırda olacak şekilde yazıyoruz:

Kod
sourcehana.alifurkan.local
destinationhana.alifurkan.local

Yazdıktan sonra Esc tuşuna basıp INSERT modundan çıkın, ardından :wq! yazıp Enter'a basın. Dosya kaydedilip kapanacak.

Şimdi dosyaya yetki veriyoruz:

Terminal
sudo chmod 755 /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt

755 yetkisi, dosyanın sahibine (owner) tam yetki verirken dosyanın grubuna (group) ve diğer kullanıcılara (others) sadece okuma ve çalıştırma yetkisi verir. Yani NetBackup dosyayı okuyabilir ama başka kullanıcılar içini değiştiremez.

Dosyanın doğru oluştuğunu görmek için içini yazdırabilirsiniz, iki sunucu ismini görmeniz lazım:

Terminal
cat /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt

2. NetBackup konsolunda destination sunucuyu policy'ye eklemek

Source sunucu üzerindeki işimiz şimdilik bitti. Sıradaki aşamada NetBackup Java Konsol'u açıp Policies kısmından source sunucunun HANA yedeklerini alan politikayı (policy) buluyoruz. Politikayı açtıktan sonra Clients sekmesine gelip New diyerek destination sunucunun ismini ekliyoruz ve kaydediyoruz.

netbackup hana policy

Bunu yapmamızın sebebi şu: NetBackup bir yedeği sadece o politikada tanımlı sunuculara veriyor. Destination sunucuyu politikaya eklemezsek NetBackup onu tanımaz ve restore isteğini reddeder. Bu işlem destination sunucunun yedeğini almaya başlamaz, sadece politikayı kullanabilmesine izin verir.

3. Destination sunucuda aynı dosyayı oluşturmak

NetBackup konsolundaki işimiz bittikten sonra destination sunucuya SSH ile bağlanıyoruz. Source sunucuda yaptığımız işlemin aynısını burada da yapacağız.

Terminal
sudo vi /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt

Dosyanın içine yine aynı iki ismi yazıyoruz. Sıra ve yazım source sunucudakiyle birebir aynı olsun.

Kod
sourcehana.alifurkan.local
destinationhana.alifurkan.local

Kaydedip çıktıktan sonra (Esc, :wq!, Enter) yetkisini veriyoruz:

Terminal
sudo chmod 755 /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt

4. .utl dosyasını destination sunucuya kopyalamak

HANA, yedekleri NetBackup'a gönderirken .utl uzantılı bir ayar dosyası kullanıyor. Bu dosyada yedeğin hangi NetBackup sunucusuna, hangi politikayla gideceği yazıyor. Destination sunucunun source'un yedeklerini bulabilmesi için source'taki bu dosyaya ihtiyacımız var.

Source sunucuya geri dönüyoruz. Dosyanın nerede olduğunu bilmiyorsanız HANA'nın ayar dosyasından bulabilirsiniz. Aşağıdaki komutta SID yazan yere kendi HANA sisteminizin SID'ini yazın (örneğin HDB):

Terminal
grep parameter_file /usr/sap/SID/SYS/global/hdb/custom/config/global.ini

Çıkan satırda .utl dosyasının tam yolu yazıyor. Bu yazıda dosyanın adı initSAP.utl olsun. Destination sunucuda /veritas/ dizini yoksa önce onu oluşturuyoruz (bu komutu destination sunucuda çalıştırın):

Terminal
sudo mkdir -p /veritas

Sonra source sunucudan dosyayı destination sunucuya kopyalıyoruz. Aşağıdaki komutu source sunucuda, dosyanın bulunduğu dizindeyken çalıştırın:

Terminal
scp initSAP.utl root@destinationhana.alifurkan.local:/veritas/

Destination sunucuya geçip kopyaladığımız dosyaya yetki veriyoruz:

Terminal
sudo chmod 755 /veritas/initSAP.utl

5. .utl dosyasını düzenlemek

Destination sunucuda dosyayı açıyoruz:

Terminal
sudo vi /veritas/initSAP.utl

Dosyanın içinde birçok satır göreceksiniz. Bize sadece şu dört satır lazım: server, client, policy ve schedule. Bunların dışında kalan ayar satırlarının başına # işareti koyuyoruz. Başına # konulan satır yorum satırı olur, yani NetBackup o satırı okumaz. Dosya aşağı yukarı şöyle görünecek:

Kod
server       netbackupmaster.alifurkan.local
client       sourcehana.alifurkan.local
policy       HANA_Policy
schedule     Default-Application-Backup
#switch_list /usr/openv/netbackup/ext/db_ext/sap/.switch.lis
#switch_sem  /usr/openv/netbackup/ext/db_ext/sap/.switch.sem
#switch_log  /usr/openv/netbackup/ext/db_ext/sap/.switch.log

Buradaki isimler sizin ortamınızda farklı olacak, kendi dosyanızdakini değiştirmeyin. Sadece dikkat edin: client satırında source sunucunun ismi yazıyor ve öyle kalmalı. Yedekler NetBackup'ta source sunucunun adına kayıtlı. Bu satırı destination yaparsanız NetBackup orada yedek bulamaz.

Düzenlemeyi bitirince Esc, :wq!, Enter ile kaydedip çıkıyoruz.

6. Restore işlemini HANA Studio'dan başlatmak

NetBackup tarafındaki konfigürasyonlar bu kadar. Şimdi HANA Studio'yu açıp destination sunucudaki HANA sistemine bağlanıyoruz. Backup Console'daki Configuration sekmesinde, Backint ayarlarındaki parameter file (ayar dosyası) kısmına az önce hazırladığımız dosyanın yolunu, yani /veritas/initSAP.utl yolunu yazıp kaydediyoruz.

Ardından sisteme sağ tıklayıp Backup and Recovery > Recover System diyoruz ve sihirbazdaki adımları takip ederek restore işlemini başlatıyoruz. Sihirbaz yedekleri NetBackup'tan (Backint) aramanızı istediğinde kaynak sistem olarak source sunucudaki HANA sisteminin SID'ini girin. Restore sırasında destination sunucudaki mevcut veritabanının üzerine yazılacağını unutmayın.

Restore başlamazsa ilk olarak iki sunucudaki nodenames.txt dosyalarını, .utl dosyasındaki client satırını ve destination sunucunun policy'nin Clients sekmesine eklenip eklenmediğini kontrol edin. Sorunların büyük kısmı bu üçünden birinden çıkıyor.

Bu yazıyı paylaşXFacebook