sqlmaint 유틸리티sqlmaint Utility

sqlmaint 유틸리티는 하나 이상의 데이터베이스에서 지정한 유지 관리 작업을 수행합니다.Thesqlmaint utility performs a specified set of maintenance operations on one or more databases. sqlmaint 를 사용하여 DBCC 검사를 실행하고 데이터베이스 및 트랜잭션 로그를 백업하고 통계를 업데이트하고 인덱스를 다시 만들 수 있습니다.Use sqlmaint to run DBCC checks, back up a database and its transaction log, update statistics, and rebuild indexes. 모든 데이터베이스 유지 관리 작업은 지정된 텍스트 파일, HTML 파일 또는 전자 메일 계정으로 보낼 수 있는 보고서를 만듭니다.All database maintenance activities generate a report that can be sent to a designated text file, HTML file, or e-mail account. sqlmaint 는 이전 버전의 SQL ServerSQL Server로 만든 데이터베이스 유지 관리 계획을 실행합니다.sqlmaint executes database maintenance plans created with previous versions of SQL ServerSQL Server. 명령 프롬프트에서 SQL ServerSQL Server 유지 관리 계획을 실행하려면 dtexec 유틸리티를 사용합니다.To run SQL ServerSQL Server maintenance plans from the command prompt, use the dtexec Utility.

중요

이 기능은 다음 버전의 Microsoft SQL Server에서 제거됩니다.This feature will be removed in the next version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. 대신 SQL ServerSQL Server 유지 관리 계획 기능을 사용합니다. Use SQL ServerSQL Server maintenance plan feature instead. 유지 관리 계획에 대한 자세한 내용은 유지 관리 계획을 참조하세요.For more information on maintenance plans, see Maintenance Plans.

구문Syntax


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]  

인수Arguments

매개 변수 및 해당 값은 공백으로 구분해야 합니다.The parameters and their values must be separated by a space. 예를 들어 -Sserver_name사이에 공백이 있어야 합니다.For example, there must be a space between -S and server_name.

-?-?
sqlmaint 에 대한 구문 다이어그램이 반환되도록 지정합니다.Specifies that the syntax diagram for sqlmaint be returned. 이 매개 변수는 단독으로 사용해야 합니다.This parameter must be used alone.

-S server_name[ \instance_name]-S server_name[ \instance_name]
MicrosoftMicrosoft SQL ServerSQL Server의 대상 인스턴스를 지정합니다.Specifies the target instance of MicrosoftMicrosoft SQL ServerSQL Server. 해당 서버 컴퓨터에 있는 기본 인스턴스에 연결하려면 server_name SQL Server 데이터베이스 엔진SQL Server Database Engine 을 지정합니다.Specify server_name to connect to the default instance of SQL Server 데이터베이스 엔진SQL Server Database Engine on that server. 해당 서버에 있는 명명된 인스턴스에 연결하려면\server_name instance_name 데이터베이스 엔진Database Engine 을 지정합니다.Specify server_name\instance_name to connect to a named instance of 데이터베이스 엔진Database Engine on that server. 서버를 지정하지 않으면 sqlmaint 가 로컬 컴퓨터에 있는 데이터베이스 엔진Database Engine 의 기본 인스턴스에 연결됩니다.If no server is specified, sqlmaint connects to the default instance of 데이터베이스 엔진Database Engine on the local computer.

-U login_ID-U login_ID
서버에 연결할 때 사용할 로그인 ID를 지정합니다.Specifies the login ID to use when connecting to the server. 이 인수를 제공하지 않으면 sqlmaint 에서 MicrosoftMicrosoft Windows 인증을 사용합니다.If not supplied, sqlmaint attempts to use MicrosoftMicrosoft Windows Authentication. login_ID 에 특수 문자가 포함된 경우 큰따옴표(")로 묶어야 합니다. 그렇지 않은 경우 큰따옴표는 선택 사항입니다.If login_ID contains special characters, it must be enclosed in double quotation marks ("); otherwise, the double quotation marks are optional.

