22 Eylül 2015 Salı

Attunity Kullanarak MS SQL Server'dan Oracle'a Migraiton



  Veri transferinde kullanılan Attunity’i bu yazımda ele alacağım. Attunity'i tanıtırkende aynı zamanda MS SQL SERVER 2014 ve ORACLE arasında migration işlemi nasıl gerçekleşir bunu da resimleyerek anlatmaya çalıştım. Öncelikle Attunity'nin desteği sadece MS SQL Server ya da Oracle ile sınırlı kalmıyor; IBM Informix, MYSQL, Sybase gibi farklı firmalarında veritabanlarına destek vermekte.

Resim1.1


Benim anlatacağım örnekte SQL Server'dan Oracle, Northwind database'ni Oracle'da tanımlamış olduğum yasin şemasının içerisine aktaracağım. Öncelikle bu işlemi yapabilmek için Attunity ' de task oluşturmanız gerekmektedir. Bunun için resim1.1 de sol üstte bulunan new task'i tıklıyoruz. 

Resim1.2

Karşımıza gelen bu ekranda aslında task'in ne amaçla oluşturduğumuzu belirtiyoruz. Gördüğünüz gibi 3 farklı seçeneğimiz mevcut:
 Full load seçeneğinde aslında adında anlaşılacağı üzere kaynak tablodan verileri alıp hedefe tamamını göndermekte ve işlem bittiğinde de task kapanmaktadır.
Apply change'i seçerseniz bu noktada ise öncelikle full load'ı kullanmış olmanız gerekmektedir. Amaç kaynak tablonun birebir kopyasını hedef tarafta oluşturmak ve her yapılan değişiklikleri uygulayarak kaynak ile hedefin bire bir kalmasını sağlamak. Bundan dolayı arka planda Attunity çalışarak sürekli olarak kaynak ile hedefi eşitlemeye çalışır.
Store Changes ise apply changes den farklı olarak kaynak ile hedefin eşitlenmesine ihtiyaç duymaz. Sadece siz task'i oluşturduktan sonra kaynak tabloda yapılan değişiklikleri hedef tabloya yansıtmaya başlar, task çalıştırılmadan önceki veriler hedef tabloda bulunmaz.
Bu üç farklı seçenekten ihtiyacınıza uygun olanı belirledikten sonra task'e bir isim ve ihtiyaç duyarsanız description kısmına açıklama yazabilirisniz. Arından tamam diyerek task'i oluşturmuş oluyoruz.


Resim1.3

Task oluştuktan sonra karşınıza resim 1.3'deki gibi bir ekran gelecektir. Bu noktada artık bizim veritabanlarımızı tanımlamamız gerekmektedir. Bunun içinde ekranın üst orta kısmında bulunan manage database'i tıklıyoruz.

Resim1.4

Karşımıza gelen ekranda name kısmında tanımlamak istediğimiz databas’e istediğimiz herhangi bir isim verebiliriz. Description kısmında ise task'i bize daha sonra hatırlatacak bir açıklama yazabilirsiniz. ROLE kısmında seçeceğiniz database'in kaynak mı yoksa hedef database olduğunu belirtmeniz gerekmektedir. TYPE kısmında kullanacağınız database'i seçmeniz gerekmektedir. Ben yukarıda MS SQL Server'ı kaynak database olarak tanımladım tavsiye olarak SQL SERVER authentication olarak bağlanmanızı tavsiye ediyorum. Çünkü Windows Aut. bir kaç kez denememde hatalar aldım. Bundan sonra belirtmiş olduğunuz kullanıcının şifresini de yazarak hemen altında ilgili database'i (ki ben Northwind'i seçtim) belirterek bu kısımdaki işi en son olarak ekreanın sol alt köşesinde bulunan test butonu ile bağlantıyı kontrol ederek eğer başarılı yazısını alıyorsak noktalayabiliriz.

Resim1.5

