不明的 SQL 例外狀況 - 事件 5586

 

適用版本: SharePoint Foundation 2010, SharePoint Server 2010

上次修改主題的時間: 2009-11-10

警示名稱:   未知的 SQL 例外狀況

事件識別碼:   5586

摘要:   Microsoft SharePoint Foundation 使用 Microsoft SQL Server 2008 資料庫,儲存組態設定及大多數的網站內容。例如,網站中所有頁面、文件庫中的檔案、附加到清單的檔案以及清單中的資訊,都會儲存在內容資料庫中,而安全性及權限設定與其他組態設定,則會儲存在 SQL Server 2008 的設定資料庫中。

Microsoft SharePoint Foundation 使用服務帳戶,代表使用者要求與資料庫通訊。此服務帳戶可以是特定使用者名稱或密碼 (網域名稱及密碼),或是預先定義的系統帳戶 (例如,本機系統或網路服務)。建立 SQL Server 資料庫時,會設定資料庫大小的上限值。每個資料庫都有個別的資料庫大小設定。請注意,Web 應用程式可能與一或多個資料庫相關聯。

徵狀:   可能會出現下列徵狀:

  • 此事件會出現在事件記錄檔中:事件識別碼:5586 描述:SQL Server 執行個體 <執行個體名稱> 上的資料庫 <資料庫名稱> 發生資料庫已滿的錯誤。SQL Server 的其他錯誤資訊如下。<SQL 錯誤訊息>。

    注意

    此描述會隨 SQL 錯誤碼而改變。

原因:   可能原因包括下列一或多項:

  1. SQL Server 資料庫權限不足

  2. SQL Server 資料庫已滿

  3. MDAC 版本不正確

  4. 找不到 SQL Server 資料庫

  5. SQL Server 的版本不正確

  6. 不支援 SQL Server 定序

  7. 資料庫是唯讀的

注意

您必須是 SharePoint 伺服器陣列管理員群組的成員,才可執行下列工作。

解決方法:   授與資料庫存取帳戶正確的權限

  • 若要解決此問題,請指派資料庫存取帳戶,然後確認該帳戶是否有正確的 SQL Server 權限。

    指派資料庫存取帳戶:

    1. 在 SharePoint 管理中心網站上,按一下 [安全性],然後按一下 [一般安全性] 區段中的 [設定服務帳戶]。

    2. 在 [設定服務帳戶] 頁面的 [認證管理] 區段中,為 Web 應用程式選取正確的 Web 應用程式集區。

    3. 在 [選取此元件的帳戶] 區段中,選取要與此 Web 應用程式集區產生關聯的網域帳戶,或按一下 [註冊新的受管理帳戶] 以建立新的網域帳戶與此應用程式集區的關聯性。

    4. 按一下 [確定] 儲存變更。

    確認此帳戶在 SQL Server 中具有正確的權限:

    1. 使用具有管理員權限的帳戶,連線到執行 SQL Server 的電腦。

    2. 在 SQL Server Management Studio 的 [物件總管] 功能窗格中,展開 [安全性] 節點,然後展開 [登入] 節點。資料庫存取帳戶的名稱會指出其為 SQL 登入帳戶;例如,##MS_PolicyTsqlExecutionLogin##。

    3. 若帳戶已存在,請依序展開 [資料庫] 節點與 [安全性] 節點,然後按一下 [角色]。

    4. 展開 [資料庫角色] 節點,然後以滑鼠右鍵按一下 [db_owner],再選取 [屬性]。

    5. 在 [資料庫角色屬性] 對話方塊中,檢查 [此角色的成員] 清單中是否有資料庫存取帳戶。若未列出此帳戶,請按一下 [新增]。

注意

您必須是 SharePoint 伺服器陣列管理員群組的成員,才可執行下列工作。

