SharePoint系统崩溃恢复
Sharepoint系统崩溃恢复操作
备份
方式:
l 使用SharePoint管理中心备份功能,测试过程中发现有时能备份成功,有时报错频繁,还以为是我的哪里配置出了问题,上网一搜,发现网上骂声已经一堆了,另外不支持定时自动备份,不知道微软为什么做这个鸡肋的工具。
l 使用Office SharePoint Designer 2007备份,不支持定时自动备份,也不考虑。
l 备份数据库 + 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也正常恢复了。
目前维护的开源产品:https://gitee.com/475660