在Sharepoint开发中,我们经常会备份和还原网站,比如到客户部署,在公司的做的DEMO有时候也需要还原到自己家里面sharepoint环境. 所以备份和还原网站是很方便的事情,像之前,我没有使用使用备份和还原的时候,经常一步一步的新建web应用程序,新建站点,导列表模板等等…,那步骤现在想想都恐怖啊!
自从Sharepoint2010有了SP1后,还原网站的时候就不是那么顺利了,出现莫名其妙的问题. 之前我机子从未升级过SP1,从我机子备份一个网站,又还原到本机,系统环境,版本也一样,就是不行.出现如下面问题:
好吧,看到这个提示,我就升到SP1吧,遗憾的还是不行. 这个问题曾经纠结我一段时间, 从低版本备份的文件也不能还原到高版本. 难道就没有办法了嘛? 非也,非也. 其实我一直坚信肯定有人遇到同样的问题.但是很遗憾搜中文一直没有结果. 不过找到一篇英文文档给了指导.
1. 首先如果你还原网站时也遇到以上情况. 请把该网站的数据分离,拷贝.比如我这里是 WSS_Content_8000
2.拷贝后,在需要还原的机子上附加该数据库. (关于分离,附加数据库详细步骤略过) 下面是重点:
3.进入sharepoint管理中心, 新建Web应用程序. (注意新建完后,一定不要点击网站集,直接点击确定)
如果此时你访问没有创建网站集的web应用程序或者网站集数据库连接失败:将看到以下详细, (以前也遇到这个问题,现在也明白这个消息的缘由了)
4.打开“管理内容数据库”,添加内容数据库:
数据库名称就填写你还原的数据库名:
删除之前默认的数据库:WSS_Content_b5c6b8ae-d44b-4ad3-b8cf-28d246f42c0b
附加内容数据库之后, 在查看刚才附加的Wss_Content_8000数据库的状态:
你应该看到Wss_content_8000的数据状态显示为: 当前数据库可以升级之内的话语: 因为下面截图的时候,我已经执行了升级的命令, 下面截图不是wss_content_8000哈,意思是一样的.
使用Sharepoint PowerShell 执行下面语句: 执行之后,你再去看数据库状态,应该就是升级中…
Upgrade-SPContentDatabase –Identity <name_of_contentDB>
至此,如果没有意外,数据库升级成功后,你就可以访问刚才新建的web应用程序了,而网站集就是你还原的数据库里面的内容了!
Q1:如果你试图在已创建网站集的web app附加数据库,在升级数据库,将得到类似如下错误:
附:虽然SP2010官方已建议丢弃STSADM命令改为PowerShell,习惯了STSADM还是先用着吧,呵呵.
@echo off
SET STSADM="%systemdrive%\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN\stsadm.exe"
SET SiteUrl=http://server:80
SET SiteBakFile="backup.dat"
echo 开始备份网站,不要中断!
%stsadm% -o backup -url %SiteUrl% -filename %SiteBakFile%
echo 备份站点结束
Pause
@echo off
SET STSADM="%systemdrive%\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN\stsadm.exe"
SET SiteUrl="http://server:81/"
SET SiteBakFile="backup.dat"
echo 开始还原网站,不要中断,不要重启IIS!
%stsadm% -o restore -url %SiteUrl% -filename %SiteBakFile% -overwrite
echo 还原站点结束
pause
参考: http://www.codeproject.com/KB/sharepoint/STSADM-Restore_Error.aspx?display=Print