排查SharePoint中的orphaned sites
你可以使用下面的命令来找到orphaned sites.
stsadm -o enumallwebs -databasename M4_Content_1 -databaseserver M4 > webs.txt
如果你在输出结果中发现哪个Site的InSiteMap属性为False, 那么这个站点就是orphaned的了.
另一个检测方法是运行stsadm命令:
stsadm -o databaserepair -url http://<URL_of_WindowsSharePointServices_Site> -databasename <name of database that contains the orphan item>
要修复orphaned sites, 你可以运行下面的命令:
stsadm -o databaserepair -url http://<URL_of_WindowsSharePointServices_Site> -databasename <name of database that contains the orphan item that is to be deleted> -deletecorruption
2011-06-30更新:
注意, 如果数据库中存在URL冲突的orphan site的话(比如之前有个站点集url为portal1, 后来该站点集由于某种原因变为了orphan, 后来又建立了url同为portal1的站点集), 在升级或摘挂content DB的时候, 有可能会出现本来work的站点集消失或显示不正常的情况.
这是由于在挂content DB或升级的时候, SharePoint在向Config DB中SiteMap表中注册站点集数据的时候, 错误地选用了之前orphan的站点集. 解决方案是使用如下的步骤:
1. 明确当前正在使用中的不正常的siteid, 然后运行命令
stsadm -o deletesite -force -siteid <siteid guid> -databasename WSS_Content_MyContentDB –databaseserver MyDBServer
2. 将当前的content DB摘下, 再挂上(Detached and reattached)
3. 重复第1,2步, 直到目标站点正常出现在sitemap表中, 且正常显示为止.
更多信息:
STSADM (Part 3)
http://blogs.msdn.com/spblog/archive/2009/06/22/stsadm-part-3.aspx
Databaserepair: Stsadm operation (Office SharePoint Server)
http://technet.microsoft.com/en-us/library/cc263282.aspx
Orphaned Sites - Part 1
http://blogs.msdn.com/krichie/archive/2005/10/25/484889.aspx