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.localveping sourcehana.alifurkan.localatarak 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.
sudo vi /usr/openv/netbackup/ext/db_ext/sap/nodenames.txtvi'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:
sourcehana.alifurkan.local
destinationhana.alifurkan.localYazdı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:
sudo chmod 755 /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt755 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:
cat /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt2. 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.

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.
sudo vi /usr/openv/netbackup/ext/db_ext/sap/nodenames.txtDosyanın içine yine aynı iki ismi yazıyoruz. Sıra ve yazım source sunucudakiyle birebir aynı olsun.
sourcehana.alifurkan.local
destinationhana.alifurkan.localKaydedip çıktıktan sonra (Esc, :wq!, Enter) yetkisini veriyoruz:
sudo chmod 755 /usr/openv/netbackup/ext/db_ext/sap/nodenames.txt4. .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):
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):
sudo mkdir -p /veritasSonra source sunucudan dosyayı destination sunucuya kopyalıyoruz. Aşağıdaki komutu source sunucuda, dosyanın bulunduğu dizindeyken çalıştırın:
scp initSAP.utl root@destinationhana.alifurkan.local:/veritas/Destination sunucuya geçip kopyaladığımız dosyaya yetki veriyoruz:
sudo chmod 755 /veritas/initSAP.utl5. .utl dosyasını düzenlemek
Destination sunucuda dosyayı açıyoruz:
sudo vi /veritas/initSAP.utlDosyanı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:
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.logBuradaki 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.