Share via


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 notÖ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 notuGü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 notuGü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

Ayrıca bkz.

Başvuru

Yedekleme (Transact-sql)

UPDATE STATISTICS (Transact-SQL)