Resim1.5 de ise hedef veritabanını düzenliyoruz. Burada da aslında mantık yukarıda yaptığımız işlem ile tamamen aynı. Hedef olarak ben Oracle'ı seçtim Oracle' da yasin isimli şemamı ve şema şifresi ile birlikte yazarak tanımlamış oldum. Burada dikkat edilmesi gereken bir diğer husus ise şemanızın ilgili yetkilere sahip olmasına dikkat edin yoksa bağlantıyı test ettiğiniz zaman hata alacaksınızdır. Eğer ilgili yetkiler şemaya tanımlanmazsa Attunity'nin Oracle bağlanması mümkün olmayacaktır.  Connect session ve resource yetkilerini vermek bağlanma tarafında herhangi bir sıkıntı çıkarmamaktadır. Ama daha sonra yapacağınız işlemler doğrultusunda vermeniz gereken yetkiler de bu doğrultuda değişiklik gösterecektir. 

Resim1.6

Resim1.6 da gördüğünüz gibi sol tarafta tanımladığımız iki database de gözükmekte. Bu noktada yapmamız gereken işlem ise hedef veritabanını ve kaynak veritabanını ortada bulunan alana sürükleyip bırakmak. Ekranın sağ bölümünde table selection kısmında tablo seçimini yapmak için tıklıyoruz.
Resim1.7

Schema kısmında bu alana schema'nızın ismini yazıyoruz Northwind'in şema ismi dbo olduğu için ben bunu yazdım. Daha sonra eğer table kısmını herhangi bir şey yazmadan search'ü tıklarsanız database içinde bulunan tablolar listenecektir. Bu noktada istediğiniz tabloları seçip ekleyebilirsiniz. Ayrıca yukarıda include butonuna tıklayarak şemanızıda dâhil etmeniz gerekmektedir.


Resim1.8

Resim 1.6 ekranın sağ üst köşesinde bulunan global transformations butonuna tıklayarak yukarıdaki ekrana ulaşırsınız burada schma, table ve kolonları tekrardan isimlendirebilir, kolon ekleyebilir yada silebilir veya veriler kaynaktan hedefe aktarılmadan önce veri tipleri üzerinde çeşitli manipülasyonlar uygulayabilirsiniz. Bu noktada Attunity oldukça işlevsel ve basit bir arayüzle kullanıcının işini oldukça kolaylaştırmakta ve çeşitli inisiyatifler sunarak kaynaktan tablolar gönderilmeden ihtiyaçlar doğrultusunda çeşitli değişikliklere uğratılmasını sağlamaktadır.

Resim1.9

Resim 1.6 da ekranın sol üst köşede bulunan task butonuna basarak server'ı seçtiğmizde karşımıza gelen ekranda Notification bölümünde bildirim ayarlarını düzenleyebiliriz bu sayade task tamamlandığı zaman ya da çalışmadığı zaman mail yolu ile bilgilendirilirmiş oluruz. Bu ekrandan lisans ayarlamaları, hata düzenlemeleri log'lanma seçenekleri ve zamanlama ile ilgili ayarlamalar yapılabilir..
Resim1.10

Yukarıdaki resimdeki seçeneklerde task çalıştırma, task'i durdurma ya da tekrardan hedef tabloya yönlendirme yaptırılabilinir.  Aşağıda görüldüğü gibi aslında Sql Server'da job'lara alışkın olan kişilerin yabancılık çekmiyeceği bir yapı var çeşitli zaman aralıkları tanımlayarak zamanlama yapılabilmekte.


Not:  Attunity çalışırken MS SQL Server (diğer database lerde de bu durum söz konusu olabilir.) log kayıtlarını yapmamaktadır. Çünkü Attunity kayıtları log dosyasına erişip buradan almakta ve bundan dolayı log'lanma durumunda kesintiye sebebiyet vermektedir. Eğer veri kaybı tahammülünün hiç olmadığı bir sistem üzerinde çalışıyorsanız dikkatli olmanız gerekmektedir. Konu ile ilgili daha ayrıntılı çalışma yaptığım zaman buradan sizinle paylaşıyor olacağım.

0 yorum :

Yorum Gönderme