중요

가능하면 Windows 인증을 사용하세요.When possible, use Windows Authentication.

-P password-P password
로그인 ID의 암호를 지정합니다.Specifies the password for the login ID. -U 매개 변수도 제공한 경우에만 유효합니다.Only valid if the -U parameter is also supplied. password 에 특수 문자가 포함된 경우 큰따옴표(")로 묶어야 합니다. 그렇지 않은 경우 큰따옴표는 선택 사항입니다.If password contains special characters, it must be enclosed in double quotation marks; otherwise, the double quotation marks are optional.

중요

암호는 마스킹되지 않습니다.The password is not masked. 가능하면 Windows 인증을 사용하세요.When possible, use Windows Authentication.

-D database_name-D database_name
유지 관리 작업을 수행할 데이터베이스의 이름을 지정합니다.Specifies the name of the database in which to perform the maintenance operation. database_name 에 특수 문자가 포함된 경우 큰따옴표(")로 묶어야 합니다. 그렇지 않은 경우 큰따옴표는 선택 사항입니다.If database_name contains special characters, it must be enclosed in double quotation marks; otherwise, the double quotation marks are optional.

-PlanName name-PlanName name
데이터베이스 유지 관리 계획 마법사를 사용하여 정의한 데이터베이스 유지 관리 계획의 이름을 지정합니다.Specifies the name of a database maintenance plan defined using the Database Maintenance Plan Wizard. sqlmaint 가 계획에서 사용하는 유일한 정보는 계획에 있는 데이터베이스 목록입니다.The only information sqlmaint uses from the plan is the list of the databases in the plan. 다른 sqlmaint 매개 변수에서 지정한 모든 유지 관리 작업이 이 데이터베이스 목록에 적용됩니다.Any maintenance activities you specify in the other sqlmaint parameters are applied to this list of databases.

-PlanID guid-PlanID guid
데이터베이스 유지 관리 계획 마법사를 사용하여 정의한 데이터베이스 유지 관리 계획의 GUID(Globally Unique Identifier)를 지정합니다.Specifies the globally unique identifier (GUID) of a database maintenance plan defined using the Database Maintenance Plan Wizard. sqlmaint 가 계획에서 사용하는 유일한 정보는 계획에 있는 데이터베이스 목록입니다.The only information sqlmaint uses from the plan is the list of the databases in the plan. 다른 sqlmaint 매개 변수에서 지정한 모든 유지 관리 작업이 이 데이터베이스 목록에 적용됩니다.Any maintenance activities you specify in the other sqlmaint parameters are applied to this list of databases. 이 인수는 msdb.dbo.sysdbmaintplans의 plan_id 값과 일치해야 합니다.This must match a plan_id value in msdb.dbo.sysdbmaintplans.

-Rpt text_file-Rpt text_file
보고서를 생성할 파일의 전체 경로와 이름을 지정합니다.Specifies the full path and name of the file into which the report is to be generated. 이 보고서는 화면에도 생성됩니다.The report is also generated on the screen. 보고서에서는 파일 이름에 날짜를 추가하여 버전 정보를 유지 관리합니다.The report maintains version information by adding a date to the file name. 날짜는 yyyyMMddhhmm형식으로 파일 이름 끝의 마침표 앞에 생성됩니다.The date is generated as follows: at the end of the file name but before the period, in the form yyyyMMddhhmm. yyyy = 연도, MM = 월, dd = 일, hh = 시, mm = 분입니다.yyyy = year, MM = month, dd = day, hh = hour, mm = minute.

1996년 12월 1일 오전 10시 23분에If you run the utility at 10:23 A.M. 유틸리티를 실행하는 경우 text_file 값은 다음과 같습니다.on December 1, 1996, and this is the text_file value:

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

생성되는 파일 이름은 다음과 같습니다.The generated file name is:

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

sqlmaint 에서 원격 서버에 액세스할 때 text_file 에는 전체 UNC(범용 명명 규칙) 파일 이름이 필요합니다.The full Universal Naming Convention (UNC) file name is required for text_file when sqlmaint accesses a remote server.

-To operator_name-To operator_name
SQL 메일을 통해 생성된 보고서를 받는 운영자를 지정합니다.Specifies the operator to whom the generated report is sent through SQL Mail.

-HtmlRpt html_file-HtmlRpt html_file
HTML 보고서를 생성할 파일의 전체 경로와 이름을 지정합니다.Specifies the full path and name of the file into which an HTML report is to be generated. sqlmaint 에서는-Rpt 매개 변수와 마찬가지로 yyyyMMddhhmm 형식의 문자열을 파일 이름에 더하여 파일 이름을 생성합니다.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.

sqlmaint 에서 원격 서버에 액세스할 때 html_file 에는 전체 UNC 파일 이름이 필요합니다.The full UNC file name is required for html_file when sqlmaint accesses a remote server.

-DelHtmlRpt <time_period>-DelHtmlRpt <time_period>
보고서 파일을 만든 후 시간 간격이 초과 하는 경우 보고서 디렉터리에 있는 HTML 보고서를 삭제 하도록 지정 < time_period> 합니다.Specifies that any HTML report in the report directory be deleted if the time interval after the creation of the report file exceeds <time_period>. -DelHtmlRpthtml_file 매개 변수에서 생성된 패턴과 이름이 맞는 파일을 찾습니다.-DelHtmlRpt looks for files whose name fits the pattern generated from the html_file parameter. 경우 html_file 이 c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint.htm 인 다음 -DelHtmlRpt 하면 sqlmaint C:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint 패턴 일치 하는 파일을 삭제 하려면*.htm에 있고 지정 된 다음 보다 오래 된 < time_period> 합니다.If html_file is c:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint.htm, then -DelHtmlRpt causes sqlmaint to delete any files whose names match the pattern C:\Program Files\Microsoft SQL Server\Mssql\Backup\AdventureWorks2012_maint*.htm and that are older than the specified <time_period>.

-RmUnusedSpace threshold_percent free_percent-RmUnusedSpace threshold_percent free_percent
-D에 지정된 데이터베이스에서 사용하지 않는 공간을 제거하도록 지정합니다.Specifies that unused space be removed from the database specified in -D. 이 옵션은 자동으로 증가하도록 정의된 데이터베이스에서만 유용합니다.This option is only useful for databases that are defined to grow automatically. Threshold_percent 는 데이터베이스 크기가 몇 MB에 도달하면 sqlmaint 가 사용하지 않는 데이터 공간을 제거할지를 지정합니다.Threshold_percent specifies in megabytes the size that the database must reach before sqlmaint attempts to remove unused data space. 데이터베이스가 threshold_percent보다 작으면 동작이 수행되지 않습니다.If the database is smaller than the threshold_percent, no action is taken. Free_percent 는 사용하지 않는 공간 중 데이터베이스에 유지해야 할 공간을 최종 데이터베이스 크기의 백분율로 지정합니다.Free_percent specifies how much unused space must remain in the database, specified as a percentage of the final size of the database. 예를 들어 200MB의 데이터베이스에 100MB 데이터가 포함된 경우 free_percent 에 10을 지정하면 최종 데이터베이스 크기는 110MB가 됩니다.For example, if a 200-MB database contains 100 MB of data, specifying 10 for free_percent results in the final database size being 110 MB. 데이터베이스가 free_percent 와 데이터베이스의 데이터 양을 더한 크기보다 작으면 데이터베이스가 확장되지 않습니다.Note that a database is not expanded if it is smaller than free_percent plus the amount of data in the database. 예를 들어 108MB의 데이터베이스에 100MB 데이터가 포함된 경우 free_percent 에 10을 지정하면 데이터베이스가 110MB로 확장되지 않고 108MB로 유지됩니다.For example, if a 108-MB database has 100 MB of data, specifying 10 for free_percent does not expand the database to 110 MB; it remains at 108 MB.

-CkDB | -CkDBNoIdx-CkDB | -CkDBNoIdx
-D에 지정된 데이터베이스에서 NOINDEX 옵션으로 DBCC CHECKDB 문 또는 DBCC CHECKDB 문을 실행하도록 지정합니다.Specifies that a DBCC CHECKDB statement or a DBCC CHECKDB statement with the NOINDEX option be run in the database specified in -D. 자세한 내용은 DBCC CHECKDB를 참조하십시오.For more information, see DBCC CHECKDB.

sqlmaint 를 실행할 때 데이터베이스가 사용 중인 경우 text_file 에 경고가 기록됩니다.A warning is written to text_file if the database is in use when sqlmaint runs.

-CkAl | -CkAlNoIdx-CkAl | -CkAlNoIdx
-D에 지정된 데이터베이스에서 NOINDEX 옵션으로 DBCC CHECKALLOC 문을 실행하도록 지정합니다.Specifies that a DBCC CHECKALLOC statement with the NOINDEX option be run in the database specified in -D. 자세한 내용은 DBCC CHECKALLOC(Transact-SQL)를 참조하세요.For more information, see DBCC CHECKALLOC (Transact-SQL).

-CkCat-CkCat
-D에 지정된 데이터베이스에서 DBCC CHECKCATALOG(Transact-SQL) 문을 실행하도록 지정합니다.Specifies that a DBCC CHECKCATALOG (Transact-SQL) statement be run in the database specified in -D. 자세한 내용은 DBCC CHECKCATALOG(Transact-SQL)를 참조하세요.For more information, see DBCC CHECKCATALOG (Transact-SQL).

-UpdOptiStats sample_percent-UpdOptiStats sample_percent
데이터베이스의 각 테이블에서 다음 문을 실행하도록 지정합니다.Specifies that the following statement be run on each table in the database:

UPDATE STATISTICS table WITH SAMPLE sample_percent PERCENT;  

테이블에 계산 열이 포함된 경우에는 -UpdOptiStats 를 사용할 때 -SupportedComputedColumn인수도 지정해야 합니다.If the tables contain computed columns, you must also specify the -SupportedComputedColumn argument when you use -UpdOptiStats.

자세한 내용은 UPDATE STATISTICS(Transact-SQL)로 만든 데이터베이스 유지 관리 계획을 실행합니다.For more information, see UPDATE STATISTICS (Transact-SQL).

-RebldIdx free_space-RebldIdx free_space
채우기 비율과 반대로 free_space 백분율 값을 사용하여 대상 데이터베이스에서 테이블의 인덱스를 다시 만들도록 지정합니다.Specifies that indexes on tables in the target database should be rebuilt by using the free_space percent value as the inverse of the fill factor. 예를 들어 free_space 백분율이 30인 경우 사용되는 채우기 비율은 70입니다.For example, if free_space percentage is 30, then the fill factor used is 70. free_space 백분율 값으로 100을 지정하면 원래 채우기 비율 값으로 인덱스가 다시 작성됩니다.If a free_space percentage value of 100 is specified, then the indexes are rebuilt with the original fill factor value.

인덱스가 계산 열에 있을 경우 -RebldIdx 를 사용할 때 -SupportComputedColumn인수도 지정해야 합니다.If the indexes are on computed columns, you must also specify the -SupportComputedColumn argument when you use -RebldIdx.

-RebldIdx-SupportComputedColumn
계산 열에서 sqlmaint 를 사용하여 DBCC 유지 관리 명령을 실행하려면 반드시 지정해야 합니다.Must be specified to run DBCC maintenance commands with sqlmaint on computed columns.

-WriteHistory-WriteHistory
sqlmaint에서 수행되는 각 유지 관리 동작에 대한 항목을 msdb.dbo.sysdbmaintplan_history에 만들도록 지정합니다.Specifies that an entry be made in msdb.dbo.sysdbmaintplan_history for each maintenance action performed by sqlmaint. -PlanName 또는 -PlanID 를 지정할 경우 sysdbmaintplan_history의 항목은 지정된 계획의 ID를 사용합니다.If -PlanName or -PlanID is specified, the entries in sysdbmaintplan_history use the ID of the specified plan. -D 를 지정할 경우 sysdbmaintplan_history의 항목은 계획 ID에 0을 사용하여 생성됩니다.If -D is specified, the entries in sysdbmaintplan_history are made with zeroes for the plan ID.

-BkUpDB [ backup_path] | -BkUpLog [ backup_path ]-BkUpDB [ backup_path] | -BkUpLog [ backup_path ]
백업 동작을 지정합니다.Specifies a backup action. -BkUpDb 는 전체 데이터베이스를 백업합니다.-BkUpDb backs up the entire database. -BkUpLog 는 트랜잭션 로그만 백업합니다.-BkUpLog backs up only the transaction log.

backup_path 는 백업 디렉터리를 지정합니다.backup_path specifies the directory for the backup. -UseDefDir 도 지정한 경우 backup_path 는 필요하지 않으며 둘 다 지정하는 경우에는 -UseDefDir 값이 우선 적용됩니다.backup_path is not needed if -UseDefDir is also specified, and is overridden by -UseDefDir if both are specified. 디렉터리나 \\.\TAPE0과 같은 테이프 장치 주소에 백업을 보관할 수 있습니다.The backup can be placed in a directory or a tape device address (for example, \\.\TAPE0). 데이터베이스 백업 파일 이름은 다음과 같이 자동으로 생성됩니다.The file name for a database backup is generated automatically as follows:

dbname_db_yyyyMMddhhmm.BAK  

여기서where

  • dbname 은 백업하는 데이터베이스의 이름입니다.dbname is the name of the database being backed up.

  • yyyyMMddhhmm 은 백업 작업의 시간이며 yyyy = 연도, MM = 월, dd = 일, hh = 시, 그리고 mm = 분을 나타냅니다.yyyyMMddhhmm is the time of the backup operation with yyyy = year, MM = month, dd = day, hh = hour, and mm = minute.

    트랜잭션 백업 파일 이름은 이와 비슷한 형식으로 자동 생성됩니다.The file name for a transaction backup is generated automatically with a similar format:

dbname_log_yyyymmddhhmm.BAK  

-BkUpDB 매개 변수를 사용하는 경우 -BkUpMedia 매개 변수를 사용하여 미디어도 지정해야 합니다.If you use the -BkUpDB parameter, you must also specify the media by using the -BkUpMedia parameter.

-BkUpMedia-BkUpMedia
백업 미디어 유형을 DISK 또는 TAPE 중 하나로 지정합니다.Specifies the media type of the backup, either DISK or TAPE.

DISKDISK
백업 미디어로 디스크를 사용하도록 지정합니다.Specifies that the backup medium is disk.

-DelBkUps< time_period >-DelBkUps< time_period >
디스크 백업의 경우 백업 만든 후 시간 간격이 초과 하는 경우 백업 디렉터리에 백업 파일은 모두 삭제 수를 지정 된 < time_period> 합니다.For disk backups, specifies that any backup file in the backup directory be deleted if the time interval after the creation of the backup exceeds the <time_period>.

-CrBkSubDir-CrBkSubDir
디스크 백업의 경우-UseDefDir도 지정했으면 [ backup_path ] 디렉터리나 기본 백업 디렉터리에 하위 디렉터리를 만들도록 지정합니다.For disk backups, specifies that a subdirectory be created in the [backup_path] directory or in the default backup directory if -UseDefDir is also specified. 하위 디렉터리의 이름은 -D에 지정된 데이터베이스 이름을 사용하여 생성됩니다.The name of the subdirectory is generated from the database name specified in -D. -CrBkSubDir 을 사용하면 backup_path 매개 변수를 변경할 필요 없이 다른 데이터베이스의 모든 백업을 별도의 하위 디렉터리에 쉽게 넣을 수 있습니다.-CrBkSubDir offers an easy way to put all the backups for different databases into separate subdirectories without having to change the backup_path parameter.

backup_path-UseDefDir
디스크 백업의 경우 기본 백업 디렉터리에 백업 파일을 만들도록 지정합니다.For disk backups, specifies that the backup file be created in the default backup directory. 둘 다 지정한 경우UseDefDirbackup_path 보다 우선 적용됩니다.UseDefDir overrides backup_path if both are specified. 기본 MicrosoftMicrosoft SQL ServerSQL Server 설정을 사용하는 경우 기본 백업 디렉터리는 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup입니다.With a default MicrosoftMicrosoft SQL ServerSQL Server setup, the default backup directory is C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup.

TAPETAPE
백업 미디어로 테이프를 사용하도록 지정합니다.Specifies that the backup medium is tape.

-BkUpOnlyIfClean-BkUpOnlyIfClean
지정된 -Ck 검사를 통해 데이터에 문제가 발견되지 않을 경우에만 백업이 수행되도록 지정합니다.Specifies that the backup occur only if any specified -Ck checks did not find problems with the data. 유지 관리 동작은 명령 프롬프트에 표시되는 것과 같은 순서로 실행됩니다.Maintenance actions run in the same sequence as they appear in the command prompt. -BkUpOnlyIfClean을 지정할 계획인 경우 -BkUpDB-BkUpLog 매개 변수 전에 매개 변수-CkDB ,-CkDBNoIdx ,-CkAl , -CkAlNoIdx ,/-CkTxtAl 또는 -CkCat를 지정합니다. 이 매개 변수를 지정하지 않으면 검사 보고서 문제가 있는지 여부에 상관없이 백업이 수행됩니다.Specify the parameters -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl, or -CkCat before the -BkUpDB/-BkUpLog parameter(s) if you are also going to specify -BkUpOnlyIfClean, or the backup occurs whether or not the check reports problems.

-VrfyBackup-VrfyBackup
백업이 완료되면 백업에서 RESTORE VERIFYONLY를 실행하도록 지정합니다.Specifies that RESTORE VERIFYONLY be run on the backup when it completes.

number[minutes| hours| day| weeks| months]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 는 정수와 시간 단위로 공백 없이 구성됩니다.number is an integer followed (without a space) by a unit of time. 올바른 예는 다음과 같습니다.Valid examples:

  • 12weeks12weeks

  • 3months3months

  • 15days15days

    number 만 지정하면 기본적으로 날짜 부분에 weeks가 사용됩니다.If only number is specified, the default date part is weeks.

주의Remarks

sqlmaint 유틸리티는 하나 이상의 데이터베이스에서 유지 관리 작업을 수행합니다.The sqlmaint utility performs maintenance operations on one or more databases. -D 를 지정할 경우 지정한 데이터베이스에서만 나머지 스위치에 지정된 작업이 수행됩니다.If -D is specified, the operations specified in the remaining switches are performed only on the specified database. -PlanName 또는 -PlanID 를 지정할 경우 sqlmaint 가 지정된 유지 관리 작업에서 정보를 검색하면 계획에 있는 데이터베이스 목록만 검색됩니다.If -PlanName or -PlanID are specified, the only information sqlmaint retrieves from the specified maintenance plan is the list of databases in the plan. 나머지 sqlmaint 매개 변수에 지정된 모든 작업은 계획에서 가져온 목록의 각 데이터베이스에 대해 적용됩니다.All operations specified in the remaining sqlmaint parameters are applied against each database in the list obtained from the plan. sqlmaint 유틸리티는 계획 자체에 정의된 유지 관리 작업을 적용하지는 않습니다.The sqlmaint utility does not apply any of the maintenance activities defined in the plan itself.

sqlmaint 유틸리티가 성공적으로 실행되면 0을 반환하고 실패하면 1을 반환합니다.The sqlmaint utility returns 0 if it runs successfully or 1 if it fails. 실패는 보고됩니다.Failure is reported:

  • 유지 관리 동작이 실패할 경우If any of the maintenance actions fail.

  • -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl또는 -CkCat 검사에서 데이터 관련 문제를 발견합니다.If -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl, or -CkCat checks find problems with the data.

  • 일반 오류가 발생한 경우If a general failure is encountered.

사용 권한Permissions

sqlmaint 유틸리티는 에 대한 읽기 및 실행 sqlmaint.exe권한이 있는 Windows 사용자라면 누구나 실행할 수 있습니다. 이 파일은 기본적으로 x:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER1\MSSQL\Binn 폴더에 저장되어 있습니다.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\MSSQL13.MSSQLSERVER1\MSSQL\Binn folder. 또한 SQL ServerSQL Server -login_ID 로 지정된 로그인에는 지정된 동작을 수행하는 데 필요한 SQL ServerSQL Server 사용 권한이 있어야 합니다.Additionally, the SQL ServerSQL Server login specified with -login_ID must have the SQL ServerSQL Server permissions required to perform the specified action. Windows 인증을 사용하여 SQL ServerSQL Server 에 연결하는 경우 인증된 Windows 사용자에 매핑된 SQL ServerSQL Server 로그인에는 지정된 동작을 수행하는 데 필요한 SQL ServerSQL Server 사용 권한이 있어야 합니다.If the connection to SQL ServerSQL Server uses Windows Authentication, the SQL ServerSQL Server login mapped to the authenticated Windows user must have the SQL ServerSQL Server permissions required to perform the specified action.

예를 들어 -BkUpDB 를 사용하려면 BACKUP 문을 실행할 수 있는 권한이 있어야 합니다.For example, using the -BkUpDB requires permission to execute the BACKUP statement. 또한 -UpdOptiStats 인수를 사용하려면 UPDATE STATISTICS 문을 실행할 수 있는 권한이 있어야 합니다.And using the -UpdOptiStats argument requires permission to execute the UPDATE STATISTICS statement. 자세한 내용은 온라인 설명서에서 해당 항목의 "사용 권한" 섹션을 참조하십시오.For more information, see the "Permissions" sections of the corresponding topics in Books Online.

Examples

1.A. 데이터베이스에서 DBCC 검사를 수행합니다.Performing DBCC checks on a database

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

2.B. 계획의 모든 데이터베이스에서 15% 샘플을 사용하여 통계를 업데이트합니다.Updating statistics using a 15% sample in all databases in a plan. 또한 110MB에 도달한 데이터베이스를 축소하여 빈 공간이 10%가 되도록 합니다.Also, shrink any of the database that have reached 110 MB to having only 10% free space

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

3.C. 계획의 모든 데이터베이스를 기본 x:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup 디렉터리에 있는 개별 하위 디렉터리에 백업합니다.Backing up all the databases in a plan to their individual subdirectories in the default x:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup directory. 또한 2주가 지난 백업을 삭제합니다.Also, delete any backups older than 2 weeks

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

4.D. 데이터베이스를 기본 x:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup 디렉터리에 백업합니다.Backing up a database to the default x:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup directory.\

sqlmaint -S MyServer -BkUpDB -BkUpMedia DISK -UseDefDir  

참고 항목See Also

BACKUP(Transact-SQL) BACKUP (Transact-SQL)
UPDATE STATISTICS(Transact-SQL)UPDATE STATISTICS (Transact-SQL)