• 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    ✨ 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ✨ 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之类的系统表链接,统计出各类关于数据库对象的空间信息。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    Redis 数据类型 list 以及使用场景
    【烂笔头】kotlin 和 Compose Compiler版本兼容性
    含文档+PPT+源码等]精品微信小程序springboot服装企业人事管理系统+后台管理系统[包运行成功]Java毕业设计SSM项目源码
    数据可视化复习 第二章
    程序员,阿里 P8java 大神讲的 Spring 大家族原理汇总,你确定不看?
    计算机毕业设计php基本微信小程序的贵小团校园社团小程序
    echart 两个柱状图并列,共用一个y轴的label
    excel表格损坏如何修复?
    Shiro反序列化漏洞利用详解(Shiro-550+Shiro-721)
    【剑指offer】---数组中的重复数字
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/131748106