通过数据库还原恢复一个SharePoint网站集
我们都知道SharePoint可以通过网站集备份还原的方式来恢复一个SharePoint完整集,这个办法非常简单。但是,当SharePoint网站集比较大的时候(如:数据库文件达到几十个G),网站集的备份虽然会比较慢不过基本上还能成功。但是,还原这个网站集基本是不太可能完成了。此时,我们可以通过SQL Server的备份还原功能来实现恢复一个网站集。
- 安装好SharePoint 2013服务器(注意如果有ServicePack和语言包安装);
- 安装好所需要的框架和项目wsp包;
- 创建网站集(注意站点资源限制),并激活解决方案及网站集和网站功能;
- 停用网站集所属web App的IIS缓冲池;
- 停用SharePoint 管理任务、爬网、任务计划和跟踪输出等服务;
- 从管理中心内容数据管理中停用内容数据库后,再删除内容数据库;
- 从数据库备份还原覆盖原内容数据库文件;
- 从管理中心添加内容数据库或执行如下命令添加内容数据库(注意内容数据库名称和站点名称)
Mount-SPContentDatabase -Name "WSS_Content" -WebApplication "http://localhost" - 启动SharePoint服务,启用IIS缓冲池(注意项目的web.config配置,尤其是项目的安全控件项目)
- 如果是同一个SharePoint场通过该方法创建新的网站集,第8步会提示网站集ID已经存在的错误。可以参照下面数据库脚本修改网站集ID,下面脚本基于只有一个网站集的假设。
declare @OldSiteId uniqueidentifier
select @OldSiteId =id from allsites
print @OldSiteId
declare @SiteID uniqueidentifier
set @SiteID=newid()
update allsites set id=@SiteID where id=@OldSiteId
update alldocs set siteid=@SiteID where siteid=@OldSiteId
update AllDocVersions set siteid=@SiteID where siteid=@OldSiteId
update AllFileFragments set siteid=@SiteID where siteid=@OldSiteId
update AllLinks set siteid=@SiteID where siteid=@OldSiteId
update AllLists set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update AllListsAux set siteid=@SiteID where siteid=@OldSiteId
update AllListsItemCount set siteid=@SiteID where siteid=@OldSiteId
update AllListsPlus set siteid=@SiteID where siteid=@OldSiteId
update AllListUniqueFields set siteid=@SiteID where siteid=@OldSiteId
update AllLookupRelationships set siteid=@SiteID where siteid=@OldSiteId
update AllUserData set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update AllUserDataJunctions set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update AllWebParts set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update AllWebs set siteid=@SiteID where siteid=@OldSiteId
update AppDatabaseMetadata set siteid=@SiteID where siteid=@OldSiteId
update AppInstallationProperty set siteid=@SiteID where siteid=@OldSiteId
update AppInstallations set siteid=@SiteID where siteid=@OldSiteId
update AppJobs set siteid=@SiteID where siteid=@OldSiteId
update AppLifecycleErrors set siteid=@SiteID where siteid=@OldSiteId
update AppPackages set siteid=@SiteID where siteid=@OldSiteId
update AppPrincipalPerms set siteid=@SiteID where siteid=@OldSiteId
update AppPrincipals set siteid=@SiteID where siteid=@OldSiteId
update appresources set siteid=@SiteID where siteid=@OldSiteId
update AppRuntimeIcons set siteid=@SiteID where siteid=@OldSiteId
update AppRuntimeMetadata set siteid=@SiteID where siteid=@OldSiteId
update AppRuntimeSubstitutionDictionary set siteid=@SiteID where siteid=@OldSiteId
update AppSourceInfo set siteid=@SiteID where siteid=@OldSiteId
--update AppSubscriptionCosts set siteid=@SiteID where siteid=@OldSiteId
update AppTaskDependencies set siteid=@SiteID where siteid=@OldSiteId
update AppTasks set siteid=@SiteID where siteid=@OldSiteId
update AuditData set siteid=@SiteID where siteid=@OldSiteId
update BuildDependencies set siteid=@SiteID where siteid=@OldSiteId
update ContentTypes set siteid=@SiteID where siteid=@OldSiteId
update ContentTypeUsage set siteid=@SiteID where siteid=@OldSiteId
update CustomActions set siteid=@SiteID where siteid=@OldSiteId
update Deps set siteid=@SiteID where siteid=@OldSiteId
--update DiskWarningDate set siteid=@SiteID where siteid=@OldSiteId
update DocsToStreams set siteid=@SiteID where siteid=@OldSiteId
update DocStreams set siteid=@SiteID where siteid=@OldSiteId
update EventCache set siteid=@SiteID where siteid=@OldSiteId
update EventReceivers set siteid=@SiteID where siteid=@OldSiteId
update EventSubsMatches set siteid=@SiteID where siteid=@OldSiteId
update Features set siteid=@SiteID where siteid=@OldSiteId
update FeatureTracking set siteid=@SiteID where siteid=@OldSiteId
update GroupMembership set siteid=@SiteID where siteid=@OldSiteId
update Groups set siteid=@SiteID where siteid=@OldSiteId
update HT_Cache set siteid=@SiteID where siteid=@OldSiteId
update ImmedSubscriptions set siteid=@SiteID where siteid=@OldSiteId
update NameValuePair set siteid=@SiteID where siteid=@OldSiteId
update NavNodes set siteid=@SiteID where siteid=@OldSiteId
update Perms set siteid=@SiteID where siteid=@OldSiteId
update Personalization set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update RecycleBin set siteid=@SiteID where siteid=@OldSiteId
update Resources set siteid=@SiteID where siteid=@OldSiteId
update RoleAssignment set siteid=@SiteID where siteid=@OldSiteId
update Roles set siteid=@SiteID where siteid=@OldSiteId
update SchedSubscriptions set siteid=@SiteID where siteid=@OldSiteId
update ScheduledWorkItems set siteid=@SiteID where siteid=@OldSiteId
update SiteDeletion set siteid=@SiteID where siteid=@OldSiteId
update SiteHealthCheckResults set siteid=@SiteID where siteid=@OldSiteId
update SiteQuota set siteid=@SiteID where siteid=@OldSiteId
update SiteUpgradeSessions set siteid=@SiteID where siteid=@OldSiteId
update SiteUserSyncQueue set siteid=@SiteID where siteid=@OldSiteId
update SiteVersions set siteid=@SiteID where siteid=@OldSiteId
update SolutionFiles set siteid=@SiteID where siteid=@OldSiteId
update SolutionResourceUsageDaily set siteid=@SiteID where siteid=@OldSiteId
--update SolutionResourceUsageDailyOrdinal set siteid=@SiteID where siteid=@OldSiteId
update SolutionResourceUsageLog set siteid=@SiteID where siteid=@OldSiteId
update SolutionResourceUsageWindowed set siteid=@SiteID where siteid=@OldSiteId
update Solutions set siteid=@SiteID where siteid=@OldSiteId
update StorageMetrics set siteid=@SiteID where siteid=@OldSiteId
update StorageMetricsChanges set siteid=@SiteID where siteid=@OldSiteId
--update TimerLock set siteid=@SiteID where siteid=@OldSiteId
update userinfo set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update WebMembers set siteid=@SiteID where siteid=@OldSiteId
update WebPartLists set tp_siteid=@SiteID where tp_siteid=@OldSiteId
update WebsPlus set siteid=@SiteID where siteid=@OldSiteId
update Workflow set siteid=@SiteID where siteid=@OldSiteId
update WorkflowAssociation set siteid=@SiteID where siteid=@OldSiteId