暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Vertica数据库的启动和关闭

原创 simonchiang 2024-05-06
936

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工具错误日志

二维码.png

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

评论