Microsoft Windows Server DNS 組態無法開啟資料庫

Microsoft.Windows.DNSServer.2016.Configuration.CouldNotOpenDatabase (Rule)

組態的警示產生規則。

Knowledge Base article:

摘要

DNS 伺服器組態包含各種設定,而這些設定決定了 DNS 伺服器在網路上的運作方式,以及在需要時的儲存與擷取方式。

原因

DNS 伺服器在目錄 %SystemRoot%\System32\Dns 中找不到或無法開啟區域檔案。

解決方式

檢查區域檔案

標準主要區域,也就是沒有與 Active Directory 網域服務 (AD DS) 整合的區域,會將區域資訊儲存到檔案中。如果此檔案遺失或已損毀,DNS 伺服器就無法載入該區域。

請確定目錄 %SystemRoot%\System32\Dns 中存在該區域的區域檔案。若無該檔案,請刪除該區域後再使用 [伺服器管理員] 重新建立。

使用登錄編輯程式確認下列登錄機碼中包含該區域檔案的項目:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\zone\DatabaseFile

如果沒有該區域檔案的登錄項目,請更新登錄中的區域檔案名稱或刪除登錄中的區域,然後使用 [伺服器管理員] 加以重新建立。

更新登錄中的區域檔案名稱

若要修改或移除登錄中的區域檔案名稱:

注意:不當編輯登錄可能會對系統造成嚴重損害。變更登錄之前,應先備份重要的資料。

1. 在 DNS 伺服器上啟動 [登錄編輯程式]。若要啟動 [登錄編輯程式],請按一下 [開始],再按一下 [執行],輸入 regedit,然後按一下 [確定]。

2.在主控台樹狀目錄中瀏覽至下列機碼:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\zone\DatabaseFile

3. 在 [列出位址] 上按一下滑鼠右鍵,然後按一下 [刪除]。

4. 在 [伺服器管理員] 中的該 DNS 伺服器上按一下滑鼠右鍵,然後按一下 [所有工作],再按一下 [重新啟動]。

如果該檔案存在,而且在登錄中可正確識別,但是 DNS 伺服器卻無法剖析該區域檔案,則請檢查其資料是否有效。您可以用 [記事本] 或其他文字編輯器來檢查並修正該區域檔案的內容。

先針對該區域檔案的完整名稱檢查事件記錄以及行號,然後才在當中修正或刪除項目。

刪除區域後再使用伺服器管理員加以重新建立

若要刪除登錄中的區域:

注意:不當編輯登錄可能會對系統造成嚴重損害。變更登錄之前,應先備份重要的資料。

1. 在 DNS 伺服器上啟動 [登錄編輯程式]。若要啟動 [登錄編輯程式],請按一下 [開始],再按一下 [執行],輸入 regedit,然後按一下 [確定]。

2.在主控台樹狀目錄中瀏覽至下列機碼:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\

3.以滑鼠右鍵按一下該區域的登錄機碼,然後按一下 [刪除]。

若要使用 [伺服器管理員] 重新建立區域:

1. 在 DNS 伺服器上啟動 [伺服器管理員]。若要啟動 [伺服器管理員],請依序按一下 [開始] 及 [系統管理工具],然後按一下 [伺服器管理員]。

2. 在主控台樹狀目錄中,依序展開 [角色]、[DNS 伺服器] 及 [DNS]。

3. 展開該 DNS 伺服器,然後展開含有該區域的資料夾。

4. 在該區域上按一下滑鼠右鍵,然後按一下 [刪除]。

附註:若無法使用此方法刪除該區域,便須使用 [登錄編輯程式] 刪除該區域的登錄機碼。

5. 在該資料夾上按一下滑鼠右鍵,然後按一下 [新增區域]。

6.依照精靈的指示重新建立區域。

外部

http://technet.microsoft.com/en-us/library/dd349597(v=ws.10).aspx

Element properties:

TargetMicrosoft.Windows.DNSServer.2016.Server
CategoryAlert
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Windows DNS - 組態 - 無法開啟資料庫

事件識別碼:{0}
事件來源:{1}
事件記錄檔:{2}
事件描述:{3}
Event LogDNS Server

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.Windows.DNSServer.2016.Configuration.CouldNotOpenDatabase" Enabled="true" Target="Microsoft.Windows.DNSServer.2016.Server" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>DNS Server</LogName>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1004</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.DNSServer.2016.Configuration.CouldNotOpenDatabase.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDisplayNumber$</AlertParameter1>
<AlertParameter2>$Data/EventSourceName$</AlertParameter2>
<AlertParameter3>$Data/Channel$</AlertParameter3>
<AlertParameter4>$Data/EventDescription$</AlertParameter4>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>