Sqlmaint yardımcı programı
sqlmaint Yardımcı programı, belirlenen bir veya daha fazla veritabanları üzerinde bakım işlemlerini gerçekleştirir. Kullanım sqlmaint dbcc çalıştırmak için kontroller, veritabanı ve kendi işlem günlüğü yedekleyin Güncelleştir istatistikleri ve dizinleri yeniden. Tüm veritabanı bakım faaliyetlerinin belirlenmiş metin dosyası, html dosyası veya e-posta hesabına gönderilebilir bir raporu üretir. sqlmaintönceki sürümleriyle oluşturulan veritabanı bakım planları yürütür SQL Server. Çalıştırmak için SQL ServerBakım planları komut satırından kullanmak dtexec yardımcı yarar.
Önemli |
---|
Bu özellik Microsoft SQL Server'ın bir sonraki sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.Kullanım SQL ServerBakım planı özelliği yerine. Bakım planları ile ilgili daha fazla bilgi için bkz: Bakım planları. |
Sözdizimi
sqlmaint
[-?] |
[
[-S server_name[\instance_name]]
[-U login_ID [-P password]]
{
[-D database_name | -PlanName name | -PlanID guid ]
[-Rpt text_file]
[-To operator_name]
[-HtmlRpt html_file [-DelHtmlRpt <time_period>] ]
[-RmUnusedSpace threshold_percentfree_percent]
[-CkDB | -CkDBNoIdx]
[-CkAl | -CkAlNoIdx]
[-CkCat]
[-UpdOptiStats sample_percent]
[-RebldIdx free_space]
[-SupportComputedColumn]
[-WriteHistory]
[
{-BkUpDB [backup_path] | -BkUpLog [backup_path] }
{-BkUpMedia
{DISK [
[-DelBkUps <time_period>]
[-CrBkSubDir ]
[-UseDefDir ]
]
| TAPE
}
}
[-BkUpOnlyIfClean]
[-VrfyBackup]
]
}
]
<time_period> ::=
number[minutes | hours | days | weeks | months]
Bağımsız değişkenler
Parametreleri ve değerleri boşlukla ayrılmalıdır. Örneğin, arasında bir boşluk olmalı -Sve server_name.
-?
Sözdizimi için Diyagram belirtir sqlmaint iade. Bu parametreyi yalnız kullanılmalıdır.-Sserver_name[ **\instance_name]
Hedef örneğini belirtir Microsoft SQL Server. Belirtmek server_namevarsayılan örneğine bağlanmak için SQL Server Veritabanı AltyapısıBu sunucuda. Belirtmek server_name\**instance_nameadlandırılmış bir örneğine bağlanmak için Veritabanı AltyapısıBu sunucuda. Hiçbir sunucu belirtilmemişse, sqlmaintvarsayılan örneğine bağlar Veritabanı AltyapısıYerel bilgisayarda.-Ulogin_ID
Sunucuya bağlanırken kullanılacak oturum açma kimliğini belirtir. Sağlanmazsa, sqlmaintkullanmayı dener MicrosoftWindows kimlik. Eğer login_IDözel karakterleri içeriyorsa çift tırnak işareti (''); alınmalıdır Aksi takdirde, çift tırnak isteğe bağlıdır.Güvenlik Notu Mümkünse Windows Kimlik Doğrulaması kullanın.
-Ppassword
Parolasını belirtir giriş kimliği. Yalnızca geçerli Eğer -Uparametresi sağlanan de. Eğer passwordözel karakterler içerir; çift tırnak işaretleri arasına alınmalıdır Aksi takdirde, çift tırnak isteğe bağlıdır.Güvenlik Notu Parolayı maskeli değil. Mümkünse Windows Kimlik Doğrulaması kullanın.
-Ddatabase_name
Bakım işlemini gerçekleştirmek için veritabanını belirtir. Eğer database_nameözel karakterler içerir; çift tırnak işaretleri arasına alınmalıdır Aksi takdirde, çift tırnak isteğe bağlıdır.-PlanNamename
Veritabanı bakım planı Sihirbazı kullanılarak tanımlanmış veritabanı bakım planının adını belirtir. Tek bilgi sqlmaintkullanım planı olan veritabanları listesini planı. Diğer belirttiğiniz herhangi bir bakım faaliyetleri sqlmaintparametreleri veritabanları bu listeye uygulanır.-PlanIDguid
Veritabanı bakım planı Sihirbazı kullanılarak tanımlanmış veritabanı bakım planı genel benzersiz tanımlayıcısını (GUID) belirtir. Tek bilgi sqlmaintkullanım planı olan veritabanları listesini planı. Diğer belirttiğiniz herhangi bir bakım faaliyetleri sqlmaintparametreleri veritabanları bu listeye uygulanır. Bu eşleşmesi gereken bir plan_iddeğeri msdb.dbo.sysdbmaintplans.-Rpttext_file
İçine rapor oluşturulup dosyasının adını ve tam yolunu belirtir. Raporu ekranda çıktılanır. Rapor, dosya adına bir Tarih ekleyerek sürüm bilgilerini korur. Tarihi aşağıdaki gibi oluşturulur: dosya adı, ancak önce formu _ dönemi sonundayyyyMMddhhmm. yyyy= year, MM = month, dd = day, hh = hour, mm = minute.10: 23 AM yardımcı programını çalıştırırsanız 1 Aralık 1996, ve bu text_filedeğeri:
c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint.rpt c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint.rpt
Oluşturulan dosyanın adıdır:
c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint_199612011023.rpt c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint_199612011023.rpt
Tam Evrensel Adlandırma Kuralı (unc) dosya adı gereklidir text_filezaman sqlmaintuzak sunucuya erişen.
-To operator_name
Oluşturulan rapor sql posta gönderildiği işlecini belirtir.-HtmlRpthtml_file
İçine bir html raporu oluşturulacak dosyanın adını ve tam yolunu belirtir. sqlmaintDosya adı formatı _ dizesini ekleyerek oluşturduğu yyyyMMddhhmm gibi sadece dosya adı -Rptparametresi.Tam unc dosya adı gereklidir html_file zaman sqlmaintuzak sunucuya erişen.
-DelHtmlRpt <time_period>
Rapor dosyası oluşturulduktan sonra zaman aralığını aşıyorsa, herhangi bir html raporu rapor dizinde silineceğini belirtir <time_period>. -DelHtmlRptDosya adı uygun üretilen model arar html_fileparametresi. Eğer html_filec:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint.htm, daha sonra ise -DelHtmlRptneden sqlmainttüm dosyaları silmek için adları eşleşen C:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint*.htm desen ve belirtilen büyük olan <time_period>.-RmUnusedSpacethreshold_percent free_percent
Kullanılmayan alanı belirtilen veritabanından kaldırılması belirtir -D. Bu seçenek yalnızca otomatik olarak genişlemesi için tanımlanmış veritabanları için yararlıdır. Threshold_percent Veritabanı önce ulaşmalıdır boyutunu megabayt olarak belirtir sqlmaintkullanılmayan veri alanı kaldırma girişiminde. Veritabanı daha küçükse, threshold_percent, hiçbir işlem yapılmaz. Free_percentveritabanının son boyutu yüzdesi olarak belirtilen veritabanı, ne kadar kullanılmayan alanı kalmalıdır belirtir. 200 mb veritabanı 100 MB'a kadar veri içeriyorsa, örneğin 10 belirterek free_percentsonuçları son veritabanı boyutu 110 mb olmak. Bir veritabanı değil Not Genişletilmiş daha küçükse, free_percentveritabanında veri miktarı artı. 108-mb veritabanı 100 MB'a kadar veri varsa, örneğin, 10 için belirtme free_percent110 mb; veritabanına genişletmez 108 mb kalır.-CkDB | -CkDBNoIdx
dbcc checkdb deyimi veya dbcc checkdb deyimi NOINDEX seçeneği ile belirtilen veritabanında çalıştırılması belirtir -D. Daha fazla bilgi için bkz: dbcc checkdb.Bir uyarı yazılan text_fileveritabanı içinde ise ne zaman kullanmak sqlmaint çalışır.
-CkAl | -CkAlNoIdx
NOINDEX seçeneğiyle dbcc checkalloc deyimi belirtilen veritabanında çalıştırılması belirtir -D. Daha fazla bilgi için, bkz. dbcc checkalloc (Transact-sql).-CkCat
dbcc checkcatalog (Transact-sql) deyimi belirtilen veritabanında çalıştırılması belirtir -D. Daha fazla bilgi için, bkz. dbcc checkcatalog (Transact-sql).-UpdOptiStatssample_percent
Aşağıdaki deyim veritabanındaki her tablo çalıştırılması belirtir.UPDATE STATISTICS table WITH SAMPLE sample_percent PERCENT; UPDATE STATISTICS table WITH SAMPLE sample_percent PERCENT;
Ayrıca belirtmeniz gerekir tabloları hesaplanmış sütunları içermiyorsa, -SupportedComputedColumnkullandığınızda bağımsız değişkeni -UpdOptiStats.
Daha fazla bilgi için, bkz. UPDATE STATISTICS (Transact-SQL).
-RebldIdxfree_space
Dizinler hedef veritabanındaki tabloları kullanarak yeniden belirtir free_spaceyüzde değeri dolgu etmeni tersini. Örneğin, eğer free_spaceyüzde 30, sonra kullanılan dolgu etmeni 's 70. Eğer bir free_space100 değerinin yüzdesi belirtilmişse, sonra dizinleri orijinal Dolgu faktörü değeri ile yeniden.Dizinler üzerinde hesaplanan sütunlar vardır, ayrıca belirtmelisiniz -SupportComputedColumnkullandığınızda bağımsız değişkeni -RebldIdx.
-SupportComputedColumn
dbcc bakım komutları çalıştırmak için belirtilmelidir sqlmainthesaplanmış sütunları.-WriteHistory
Bir giriş içinde yapılacağını belirtir msdb.dbo.sysdbmaintplan_historytarafından gerçekleştirilen her bakım eylem sqlmaint. Eğer -PlanNameya -PlanIDbelirtilen giriş sysdbmaintplan_historybelirtilen planı kimliğini kullanın. Eğer -Dbelirtilen giriş sysdbmaintplan_historysıfır planın kimliği ile yapılır-BkUpDB [ backup_path] | -BkUpLog [ backup_path ]
Bir yedekleme eylemi belirtir. -BkUpDbtüm veritabanını yedekler. -BkUpLogyalnızca işlem günlüğü yedekler.backup_pathyedek dizinini belirtir. backup_pathEğer gerekli değildir -UseDefDirtarafından geçersiz kılınır ve ayrıca belirtilen, -UseDefDirher ikisi de belirtilirse. Yedekleme dizini veya bir teyp aygıtı adresi yerleştirilebilir (örneğin, \\. \TAPE0). Bir veritabanı yedekleme için dosya adı otomatik olarak aşağıdaki gibi oluşturulur:
dbname_db_yyyyMMddhhmm.BAK dbname_db_yyyyMMddhhmm.BAK
Burada
dbnameVeritabanı olmanın adı yedeklenir.
yyyyMMddhhmmYedekleme işlemi ile zaman yyyyyıl = MMay = dd= gün, hh= Saat, ve mm= dakika.
İşlem yedekleme için dosya adı ile benzer bir biçimde otomatik olarak oluşturulur:
dbname_log_yyyymmddhhmm.BAK dbname_log_yyyymmddhhmm.BAK
Eğer sen kullanma -BkUpDBparametresi, aynı zamanda medya kullanarak belirtmeniz gerekir -BkUpMediaparametresi.
-BkUpMedia
DISK veya teyp yedekleme ortam türünü belirtir.DISK
Disk yedekleme ortamı olduğunu belirtir.-DelBkUps< time_period >
Disk yedeklemeler için yedekleme oluşturulduktan sonra zaman aralığını aşarsa yedekleme dizini yedekleme dosyalarının silineceğini belirtir <time_period>.-CrBkSubDir
Disk yedekleme için bir alt dizin içinde oluşturulacağını belirtir backup_path] dizin veya varsayılan yedekleme dizini varsa -UseDefDir Ayrıca belirtilir. Alt dizin adı belirtilen veritabanı adı oluşturulur -D. -CrBkSubDirfarklı veritabanları için tüm yedeklemeleri değiştirmek zorunda kalmadan ayrı alt koymak için kolay bir yol sunar backup_pathparametresi.-UseDefDir
Disk yedeklemeler için yedekleme dosyasının varsayılan yedekleme dizininde oluşturulacağını belirtir. UseDefDirgeçersiz kılan backup_pathher ikisi de belirtilirse. Varsayılan Microsoft SQL ServerKur, varsayılan yedekleme dizini olan C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.TAPE
Teyp yedekleme ortamı olduğunu belirtir.-BkUpOnlyIfClean
Yedekleme yalnızca varsa belirtilen ortaya belirtir -Ckçekleri did değil bulmak sorunları veri ile. Komut istemine göründükleri gibi bakım işlemleri aynı sırayla çalıştırın. Parametrelerini belirtmek -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl, veya -CkCatönce -BkUpDB/ -BkUpLog belirtmek için kullanacaksanız, parametre -BkUpOnlyIfClean, ya da yedek kontrol sorunları raporlar olup olmadığını ortaya.-VrfyBackup
Bu tamamlandığında restore VERIFYONLY yedekleme çalıştırılması belirtir.numberhours| hours| day| weeks| ay]
Bir rapor veya yedekleme dosyası silinecek eski olup olmadığını belirlemek için kullanılan zaman aralığını belirtir. numbertamsayı (boşluk) bir süre birimi tarafından izlenir. Geçerli örnekler:12weeks
3months
15days
Keşke numberbelirtilen, varsayılan tarih bölümü hafta.
Açıklamalar
sqlmaint Yardımcı programı, bir veya daha fazla veritabanları üzerinde bakım işlemlerini gerçekleştirir. Eğer -Dbelirtilirse, yalnızca belirtilen veritabanı üzerinde gerçekleştirilen kalan anahtarları belirtilen işlemler. Eğer -PlanNameya -PlanIDbelirtilen, tek bilgi sqlmaintalır belirtilen bakım planı olan veritabanları listesini planı. Kalan belirtilen tüm işlemleri sqlmaintparametreleri planından elde listesinde her veritabanı uygulanır. sqlmaint Yarar planında tanımlanan bakım faaliyetlerinin herhangi bir geçerli değildir.
sqlmaintYardımcı programı, başarılı bir şekilde çalışıyorsa 0 ya da 1 başarısız olursa döner. Başarısızlık bildirilir:
Bakım eylemler başarısız olursa.
Eğer -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl, ya -CkCatdenetimleri veri sorunları bulmak.
Eğer genel bir hatayla karşılaştı.
İzinler
sqlmaintYardımcı olan bir Windows kullanıcı tarafından yürütülebilir okuma ve yürütme izni sqlmaint.exe, varsayılan depolanır x:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER1\MSSQL\Binnklasör. Ayrıca, SQL Servergiriş ile belirtilen -login_IDolmalıdır SQL Serverbelirtilen eylemi gerçekleştirmek için gerekli izinler. Eğer bağlantı SQL ServerWindows kimlik doğrulaması kullanan SQL Serverkimliği doğrulanmış Windows kullanıcı eşleştirilmiş oturumu olması gerekir SQL Serverbelirtilen eylemi gerçekleştirmek için gerekli izinler.
Örneğin, -BkUpDBbackup deyimi yürütme izni gerektirir. Ve -UpdOptiStatsbağımsız değişken gerektirir update STATISTICS deyimi yürütme izni. Daha fazla bilgi için bkz: "İzinler" bölümler ilgili konuların Books içinde Online.
Örnekler
A.Bir veritabanında dbcc gerçekleştirme denetler
sqlmaint -S MyServer -D AdventureWorks2012 -CkDB -CkAl -CkCat -Rpt C:\MyReports\AdvWks_chk.rpt
sqlmaint -S MyServer -D AdventureWorks2012 -CkDB -CkAl -CkCat -Rpt C:\MyReports\AdvWks_chk.rpt
B.% 15 Örnek kullanarak tüm veritabanlarında bir planı istatistikleri güncelleştirme.Ayrıca, herhangi 110 mb sadece % 10 boş alan olması için ulaştınız veritabanı daraltma
sqlmaint -S MyServer -PlanName MyUserDBPlan -UpdOptiStats 15 -RmUnusedSpace 110 10
sqlmaint -S MyServer -PlanName MyUserDBPlan -UpdOptiStats 15 -RmUnusedSpace 110 10
C.Bir planı tüm veritabanlarında bir yedekleme için kendi bireysel alt dizinlerinde varsayılan x:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup dizin.Ayrıca, herhangi bir yedekleme 2 haftadan eski silme
sqlmaint -S MyServer -PlanName MyUserDBPlan -BkUpDB -BkUpMedia DISK -UseDefDir -CrBkSubDir -DelBkUps 2weeks
sqlmaint -S MyServer -PlanName MyUserDBPlan -BkUpDB -BkUpMedia DISK -UseDefDir -CrBkSubDir -DelBkUps 2weeks
D.Bir veritabanı yedekleme için varsayılan x:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup dizin.\
sqlmaint -S MyServer -BkUpDB -BkUpMedia DISK -UseDefDir
sqlmaint -S MyServer -BkUpDB -BkUpMedia DISK -UseDefDir