首页 > 其他分享 >【PG】查看PG对象大小增长情况

【PG】查看PG对象大小增长情况

时间:2024-03-14 21:22:43浏览次数:29  
标签:trim run name 查看 对象 x27% PG file x27


#!/bin/bash

##################################################
#
# check_postgresql_db_table_rowsnum_and_sizing.sh
#
# This scripts iterates arti databases and 
# populates some target db table with
# info about tables rownum and sizing
#
# Date: 10-Aug-2022
#
# Author: Dmitry
#
##################################################

trim() {
    local var="$*"
    # remove leading whitespace characters
    var="${var#"${var%%[![:space:]]*}"}"
    # remove trailing whitespace characters
    var="${var%"${var##*[![:space:]]}"}"
    printf '%s' "$var"
}

output_name="/tmp/temp_check_tables_rowsnum_and_sizing.lst"

run_id=1

export PGCONNECT_TIMEOUT=15

export the_yyyymmdd=$(date '+%Y%m%d')
export hh24miss=$(date '+%H%M%S')

export PGPASSWORD='password1'
psql -h <db_host> -p <db_port> -U <db_user> -d <db_name> -qtX << EOF > ${output_name}
SELECT '$the_yyyymmdd', '$hh24miss', '<my_db_instance>', '<db_port>', '<db_name>', pgClass.relname, to_char(pgClass.reltuples, '999999999999999999') row_nums, to_char(pg_relation_size(pgClass.oid)/1024/1024, '999999999999999999') AS tablesize_mega_bytes, $run_id
FROM pg_class pgClass
INNER JOIN pg_namespace pgNamespace ON (pgNamespace.oid = pgClass.relnamespace)
WHERE pgNamespace.nspname NOT IN ('pg_catalog', 'information_schema') AND pgClass.relkind='r'
EOF

run_file_name="/tmp/runme_temp_check_tables_rowsnum_and_sizing.tmp.sql"

echo "insert into my_stats_db_tables_and_their_rownums_n_size values " > ${run_file_name}
cat ${output_name} | awk -F "|" ' { if (length($1)>0) printf("(trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), %s, %s, %s),\n", $1, $2, $3, $4, $5, $6, $7, $8, $9); } ' >> ${run_file_name}
cat ${output_name} | awk -F "|" ' NR==1 { if (length($1)>0) printf("(trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), trim(\x27%s\x27), %s, %s, %s)\n", $1, $2, $3, $4, $5, $6, $7, $8, $9); } ' >> ${run_file_name}
echo " on conflict do nothing;" >> ${run_file_name}

n_of_recs_in_the_sql_file=`cat ${run_file_name} | wc -l`

if [ "$n_of_recs_in_the_sql_file" -gt "2" ]; then
export PGPASSWORD='password2'
psql -U <report_db_user> -h <report_db_host> -p <report_db_port> -d <report_db_name> -f ${run_file_name}
fi

echo " "
echo "End"
echo " "

标签:trim,run,name,查看,对象,x27%,PG,file,x27
From: https://www.cnblogs.com/Jeona/p/18074012

相关文章

  • Go语言中的面向对象编程(OOP)
    在Go语言中,虽然没有像面向对象语言那样的类,但通过结构体类型和方法,仍然支持部分面向对象编程(OOP)的概念。封装(Encapsulation)封装是一种将一个对象的实现细节隐藏起来,使其对其他对象不可见的做法,这样可以实现解耦。例如,考虑以下结构体:typeStudentstruct{namestring......
  • 面向对象设计的六大原则(SOLID原则)-——里氏替换原则
    里氏替换原则(LiskovSubstitutionPrinciple,LSP)是面向对象设计的基本原则之一,由BarbaraLiskov提出。它表明,如果程序中的对象使用的是基类型的话,那么无论它实际上使用的是哪一个子类的对象,程序的行为都不会发生改变。简单来说,子类型必须能够替换它们的基类型,而且替换后程序的行......
  • 在Linux中,如何查看系统当前运行的进程以及它们的状态?
    在Linux中查看当前系统运行的进程以及它们的状态,可以使用多种命令工具,以下是一些常用的方法:ps命令:最基础的查看进程信息方式是使用ps命令。简单查看当前终端下的进程,可以输入:ps若想查看所有进程,包括其他终端下的进程,可以加上-e参数:ps-e若要查看详细的进程信......
  • PG14:auth_delay 插件源码分析
    auth_delay让服务器在报告身份验证失败前短暂暂停,以增加对数据库密码进行暴力破解的难度。需要注意的是,这对阻止拒绝服务攻击毫无帮助,甚至可能加剧攻击,因为在报告身份验证失败前等待的进程仍会占用连接。要使用这个模块必须要在postgresql.conf中配置参数shared_preload_libr......
  • 【你也能从零基础学会网站开发】Web建站之javascript入门篇 History对象与Location对
    ......
  • JAVA学习日记五(面向对象-高级)
    1.关键字:static如果想让一个成员变量被类的所有实例所共享,就用static修饰即可,称为类变量(或类属性)!使用范围:在Java类中,可用static修饰属性、方法、代码块、内部类被修饰后的成员具备以下特点:随着类的加载而加载优先于对象存在修饰的成员,被所有对象所共享访问权限......
  • JAVA学习日记四(面向对象-基础)
    1.面向对象概述面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。我们千万不要把面向过程和面向对象对立起来。他们是相辅相成的。面向对象离不开面向过程!2.Java的基本元素:类和对象类:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。对象:实际存在的该类事......
  • 操作DOM对象
    创建一个标签,实现插入<script>varjs=document.getElementById('js');//已经存在的节点varlist=document.getElementById('list');//通过js创建一个节点varnewp=document.createElement('p')//创建一个p标签newp.id='newp'newp.inner......
  • sqlserver删除指定列失败,对象'DF__MailResour__star__7D5BD6B2' 依赖于 列'star'
    参考的原文链接:1、https://www.cnblogs.com/dengzt2011/archive/2012/12/09/2810063.html              altertabletable_namedropcolumn column_name sqlserver删除指定列失败时,报告消息如下:消息5074,级别16,状态1,第1行对象'DF__MailResou......
  • 论面向对象的建模及应用
        本文旨在探讨面向对象的建模在软件系统开发中的应用。首先,概述了作者参与的一个实际的软件系统开发项目,并详细描述了在该项目中担任的主要工作。接着,深入阐述了用例模型和分析模型的概念、作用以及在实际项目中的具体应用。最后,分析了在使用这两种模型过程中遇到的......