Share via


SQLmaint yardımcı programı

Thesqlmaint utility performs a specified set of maintenance operations on one or more databases.Use sqlmaint dbcc denetimleri çalıştırmak için bir veritabanı ve hareket günlüğü yedeklemek güncelleştirme istatistiklerive dizinler yeniden oluşturma.All database maintenance activities generate a report that can be sent to a designated text file, HTML file, or e-mail account.sqlmaint executes database maintenance plans created with previous versions of SQL Server.Çalıştırmak için SQL Server Bakım planları komut istemi satırından kullanmak dtexec yardımcı programını yardımcı programı.

Ö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.Use SQL Server Bakım özelliği yerine planlayın.Bakım planları hakkında 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

Parametreler ve değerleri boşlukla ayrılması gerekir.Örneğin, bulunması arasında bir boşluk -s ve server_name.

  • -?
    Sözdizimi için Diyagram belirtir sqlmaint döndürülmesi.Bu parametre tek başına kullanılması gerekir.

  • -Sserver_name[ **\instance_name]
    Specifies the target instance of Microsoft SQL Server.Belirtmek server_name bağlanmak için varsayılan örnek , SQL Server Veritabanı Altyapısı o sunucu.Belirtmek server_name
    \**instance_name bağlanmak için bir adlandırılmış örnek , Veritabanı Altyapısı , sunucu.Hiçbir sunucu belirtilmemişse, sqlmaint bağlandığı varsayılan örnek , Veritabanı Altyapısı yerel bilgisayar.

  • -Ulogin_ID
    Sunucuya bağlanırken kullanılacak oturum oturum açma kimliği belirtir.Sağlanmazsa, sqlmaint kullanmayı dener Microsoft Windows kimlik doğrulaması.If login_ID contains special characters, it must be enclosed in double quotation marks ("); otherwise, the double quotation marks are optional.

    Güvenlik notuGüvenlik Notu

    Mümkünse Windows Kimlik Doğrulaması kullanın.

  • -Ppassword
    Oturum açma kimliği için parola belirtirYalnızca geçerli Eğer - u parametre de sağladı.If password contains special characters, it must be enclosed in double quotation marks; otherwise, the double quotation marks are optional.

    Güvenlik notuGüvenlik Notu

    Parola maskelenir.Mümkünse Windows Kimlik Doğrulaması kullanın.

  • -Ddatabase_name
    Bakım işlemi gerçekleştirmek istediğiniz veritabanının adını belirtir.If database_name contains special characters, it must be enclosed in double quotation marks; otherwise, the double quotation marks are optional.

  • -PlanNamename
    Veritabanı Bakım planı sihirbazını kullanarak tanımlanan bir veritabanı bakım planının adını belirtir.Tek bilgi sqlmaint planından kullanımdır veritabanları listesi planda.Bakım faaliyetleri, diğer belirtmeniz sqlmaint parametreleri veritabanları bu listeye uygulanır.

  • -PlanIDguid
    Veritabanı Bakım planı sihirbazını kullanarak tanımlanan veritabanı bakım planı genel benzersiz tanımlayıcı (GUID) belirtir.Tek bilgi sqlmaint planından kullanımdır veritabanları listesi planda.Bakım faaliyetleri, diğer belirtmeniz sqlmaint parametreleri veritabanları bu listeye uygulanır.Bu eşleşmesi gereken bir plan_id değeri msdb.dbo.sysdbmaintplans.

  • -Rpttext_file
    Tam belirtir yol ve içine rapordur oluşturulacak dosyanın adı.Raporu ekranda da oluşturulur.Rapor dosya adı için bir tarih ekleyerek sürüm bilgilerini korur.tarih aşağıdaki gibi oluşturulur: Dosya adının, ancak önce form _, dönemin sonundayyyyMMddhhmm.yyyy= year, MM = month, dd = day, hh = hour, mm = minute.

    If you run the utility at 10:23 A.M.on December 1, 1996, and this is the text_file value:

    c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2008R2_maint.rpt
    

    Oluşturulan dosyanın adıdır:

    c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2008R2_maint_199612011023.rpt
    

    Tam Evrensel Adlandırma Kuralı (unc) dosya adı gereklidir text_file , sqlmaint uzak bir sunucuya erişir.

  • -To operator_name
    Oluşturulan rapor sql posta gönderildiği işleç belirtir.

  • -HtmlRpthtml_file
    Specifies the full path and name of the file into which an HTML report is to be generated.sqlmaint generates the file name by appending a string of the format _yyyyMMddhhmm to the file name, just as it does for the -Rpt parameter.

    Tam unc dosya adı gereklidir html_file , sqlmaint uzak bir sunucuya erişir.

  • -DelHtmlRpt <time_period>
    Rapor dosyası oluşturulduktan sonra saat aralığını aşarsa herhangi bir html raporu rapor dizininde silineceğini belirtir <time_period>.-DelHtmlRpt adıyla üretilen desen uyan dosyaları arar html_file parametresi.If html_file is c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2008R2_maint.htm, then -DelHtmlRpt causes sqlmaint to delete any files whose names match the pattern C:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2008R2_maint*.htm and that are older than the specified <time_period>.

  • -RmUnusedSpacethreshold_percent free_percent
    Kullanılmayan alanı belirtilen veritabanından kaldırılması belirtir -d.This option is only useful for databases that are defined to grow automatically.Threshold_percent specifies in megabytes the size that the database must reach before sqlmaint attempts to remove unused data space.If the database is smaller than the threshold_percent, no action is taken.Free_percent specifies how much unused space must remain in the database, specified as a percentage of the final size of the database.200 MB'lık veritabanı 100 mb veri içeriyorsa, örneğin, 10 belirterek free_percent sonuçlar 110 mb olan son veritabanı boyutu.Bir veritabanı değil Not genişletilmiş'den küçükse, free_percent yanı sıra veri veritabanı.108 mb veritabanı 100 mb veri varsa, örneğin, 10 belirterek free_percent 110 mb; veritabanına genişletin 108 mb olarak kalır.

  • -CkDB | - ckdbnoidx
    dbcc checkdb deyim veya bir NOINDEX seçeneği ile dbcc checkdb deyim içinde belirtilen veritabanında çalıştırılması belirtir -d.Daha fazla bilgi için bkz: dbcc checkdb.

    Bir uyarı yazılan text_file veritabanı içinde ise ne zaman kullanmak sqlmaint çalışır.

  • -CkAl | - ckalnoidx
    Belirleyen dbcc CHECKALLOC'u deyim ile NOINDEX seçeneği olarak belirtilen veritabanında çalıştırın -d.Daha fazla bilgi için bkz: dbcc CHECKALLOC'u (Transact-sql).

  • -CkCat
    dbcc checkcatalog (Transact-sql) deyim içinde 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
    

    Tabloları hesaplanmış sütunları içermiyorsa, de belirtmeniz gerekir - supportedcomputedcolumn kullandığınızda bağımsız değişkeni - updoptistats.

    Daha fazla bilgi için bkz: update STATISTICS (Transact-sql).

  • -RebldIdxfree_space
    Hedef veritabanındaki tablolarda dizinler kullanarak yeniden belirtir free_space yüzde değeri tersini doldurma faktörü.Örneğin, free_space yüzde 30 ise, daha sonra kullanılan doldurma faktörü 70'tir.Yoksa bir free_space yüzde değeri 100 olarak belirtilmişse, sonra orijinal dizinler yeniden oluşturulduktan doldurma faktörü değer.

    Dizinler üzerinde hesaplanan sütunlar olup olmadığını da belirtmeniz gerekir - supportcomputedcolumn kullandığınızda bağımsız değişkeni - rebldidx.

  • -SupportComputedColumn
    dbcc bakım komutları ile çalışacak şekilde belirtilmelidir sqlmaint hesaplanan sütunlar üzerinde.

  • -WriteHistory
    Bir giriş içinde yapılacağını belirtir msdb.dbo.sysdbmaintplan_history her bakım için eylem tarafından gerçekleştirilen sqlmaint.If -PlanName or -PlanID is specified, the entries in sysdbmaintplan_history use the ID of the specified plan.If -D is specified, the entries in sysdbmaintplan_history are made with zeroes for the plan ID.

  • -BkUpDB [ backup_path] | -BkUpLog [ backup_path ]
    Yedek eylem belirtir.-BkUpDb tüm veritabanını yedekler.-BkUpLog yalnızca işlem günlüğünü yedekler.

    backup_path specifies the directory for the backup.backup_path is not needed if -UseDefDir is also specified, and is overridden by -UseDefDir if both are specified.Yedek bir dizin ya da bir teyp aygıtı adresi yer alır (örneğin, \\.\TAPE0).Bir veritabanı yedek için dosya adı otomatik olarak aşağıdaki gibi oluşturulur:

    dbname_db_yyyyMMddhhmm.BAK
    

    burada

    • dbname adı, veritabanı yedeklenir.

    • yyyyMMddhhmmyedek işlemi saat yyyy = Yıl, MM ay = dd = gün, hh = saat, ve mm = dakika.

    İşlem yedek için dosya adı ile benzer bir biçimde otomatik olarak oluşturulur:

    dbname_log_yyyymmddhhmm.BAK
    

    Kullanırsanız, - bkupdb parametresi, kullanarak ortam belirtmelisiniz - bkupmedia parametresi.

  • -BkUpMedia
    DISK veya teyp yedek ortam türünü belirtir.

  • DISK
    Belirleyen bir yedek ortamı bir disktir.

  • -DelBkUps< time_period >
    Herhangi bir disk yedekler için belirtir yedek dosyası yedek yedek oluşturulduktan sonra saat aralığını aşarsa dizin silinmesi <time_period>.

  • -CrBkSubDir
    Disk yedek için bir alt dizin oluşturulması gerektiğini belirtir [backup_path] Varsayılan dizin veya dizin, yedek - usedefdir de belirtilir.Alt dizin adı belirtilen veritabanı adı oluşturulur -d.-CrBkSubDir değiştirmeye gerek kalmadan tüm yedeklemeleri farklı veritabanları için ayrı alt dizinleri koymak için kolay bir yol sunar backup_path parametresi.

  • -UseDefDir
    Disk yedekler için belirleyen bir yedek dosyası varsayılan yedek dizininde oluşturulabilir.UseDefDir geçersiz kılar backup_path her ikisi de belirtilirse.With a default Microsoft SQL Server setup, the default backup directory is C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.

  • TEYP
    Belirleyen yedek ortamı teyp.

  • -BkUpOnlyIfClean
    yedek yalnızca varsa belirtilen ortaya belirtir ck - denetimleri veri sorunları algılayamadı.komut istemi istemi'nde göründükleri gibi bakım eylemler aynı sırayla çalıştırın.Parametrelerini belirtmek - ckdb, - ckdbnoidx, - ckal, - ckalnoidx, - cktxtal, veya - ckcat önce - bkupdb/- bkuplog belirtmek için de yapacaksanız, parametre - bkuponlyifclean, veya yedek onay sorunları raporlar olup olmadığına bakılmaksızın gerçekleşir.

  • -VrfyBackup
    Yükleme tamamlandığında restore VERIFYONLY yedek çalıştırılması belirtir.

  • number[minutes| hours| day| weeks| months]
    Specifies the time interval used to determine if a report or backup file is old enough to be deleted.number is an integer followed (without a space) by a unit of time.Geçerli örnekler:

    • 12weeks

    • 3months

    • 15days

    Yalnızca, number belirtilen, varsayılan tarih bölümü hafta.

Açıklamalar

The sqlmaint utility performs maintenance operations on one or more databases.If -D is specified, the operations specified in the remaining switches are performed only on the specified database.If -PlanName or -PlanID are specified, the only information sqlmaint retrieves from the specified maintenance plan is the list of databases in the plan.Kalan belirtilen tüm işlemleri sqlmaint parametreleri planından elde listesinde her veritabanı karşı uygulanır.The sqlmaint utility does not apply any of the maintenance activities defined in the plan itself.

The sqlmaint utility returns 0 if it runs successfully or 1 if it fails.Başarısızlık bildirilir:

  • Bakım eylemlerini başarısız olursa.

  • If -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl, or -CkCat checks find problems with the data.

  • Genel bir hata ortaya çıkarsa.

İzinler

The sqlmaint utility can be executed by any Windows user with Read and Execute permission on sqlmaint.exe, which by default is stored in the x:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER1\MSSQL\Binn folder.Ayrıca, SQL Server belirtilen oturum açma ile -login_ID olması gerekir SQL Server gerekli izinleri gerçekleştirilecek belirtilen bir eylem.Bağlantı SQL Server Windows kimlik doğrulamasını kullanır SQL Server oturum açma eşlenen Windows yetkilendirilmiş olması gerekir SQL Server gerekli izinleri gerçekleştirilecek belirtilen bir eylem.

Örneğin, - bkupdb backup deyim yürütmek izni gerektirir.Ve - updoptistats update STATISTICS deyim yürütmek izni bağımsız değişken gerektirir.Daha fazla bilgi için bkz: "İzinler" Çevrimiçi Kitapları'nda ilgili konular bölümler.

Örnekler

A.Bir veritabanında dbcc gerçekleştirme denetler

sqlmaint -S MyServer -D AdventureWorks -CkDB -CkAl -CkCat -Rpt C:\MyReports\AdvWks_chk.rpt

B.Tüm veritabanlarında bir plan içinde % 15 örnek kullanarak istatistiklerini güncelleştiriliyor.Ayrıca, herhangi bir 110 mb yalnızca % 10 boş alan bulunması ulaştınız veritabanı daraltma

sqlmaint -S MyServer -PlanName MyUserDBPlan -UpdOptiStats 15 -RmUnusedSpace 110 10

C.Bir planı tüm veritabanlarını yedekleme için bunların tek tek dizinler varsayılan klasördeki x:\Program Files\Microsoft sql Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.Ayrıca, herhangi 2 haftadan eski yedekleri silme

sqlmaint -S MyServer -PlanName MyUserDBPlan -BkUpDB -BkUpMedia DISK -UseDefDir -CrBkSubDir -DelBkUps 2weeks

D.Bir veritabanını yedekleme dizinine varsayılan x:\Program Files\Microsoft sql Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.\

sqlmaint -S MyServer -BkUpDB -BkUpMedia DISK -UseDefDir