环境:SharePoint 2007(标准)在双服务器小型农场上发布内部网站点。
我们需要能够规划关机操作,我认为在关机时必须保持两台服务器同步。
STSADM 的“quiescefarm”操作显然只能阻止提交 Infopath 表单(我们没有使用):
http://technet.microsoft.com/en-us/library/cc262797(office.12).aspx
中央管理员的“静止服务器场”操作是同一件事吗?关闭多个服务器的 SharePoint 服务器场并确保所有写入都被阻止并且所有内容保持同步的正确程序是什么?
目前,我正在关闭 WWW 服务并先关闭 WFE 服务。找不到最佳做法...
答案1
你问题中的第二句话有一个错误的假设,这意味着你正在尝试解决一个实际上并不存在的问题。没有必要担心“保持服务器同步”。
您可以按任意顺序关闭场中的服务器(也可以按任意顺序重新启动它们)。您甚至不必担心停止单个服务 - 只需关闭系统即可。最糟糕的情况是,您的 ULS 和事件日志中会出现大量错误(例如,如果 WFE 在数据库之前启动)。
最干净的方法是按照以下顺序进行:
- 世贸组织
- 应用程序服务器
- 数据库服务器
然后按相反顺序重新启动服务器。
当使用 Forms Services(可能还有 Excel 服务……我见过相互矛盾的文档)时,它们有时会在将事务提交到数据库之前经历多个 HTTP 请求的会话 - 这就是 quiesce farm 命令的作用所在。它允许会话完成这些多个请求事务之一,但不允许任何新会话。提交所有事务后,Infopath(Excel?)服务处于脱机状态并准备关闭。
这里有一篇博客文章详细介绍了 Quiesce farm 正在做的事情: http://vspug.com/johnwpowell/2007/07/13/quiescing-can-you-use-it-in-a-sentence/
您根本没有谈到这个等式中的最终用户体验部分,但为了完整性,我会提到它。如果您在用户上传文件或编辑列表项的过程中关闭 WFE - WFE 或数据库不会受到任何损坏,但最终用户基本上只是被转储到一个错误页面,而这个页面并没有真正让他们知道发生了什么(或者是否发生了编辑!)。处理这个问题的方法是在 SharePoint 前面放一些东西(负载平衡器,甚至单独服务器上的 ARR 都可以做到这一点),它可以优雅地“耗尽” SharePoint 中的最终用户连接,并可能重定向到友好的错误页面,直到网站恢复。