GreenPlum数据库日常维护

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

前言

本文详细的阐述了GreenPlum数据库日常维护


📣 1.官方文档

https://docs-cn.greenplum.org/
http://docs-cn.greenplum.org/v6/homenav.html
https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/9ccd913ea8be24b9.md

Pivotal在2020年被VMware收购,GP商业版就属于VMware了

在这里插入图片描述

📣 2.管理工具日志文件

Greenplum数据库管理工具的日志文件默认被写入到~/gpAdminLogs。管理日志文件的命名规则是:
script_name_date.log
日志详情的格式是:
timestamp:utility:host:user:[INFO|WARN|FATAL]:message
注:每次一个工具运行时,就会向其每日的日志文件中增加与其执行相关的日志信息。

📣 3.日常运维

✨ 3.1 数据库启动

数据库启动:gpstart
-a : 直接启动,不提示终端用户输入确认
-m:只启动master 实例,主要在故障处理时使用

✨ 3.2 数据库停止

-a:直接停止,不提示终端用户输入确认
-m:只停止master 实例,与gpstart –m 对应使用
-M fast:停止数据库,中断所有数据库连接,回滚正在运行的事务
-u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中运行时参数,当改动参数配置时候使用。
注意:-a用在shell里,最多用的还是-M fast

✨ 3.3 查看实例配置和状态

[gpadmin@master ~]$ psql -d rptdb
rptdb=# l
                               List of databases
   Name    |  Owner  | Encoding |  Collate   |   Ctype    |  Access privileges
-----------+---------+----------+------------+------------+---------------------
 postgres  | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 |
 rptdb     | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 |
 template0 | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | =c/gpadmin         +
           |         |          |            |            | gpadmin=CTc/gpadmin
 template1 | gpadmin | UTF8     | en_US.utf8 | en_US.utf8 | =c/gpadmin         +
           |         |          |            |            | gpadmin=CTc/gpadmin
(4 rows)

rptdb=# c postgres gpadmin

postgres=# select * from gp_segment_configuration;
 dbid | content | role | preferred_role | mode | status | port | hostname | address  |            datadir
------+---------+------+----------------+------+--------+------+----------+----------+--------------------------------
    1 |      -1 | p    | p              | n    | u      | 5432 | master   | master   | /greenplum/data/master/gpseg-1
    2 |       0 | p    | p              | n    | u      | 6000 | segment1 | segment1 | /greenplum/data/primary/gpseg0
    3 |       1 | p    | p              | n    | u      | 6000 | segment2 | segment2 | /greenplum/data/primary/gpseg1
(3 rows)

✨ 3.4 集群状态查询

查询命令:gpstate
显示Greenplum数据库运行状态,详细配置等信息
常用可选参数:-c:primary instance 和 mirror instance 的对应关系
-m:只列出mirror 实例的状态和配置信息
-f:显示standby master 的详细信息
-Q:显示状态综合信息
该命令默认列出数据库运行状态汇总信息,常用于日常巡检。
评:最开始由于网卡驱动的问题,做了mirror后,segment经常down掉,用-Q参数查询综合信息还是比较有用的。
查询命令:gpstate -m
Status均为Passive,Data Status均为为Synchronized则正常,否则异常

✨ 3.5 负载查询

使用vmstat命令可以监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息
常使用方法为:vmstat [刷新延时 刷新次数]

vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息

[root@segment1 ~]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2810936   2108 909084    0    0    17    26   25   39  0  0 99  0  0
 0  0      0 2810936   2108 909084    0    0     0     0   87  112  0  0 100  0  0
 0  0      0 2810820   2108 909084    0    0     0     0   80  101  0  0 100  0  0

✨ 3.6 磁盘空间查询

postgres=# select * from gp_toolkit.gp_disk_free;
dfsegment | dfhostname | dfdevice | dfspace
-----------±-----------±--------------------------------±---------
1 | segment2 | /dev/mapper/centos_jeames-root | 40727268
0 | segment1 | /dev/mapper/centos_jeames-root | 40694128

select dfsegment,dfhostname,dfdevice,round(dfspace/1024,2) as free_disk_MB
from gp_toolkit.gp_disk_free
ORDER BY free_disk_MB DESC ;

注:dfspace 实例所在的文件系统的空闲磁盘空闲空间(千字节为单位)
系统命令行查看(在此例中“host_list”为所有服务器节点清单,
“data”为数据存放目录,根据实际目录文件名查询即可)
gpssh -f host_list -e “df -h |grep data”

在这里插入图片描述

✨ 3.7 数据库、表占用空间

select pg_size_pretty(pg_relation_size('schema.tablename'));

select pg_size_pretty(pg_database_size('rptdb'));

1.查看所有库大小
select sodddatname,sodddatsize/1024/1024 as db_size_MB from gp_toolkit.gp_size_of_database;

2.查看库下面的所有schema占用的磁盘空间
select sosdnsp,round(sosdschematablesize/1024/1024,2) schema_tb_size_MB,round(sosdschemaidxsize /1024/1024,2) as schema_idx_size_MB from gp_toolkit.gp_size_of_schema_disk;

3.查看schema下所有表和索引 占用的磁盘空间
SELECT soatioid,soatischemaname,soatitablename,round(soatisize/1024/1024,2) as INDEX_SIZE_MB FROM gp_toolkit.gp_size_of_all_table_indexes 
order by INDEX_SIZE_MB desc,soatischemaname,soatitablename ;

4.查看表占用空间
select sotuoid, sotuschemaname,sotutablename,round(cast(sotusize as integer )/1024/1024,2) as table_SIZE_MB   from gp_toolkit.gp_size_of_table_uncompressed order by sotuschemaname, table_SIZE_MB desc,sotutablename;

5.查看膨胀表
select * from gp_toolkit.gp_bloat_diag order by bdinspname,(bdirelpages-bdiexppages)desc,bdirelname;

没有统计信息且可能需要ANALYZE的表。
select * from gp_toolkit.gp_stats_missing order by smischema,smicols desc;


必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。
评:可以查看任何数据库对象的占用空间,pg_size_pretty可以显示如mb之类的易读数据,另外,可以与pg_tables,pg_indexes之类的系统表链接,统计出各类关于数据库对象的空间信息。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>