查看postgresql系统信息的常用命令操作

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

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

(0)

相关推荐

  • postgresql 启动与停止操作

    启动和停止数据库服务器 service 方式 service postgresql-10 start service postgresql-10 stop service postgresql-10 status pg_ctl 方式 pg_ctl start -D [ data 所在路径 ] pg_ctl stop -D [ data 所在路径 ] 三种形式:-m 指定模式 smart 模式:会等待活动的事务提交结束,并等待客户端主动断开连接之后关闭数据库服务 fast 模式:会回滚所有的活动的

  • 浅谈PostgreSQL消耗的内存计算方法

    wal_buffers默认值为-1,此时wal_buffers使用的是shared_buffers,wal_buffers大小为shared_buffers的1/32 autovacuum_work_mem默认值为-1,此时使用maintenance_work_mem的值 1 不使用wal_buffers.autovacuum_work_mem 计算公式为: max_connections*work_mem + max_connections*temp_buffers +shared_buffe

  • 查询PostgreSQL占多大内存的操作

    我就废话不多说了,大家还是直接看代码吧~ select pg_size_pretty(pg_relation_size('cuiyonghua.top_iqiyi_info')); select pg_size_pretty(pg_relation_size('cuiyonghua.top_mgtv_info')); select pg_size_pretty(pg_relation_size('cuiyonghua.top_tencent_info')); select pg_size_pre

  • Postgresql的pl/pgql使用操作--将多条执行语句作为一个事务

    Postgresql的pl/pgql用法--将多条执行语句作为一个事务 DO $$ DECLARE v_id bigint; begin --1. INSERT INTO r_test_a (name, value, unit, mode, uid, create_ts) SELECT 't_t','','',2,0, extract(epoch from now())::bigint WHERE NOT EXISTS (SELECT id FROM r_test_a WHERE name =

  • PostgreSQL查看版本信息的操作

    1.查看客户端版本 psql --version 2.查看服务器端版本 2.1 查看详细信息 select version(); 2.2 查看版本信息 show server_version; 2.2 查看数字版本信息包括小版号 SHOW server_version_num; 或 SELECT current_setting('server_version_num'); 3.注意事项 SELECT current_setting('server_version_num');返回类型为text,

  • Postgresql psql文件执行与批处理多个sql文件操作

    新建一个批处理文件batch.sql \encoding UTF8; \cd C:/Gmind/ddl \set ON_ERROR_STOP 1 \set ECHO all \timing on \i s_product.sql; \i s_branch.sql; \i s_comment.sql; \i s_class.sql; \i s_drawing.sql; \i s_dmemo.sql; \i s_form.sql; \encoding 设置客户端字符集编码(可选) \cd 切换目录.

  • 本地计算机上的 postgresql 服务启动后停止的问题解决

    在启动 postgresql 服务是遇到这种情况: 解决方法: 打开计算机管理====>查看应用程序日志信息,可以看出,由于日志配置错误的问题. 找到 postgresql.conf 文件,做如图修改,解决问题: postgresql 日志配置参考下面的补充部分: 总结: 遇到类似的问题可以采用同样的方式,多注意查看windows日志,找到错误源. 补充:EDB日志配置-慢sql记录分析 1.打开:/postgresql的安装目录/data/postgresql.conf 2.找到并更改以下属性

  • 快速解决PostgreSQL中的Permission denied问题

    想开始学习SQL和Excel那本书,觉得自己亲手去输入才是正道.发现程序后续会用到窗口函数,可是我的mysql没有窗口函数,这本书所提供的数据脚本分别是MS SQL Sever和PostreSQL. 上午我先安装的sql sever,可是由于比较大且在安装时出现了一些小的问题(安装缓慢,服务启动不了).无奈选择了PostreSQL,体积小,安装顺利. 导入数据比较特别,先建一个表,然后把同名txt导入进去.一定要用unix方式的路径. copy这个语句先前在mysql上没有遇到过.学习下....

  • 查看postgresql系统信息的常用命令操作

    1.查看当前数据库实例版本. postgres=# select version(); version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.3.0 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Ha

  • Linux 常用命令操作大全(推荐收藏)

    1.系统信息 命令 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/memin

  • Linux文件处理常用命令操作技巧

    我是Linux初学者,做个笔记,以下是Linux几个常用文件处理命令: 命令提示符 [root@localhost~]# 其中: root                          表示当前登录用户 localhost 表示主机名 ~ 表示当前所在目录(家目录) # 表示超级用户名的提示符 普通用户的提示符是$ 查询目中内容:ls ls [选项] [文件或目录] 选项有: -a 显示所有文件,包括隐藏文件 -l   显示详细信息 -d 查看目录属性 -h 人性化显示文件大小 -i 显示i

  • Docker在线、离线安装及其常用命令操作

    一.测试环境 名称 版本 centos 7.6 docker 18.09.06 二.在线安装 这里采用yum源命令安装前期准备的依赖包,包括yum-utils.device-mapper-persistent-data.lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 因为官方镜像仓库网速较慢,在此设置阿里云镜像代理,以便快速下载.上传镜像. sudo yum-config-manager --add-re

  • rman配置及rman常用命令操作

    一.rman相关配置 1.进入rman:CMD下rman target/2.查看是否处于归档模式:SQL>archive log list;(rman需运行在归档模式下)3.开启归档模式: 复制代码 代码如下: SQL>shutdown immediate;SQL>startup mount;SQL>alter database archivelog;(关闭归档模式:alter database noarchivelog;)SQL>alter database open;SQ

  • PostgreSQL 修改表字段常用命令操作

    --数据库.模式.表名 "identities"."Test"."tab_test" --修改字段名 ALTER TABLE "identities"."Test"."tab_test" RENAME "u_name" to realname ; --添加字段 ALTER TABLE "identities"."Test".&q

  • Docker 常用命令整理并介绍

    什么是Docker? Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal.OpenStack 集群和其他的基础应用平台. Docker通常用于如下场景: web应用的自动化打包和发布: 自动化测试和持续集成.发布: 在服务型环境中部署和调整数据库或其他的后台应用: 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的P

  • Redis安装配置与常用命令

    Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.  它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型.  内置复制.Lua脚本.LRU收回.事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区.    简言之,Redis是一种面向"键/值"对数据类型的内存数据库,可以满足我们对海量数据的快速读写需求.    Red

  • MySQL操作数据库和表的常用命令新手教程

    我是新手 学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手拈来的命令. 处理数据库 1.查看数据库 获取服务器上的数据库列表通常很有用.执行show databases;命令就可以搞定. 复制代码 代码如下: mysql> show databases; 2.创建数据库 复制代码 代码如下: mysql> create database db_test; Query OK, 1 ro

  • sqlserver常用命令行操作(启动、停止、暂停)

    启动sql server Net Start MSSqlServer 暂停sql server Net Pause MSSqlServer 重新启动暂停的sql server Net Continue MSSqlServer 停止sql server Net stop MSSqlServer 命令行方式修改sql server sa 的密码 一直都是使用企业管理器操作sql的,昨天帮一朋友部署网站,租的国外vps主机,登陆上去只看到sql的图标正常运行的,企业管理器和查询分析器的影都没看到,汗一

随机推荐