现在的位置: 首页 > 综合 > 正文

移动一个网站集所使用的内容数据库

2012年04月15日 ⁄ 综合 ⁄ 共 1568字 ⁄ 字号 评论关闭

在默认的情况下,每个SharePoint Web应用程序只会使用一个内容数据库(Content Database)。随着在这个Web应用程序中创建的网站集越来越多,或者网站集中的数据越来越多,这个内容数据库也在不断的增大。

也许是为了提高性能,也许是原有的内容数据库剩余空间已经不多,管理员可以给一个Web应用程序创建更多的内容数据库。在SharePoint管理中心的“应用程序管理 - 内容数据库”中,管理员在选中了一个Web应用程序后,可以创建新的内容数据库:
image
通过将新的内容数据库指定到不同的SQL Server物理服务器,在创建新的网站集时,就可以将新网站集所使用的内容数据库分布到不同的服务器上,达到负载均衡的效果。

当一个Web应用程序有多个内容数据库时,默认会使用最后创建的内容数据库来承载新的网站集。如果想指定一个特定的内容数据库来承载新网站集,可以将其他内容数据库的状态更改为“脱机”即可。这里的“脱机”并非指这个内容数据库不可用,而是不用它来承载新网站集。
image 

但是有时候,我们也需要将一个已经存在的网站集所使用的内容数据库从一个转移到另一个上面。比如,最开始的时候,我们这样设计SharePoint服务器场的拓扑,将所有的东东都安装到一台服务器上(除了用来进行测试和开发,我都不推荐在生产环境中使用这种拓扑结构):
image

但是一个月之后,我们发现数据库的增长速度远远超过我们的想像,这一台服务器很快就不堪重负,于是,我们添加一台新的服务器,专用跑SQL数据库:
image

然后,我们就需要将原来的内容数据库移动到那台新的SQL服务器上。首先,我们需要为Web应用程序创建新的内容数据库,并指定这个新的内容数据库使用新的SQL服务器,然后...

如果在以前,然后要做的,就只能是先备份网站集,然后恢复到新的内容数据库上,显然很stupid...也许是这个需求太普遍了,所以在WSS 3.0的这个hotfix package直接下载链接)里面,直接添加了一个stsadm指令,“mergecontentdbs”。这个指令的说明参看这里。不过这个说明写得确实太简单了点...下面用一个示范来详细说明怎么用:

我们现在创建一个新的内容数据库,“WSS_Content_80_2”,于是我们就有了两个内容数据库:
image 

如果要将原有放在“WSS_Content”里面的所有网站集全部转为使用新的“WSS_Content_80_2”,就直接这样用:
stsadm -o mergecontentdbs -url http://moss -sourcedatabasename WSS_Content -destinationdatabasename WSS_Content_80_2 -operation 2

如果只想将指定的网站集的内容数据库转到“WSS_Content_80_2”上面,那么就先执行:
stsadm -o enumsites -url http://moss >sites.xml

上面的指令列出指定Web应用程序中所有的网站集,并将结果用管道命令写到“sites.xml”文件里面,打开这个文件:
image

将不希望移动内容数据库的网站集信息删除,比如,我们只希望移动第三个网站集“http://moss/sites/sales”的内容数据库,那么就改成这样:
image

然后执行:
stsadm -o mergecontentdbs -url http://moss -sourcedatabasename WSS_Content -destinationdatabasename WSS_Content_80_2 -filename sites.xml -operation 3

注意执行完这个指令后,都需要执行“iisreset”。现在,在内容数据库管理页面可以看到,新的“WSS_Content_80_2”内容数据库已经承载一个网站集了。
image

抱歉!评论已关闭.