MarkLogic:为什么删除应用服务器会导致群集重启?

Guy*_*tes 4 marklogic

为什么删除应用服务器会导致群集重启?是否有脚本选项可以删除多个应用程序并且不会触发多次重启?例如,我可以:打开一个事务,获取配置,运行多个admin:appserver-delete()调用,保存新配置,然后提交事务并只触发一次重启?

MarkLogic = 8.0-3.2和8.0-4.2,Linux = RedHat

grt*_*tjn 7

重启最重要的是断开侦听该特定应用服务器端口的HTTP端口侦听器.该app-server的配置(与所有配置详细信息一样)在整个集群中共享,并且分配给定义app-server的组的所有主机都在同一端口上拥有侦听器.因此,删除应用服务器至少需要重新启动同一组中的所有主机.尽管如此,进行群集范围的重启也很快.

是的,可以有一个xquery语句,例如,一次删除多个app-servers,将主机重新分配给另一个组,也可以删除它们所属的原始组,最后只需重启一次即可完成.这些admin功能允许您对管理配置进行多次更新,并以一个单一结束admin:save-configuration来保留您的更改.

小例子:

let $config := admin:get-configuration()
let $config := admin:appserver-delete($config,
  admin:appserver-get-id($config, xdmp:group(), "app-serv1")
)
let $config := admin:appserver-delete($config,
  admin:appserver-get-id($config, xdmp:group(), "app-serv2")
)
let $config := admin:appserver-delete($config,
  admin:appserver-get-id($config, xdmp:group(), "app-serv3")
)
return admin:save-configuration($config)
Run Code Online (Sandbox Code Playgroud)

实际上,admin:appserver-delete需要一系列appserver ID,因此您可以在这种情况下压缩代码.但是,您可以像这样以相同的方式组合各种管理功能调用.只要留意你执行它们的顺序,这可能是相关的.在应用设置之前创建数据库,取消链接工件,删除之前等.

HTH!