오류 945는 데이터베이스가 IsShutdown으로 설정되어 있는 경우에 반환됩니다. 이 오류는 파일이 누락되었거나, 일반적으로 쉽게 해결할 수 있는 그 밖의 특정 리소스 오류로 인해 데이터베이스를 복구할 수 없는 경우에 발생합니다.
먼저 DATABASEPROPERTY를 사용하여 데이터베이스가 IsShutdown으로 표시되었는지 확인합니다.
그런 다음 오류 로그를 참고하여 오류의 원인을 확인하고 아래에서 설명하는 동작을 수행하세요.
파일을 사용할 수 있도록 만들고 ALTER DATABASE를 사용하여 데이터베이스를 오프라인으로 설정하십시오.
ALTER DATABASE를 사용하여 데이터베이스를 온라인으로 설정하십시오.
먼저 DATABASEPROPERTY를 사용하여 데이터베이스가 IsShutdown으로 표시되었는지 확인합니다.
그런 다음 오류 로그를 참고하여 오류의 원인을 확인하고 아래에서 설명하는 동작을 수행하세요.
하나 이상의 데이터나 로그 파일이 없는 경우
파일을 사용할 수 있도록 만들고 ALTER DATABASE를 사용하여 데이터베이스를 오프라인으로 설정하십시오.
ALTER DATABASE를 사용하여 데이터베이스를 온라인으로 설정하십시오.
로그 공간이 부족한 경우
sp_add_log_file_recover_suspect_db()를 사용하여 다른 로그 파일을 추가하십시오.
이 프로시저에 의해 데이터베이스가 복구되고 온라인으로 설정됩니다.
데이터 공간이 부족한 경우
sp_add_data_file_recover_suspect_db()를 사용하여 다른 로그 파일을 추가하십시오.
이 프로시저에 의해 데이터베이스가 복구되고 온라인으로 설정됩니다.
메모리가 부족한 경우
메모리 부족 오류는 많은 데이터베이스를 동시에 복구할 때 발생할 수 있습니다. 작업을 다시 시도하면 문제가 해결될 수 있습니다.
ALTER DATABASE를 사용하여 작업을 다시 시도하고 데이터베이스를 오프라인으로 설정하십시오.
ALTER DATABASE를 사용하여 데이터베이스를 온라인으로 설정하십시오.
작업을 다시 시도해도 문제가 해결되지 않으면 메모리 공간을 늘리세요.
이름 | 설명 | 기본값 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정합니다. | 예 |
우선 순위 | 알림 우선 순위를 정의합니다. | 1 |
심각도 | 알림 심각도를 정의합니다. | 1 |
Target | Microsoft.SQLServer.2012.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 945 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2012.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>945</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2012.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>