Log Shipping Nedir?

Log shipping, veri tabanlarının yedeklenmesi ve yüksek kullanılabilirliğinin sağlanması amacıyla yaygın olarak kullanılan yöntemdir. Bu teknik, birincil (primary) veri tabanındaki tüm değişikliklerin, belirli aralıklarla yedek (standby) veri tabanına otomatik olarak aktarılmasını sağlar. Böylece, birincil veri tabanında meydana gelebilecek herhangi bir donanım veya yazılım arızası durumunda, yedek veri tabanı hızlı bir şekilde devreye alınarak veri kaybı ve kesinti süreleri minimize edilir. Bu makalede, log shipping’in temel prensipleri, kurulumu ve yönetimi ile ilgili detaylar ele alınacaktır.

Log Shipping Nedir?

Log shipping, birincil veritabanındaki transaction log’larının düzenli aralıklarla yedek bir veritabanına kopyalanması ve restore edilmesi sürecidir. Bu yöntem, veri tabanı yöneticileri tarafından veri bütünlüğünü korumak, veri kaybını önlemek ve yüksek kullanılabilirlik sağlamak amacıyla kullanılır. Log shipping işlemi, üç ana bileşenden oluşur:

  1. Birincil Veritabanı (Primary Database): Tüm transaction log’larının oluşturulduğu ve saklandığı ana veri tabanıdır.
  2. İkincil Veritabanı (Secondary Database): Birincil veri tabanındaki transaction log’larının kopyalandığı ve restore edildiği yedek veri tabanıdır.
  3. Monitor Sunucusu (Monitor Server): Log shipping sürecini izleyen ve olası hataları veya gecikmeleri raporlayan isteğe bağlı bir bileşendir.

Log shipping, felaket kurtarma senaryolarında kritik bir rol oynar ve veri tabanı kesintisi durumunda hızlı bir kurtarma sağlanmasına yardımcı olur.

Log Shipping Uygulama Yöntemleri

Log Shipping uygulaması genellikle üç ana aşamadan oluşur: yedekleme, kopyalama ve geri yükleme. Bu aşamalar, log shipping’in düzgün bir şekilde çalışmasını sağlar. İşte detaylarıyla birlikte Log Shipping uygulama yöntemleri:

1. Yedekleme (Backup)

Birincil veritabanındaki transaction log’ları belirli aralıklarla yedeklenir. Bu işlem, log shipping işleminin temelini oluşturur ve veritabanındaki değişikliklerin kaydedilmesini sağlar.

  • Otomatik Yedekleme: SQL Server Agent veya benzeri zamanlayıcılar kullanılarak düzenli aralıklarla log yedeklemeleri yapılır.
  • Yedek Dosyalarının Saklanması: Yedek dosyaları, kopyalama aşaması için erişilebilir bir konuma (örneğin, ağ paylaşımlı bir klasör) kaydedilir.

2. Kopyalama (Copy)

Yedeklenen log dosyaları, birincil veritabanından ikincil veritabanına kopyalanır.

  • Ağ Paylaşımı: Genellikle yedek dosyaları ağ üzerinden erişilebilir bir paylaşıma kopyalanır.
  • Otomatik Kopyalama: Kopyalama işlemi, belirli aralıklarla otomatik olarak yapılabilir, böylece manuel müdahaleye gerek kalmaz.

3. Geri Yükleme (Restore)

Kopyalanan log dosyaları, ikincil veritabanına geri yüklenir.

  • NORECOVERY veya STANDBY Modu: İkincil veritabanı, geri yükleme işlemi sırasında NORECOVERY modunda bırakılarak yeni log dosyalarının geri yüklenmesi sağlanır. Alternatif olarak, STANDBY modu kullanılarak veritabanı okunabilir tutulabilir.
  • Zamanlama: Geri yükleme işlemleri de belirli aralıklarla otomatik olarak yapılabilir.

4. İzleme ve Yönetim (Monitoring and Management)

Log Shipping sürecinin sorunsuz işleyişini sağlamak için izleme ve yönetim araçları kullanılır.

  • SQL Server Log Shipping Monitor: SQL Server’da yerleşik bir araç olarak log shipping işlemlerini izler ve olası hatalar hakkında uyarılar gönderir.
  • Üçüncü Taraf Araçlar: Ek izleme ve yönetim özellikleri sunan üçüncü taraf yazılımlar da kullanılabilir.

Bu aşamalar, log shipping işleminin düzgün bir şekilde çalışmasını sağlar ve veritabanı kesintileri durumunda hızlı bir kurtarma imkanı sunar. Log shipping, felaket kurtarma stratejisinin önemli bir parçasıdır ve yüksek kullanılabilirlik gereksinimlerini karşılamak için yaygın olarak kullanılır.

