Hi all,
Today I found useful cmdlets to diagnose and clear those errors in the Content DB of my SharePoint 2010 Farm.
How to proceed:
Step 1: Inspect the DB
- Test-SPContentDatabase -name <ContentDB_Name> -webapplication <Web App URL>
Step 2:
- Select the WebPart Class GUID
Step 3:
- Create the SQL Function and execute it into PowerShell:
- Create the SQL Function and execute it into PowerShell:
function Run-SQLQuery ($SqlServer, $SqlDatabase, $SqlQuery)
{
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server =" + $SqlServer + "; Database =" + $SqlDatabase + "; Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
{
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server =" + $SqlServer + "; Database =" + $SqlDatabase + "; Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
}
- Run this command with the related WebPart Class GUID:
Run-SQLQuery -SqlServer "SRV_DATABASE" -SqlDatabase "SharePoint_Content_sharepointWorkgroup17" -SqlQuery "SELECT * from AllDocs inner join AllWebParts on AllDocs.Id = AllWebParts.tp_PageUrlID where AllWebParts.tp_WebPartTypeID = '9812863c-ee62-dab6-57f5-79e9d4d36022'" | select Id, SiteId, DirName, LeafName, WebId, ListId, tp_ZoneID, tp_DisplayName | Format-List
Step 4:
- The result will give the below info, with the URL where the Missing Web Part is located:
Id : a5da7b36-083f-4d07-b50b-8f1fc8d7bbe9
SiteId : 53061278-8b1d-4d6d-9dce-8568f90c5574
DirName : Sites/WW12000012/Sandbox/TestWSServiceLevelDashboard
LeafName : default.aspx
WebId : 2ab691b1-0d74-4bf2-9524-c6b1d969cfac
ListId :
tp_ZoneID : Left
tp_DisplayName :
- The URL to use is: http://sharepoint.contoso.com/Sites/WW12000012/Sandbox/TestWSServiceLevelDashboard/default.aspx?contents=1
Adding at the end of the URL "?contents=1" will let SharePoint to show the "Web Part Page"
- So, here are the steps that I follow to remove the “ErrorWebPart”:
1- select the Error rows
2- click on “Close” to set them as “No” for the “Open on Page?” column
3- select the same Error rows then Delete them
Step 5:
- Execute again the “Test-SPContentDatabase” to check that all entries for the MissingWebPart are gone.
No comments:
Post a Comment