Önceki yazıda replikasyonla ilgili terminolojiyi anlatmaya çalıştık. Bu yazıda SQL 2000 ve 2005 üzerinde replikasyon türlerinin nasıl kurulacağını örneklendirelim. Aynı makine üzerinde koşan iki tane SQL Server 2000 instance’imiz var. Birinin adı WXX diğerinin adı WXX\KAFKA. WXX sunucusunu yayıncı ve dağıtıcı, WXX\KAFKA sunucusunu da abone olarak yapılandıracağız. WXX üstündeki KAYNAK isimli veritabanını yayınlayacağız. Sunucuları ilklendirmek ve full backup’ın snapshot klasörüne sorunsuz yüklenmesi ve diğer işlemler için SQL Server Agent servisinin yetkili bir domain ile başlatmak doğru bir çözüm olur. Okumaya devam et
Yazar arşivleri: Ahmet Kaymaz
SQL Server Data Replication (Veri Yineleme) – I
SQL Server’in sürekli kullanılabilirlik için desteklediği işlemlerden biri de replication modelidir. Replication kısaca verileri merkezi konumdan alıp farklı konumlarda yedekleme işlemidir. SQL Database Replication modelinde kullanılan kavramları açıklayıp bu modelin nasıl oluşturulacağını örneklendirelim. Replication yöntemi tüm SQL Server’in tüm sürümlerinde gerçekleştirilebilir. Express sürümü, Merge ve Transactional replication yöntemlerinde sadece subscriber olarak kullanılabilir.
Publisher (Yayıncı): Üye veritabanlarına veri gönderen merkezi sunucu ya da veritabanı. Replikasyondaki kaynak verinin bulunduğu yerdir.
Subscriber (Abone): Merkezi veritabanından verileri alan sunucu ya da veritabanı. Abonele varsayılan olarak merkezi veritabanının salt-okunur (read-only) kopyasına sahiptir ancak farklı bir konfigürasyonla abonelerde de değişikliğe izin verilebilir veya yapılan değişiklikler merkezi veritabanına yansıtılabilir.
Distributor (Dağıtıcı): Yayıncı ile abone arasındaki veri akışını yöneten sunucu. Bu amaçla < ı>distribution isimli veritabanına sahiptir. Bu veritabanında veri ve şema bazında yapılmış değişiklikler tutulur. Bir veritabanı sunucusu aynı anda hem publisher hem de distributor rolünde olabilir.
Article (Makale): Yayıncı tarafından yayınlanan içerik. VTYS’de üye sunuculara gönderilecek veritabanı nesneleridir (table, view, stored procedure). Makale koleksiyonu publication (yayın) olarak tanımlanır.
Push ve Pull Subscription (Abonelik gönderme ve çekme): Push subscription’da distributor verileri subscriber veritabanına kopyalar. Bu yöntemde işin yükünü distributor çeker. Pull subscription’da ise subscriber kendisi distributor’dan verileri çeker yani işin yükü abonelere verilmiş olur. Okumaya devam et
SQL Server Log Shipping (Günlük Gönderme)
SQL Server yüksek erişilebilirlik çözümlerinden olan Log Shipping modelinde öncelikle aktif (birinci) sunucunun full backup’ı alınıp ikinci sunucuya kopyalanır ardından belirli peryodlarda birinci sunucunun log backup’ı alınıp ikinci sunucuya kopyalanır. Böylece iki sunucununun veri tabanı düzeyinde aynı olması sağlanmış olur. SQL Server 2000 üzerinde log shipping işlemi için Enterprise Manager’ın Database Maintenance Plan Wizard aracı kullanılır. Bu aracı kullanmadan önce aşağıdaki notları dikkate almamız gerekir. Okumaya devam et
SQL Server Yüksek Erişilebilirlik (High Availability)
SQL Server, Oracle gibi büyük ölçekli veri tabanı sistemlerinin özellikle kurumsal uygulamalarda tercih edilme nedenlerinden biri daha fazla yüksek erişilebilirlik(High Availability) sunmalarıdır. Yüksek erişilebilirlik, 7×24 çalışan sistemlerin gerek otomatik gerekse manual sebeplerden dolayı yazılım veya donanımdan kaynaklanacak kesintilere uğramaksızın hizmet vermesidir. Internet gibi dağıtık ortamlarda hizmet veren sistemlerin kısa da sürse kesintiye uğraması önemsenecek maddi kayıplara neden olabilmektedir. Büyük yazılım firmaları sistemlerin 7×24×365 hizmet vermesini garanti etmek için çeşitli çözümler sunmaktadır. Kurumların fiyat-performans ikilisini gözönünde bulundurarak bu çözümlerden birini uygulaması gerekir. Okumaya devam et
XML İçeriğinin Girintili Yazılması
Farklı veritabanları üzerinden çekilmiş olan XML verisinin bir dosyaya kayıt edilip ilgili alana FTP ile gönderildiği projede ihtiyaç duyduğum küçük bir örneği paylaşmak istiyorum. Düz metin formatında bulunan XML datasının standart XML formatından girintili olarak gösterilmesi. Okumaya devam et
Environment Sınıfı Kolay Ulaşım Sağlar
Bilindiği gibi işletim sistemlerinde sistem üzerindeki tüm uygulamalar tarafından erişilebilen Ortam Değişkenleri (Environment Variables) bulunur. Bu değişkenler uygulamaların ortamla ilgili ihtiyaç duyacağı bilgileri sunar. Örneğin işletim sisteminin hangi sürücüye kurulduğu, geçici dosyaların hangi klasörde saklanacağını bu değişkenlerden öğrenir. Ortam değişkenleri local(yerel) ve system(sistem) olmak üzere iki türde tanımlanır. Yerel değişkenler kullanıcıya özgü olup kullanıcı işletim sistemine giriş yaptığından düzenlenir. Sistem değişkenleri ise işletim sistemi bazında yani tanımlı tüm kullanıcılar için geçerli değişkenlerdir. Örneğin %USERNAME% değişkeni yerel bir değişken olup o anda oturum açmış kullanıcının kullanıcı adını döndürür. %WINDIR% ise sistem türünde bir değişken olup işletim sisteminin klasörünün yolunu belirtir. Bunlara benzer, %COMPUTERNAME%, %USERDOMAIN%, %DATE% , %TIME%, %TEMP%,%PATH%, %PATHEXT%, %OS% gibi değişkenler kullanılır. Okumaya devam et
İnsan! Seni savunuyorum; sana karşı!
“Bildiğim her şeyden sorumlu olmazsam, nasıl hak edebilirim yaşamayı“
Uzun bir aradan sonra Nuri Pakdil ustanın “Klas Duruş”unu yeniden okudum. O günden bu yana durduğum ve durmam gereken yeri, iktidarsız edilmek istenen zihnimi ne kadar koruyabildiğimi, şuanda kıymetini bildiklerimin doğruluğunu, sesimi-sözümü-dilimi-kelimelerimi sorguladım. Çok da olumlu sonuçlar elde ettiğimi söyleyemem. Burada kendimi dillendirmekten ziyade Nuri Pakdil hakkında bir iki cümle yazmak istedim. Okumaya devam et
XML tabanlı Comment (Kod Dokümantasyonunu Oluşturmak)
.NET dilleriyle geliştirilmiş bir program sınıflardan oluşur. Sınıflar içinde de sınıf, yapı, numaralandırma, yordam gibi üyeler bulunur. İyi bir programcı, bu üyelerin kodlamasını önemsediği kadar üyelerle ilgili dokümantasyonu da önemsemelidir. Hem grup çalışmalarda bir başkasının sınıflar içindeki yapıların işlevini anlaması hem de geçmişe dönüp kodlarımızı incelediğimizde kod satırlarını daha rahat anlamak için kodlarımız arasına açıklamalar eklemeliyiz. Programlara hem tek satırlı hem de çok satırlı açıklamalar ekleyebiliriz. .NET dilleri dili açıklamalar için XML tabanlı belgelendirme formatı da sunar. Böylece hem standart bir biçim sağlanır hem de ihtiyaç duyulduğunda tüm açıklamalar XML olarak çıkarılarak msdn veya başka formatlarda etkili proje dokümantasyonu oluşturulabilir. Okumaya devam et
DataTable’da Distinct ve TOP N Örneği
ADO.NET’in önemli üyesi olan DataTable nesnesi üzerinde arama yaparken distinct (tekilleştirme) veya top n (üstten belli sayıda satır seçme) işlemlerine ihtiyaç duyabiliriz. Bu işlemleri çoğu zaman VTYS üzerinde yapmak mantıklı görünse de özellikle bağlantısız katman işlemlerinde veritabanına gitmeksizin bu işlemleri yapmak işlemleri hızlandırır. Bu yazıda bununla ilgili basit bir örnek vereceğiz. Okumaya devam et
Veritabanı Otomatik Küçültme (Auto Shrink)
SQL Server üzerinde bir veritabanı oluşturduğumuzda veritabanının sahip olduğu data ve log dosyalarının başlangıç büyüklük değerlerini de belirleriz. Aynı zamanda veritabanının ileride büyüme ihtiyacı duyduğunda nasıl hangi oranda büyüyeceği de data ve log dosyası bazında belirtilir. Eğer veritabanı için maksimum bir büyüklük verilir ve bunu aşmaması işaretlenirse maksimum değerden daha fazla yere ihtiyaç duyması durumunda sistem hata verecektir. Bu yüzden veritabanlarının büyüklük ayarlarının sistemin amacına uygun düzenlenmesi gerekir. SQL Server özellikle büyük veritabanlarında index düzenlemeler, geniş çaplı güncellemeler, toplu kaydetme veya silme gibi yoğun disk işlemlerinde o veritabanını büyütme ihtiyacı duyar. Bu büyüme kalıcı veya geçici olabilir. Özellikle kalıcı durumlarda sistemin kullandığı geniş disk alanını serbest bırakmak veya veritabanı dosyalarında zamanla kullanılmayan data page’leri yok etmek için daraltma (shrinking) işlemi gerçekleştirilir. Okumaya devam et