Birden çok .mdf dosyası içeren veritabanı


10

Çevrimiçi arama yaptım ancak aradığım şeyi bulamadım.

Sorun / sorgu bence SQL Server'da bir veritabanı bir .mdf dosyası ve belki bazı .ndf dosyaları ve bir .log dosyası olmalıdır.

Bir mdf ve çoklu ndf dosyaları ile birçok veritabanı gördüm. Ama son zamanlarda her veritabanında birden fazla mdf dosyası bulunan bir sunucuda bazı veritabanına rastladım.

Bazı veritabanının bir yedeğini başka bir sunucuya taşıdım ve .log dosyası olarak birincil dosyayı .mdf ve diğer tüm dosyaları .ndf olarak geri yükledim .log olarak geri yüklendi.

Şimdi sorularım:

  1. Bir veritabanı için birden fazla .mdf dosyasına sahip olmanın herhangi bir bilgeliği var mı?
  2. Birden çok .mdf dosyasına sahip olmanın herhangi bir dezavantajı var mı?

Öyleydi SQL Server 2008 R2 64bit Enterprise Edition

Doğru yönde herhangi bir tavsiye veya işaretçi çok takdir edilmektedir. Teşekkür ederim.

Yanıtlar:


14

Ama son zamanlarda her veritabanında birden fazla mdf dosyası bulunan bir sunucuda bazı veritabanına rastladım.

Bunun nedeni yanlış adlandırma kuralıdır. Microsoft, her veritabanının bir birincil veri dosyası olduğunu, ancak yalnızca bir "mdf veri dosyası" olabileceği anlamına gelmediğini, veritabanının .mdfuzantılı birçok veri dosyasına sahip olabileceğini, ancak yalnızca birisinin birincil veri dosyası olacağını söylüyor. mdfBirincil veri dosyasına ve ndfikincil veri dosyasına doğru sınırlama yapmak için uzantı vermek daha iyidir, ancak birincil veri dosyasına .abc uzantısı verebileceğiniz zor ve hızlı bir kural değildir, böylece tanık olduğunuz şey normaldir. Aslında, istediğiniz herhangi bir uzantıyı verebilirsiniz.

Bir veritabanı için birden fazla .mdf dosyasına sahip olmanın herhangi bir bilgeliği var mı?

Şunu mu demek istediniz:

Bir veritabanı için birden fazla birincil dosyaya sahip olmanın herhangi bir bilgeliği var mı ?

Cevap hayır, bir veritabanında sadece bir adet birincil veri dosyası olabilir.

Ama demek istiyorsan:

Bir veritabanı için birden fazla veri dosyasına (.mdf, .ndf veya farklı adlandırılmış) sahip olmanın herhangi bir bilgeliği var mı ?

Bağlıdır, birden fazla veri dosyasıyla avantaj elde edebilirsiniz. Farklı fiziksel sürücülere yayılmışlarsa (iğlerden bahsediyorum) yazma yoğun uygulama ile bazı avantajlar görürsünüz. Eğer hepsi aynı mantıksal bölümlerde ise, hiçbir avantajı olmaz çünkü altta yatan ortak kaynak kullanırlardı. Dosyaların ve dosya gruplarının kullanılması veritabanı performansını artırır, çünkü bir veritabanının birden çok disk, birden çok disk denetleyicisi veya RAID (yedek bağımsız disk dizisi) sistemleri arasında oluşturulmasına izin verir. Örneğin, bilgisayarınızda dört disk varsa, her diskte bir dosya olmak üzere üç veri dosyasından ve bir günlük dosyasından oluşan bir veritabanı oluşturabilirsiniz. Verilere erişilirken, dört okuma / yazma kafası verilere aynı anda paralel olarak erişebilir.

Gereğince bu MSDN BOL makalesinde

Dosya grupları, her dosya grubundaki tüm dosyalar arasında orantılı bir doldurma stratejisi kullanır. Veri dosya grubuna yazılırken, SQL Server Veritabanı Altyapısı, tüm verileri dolu olana kadar ilk dosyaya yazmak yerine, dosya grubundaki her dosyaya dosyadaki boş alanla orantılı bir miktar yazar. Daha sonra bir sonraki dosyaya yazar. Örneğin, f1 dosyasında 100 MB boş alan varsa ve f2 dosyasında 200 MB boş alan varsa, bir boyut f1 dosyasından, iki dosya f2 dosyasından ayrılır, vb. Bu şekilde, her iki dosya da aynı anda dolar ve basit çizgi elde edilir.

Bildiğim diğer bir avantaj, bunun için tek bir veri dosyanız varsa ve bu veritabanını başka bir sunucuya geri yüklemek istiyorsanız, 1 TB boş alan olduğunu düşünmek. Şimdi aynı veritabanı her biri 250 G boyutunda farklı dosyalara yayılmışsa, restorasyonda daha kolay hale gelir. Bu aslında senaryonuz olmayabilir, ancak bir adet 1 TB diskten dört 250 G sürücüsüne sahip bir sunucu bulmanın çok kolay olmasına yardımcı olur

Birçok veri dosyası yerine farklı dosya gruplarına sahip olmak daha iyi olduğunu söyleyebilirim ama yine de pek çok ortam yok. Birden çok dosya grubundan oluşan veritabanları, parça parça geri yükleme olarak bilinen bir işlemle aşamalar halinde geri yüklenebilir. Parçalı geri yükleme tüm kurtarma modelleriyle çalışır, ancak tam ve toplu olarak kaydedilmiş modeller için basit moda göre daha esnektir. Veritabanındaki dosyalar veya dosya grupları ayrı ayrı yedeklenebilir ve geri yüklenebilir. Bu, veritabanının geri kalanını geri yüklemek zorunda kalmadan yalnızca hasarlı dosyaları geri yüklemenizi sağlar. Dosya grubu yedeklemesindeki dosyalar tek tek veya grup olarak geri yüklenebilir


DB'nin birden fazla dosya veri dosyası varsa ndf ve birincil yani hala varsayılan. Bununla tablolar / dizinler oluşturmak için kullanılan DB dosyalarından biri, baş üzerinden herhangi bir performans oluşturur mu? Demek istediğim varsayılan dosya grubu hala birincil ancak oluşturulan tablo ve dizinler veri dosyalarında.
Merhaba 10
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.