SharePoint系统崩溃恢复

Sharepoint系统崩溃恢复操作

 

备份

方式:

使用SharePoint管理中心备份功能,测试过程中发现有时能备份成功,有时报错频繁,还以为是我的哪里配置出了问题,上网一搜,发现网上骂声已经一堆了,另外不支持定时自动备份,不知道微软为什么做这个鸡肋的工具。

使用Office SharePoint Designer 2007备份不支持定时自动备份,也不考虑。

备份数据库 + Stsamd命令行备份整站 + 任务计划 ,我采取这个方式。

备份域控

如果是场服务器部署方式,先要备份域控,因为有很多帐户是域控帐号,下面的例子是独立安装所以不备份域控。

备份数据库

SQL Server Configuration Manager 中, 网络配置中,

协议中,tcp/ip属性中,
保持活动状态 --> 30000
全部侦听     -->
无延迟       -->
已启用       -->

IP地址中,
IP地址      --> 你的IP
TCP动态端口 --> 不填
TCP端口     --> 1433
活动        -->
已启用      -->

编写脚本

sql.bat

sqlcmd -S CX-FILES"OFFICESERVERS -E -i D:"sql.txt -o D:"out.txt

sql.txt

Backup Database [WSS_Content] To disk='D:"WSS_Content.bak';

Backup Database [WSS_Search_CX-FILES] To disk='D:"WSS_Search_CX-FILES.bak';

Backup Database [SharedServices1_DB_3704bff0-ce4c-42a0-aad4-02a6e218c8ad] To disk='D:"SharedServices1_DB_3704bff0-ce4c-42a0-aad4-02a6e218c8ad.bak';

Backup Database [SharedServices1_Search_DB_bfa21693-c663-4fa4-a947-df0453457875] To disk='D:"SharedServices1_Search_DB_bfa21693-c663-4fa4-a947-df0453457875.bak';

Backup Database [SharedServicesContent_de82727a-2c9f-4de1-992d-f1d4a3218daf] To disk='D:"SharedServicesContent_de82727a-2c9f-4de1-992d-f1d4a3218daf.bak';

Backup Database [SharePoint_AdminContent_a9896eb4-1207-4af7-ab73-e3b6c7c0fa66] To disk='D:"SharePoint_AdminContent_a9896eb4-1207-4af7-ab73-e3b6c7c0fa66.bak';

Backup Database [SharePoint_Config_4f34db98-ef8c-4eb7-96d1-5d32e4c52167] To disk='D:"SharePoint_Config_4f34db98-ef8c-4eb7-96d1-5d32e4c52167.bak';

如果无法备份,很可能是环境变量没有设置,因为sql server express是不设置环境变量的,需用手动添加类似如下的目录:C:"Program Files"Microsoft SQL Server"90"Tools"Binn

Stsamd命令行备份整站

将类似如下目录加入环境变量:C:"Program Files"Common Files"Microsoft Shared"web server extensions"12"BIN

然后编写脚本:

stsadm.exe -o backup -url "http://cx-files" -filename "d:"spback.bak" –overwrite

最后添加任务计划进行定期备份,就不再描述了

模拟崩溃

模拟站点崩溃

将应用程序站点删除:

步骤:

网站管理>>应用程序管理>>删除Web 应用程序 ,将http://cx-files/ 删除

记得要钩选“删除内容数据库”和“删除IIS网站”

模拟SharePoint服务器全部崩溃

SharePoint Server 彻底删除即可。


 

 

系统恢复

站点崩溃后恢复

在模拟崩溃后,进行以下操作进行恢复:

1、 先建个和之前同名的应用程序:http://cx-files/,保持端口80,数据库名称为WSS_Content

2、 执行脚本:stsadm.exe -o restore -url "http://cx-files" -filename "d:"spback.bak" –overwrite

3、 进入http://cx-files/ ,发现应用程序已成功恢复,测试表单数据也已恢复。

 


 

 

SharePoint服务器全部崩溃后恢复

先安装SharePoint Server;

如果重复站点崩溃的恢复方法,点击表单发现会报错如下:

加载表单时出错。

 

请单击“重试”以尝试重新加载该表单。如果此错误持续存在,请与网站的支持小组联系。

请单击“关闭”以退出此消息。

隐藏错误详细信息

系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)

System.IO.FileNotFoundException: 系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)

Microsoft.SharePoint.Library.SPRequestInternalClass.GetFileAsStream(String bstrUrl, String bstrWebRelativeUrl, Boolean vbEmpty, Int32 cbHint, Boolean bHonorLevel, Byte iLevel, Boolean bUnprotected)

Microsoft.SharePoint.Library.SPRequest.GetFileAsStream(String bstrUrl, String bstrWebRelativeUrl, Boolean vbEmpty, Int32 cbHint, Boolean bHonorLevel, Byte iLevel, Boolean bUnprotected)

Microsoft.SharePoint.SPFile.GetFileStream()

Microsoft.SharePoint.SPFile.OpenBinaryStream()

……

一定是表单模版找不到,再上传模板。

上传后再进入表单,提示“表单已关闭”。

然后想到可能是内容数据库没有还原,进入管理中心 > 应用程序管理 > 内容数据库把新建的

WSS_Content_baba992f-f595-4c55-935e-4c939c73ea0f内容数据库删除

运行还原脚本:

sqlcmd -S CX-FILES"OFFICESERVERS -E -i c:"sqlrestore.txt -o c:"out.txt

RESTORE DATABASE [WSS_Content] FROM DISK = 'c:"WSS_Content.bak' WITH REPLACE;

添加还原后的WSS_Content

再进入表单,发现已成功恢复。

网上有些文档说把WSS_Content的数据导入到WSS_Content_baba******中也可以实现恢复,我还没有尝试过。

还有些文档说是还需要还原SSP ,我没有还原SSP也正常恢复了。


 


  

关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
目前维护的开源产品:https://gitee.com/475660
原文地址:https://www.cnblogs.com/starcrm/p/1318980.html