SSIS Tutarlılığı Yönetmek
SSIS çözümleri genellikle verileri bir konumdan diğerine aktarmak için kullanılır. Çoğu zaman, genel SSIS çözümü birden çok veri akışı ve işlemi içerebilir ve işlemin bazı bölümleri başarısız olsa bile işlemin her zaman tutarlı bir durumda veriyle sonuçlanmasını sağlamak önemli olabilir.
Bu ders, paketler başarısız olduğunda veri tutarlılığını sağlamaya yönelik teknikleri açıklayacağız.
Arıza Durumunu Yapılandırma
Bir SSIS paketi kontrol akışı iç içe geçmiş kapsayıcılar ve görev hiyerarşileri içerebilir. Kontrol akışının bir öğesindeki bir arızanın toplam paket sonucunu nasıl belirlediğini kontrol etmek için aşağıdaki özellikleri kullanabilirsiniz:
- FailPackageOnFailure – True olarak ayarlandığında, görevin veya kapsayıcının başarısızlığı, tanımlandığı paketin başarısızlığına neden olur. Bu özellik için varsayılan değer False’dur.
- FailParentOnFailure – True olarak ayarlandığında, görevin veya kapsayıcının başarısız olması kapsayıcının başarısızlığına neden olur. Bu özellikteki öğe bir kapsayıcıda değilse, üst öğesi pakettir ve bu durumda bu özellik FailPackageOnFailure özelliği ile aynı etkiye sahiptir. Bu özelliği, başka bir pakette Execute Package görevi tarafından yürütülen bir paket üzerinde ayarlarken, True değeri, bu paket başarısız olursa çağıran paketin başarısız olmasına neden olur. Bu özellik için varsayılan değer False’dur.
- MaximumErrorCount – Bu özellik, öğe başarısız olmadan önce oluşabilen maksimum hata sayısını belirtir. Bu özelliğin varsayılan değeri 1’dir.
Bir görevin başarısız olmasına neden olan bir hata durumunda, paket davranışının ince taneli denetimini elde etmek için bu özellikleri kullanabilirsiniz.
Transaction’ları Kullanma
İşlemler, bir kontrol akışındaki tüm veri değişikliklerinin başarıya ulaşmasını veya tek bir atom birimi olarak başarısız olmasını sağlar. Görevler bir işleme dahil edildiğinde, herhangi bir tekli bir görevin başarısız olması, tüm akışların başarısız olmasına neden olur ve kontrol akışından etkilenen verilerin kısmen veri değişiklikleri yapılmadan tutarlı bir durumda kalmasını sağlar.
İşlem, konteyner veya paketin bir işlemde yer alması, onun tarafından belirlenir.
TransactionOption özelliği, üç olası değerden birine ayarlayabilirsiniz:
- Required – bu yürütülebilir işlem bir işlem gerektirir ve yoksa yenisini oluşturur.
- Supported – ebeveyni birine katılıyorsa, bu yürütülebilir işlemde yer alacaktır.
- NotSupported – bu yürütülebilir hareketleri desteklemez ve varolan bir işlemde kaydolmaz.
SSIS İşlemleri, birden çok veri kaynağındaki işlemleri koordine eden bir sistem bileşeni olan Microsoft Distributed Transaction Coordinator’ne (MSDTC) dayanıyor. Bir SSIS paketi, MSDTC hizmeti çalışmadığında bir işlem başlatmaya çalışırsa bir hata oluşacaktır.
SSIS, paketlerin, kapsayıcıların ve görevlerin tek bir hiyerarşisinde birden fazla eşzamanlı işlemi destekler, ancak iç içe geçmiş işlemleri desteklemez. Birden çok işlemin hiyerarşide nasıl davrandığını anlamak için aşağıdaki gerçekleri göz önünde bulundurun:
- TransactionOption değeri Required olan bir kapsayıcı, TransactionOption of NotSupported içeren bir kapsayıcı içeriyorsa, alt kapsayıcı üst harekette yer almayacaktır.
- Alt kapsayıcı, TransactionOption değeri Desteklenen bir görevi içeriyorsa, görev varolan işleme katılmaz.
- Alt kapsayıcı, TransactionOption değeri Required olan bir görevi içeriyorsa, görev yeni bir işlem başlatacaktır. Bununla birlikte, yeni işlem mevcut işlemle ilgisizdir ve bir işlemin sonucunun diğerinde hiçbir etkisi olmayacaktır.
Leave a reply