门户子站点备份与恢复
来源:万方数据 更新时间:2014-03-16
 
门户网站是企业向外展示自己的窗口,是展示企业文化、协同办公以及实现办公自动化的重要手段,在中国石油企业中得到了广泛的应用。门户的正常运行能够使我们的各项生产经营活动稳步有序。为了保证门户的正常运行,门户的备份工作就显得至关重要。常规的办法是对整个门户的SQL Server数据库进行备份,然而如果遇到某一个子站点需要恢复就只能恢复所有的站点,在时间差内其他子站点所做的工作就会被覆盖掉,这在企业的门户管理中是很不便的。如何能实现门户子站点的单独备份、单独恢复呢?本文将结合实际工作就门户网站子站点分别单独备份、单独恢复问题谈谈认识和解决办法。
一、问题提出
    门户网站是向外展示企业文化的窗口,在业界得到了广泛的应用。我们有三台服务器一起承担着门户网站的服务工作,两台是门户基础平台WSS,一台是SQL SERVER数据库服务器,门户所有的文档存储在数据库服务器中的DB1和DB2两个数据库中。一直以来,都是对整个门户的SQL Server数据库进行备份,包括所有的子站点。这种办法的局限就是,如果某一个子站点需要恢复就只能恢复所有的站点,在时间差内其他子站点所做的工作就会被覆盖。曾经某企业下属的A单位就出现过这样的问题,当时因为没有合适的解决办法,为了避免覆盖掉其他单位所做的工作,只好重做了门户中丢掉的部分。那么如何能实现门户子站点的单独备份、单独恢复呢?本文将结合工作实践就门户网站子站点单独备份、单独恢复问题提出详细的解决思路和处理办法。
二、门户子站点单独备份和恢复的思路
    严格地讲,门户子网站的备份由门户基础平台WSS和内容管理服务CMS两部分构成,它们都存储在SQL Server数据库服务器上,其中WSS的内容存储在库DB1中,CMS中的内容存储在库DB2中,如图1。库DB1主要存储门户网站左右两边的部分,包括门户网站所有的子站点、文档和列表,库DB2主要存储门户网站中间内容部分,包括通知公告、重要信息、企业动态、综合信息。子站点也是上述模式。
    我们原有的方案是对整个SQL Server数据库进行备份操作,包括库DB1和库DB2。这样虽然对全部门户及子站点的备份和恢复有效,但如果需要哪一个子站点单独恢复,就必须恢复所有站点,不可避免地要覆盖掉时间差内其他子站点所做的工作。
 130389048634518641_new.jpg (423×124)
图1 门户存储架构
    如果SQL Server数据库中所有WSS和CMS的内容有直接的归属,即属于哪个网站或子站点,就可以通过SQL脚本逐一进行备份,然而事实上是行不通的,因为DB1和DB2每个库中至少包含几十个表,如果按表进行操作,脚本复杂、不宜于维护,而且每个表中的记录都是以ID来标识的,根本无法直接找到归属,这种子站点备份的思路是不可行的。
    那么,如何找到子站点备份的最佳方案呢?经过反复实践,我们摸索出一套依托门户本身的工具实现门户子站点的备份和恢复的思想。
三、门户子站点单独备份和恢复的解决办法
    3.1 子站点门户基础平台WSS的备份和恢复。利用门户本身提供的实用程序Smigrate能够很好地实现子站点WSS部分的备份和恢复。在一台门户基础平台WSS上
      130389050831324291_new.jpg (421×580)
    3.2 子站点内容管理服务CMS的备份和恢复。同样,SQL Server数据库中库DB2中也无法直接找到归属子站点,不能按表进行单独备份,虽然在数据库中备份DB2库对顶级站点和所有子站点的备份和恢复是有效的。为了实现子站点单独备份,经实践,子站点CMS部分的备份和恢复也必须借助和依托门户本身,通过CMS管理服务中的站点管理Site Manager中的频道来进行备份和恢复。在Site Manager中的Channels打开CMSRoot下所需要备份的子站点,通过右键选择菜单中的Export to Package,选择导出组权限和用户,即可将子站点的CMS部分从SQL Server数据库中库DB2中备份出来,最终生成一个包含组权限和用户的SDO文件,如图2。
  130389050988943307_new.jpg (522×278)
图2 备份CMS
    恢复过程,同样利用Site Manager管理工具,应用图3恢复CMS组权限和用户Package中的Import功能,选择导入组权限和用户、文件路径,就可以实现子站点CMS所有内容的恢复,如图3-图4。
  130389051121940914_new.jpg (536×260)
图3 恢复CMS组权限和用户
  130389051266249168_new.jpg (536×269)
图4 配置Container规则
    由于CMS组件不支持批处理,因此子站点CMS部分的备份无法进行批处理,只能按子站点每天进行手动备份。
    3.3 子站点备份和恢复的执行效率。子站点WSS的备份执行效率较高,24个子站点,批处理文件backup.bat执行完需要大概30分钟时间。子站点WSS的恢复的执行效率非常高,某个子站点需要恢复,应用上文提到的指令,如果站点的内容相对少一些,只需要10秒钟。子站点CMS的备份和恢复,要手动操作,每个子站点需要1分钟左右的时间,执行效率也比较高。
四、结论及认识
    通过探索与实践,依托门户本身的管理工具实现门户子站点的单独备份和单独恢复是可行有效的,解决了门户子站点单独备份和恢复的需求,在一定程度上提高了门户子站点的安全性,为门户网站的安全稳定运行提供了保证。