Udostępnij za pośrednictwem


Narzędzie Sqlmaint

Thesqlmaint utility performs a specified set of maintenance operations on one or more databases.Użyj sqlmaint do uruchomienia sprawdzania DBCC tworzyć kopię zapasową bazy danych i dziennika aktualizacja statystyki oraz indeksów transakcji.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.Aby uruchomić SQL Server plany konserwacji wiersz polecenia za pomocą Narzędzie dtexec narzędzie.

Ważna informacjaWażne:

Ta funkcja zostanie usunięta z następnej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.Użyj SQL Server zamiast funkcji plan konserwacji.Aby uzyskać więcej informacji na temat planów konserwacji, zobacz Plany konserwacji.

Składnia

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]

Argumenty

Parametry i ich wartości muszą być oddzielone spacją.Na przykład, musi istnieć odstęp między -S i server_name.

  • -?
    Określa, że składnia diagramu dla sqlmaint zwrócone.Ten parametr musi być użyty samodzielnie.

  • -Sserver_name[ **\instance_name]
    Specifies the target instance of Microsoft SQL Server.Określ server_name do łączenia się z wystąpienie domyślne Aparat baz danych programu SQL Server na tym serwerze.Określ server_name
    \**instance_name się z wystąpienie nazwane z Aparat baz danych na tym serwerze.Jeśli serwer nie jest określony, sqlmaint łączy się z wystąpienie domyślne Aparat baz danych na komputerze lokalnym.

  • -Ulogin_ID
    Określa identyfikator logowania podczas łączenia z serwerem.Jeśli nie, sqlmaint próbuje użyć Microsoft uwierzytelniania systemu Windows.Jeśli login_ID zawiera znaki specjalne, muszą być ujęte w podwójny cudzysłów ("); w przeciwnym wypadku znaki podwójnego cudzysłowu są opcjonalne.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.

  • -Ppassword
    Określa hasło dla identyfikator logowania.Jeśli jedyną prawidłową - U również jest podany parametr.Jeśli password zawiera znaki specjalne, muszą być ujęte w podwójny cudzysłów; w przeciwnym wypadku znaki podwójnego cudzysłowu są opcjonalne.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Hasło nie jest maskowany.Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.

  • -Ddatabase_name
    Określa nazwę bazy danych, w którym należy wykonać operację konserwacji.Jeśli database_name zawiera znaki specjalne, muszą być ujęte w podwójny cudzysłów; w przeciwnym wypadku znaki podwójnego cudzysłowu są opcjonalne.

  • -PlanNamename
    Określa nazwę planu konserwacji bazy danych zdefiniowanych przy użyciu Kreatora planu konserwacji bazy danych.Jedyne informacje sqlmaint korzysta z planu jest lista baz danych w planie.Wszelkie czynności konserwacji określić w innych sqlmaint parametry są stosowane do tej listy baz danych.

  • -PlanIDguid
    Określa unikatowy identyfikator globalny (GUID) plan konserwacji bazy danych zdefiniowanych przy użyciu Kreatora planu konserwacji bazy danych.Jedyne informacje sqlmaint korzysta z planu jest lista baz danych w planie.Wszelkie czynności konserwacji określić w innych sqlmaint parametry są stosowane do tej listy baz danych.To musi odpowiadać plan_id wartość w msdb.dbo.sysdbmaintplans.

  • -Rpttext_file
    Określa pełną ścieżka i nazwę pliku, do którego ma być generowany raport.Raport jest generowany również na ekranie.Raport przechowuje informacje o wersja, dodając data do nazwy pliku.Data jest generowany w następujący sposób: na końcu nazwy pliku, ale przed okresem, w formie _yyyyMMddhhmm.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
    

    Generowanej nazwy pliku jest:

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

    Pełna nazwa pliku uniwersalnej konwencji nazewnictwa (UNC) jest wymagane dla text_file po sqlmaint uzyskuje dostęp do serwera zdalnego.

  • -To operator_name
    Określa operator, do którego wysyłane jest wygenerowany raport pocztą SQL.

  • -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.

    Pełna nazwa pliku UNC jest wymagane dla html_file po sqlmaint uzyskuje dostęp do serwera zdalnego.

  • -DelHtmlRpt <time_period>
    Określa, że raport w formacie HTML w katalogu raport usunięte Jeśli czas interwał po utworzenia pliku raportu przekracza <time_period>.-DelHtmlRpt szuka plików, których nazwa pasuje generowany wzorek html_file parametru.Jeśli html_file to c:\Program Server\Mssql\Backup\AdventureWorks2008R2_maint.htm SQL Files\Microsoft, następnie - delhtmlrpt powoduje sqlmaint Usuń wszystkie pliki, których nazwy odpowiadają deseń C:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2008R2_maint*.htm oraz że są starsze niż określona <time_period>.

  • -RmUnusedSpacethreshold_percent free_percent
    Określa usunięte nieużywane miejsce z bazy danych określonej w -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.Na przykład, jeśli baza danych 200 MB zawiera 100 MB danych, określanie 10 dla free_percent wyniki rozmiar końcowy bazy 110 MB.Należy zauważyć, że baza danych nie jest rozwinięty, jeśli jest mniejsza niż free_percent plus ilość danych w bazie danych.Na przykład, jeśli baza danych 108 MB ma 100 MB danych, określanie 10 dla free_percent nie Rozszerzanie bazy danych do 110 MB; pozostanie on na 108 MB.

  • -CkDB | - ckdbnoidx
    Określa, że instrukcja DBCC CHECKDB lub instrukcji DBCC CHECKDB z opcją NOINDEX się w bazie danych, określone w -D.Aby uzyskać więcej informacji zobacz DBCC CHECKDB.

    Ostrzeżenie jest zapisywana na text_file Jeśli baza danych jest używane podczas sqlmaint uruchamia.

  • -CkAl | - ckalnoidx
    Określa, że instrukcja DBCC CHECKALLOC z opcją NOINDEX się w bazie danych, określonych w -D.Aby uzyskać więcej informacji, zobacz DBCC CHECKALLOC (Transact-SQL).

  • -CkCat
    Określa uruchomienie instrukcja DBCC CHECKCATALOG (języka Transact-SQL) w bazie danych, określone w -D.Aby uzyskać więcej informacji, zobacz DBCC CHECKCATALOG (Transact-SQL).

  • -UpdOptiStatssample_percent
    Określa, że następujące instrukcja uruchomić dla każdej tabela w bazie danych:

    UPDATE STATISTICS table WITH SAMPLE sample_percent PERCENT
    

    Jeśli tabele zawierają kolumny obliczane, należy także określić - supportedcomputedcolumn argument, korzystając z - updoptistats.

    Aby uzyskać więcej informacji, zobacz AKTUALIZUJ STATYSTYKĘ (Transact-SQL).

  • -RebldIdxfree_space
    Określa, że indeksów w tabeli w miejsce docelowe bazie danych należy zrekonstruować za pomocą programu free_space wartość procentową jako odwrotność współczynnik wypełnienia.Na przykład jeśli free_space odsetek wynosi 30, a następnie współczynnik wypełnienia, używany jest 70.Jeśli free_space określona wartość 100 procent, a następnie Odbudowa indeksów z oryginałem współczynnik wypełnienia wartość.

    Jeśli indeksy są obliczane kolumny, należy także określić - supportcomputedcolumn argument, korzystając z - rebldidx.

  • -SupportComputedColumn
    Musi być określony do uruchamiania poleceń konserwacji DBCC z sqlmaint na kolumny obliczane.

  • -WriteHistory
    Określa, że zamieszczane w msdb.dbo.sysdbmaintplan_history dla każdej akcja konserwacji wykonywane przez sqlmaint.Jeśli - planname lub - planid jest określony, pozycje w sysdbmaintplan_history użyć Identyfikatora określonego planu.Jeśli -D jest określony, pozycje w sysdbmaintplan_history dokonuje się z zer dla planu identyfikatora.

  • -BkUpDB backup_path] | -BkUpLog backup_path ]
    Określa akcja kopia zapasowa.-BkUpDb kopię zapasową całej bazy danych.-BkUpLog kopię zapasową dziennika transakcji.

    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.kopia zapasowa mogą być umieszczane w katalogu lub adres urządzenia taśmowe (na przykład \\.\TAPE0).Nazwę pliku kopia zapasowa bazy danych jest generowany automatycznie w następujący sposób:

    dbname_db_yyyyMMddhhmm.BAK
    

    gdzie

    • dbname Nazwa bazy danych, przy czym jest kopii zapasowej.

    • yyyyMMddhhmmczas operacji wykonywania kopia zapasowa z yyyy = roku MM = miesiąc, dd = dzień, hh = Godzina, i mm = minuty.

    Nazwa pliku kopia zapasowa transakcji jest generowany automatycznie przy użyciu formatu podobne:

    dbname_log_yyyymmddhhmm.BAK
    

    Jeśli używasz - bkupdb parametru, należy także określić nośnik za pomocą - bkupmedia parametru.

  • -BkUpMedia
    Określa typ nośnika kopia zapasowa dysku lub taśmy.

  • DYSK
    Określa, że nośnik kopii zapasowych dysku.

  • -DelBkUps< time_period >
    Kopii zapasowych na dysku, określa, że każdy plik kopia zapasowa w katalogu kopii zapasowych usunięte Jeśli czas interwał po tworzenia kopia zapasowa przekracza <time_period>.

  • -CrBkSubDir
    Kopie zapasowe dysków, utworzony w podkatalogu określa [backup_path] katalogu lub w domyślnym katalogu kopia zapasowa, jeśli - usedefdir określony jest również.Nazwa podkatalogu jest generowany na podstawie nazwy bazy danych określonej w -D.-CrBkSubDir oferuje prosty sposób umieścić wszystkie kopie zapasowe dla różnych baz danych w oddzielnych podkatalogów bez konieczności zmiany backup_path parametru.

  • -UseDefDir
    Kopii zapasowych na dysku, określa, że plik kopia zapasowa utworzone w domyślnym katalogu kopia zapasowa.UseDefDir zastępuje backup_path , jeśli są określone oba.With a default Microsoft SQL Server setup, the default backup directory is C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.

  • TAŚMY
    Określa, że nośnik kopii zapasowych jest taśmy.

  • -BkUpOnlyIfClean
    Określa, że kopia zapasowa występować tylko jeśli określono - ck kontroli nie znalazł problemy z danymi.W tej samej sekwencji uruchomić prac konserwacyjnych, znajdujące się w wiersz polecenia.Określenie parametrów - ckdb, - ckdbnoidx, - ckal, - ckalnoidx, - cktxtal, lub - ckcat przed - bkupdb/- bkuplog parametrów, jeśli będą również określić - bkuponlyifclean, lub występuje kopia zapasowa, czy sprawdzanie raportuje problemy.

  • -VrfyBackup
    Określa uruchomić przywracanie VERIFYONLY na kopia zapasowa po zakończeniu.

  • 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.Prawidłowymi przykładami:

    • 12weeks

    • 3months

    • 15days

    Jeśli tylko number jest określony, domyślnie część data jest tygodni.

