SQL Server Veritabanı Bakımını Kolaylaştırmak için Toplu Komut Dosyası
Yedeklemeler oluşturmanın yanı sıra, veritabanlarınızın performansını ve güvenilirliğini artıran SQL Server'ın sunduğu çeşitli görevler ve işlevler vardır. SQL Server veritabanlarını basit bir komut satırı betiğiyle nasıl yedekleyeceğinizi daha önce göstermiştik, bu nedenle aynı şekilde genel bakım görevlerini kolayca gerçekleştirmenizi sağlayacak bir komut dosyası sunuyoruz..
Veritabanını Sıkıştırma / Küçültme [/ Kompakt]
Bir SQL Server veritabanının kullandığı fiziksel disk alanına katkıda bulunan birkaç faktör vardır. Sadece birkaç isim:
- Kayıtlar eklendikçe, silinirken ve güncellendiğinde zamanla, sorgu sorgulamalarını gerçekleştirmek için geçici veri yapıları oluşturmanın yanı sıra, tablolar sürekli büyüyor ve küçülüyor. Disk depolama ihtiyaçlarını karşılamak için, SQL Server gerektiğinde veritabanının boyutunu (genellikle% 10 oranında) artıracak, böylece veritabanı dosyasının boyutu sürekli değişmeyecektir. Bu, performans için ideal olsa da, kullanılan veri depolama alanının bağlantısının kesilmesine neden olabilir, çünkü örneğin, veritabanının büyümesine neden olan çok sayıda kayıt eklerseniz ve bu kayıtları sildikten sonra SQL Server bunu otomatik olarak geri almayacaktır. disk alanı.
- Veritabanlarınızda Tam Kurtarma Modu kullanıyorsanız, işlem günlüğü dosyası (LDF), özellikle de güncelleme hacminin yüksek olduğu veritabanlarında oldukça büyüyebilir.
Veritabanını sıkıştırmak (veya küçültmek) kullanılmayan disk alanını geri alacaktır. Küçük veritabanları için (200 MB veya daha az) bu genellikle çok fazla olmayacak, ancak büyük veritabanları için (1 GB veya daha fazla) geri kazanılan alan önemli olabilir.
Bir Veritabanını Yeniden İnşa Etme [/ Reindex]
Sürekli olarak dosya oluşturmak, düzenlemek ve silmek, disk parçalanmasına yol açabilir, veritabanına kayıt eklemek, güncellemek ve silmek tablo parçalanmasına neden olabilir. Pratik sonuçlar, okuma ve yazma işlemlerinde performans düşmesiyle aynıdır. Mükemmel bir benzetme olmasa da, tabloları bir veritabanında yeniden indekslemek temelde onları birleştirir. Bazı durumlarda, bu veri alma hızını önemli ölçüde artırabilir.
SQL Server'ın çalışma şekli nedeniyle, tablolar ayrı ayrı yeniden boyutlandırılmalıdır. Çok sayıda tablo içeren veritabanları için bu manuel olarak yapılması gerçekten acı verici olabilir, ancak betiğimiz ilgili veritabanındaki her tabloya çarpar ve tüm dizinleri yeniden oluşturur..
Bütünlüğü Doğrulama [/ Doğrula]
Bir veritabanının hem işlevsel kalması hem de doğru sonuçlar üretebilmesi için mevcut olması gereken çok sayıda bütünlük öğesi vardır. Neyse ki, fiziksel ve / veya mantıksal bütünlük sorunları çok yaygın değildir, ancak zaman zaman bütünlük doğrulama işlemini veritabanlarınızda yürütmek ve sonuçları gözden geçirmek iyi bir uygulamadır.
Doğrulama işlemi komut dosyası üzerinden gerçekleştirildiğinde yalnızca hatalar rapor edilir, bu nedenle hiçbir haber iyi bir haber değildir.
Komut Dosyasını Kullanma
SQLMaint toplu komut dosyası SQL 2005 ile uyumludur ve SQLCMD aracının yüklü olduğu bir makinede çalıştırılmalıdır (SQL Server kurulumunun bir parçası olarak kurulur). Bu betiği Windows PATH değişkeninde (örneğin C: Windows) ayarlanmış bir konuma bırakmanız önerilir, böylece komut satırından başka herhangi bir uygulama gibi kolayca çağrılabilir..
Yardım bilgilerini görüntülemek için, sadece şunu girin:
SQLMaint /?
Örnekler
Bir kompakt çalıştırmak ve ardından güvenilir bir bağlantı kullanarak “MyDB” veritabanını doğrulamak için:
SQLMaint MyDB / Kompakt / Doğrulama
Bir reindex çalıştırmak ve daha sonra “123456” şifresini kullanan “sa” kullanıcısını kullanarak “Special” isimli “MyDB” üzerinde sıkıştırın:
SQLMaint MyDB / S:. Özel / U: sa / P: 123456 / Reindex / Kompakt
Toplu Komut Dosyasının İçinden Kullanma
SQLMaint toplu komut dosyası, komut satırındaki bir uygulama gibi kullanılabilirken, başka bir toplu komut dosyasının içinde kullanırken, CALL anahtar sözcüğü ile gelmelidir..
Örneğin, bu komut dosyası güvenilir kimlik doğrulamasını kullanarak varsayılan bir SQL Server yüklemesinde sistem dışı her veritabanındaki tüm bakım görevlerini çalıştırır:
@EKO KAPALI
SETLOCAL EnableExtensions
SET DBList = ”% TEMP% DBList.txt”
SqlCmd -E -h-1 -w 300 -Q “SET NoCount AÇIK; SELECT Name from master.dbo.sysDatabases NEREDE Adı IN IN ('master', 'model', 'msdb', 'tempdb') ”>% DBList%
FOR / F “usebackq tokenleri = 1” %% i IN (% DBList%) DO (
ÇAĞRI SQLMaint “%% i” / Kompakt / Reindex / Doğrula
EKO +++++++++++
)
EĞER VARSA% DBList% DEL / F / Q% DBList%
ENDLOCAL
SysadminGeek.com adresinden SQLMaint Toplu Komut Dosyasını indirin