0

当我停止一个仍然连接到某些会话的 HAWQ 实例时,它不能用“hawq stop -a”停止。

$ hawq stop cluster -a
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-Prepare to do 'hawq stop'
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-You can find log in:
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-/Users/wangchunling/hawqAdminLogs/hawq_stop_20160701.log
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-GPHOME is set to:
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-/usr/local/hawq
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-Stop hawq with args: ['stop', 'cluster']
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-No standby host configured
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-Stop hawq cluster
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[INFO]:-There are 1 connections to the database
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[WARNING]:-There are other connections to this instance, shutdown mode smart aborted
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[WARNING]:-Either remove connections, or use 'hawq stop master -M fast' or 'hawq stop master -M immediate'
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[WARNING]:-See hawq stop --help for all options
20160701:10:02:09:032804 hawq_stop:ChunlingdeMacBook-Pro:wangchunling-[ERROR]:-Active connections. Aborting shutdown...

那么“hawq stop -M immediate”和“hawq stop -M fast”有什么区别呢?

4

3 回答 3

1

-M 快

快速关机。任何正在进行的事务都会被中断并回滚。

-M 立即

立即关闭。任何正在进行的事务都将中止。此模式会杀死所有 postgres 进程,而不允许数据库服务器完成事务处理或清理任何临时或进程中的工作文件。

这是HAWQ文档的链接:http: //hdb.docs.pivotal.io/20/reference/cli/admin_utilities/hawqrestart.html

于 2016-07-01T02:51:26.347 回答
1

在内部,停止只是向 postgres 进程发送信号。不同的停止模式意味着不同的信号。

智能模式:SIGTERM

快速模式:SIGINT

立即模式:SIGQUIT

于 2016-07-07T22:54:50.290 回答
1

不建议立即关机。因为在某些情况下,它可能会导致需要手动恢复的数据库损坏。您可以参考@Wen Lin 提到的链接http://hdb.docs.pivotal.io/20/reference/cli/admin_utilities/hawqrestart.html中的文档。

作为替代方案,建议使用“hawq stop cluster -a -M fast”或使用“pg_cancel_backend()”然后执行“hawq stop cluster -a”。

于 2016-07-04T06:11:43.123 回答