Uwagi

Sqlmaint narzędzie wykonanie operacji konserwacji na jeden lub więcej baz danych.Jeśli -D podano tylko dla określonej bazy danych wykonywane są operacje określone w pozostałych przełączników.Jeśli - planname lub - planid są określone informacje tylko sqlmaint pobiera z planu konserwacji określonego jest lista baz danych w planie.Wszystkie operacje określone w pozostałych sqlmaint parametry są stosowane w każdej bazie danych na liście uzyskany z planu. Sqlmaint narzędzie nie ma zastosowania czynności konserwacji określonych w sam plan.

Sqlmaint narzędzie zwraca 0, jeśli zostanie wykonane pomyślnie lub 1, w przypadku awarii.Zgłaszany jest błąd:

  • Jeśli nie wszystkie akcje konserwacji.

  • Jeśli - ckdb, - ckdbnoidx, - ckal, - ckalnoidx, - cktxtal, lub - ckcat kontroli znaleźć problemy z danymi.

  • Jeśli napotka błąd ogólny.

Uprawnienia

Sqlmaint narzędzia mogą być wykonywane przez dowolnego użytkownika systemu Windows z Odczyt i wykonywanie uprawnienie do sqlmaint.exe, który domyślnie znajduje się w x:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER1\MSSQL\Binn folder.Ponadto SQL Server logowania określony z -login_ID musi mieć SQL Server uprawnienia wymagane do wykonania określonej akcja.Jeśli połączenie z SQL Server używa uwierzytelniania systemu Windows, SQL Server logowania mapowanego do uwierzytelnionego użytkownika systemu Windows musi mieć SQL Server uprawnienia wymagane do wykonania określonej akcja.

Na przykład za pomocą - bkupdb wymaga uprawnienia do wykonać instrukcja wykonywania kopii zapasowej.I - updoptistats uprawnienia do wykonać instrukcja UPDATE STATISTICS wymaga argumentu.Aby uzyskać więcej informacji zobacz "Uprawnienia" sekcje w odpowiednich tematach Books Online.

Przykłady

A.DBCC wykonywania kontroli bazy danych

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

B.Aktualizowanie statystyki przy użyciu próbki 15% w przypadku wszystkich baz danych w planie.Ponadto zmniejszyć dowolnej bazy danych, które osiągnęły 110 MB do posiadania jedynie 10% wolnego miejsca

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

C.Wykonywanie kopii zapasowych wszystkich baz danych w planu do ich poszczególnych podkatalogów w katalogu domyślnym plik Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.Ponadto usunąć wszystkie kopie zapasowe starsze niż 2 tygodnie

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

D.Wykonywanie kopii zapasowej bazy danych do domyślnego katalogu Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup plik.\

sqlmaint -S MyServer -BkUpDB -BkUpMedia DISK -UseDefDir