解決方法:   增加 SQL Server 資料庫的大小

  • SharePoint Foundation 無法寫入已達到其大小上限的資料庫。解決方法之一是增加事件訊息中具名的已滿資料庫之大小上限設定。

    增加資料庫大小:

    1. 在 SQL Server Management Studio 的 [物件總管] 功能窗格中,依序展開伺服器節點與 [資料庫] 節點,然後以滑鼠右鍵按一下所要的資料庫,再按一下 [內容]。事件訊息中會提供資料庫名稱。

    2. 在 [內容] 對話方塊中,按一下功能窗格中的 [檔案]。

    3. 在 [資料庫檔案] 對話方塊的 [自動成長] 欄中,按一下資料庫檔案的省略符號。

    4. 在 [變更自動成長] 對話方塊的 [檔案大小上限] 下,若選取了 [限制的檔案成長 (MB)] 選項,請增加右側方塊中的檔案大小上限。也可以選取 [不限制檔案成長] 選項,設定資料庫無限制地成長。

    5. 按一下 [確定] 儲存變更。

注意

您必須是 SharePoint 伺服器陣列管理員群組的成員,才可執行下列工作。

解決方法:   還原資料庫

  • 在執行 SQL Server 的電腦上若未出現 SQL Server 資料庫,或無法存取,請從備份還原資料庫並將其重新連結至 SharePoint Foundation 2010。

    從備份還原資料庫:

    1. 將資料庫備份複製到 SQL Server 主機。

    2. 使用 RESTORE SQL Server 命令還原資料庫。如需 RESTORE 命令的詳細資訊,請參閱 https://msdn.microsoft.com/zh-tw/library/ms186858(sql.90).aspx。

    重新連線管理中心內的資料庫:

    1. 在管理中心頁面上,按一下 [應用程式管理],然後按一下 [資料庫] 區段中的 [管理內容資料庫]。

    2. 在 [管理內容資料庫] 頁面上,按一下 [新增內容資料庫],然後選取 [Web 應用程式] 區段中的 Web 應用程式。

    3. 在 [資料庫名稱與驗證] 區段的 [資料庫伺服器] 文字方塊中輸入伺服器名稱,並在 [資料庫名稱] 文字方塊中輸入資料庫名稱。

    4. 按一下 [確定] 儲存變更。

解決方法:   安裝正確的 SQL Server 版本

  • 主控資料庫伺服器角色的電腦必須安裝 Microsoft SQL Server 2005 Service Pack 3 累計更新 (CU) 3 或 SQL Server 2008 Service Pack 1 CU 2。您可以安裝或升級伺服器為正確的 SQL Server 版本。

注意

您必須擁有資料庫的 db_owner 權限,才可執行下列工作。

解決方法:   選取正確的 SQL Server 定序

  1. 使用擁有資料庫的 db_owner 權限之帳戶,連線至執行 SQL Server 的電腦。

  2. 在 SQL Server Management Studio 的 [物件總管] 功能窗格中,展開 [資料庫] 節點。以滑鼠右鍵按一下事件 4972 指出的特定資料庫,然後按一下 [內容]。

  3. 在 [一般] 索引標籤上,定序會列在 [維護] 區段中。

  4. 若要變更定序,請開啟 [選項] 頁面。

  5. 從 [定序] 方塊中選取正確的定序。

解決方法:   將資料庫變更為讀取/寫入

  • 執行下列步驟增加資料庫的大小,以將資料庫變更為可讀取及寫入 (讀取/寫入)。

    注意

    您必須擁有資料庫的 db_owner 存取權,才可執行此動作。

    增加資料庫的大小:

    1. 在 SQL Server Management Studio 的 [物件總管] 功能窗格中,展開伺服器節點,然後展開 [資料庫] 節點。

    2. 以滑鼠右鍵按一下所要的資料庫,然後按一下 [內容]。事件訊息中會提供資料庫名稱。

    3. 在 [資料庫屬性] 對話方塊中,按一下功能窗格中的 [檔案]。

    4. 在 [資料庫檔案] 區段的 [自動成長] 欄中,按一下資料庫檔案的省略符號。

    5. 在 [變更自動成長] 對話方塊的 [檔案大小上限] 區段中,若選取了 [限制的檔案成長] 選項,請增加右側方塊中的檔案大小上限。也可以選取 [不限制檔案成長] 選項,設定資料庫無限制地成長。

    6. 按一下 [確定] 儲存變更。

確定所有資料庫問題都已解決

  1. 在 [SharePoint 管理命令介面] 中,執行 Windows PowerShell 命令 Get-SPSite | Format-Table -Property ID,WebApplication,ContentDatabase,取得每個 Web 應用程式的網站清單,以列出各式資料庫中的所有網站,並找到每個資料庫中的某個網站。

  2. 瀏覽至網站。