热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

查看postgresql系统信息的常用命令操作是千自学中一篇关于PostgreSQL的文章简介:1、查看当前数据库实例版本。postgres#selectversion();version-------------------------------

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

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



推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
author-avatar
等待的承诺灬_231
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有