美文网首页
greenplum日常维护

greenplum日常维护

作者: eqieyiran | 来源:发表于2021-10-29 16:13 被阅读0次

    2021-10-30

    一 查询连接进程

    select * from pg_stat_activity where current_query <> '\<IDLE\>';
    

    二 磁盘空间不足

    1.vacuum
    -- 生成 vacuum ANALYZE命令(或者使用 VACUUM FULL)
    select 'VACUUM FULL' || ' gpmg.' || relname || ';' as vacuum_sql from pg_class a,pg_namespace b where a.relnamespace=b.oid and b.nspname= 'gpmg' and a.relkind='r';
    
    -- 脚本执行命令
    -- VCOMMAND="VACUUM 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
    
     2. 清理日志
    -- pg_log目录下并使用约定命名方式:gpdb-YYYY-MM-DD.log
    

    三 查看库 表 索引等空间信息

     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;
    

    四 查询倾斜率表

    五 查看空闲磁盘空间

    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 实例所在的文件系统的空闲磁盘空闲空间(千字节为单位)
    

    六 锁

            --正被锁定的关系
    select 
    lorlocktype 被锁的关系的类型,
    lordatabase 对象标识符_共享对象为0,
    lorrelname 关系的名字,
    lorrelation 关系的对象标识符,
    lortransaction 锁影响到的事务标识符,
    lorpid 获取或等待锁的服务器进程号_准备型0,
    lormode 锁模式,
    lorgranted 锁是T否F,
    lorcurrentquery 会话当前的查询
     from gp_toolkit.gp_locks_on_relation;
    
    select 
    lorusename 当前会话用户,
    lorrsqname 资源队列,
    lorlocktype 锁对象类型,
    lorobjid 锁定的事务对象标识符,
    lortransaction 锁影响到的事务标识符,
    lorpid 锁影响到的事务的服务器进程号,
    lormode 锁模式的名字,
    lorgranted 锁是True否alse,
    lorwaiting 会话是否正在等待
     from gp_toolkit.gp_locks_on_resqueue;
    

    七 将查询结果导出到文件

    nohup psql -c "show all;" >./test.log &
    -- ps -fe | grep test.log
    

    八 kill进程 用函数杀sql

    -- 对于查询SQL
    select pg_cancel_backend(procpid);
    -- 其他SQL
    select pg_terminate_backend(procpid);
    

    相关文章

      网友评论

          本文标题:greenplum日常维护

          本文链接:https://www.haomeiwen.com/subject/wjigaltx.html