Log Shipping’in Temel Prensipleri

Log shipping, birincil veritabanındaki transaction log’larının düzenli olarak yedek bir veritabanına kopyalanması ve restore edilmesi prensibine dayanır. Bu sayede veri kaybı ve kesinti süreleri minimize edilir. İşte log shipping’in temel prensipleri:

  1. Transaction Log Yedeklemesi: Birincil veritabanındaki transaction log’ları belirli aralıklarla yedeklenir.
  2. Yedek Dosyalarının Kopyalanması: Bu yedek dosyaları, birincil veritabanından ikincil veritabanına kopyalanır.
  3. Log Dosyalarının Geri Yüklenmesi: İkincil veritabanı, kopyalanan log dosyalarını alır ve bu dosyaları uygulayarak veritabanını günceller.
  4. Kesintisiz Veri Güncellemesi: Bu süreç, düzenli aralıklarla tekrarlanarak birincil ve ikincil veritabanları arasında sürekli bir veri senkronizasyonu sağlanır.

Log Shipping Kurulumu

Log shipping kurulumunu adım adım aşağıda bulabilirsiniz:

Ön Hazırlıklar:

    • Birincil ve ikincil sunucularda SQL Server’ın düzgün çalıştığından emin olun.
    • Her iki sunucuda da gerekli izinlerin ve ağ yapılandırmalarının doğru şekilde yapıldığından emin olun.

    Birincil Veritabanında Yedekleme İşinin Kurulması:

      • SQL Server Management Studio (SSMS) açın.
      • Birincil veritabanına sağ tıklayın ve “Task” -> “Ship Transaction Logs” seçeneğini seçin.
      • “Enable this as a primary database in a log shipping configuration” kutusunu işaretleyin.
      • “Backup Settings” altında yedekleme yolunu ve zamanlamasını belirleyin.

      İkincil Veritabanının Yapılandırılması:

        • “Add Secondary Database” butonuna tıklayın.
        • İkincil sunucuyu ve veritabanını seçin veya oluşturun.
        • “Initialize Secondary Database” altında uygun seçeneği seçin (örneğin, mevcut yedekten geri yükleme).
        • “Copy Files” ve “Restore Transaction Log” sekmelerinde kopyalama ve geri yükleme zamanlamalarını belirleyin.

        Monitor Sunucusunun Yapılandırılması (İsteğe Bağlı):

          • İzleme sunucusu eklemek için “Monitor Server Instance” bölümüne gidin.
          • İzleme sunucusunu seçin ve gerekli ayarları yapın.

          Log Shipping Sürecinin Başlatılması:

            • Tüm ayarları yaptıktan sonra “OK” butonuna tıklayarak log shipping’i başlatın.
            • Sürecin doğru şekilde çalıştığını doğrulamak için SSMS’deki log shipping izleme araçlarını kullanın.

            Log Shipping Yönetimi

            Log shipping yönetimi, süreçlerin sorunsuz işleyişini sağlamak ve olası sorunları hızlıca çözmek için önemlidir. İşte bazı temel yönetim görevleri:

            Düzenli İzleme:

              • SQL Server Log Shipping Monitor veya benzeri izleme araçlarını kullanarak log shipping durumunu düzenli olarak kontrol edin.
              • Herhangi bir hata veya gecikme durumunda anında bildirim almak için uyarı mekanizmaları kurun.

              Sorun Giderme:

                • Log shipping işlemlerinde meydana gelebilecek hataları hızlıca tespit edin ve çözün.
                • Yedekleme, kopyalama veya geri yükleme işlemlerinde meydana gelebilecek hatalar için SQL Server hata günlüklerini kontrol edin.

                Performans Optimizasyonu:

                  • Yedekleme ve geri yükleme zamanlamalarını iş yüküne göre optimize edin.
                  • Ağ trafiğini azaltmak için uygun yedekleme ve kopyalama yollarını kullanın.

                  Düzenli Testler:

                    • Felaket kurtarma senaryolarını düzenli olarak test edin.
                    • İkincil veritabanının gerektiğinde devreye alınabileceğinden emin olmak için test geri yüklemeleri gerçekleştirin.

                    Bakım İşlemleri:

                      • Yedek dosyalarının saklama sürelerini ve disk alanını yönetmek için düzenli bakım işlemleri gerçekleştirin.
                      • Gerektiğinde log shipping yapılandırmalarını güncelleyin ve iyileştirin.

                      Bu adımlar ve yönetim uygulamaları, log shipping işlemlerinin verimli ve kesintisiz bir şekilde çalışmasını sağlar.

                      Paylaş arkadaşlarında okusun