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

GreenPlum数据库日常维护

大概是在2016年写的。后面接触postgreSQL,发现命令很相似,原来是同宗同源。

GPDB的日常维护包括以下两点

对所有用户表执行‘analyze’
1. 对所有用户表执行‘analyze’, 步骤如下。这个可以考虑一个月执行一次,或者更短时间执行过一次。

psql

\o /tmp/table_analyze.out;

select 'analyze '||schemaname||'.'||tablename||';' from pg_tables where schemaname not in ('pg_catalog','information_schema','gp_toolkit') and tablename not like '%1_prt_%';


然后将这个/tmp/ table_analyze.out 内容拆分为多次执行(比如每次执行内容放入table_analyze1.out),并行执行(因为把所有一起执行比较慢)。

注意大表比如analyze public.tpd_lcdl; 表比较大,单独执行,还有C网的大表

执行nohup psql -f table_analyze1.out & 接着复制下一段再执行

具体如下:

以gpadmin用户登录到GP数据库服务器上,然后进入psql模式下,运行select语句,把查询出来的语句复制粘贴到table_analyze.out文件中,如果不拆分就执行在最后nohup psql –f /tmp/ table_analyze.out &

如下:

可以直接复制粘贴如下命令行

psql

\o /tmp/table_analyze.out;



然后粘贴查询语句后回车执行

输入\q 后回车退出,可以见到在/tmp 目录下有table_analyze.out文件


自动将查询结果的“analyze public.XXXX”这些内写到table_analyze.out文件中,最后给table_analyze.out文件赋可执行权限:



如果不分多次执行就是执行 nohup psql –f table_analyze.out &



ps -ef|grep table_analyze.out 查看执行状态,如果发现进程在像上面图的,说明还在执行,如果没存在像下面截图在说明执行完成了。



对catalog 表执行‘’vacuum full analyze' 操作
二:对catalog 表执行‘’vacuum full analyze' 操作。这个也可以一个月执行一次。

#!/bin/bash

DBNAME="niosdb"

VCOMMAND="VACUUM FULL ANALYZE"

psql -tc "select '$VCOMMAND' || ' pg_catalog.' || relname || ';' from pg_class a,pg_namespace b where a.relnamespace=b.oid and b.nspname= 'pg_catalog' and a.relkind='r'" $DBNAME | psql -a $DBNAME

将这个脚本保存为一个shell 文件(这个文件已经有,在/home/gpadmin/vacuum下的vacuum_full_analyze.sh)。

1、如果在正常模式下也可以执行,不用重启数据库直接执行,但是应该比受限模式下更慢点,数据也可以入库。

2、正常来说要把数据库重启到维护模式下,但是数据不能入库。先停止入库进程。ps -ef|grep 8080查找后杀掉进程。然后将数据库重启为restricted mode后,就可以执行了。执行完毕后,正常启动数据库。

备注:数据库的restricted mode的操作方法如下:

首先把数据库关闭,然后运行gpstart -R 启动,就进入了restricted mode。然后执行,执行完毕后可运行gpstop -M fast关闭restricted mode。然后启动数据库。

gpstop -M fast


gpstart -R


cd /home/gpadmin/vacuum


sh vacuum_full_analyze.sh



过程可查看进程,如下存在说明还没执行完,ps ef|grep vacuum_full_analyze.sh


花13天还没执行完。

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

评论