LOG SHIPPING Yusuf KAHVECİ Senior Database Administrator @2014 www.sqlturkiye.com info@sqlturkiye.com 1
YUSUF KAHVECİ KİMDİR? Merhaba Sevgili Arkadaşlar, 1987 İstanbul doğumluyum. Bilgisayar Mühendisliği ve İktisat mezunuyum. İş hayatına Eğitimci olarak başladım ve senelerdir Özel Kurumlarda Senior DBA olarak devam etmekteyim. Uzmanlık alanlarım MS SQL Server ve Oracle dır. Şu anda özel bir firmada Senior Database Administrator olarak görevime devam etmekteyim. Bana ulaşabileceğiniz bilgiler E- Book içerisinde mevcuttur. Kişisel Web Adresimden ve mail adreslerimden bana ulaşabilirsiniz. Kurucusu olduğum SQL TÜRKİYE Platformum üzerinden istek ve öneilerinizi iletebilir görüşlerinizi paylaşabilirsiniz. Platformumuzun temel amacı Türkçe kaynağım az olduğu bu dönemde SQL SERVER Yönetimi, BI,DWH,PDW vb. Teknolojilerin sizlere aktarılması ve size yardımcı olacak ve profesyonel ekibimiz ile sizlere sunacağımız bilgi kaynaklarından faydalanabilir ve sizlerde bu bilgi kaynağına katkıda bulunabilirsiniz. Saygılarımla 2
LOG SHIPPING YAPISI LOG SHIPPING MİMAİRİSİ İlk önce Log Shipping yapacağımız veritabanımızı oluşturuyoruz. USE [master] GO CREATE DATABASE [LogShippingSQLTR] CONTAINMENT = NONE ON PRIMARY ( NAME = N'LogShippingSQLTR', FILENAME = N'D:\DATA\LogShippingSQLTR.mdf', SIZE = 4096KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON 3
( NAME = N'LogShippingSQLTR_log', FILENAME = N'D:\LOG\LogShippingSQLTR_log.ldf', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) GO Daha sonra oluşturduğumuz veritabanı üzerinden bir adet FullBackup alalım. BACKUP DATABASE [LogShippingSQLTR] TO DISK = N'E:\Backup\LogShippingSQLTRFull.bak' WITH NOFORMAT, NOINIT, NAME = N'LogShippingSQLTR-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,COMPRESSION, STATS = 10 GO Şimdi ise Log Shipping ayarlarımızı yapalım. İlk olarak Transaction Log Backup larımızı alacağımız Primary Server da Folder ımızı paylaşıma açalım. Folder ımızı Share yapmak için üzerine gelip sağ tıklıyoruz ve Proparties sekmesinden Sharing kısmına giriyoruz ve Share butonuna basıp her iki tarafta da tanımlı ve yetkili kullanıcımızı aktarımın sağlıklılığı açısından girerek OK e basıyoruz. Bu klasöre hem birinci hem de ikinci sunucu erişecek şekilde yetkilendirmelerimizi yaptıktan sonra genelde garanti olması açısından Everyone hakkı verilir fakat security problemi yaşayacağınızdan gerekli yetkilendirmeleri kısıtlayabilirsiniz. Daha sonra Share path bilgisini bir yere not ediyoruz. ( \\DBATest\LogShipping ) 4
Bu işlemden sonra Log Shipping uygulayacağımız veritabanımız üzerine gelip sağ tıklayıp Task sekmesinden Ship Transaction Logs sekmesine tıklıyoruz ve Log Shipping ayarlamalarını yapacağımız ekran karşımıza gelmektedir. Açılan ekranda Enable this as a primary in log shipping configuration sekmesini tıkklıyoruz ve daha sonra Backup Settings butonuna basarak Transaction Log Backup ayarlamalarımızı gerçekleştiriyoruz. 5
Açılan pencerede Network path to backup folder bölümüne önceden kaydettiğimiz Folder Sharing path adresimizi giriyoruz. If the Backup Folder is located on the primary server type a local path to the folder bölümüne ise Transaction Log Backup ları aldığımız Local Path adresimizi yazıyoruz. Delete files older then bölümünde ise kaç günden önce ki logların silineceğini belirtebiliyoruz. 6
Tüm bu işlemlerden sonra OK butonuna basıyoruz ve aşağıda ki ekranda Add butonuna basarak işlemlerimize devam ediyoruz 7
Açılan pencerede Connect butonuna tıklayarak Secondary makinasına erişimi sağlıyoruz. 8
Gerekli ayarlamaları gerçekleştirdikten sonra Connect işlemimizi gerçekleştiriyoruz. 9
Restore Options butonuna basarak Transaction Log ların Restore edilecek yer bilgilerini giriyoruz. Bu süreci tamamladıktan sonra Destination folder copied files bölümüne Secondary sunucunun Network Path ini yazıyoruz. (\\DBATEST2\LogShipping) 1 0
Daha sonra Restore Transaction Log kısmında ise ; 1 1
Standby Mode unu işaretliyoruz ve Schedule kısmını istediğiniz şekilde set edebilirsiniz. OK butonuna basarak Log Shipping operasyonumuzu gerçekleştirmiş oluyoruz. Schedule lara dokunmadık ve Default ayarlarında yani 15 dakika olarak bıraktık. Log senkronizasyonumuz 15 dakika da bir gerçekleşecek. Veritabanımızın bir yedeğide Secondary makinada 15 dakika geriden gelmektedir. Log Shipping senaryoları High Availability değilde Disaster Recovery senaryosu olarak kullanmak daha mantıklıdır. Örneğin İstanbul da bir AlwaysOn yapınız mevcut ve İzmirde ki Data Center ınıza da sisteminizi yormadan data transferi gerçekleştirmek istiyorsunuz. Disaster durumunda en son nokta olarak belirlediğiniz aralıkta ki yani tahammül edilebilir data kaybınızı göz önüne aldığınızda İzmir e Log Shipping ile aktardığınız datalardan kaldığınız yerden ufak bir data kaybı ile devam edebilirisniz. Örneğiniz bizim örneğimizde 15 dakikalık bir kayıp söz konusudur. 1 2
Primary Secondary 1 3