1 关闭数据库
1.1 使用admintools正常关闭数据库
1.1.1 停业务
首先需要把连接到数据库的调度、BI等一切与Vertica数据库相关的业务停止,防止在停库的时候因为业务的影响一直关不掉数据库。
1.1.2 关闭数据库连接
--关闭数据库连接,设置为0后,dbadmin用户仍然可以有5个连接可用。
select set_config_parameter('maxclientsessions',0);
--关闭数据库所有的session
select close_all_sessions();
--检查session是否全部关闭,结果应该=1
select count(*) from sessions;
--推进数据库AHM
select make_ahm_now();
--检查当前的AHM、current_epoch等
select get_ahm_epoch(),get_ahm_time(),get_last_good_epoch(),get_current_epoch();
get_ahm_epoch | get_ahm_time | get_last_good_epoch | get_current_epoch
---------------+------------------------------------------------+---------------------+-------------------
17 | Current AHM Time: 2024-03-09 08:08:08.95707+08 | 17 | 18
(1 row)
get_ahm_time: 应该接近当前系统时间。
get_ahm_epoch与get_last_good_epoch应该相等。
get_current_epoch比get_last_good_epoch大1。
1.1.3 使用admintools关闭数据库
首先登陆到集群任意一个节点的dbadmin用户:
[root@v001 ~]# su - dbadmin Last login: Sat Mar 9 07:54:56 CST 2024 on pts/0 [dbadmin@v001 ~]$
使用admintools命令关闭数据库:
[dbadmin@v001 ~]$ [dbadmin@v001 ~]$ admintools -t stop_db -d <dbname> -p <password> -F Running shutdown metafunction... Shutdown metafunction complete. Polling until database processes have stopped. Database vmart stopped successfully [dbadmin@v001 ~]$ [dbadmin@v001 ~]$
检查节点上的Vertica进程是否关闭,如下结果无输出表示进程已关闭:
[dbadmin@v001 ~]$ pgrep vertica$ [dbadmin@v001 ~]$
1.2 非常规关闭数据库
有时候数据库在停机的时候会花费比较长的时间,大部分原因是因为有夯死的session无法正常关闭,导致停库任务一直无法完成,此时只要保证AHM=LGE,就可以通过手动杀掉每个节点Vertica进程的方式来关闭数据库。
检查数据库AHM和LGE:
--推进数据库AHM
select make_ahm_now();
--检查当前的AHM、current_epoch等
select get_ahm_epoch(),get_ahm_time(),get_last_good_epoch(),get_current_epoch();
get_ahm_epoch | get_ahm_time | get_last_good_epoch | get_current_epoch
---------------+------------------------------------------------+---------------------+-------------------
17 | Current AHM Time: 2024-03-09 08:08:08.95707+08 | 17 | 18
(1 row)
强制关闭Vertica进程:
方法1:使用kill -9命令杀掉进程,需要登陆每个节点进程操作:
[dbadmin@v001 ~]$ pgrep vertica$
2873220
[dbadmin@v001 ~]$ kill -9 2873220
[dbadmin@v001 ~]$ pgrep vertica$
[dbadmin@v001 ~]$
方法2:使用admintools命令行:
[dbadmin@v001 ~]$ admintools -t kill_host -s v001 #如果为多个节点,则使用逗号分隔hostname传入
Sending signal 'KILL' to ['10.211.55.6']
Successfully sent signal 'KILL' to hosts ['10.211.55.6'].
Details:
Host: 10.211.55.6 - Success - PID: 2874854 Signal KILL
Checking for processes to be down
All processes are down.
Details:
Host 10.211.55.6 Success process 2874854 is down
2 关闭某个、某几个节点
Vertica是MPP数据库,可以单独关闭某些节点(非逻辑相邻节点)而不影响数据库的正常运行。
方法1:使用kill -9关闭进程
[dbadmin@v001 ~]$ pgrep vertica$
2873220
[dbadmin@v001 ~]$ kill -9 2873220
方法2:使用admintools工具关闭节点
如下两种都可以: [dbadmin@v001 ~]$ admintools -t stop_node -s v001 [dbadmin@v001 ~]$ admintools -t stop_host -s v001
3、启动某个、某几个节点
使用admintools命令启动:
[dbadmin@v001 ~]$ admintools -t restart_node -d <dbname> -s v001,v005 -p <DBPASSWORD> -F
4、启动数据库
使用admintools命令启动数据库:
[dbadmin@v001 ~]$ admintools -t start_db -d <dbname> -p <dbpassword> -F
恢复数据库设置:
--停库的时候设置为0,启动过后改回配置。
select set_config_parameter('maxclientsessions',300);
5、一些日志文件
| 文件名 | 描述 |
|---|---|
| /data/vmart/v_vmart_node0001_catalog/startup.log | 可监控数据库节点启动进度。 |
| /opt/vertica/log/adminTools.log | admintools工具日志 |
| /opt/vertica/log/adminTools.errors | admintools工具错误日志 |

最后修改时间:2024-08-29 10:39:16
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




