• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    查看postgresql系统信息的常用命令操作
    POST TIME:2021-10-18 23:03

    1、查看当前数据库实例版本。

    postgres=# select version();
         version     
    -----------------------------------------------------------------------------------------------------------
     PostgreSQL 9.3.0 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23), 64-bit
    (1 row)
     

    2、查看数据库启动时间。

    postgres=# select pg_postmaster_start_time();
     pg_postmaster_start_time  
    -------------------------------
     2019-08-26 10:53:47.328699+08
    (1 row)

    3、查看最后load配置文件的时间,可以使用pg_ctl reload改变配置的装载时间。

    postgres=# select pg_conf_load_time();
      pg_conf_load_time  
    ------------------------------
     2019-08-26 10:53:46.57045+08
    (1 row)

    4、显示当前数据库时区。

    postgres=# show timezone;
     TimeZone 
    ----------
     PRC
    (1 row)

    5、显示数据库的时间,有时数据库的时区不是当前操作系统的时区,这时在数据库中看到的时间就与操作系统中看到的时间不一样。

    postgres=# select now();
        now    
    -------------------------------
     2019-08-26 10:58:36.508472+08
    (1 row)

    6、查看当前用户名,current_user与user是完全相同的。

    postgres=# select user;
     current_user 
    --------------
     postgres
    (1 row)
     
    postgres=# select current_user;
     current_user 
    --------------
     postgres
    (1 row)

    7、查看session用户,通常情况下,session_user与user是相同的。但使用set role改变用户角色时,session_user始终是那个原始用户,而user是当前的角色用户。

    postgres=# select session_user;
     session_user 
    --------------
     postgres
    (1 row)
     
    postgres=# set role=aaa;
    SET
     
    postgres=> select session_user;
     session_user 
    --------------
     postgres
    (1 row)
     
    postgres=> select user;
     current_user 
    --------------
     aaa
    (1 row)

    8、查询当前连接的数据库名称,使用current_catalog和current_database()都显示当前连接的数据库名称,这两者功能完全相同,只不过catalog是SQL标准中的用语。

    postgres=# select current_catalog,current_database();
     current_database | current_database 
    ------------------+------------------
     postgres   | postgres
    (1 row)

    9、查看当前session所在客户端的IP地址及端口(仅限TCP-IP连接,如果是UDP连接的话,查询结果IP与port都显示空)。

    postgres=# select inet_client_addr(),inet_client_port();
     inet_client_addr | inet_client_port 
    ------------------+------------------
         |     
    (1 row)

    10、查询当前数据库服务器的IP地址及端口(仅限TCP-IP连接,如果是UDP连接的话,查询结果IP与port都显示空)。

    postgres=# select inet_server_addr(),inet_server_port();
     inet_server_addr | inet_server_port 
    ------------------+------------------
     192.168.91.5  | 5866  
    (1 row) 
    

    11、查询当前session的后台服务进程的PID。

    postgres=# select pg_backend_pid();
     pg_backend_pid 
    ----------------
       3958
    (1 row)

    12、查看当前共享内存的大小。

    postgres=# show shared_buffers;
     shared_buffers 
    ----------------
     128MB
    (1 row)

    13、修改当前session参数配置。

    postgres=# set maintenance_work_mem to '128MB';
    SET
     
    postgres=# select set_config('maintenance_work_mem','128MB',false);
     set_config 
    ------------
     128MB
    (1 row)

    14、查看当前正在写的WAL文件。

    postgres=# select pg_xlogfile_name(pg_current_xlog_location());
      pg_xlogfile_name  
    --------------------------
     00000001000000000000004B
    (1 row)

    15、查看当前WAL的buffer中还有多少字节的数据没有写到磁盘中。

    postgres=# select pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location());
     pg_xlog_location_diff 
    -----------------------
          0
    (1 row)

    16、查看数据库实例是否正在做基础备份。

    postgres=# select pg_is_in_backup(),pg_backup_start_time(); pg_is_in_backup | pg_backup_start_time 
    -----------------+----------------------
     f    | 
    (1 row)

    17、查看当前数据库实例时HOT Standby状态还是正常数据库状态。

    postgres=# select pg_is_in_recovery();
     pg_is_in_recovery 
    -------------------
     f
    (1 row)

    18、查看数据库大小,如果数据库中有很多表,使用上述命令将比较慢,可能对当前系统产生不利影响,pg_size_pretty()函数会把数字以MB、GB等格式显示出来。

    postgres=# select pg_database_size('postgres'),pg_size_pretty(pg_database_size('postgres'));
     pg_database_size | pg_size_pretty 
    ------------------+----------------
       67922104 | 65 MB
    (1 row)

    19、查看表的大小,仅计算表的大小,不包括索引的大小。

    postgres=# select pg_size_pretty(pg_relation_size('test')); pg_size_pretty 
    ----------------
     0 bytes
    (1 row)

    20、查看表的大小,pg_total_relation_size()把表上索引的大小也计算入内。

    postgres=# select pg_size_pretty(pg_total_relation_size('test'));
     pg_size_pretty 
    ----------------
     0 bytes
    (1 row)

    21、查看表上所有索引的大小,pg_indexes_size()函数的参数名是一个表对应的oid(输入表名会自动转换成表的oid),而不是索引的名称。

    postgres=# select pg_size_pretty(pg_indexes_size('test'));
     pg_size_pretty 
    ----------------
     0 bytes
    (1 row)

    22、查看表空间大小。

    postgres=# select pg_size_pretty(pg_tablespace_size('pg_global'));
     pg_size_pretty 
    ----------------
     477 kB
    (1 row)

    23、查看表对应的数据文件。

    postgres=# select pg_relation_filepath('test');
     pg_relation_filepath 
    ----------------------
     base/12902/24952
    (1 row)

    补充:PostgreSQL命令行常用命令psql

    PostgreSQL命令行常用命令(psql)

    一般我们使用 psql来和数据库交互,方括号中为可选项参数,不带任何参数表示连接本机

    psql [option…] [dbname [username]]

    登录数据库

    psql -h 127.0.0.1 -p 5432 -d database -U postgres

    -h 数据库ip

    -p 端口号

    -d 数据库名

    -U 登录用户名

    导入SQL脚本

    示例:

    psql -U postgres -d database -f sqlScript.sql

    将sqlScript.sql导入到名为database的数据库中

    常用命令

    展示数据库

    \l 或者 \list

    支持正则匹配,例如展示包含post字符的数据库

    \l '*post*'

    切换数据库(创建新的数据库连接)

    \c 可选参数 dbname [ username ] [ host ] [ port ]

    eg:

    \c postgres
    或者
    \c postgres username localhost 5432

    展示当前数据库下所有关系(table、view、sequence等)

    \d 展示当前所有表

    \d “Account” 展示Account表字段信息

    展示当前数据库下所有schema信息

    \dn

    显示当前使用的schema

    SHOW search_path;

    当前schema为public

     search_path  
    ----------------
     "$user",public

    切换当前schema

    SET search_path TO myschema;
    # set search_path to auth;
    # SHOW search_path;
     search_path 
    -------------
     auth
    

    断开数据库连接

    \q

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • 在postgreSQL中运行sql脚本和pg_restore命令方式
    • 在postgresql中通过命令行执行sql文件
    • postgresql 导出建表语句的命令操作
    • PostgreSQL 修改表字段常用命令操作
    • postgreSQL数据库默认用户postgres常用命令分享
    上一篇:PostgreSQL查看版本信息的操作
    下一篇:postgresql 启动与停止操作
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信