• 售前

  • 售后

热门帖子
入门百科

查看postgresql体系信息的常用下令操纵

[复制链接]
123457682 显示全部楼层 发表于 2021-10-26 13:39:36 |阅读模式 打印 上一主题 下一主题
1、检察当前数据库实例版本。
  1. postgres=# select version();
  2.      version     
  3. -----------------------------------------------------------------------------------------------------------
  4. 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
  5. (1 row)
复制代码
2、检察数据库启动时间。
  1. postgres=# select pg_postmaster_start_time();
  2. pg_postmaster_start_time  
  3. -------------------------------
  4. 2019-08-26 10:53:47.328699+08
  5. (1 row)
复制代码
3、检察末了load设置文件的时间,可以利用pg_ctl reload改变设置的装载时间。
  1. postgres=# select pg_conf_load_time();
  2.   pg_conf_load_time  
  3. ------------------------------
  4. 2019-08-26 10:53:46.57045+08
  5. (1 row)
复制代码
4、显示当前数据库时区。
  1. postgres=# show timezone;
  2. TimeZone
  3. ----------
  4. PRC
  5. (1 row)
复制代码
5、显示数据库的时间,偶尔数据库的时区不是当前操作系统的时区,这时在数据库中看到的时间就与操作系统中看到的时间不一样。
  1. postgres=# select now();
  2.     now   
  3. -------------------------------
  4. 2019-08-26 10:58:36.508472+08
  5. (1 row)
复制代码
6、检察当前用户名,current_user与user是完全相同的。
  1. postgres=# select user;
  2. current_user
  3. --------------
  4. postgres
  5. (1 row)
  6. postgres=# select current_user;
  7. current_user
  8. --------------
  9. postgres
  10. (1 row)
复制代码
7、检察session用户,通常情况下,session_user与user是相同的。但利用set role改变用户角色时,session_user始终是谁人原始用户,而user是当前的角色用户。
  1. postgres=# select session_user;
  2. session_user
  3. --------------
  4. postgres
  5. (1 row)
  6. postgres=# set role=aaa;
  7. SET
  8. postgres=> select session_user;
  9. session_user
  10. --------------
  11. postgres
  12. (1 row)
  13. postgres=> select user;
  14. current_user
  15. --------------
  16. aaa
  17. (1 row)
复制代码
8、查询当前连接的数据库名称,利用current_catalog和current_database()都显示当前连接的数据库名称,这两者功能完全相同,只不外catalog是SQL标准中的用语。
  1. postgres=# select current_catalog,current_database();
  2. current_database | current_database
  3. ------------------+------------------
  4. postgres   | postgres
  5. (1 row)
复制代码
9、检察当前session地点客户端的IP地址及端口(仅限TCP-IP连接,如果是UDP连接的话,查询效果IP与port都显示空)。
  1. postgres=# select inet_client_addr(),inet_client_port();
  2. inet_client_addr | inet_client_port
  3. ------------------+------------------
  4.      |     
  5. (1 row)
复制代码
10、查询当前数据库服务器的IP地址及端口(仅限TCP-IP连接,如果是UDP连接的话,查询效果IP与port都显示空)。
  1. postgres=# select inet_server_addr(),inet_server_port();
  2. inet_server_addr | inet_server_port
  3. ------------------+------------------
  4. 192.168.91.5  | 5866  
  5. (1 row)
复制代码
11、查询当前session的配景服务进程的PID。
  1. postgres=# select pg_backend_pid();
  2. pg_backend_pid
  3. ----------------
  4.    3958
  5. (1 row)
复制代码
12、检察当前共享内存的巨细。
  1. postgres=# show shared_buffers;
  2. shared_buffers
  3. ----------------
  4. 128MB
  5. (1 row)
复制代码
13、修改当前session参数设置。
  1. postgres=# set maintenance_work_mem to '128MB';
  2. SET
  3. postgres=# select set_config('maintenance_work_mem','128MB',false);
  4. set_config
  5. ------------
  6. 128MB
  7. (1 row)
复制代码
14、检察当前正在写的WAL文件。
  1. postgres=# select pg_xlogfile_name(pg_current_xlog_location());
  2.   pg_xlogfile_name  
  3. --------------------------
  4. 00000001000000000000004B
  5. (1 row)
复制代码
15、检察当前WAL的buffer中还有多少字节的数据没有写到磁盘中。
  1. postgres=# select pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location());
  2. pg_xlog_location_diff
  3. -----------------------
  4.       0
  5. (1 row)
复制代码
16、检察数据库实例是否正在做底子备份。
  1. postgres=# select pg_is_in_backup(),pg_backup_start_time(); pg_is_in_backup | pg_backup_start_time
  2. -----------------+----------------------
  3. f    |
  4. (1 row)
复制代码
17、检察当前数据库实例时HOT Standby状态还是正常数据库状态。
  1. postgres=# select pg_is_in_recovery();
  2. pg_is_in_recovery
  3. -------------------
  4. f
  5. (1 row)
复制代码
18、检察数据库巨细,如果数据库中有许多表,利用上述下令将比较慢,大概对当前系统产生倒霉影响,pg_size_pretty()函数会把数字以MB、GB等格式显示出来。
  1. postgres=# select pg_database_size('postgres'),pg_size_pretty(pg_database_size('postgres'));
  2. pg_database_size | pg_size_pretty
  3. ------------------+----------------
  4.    67922104 | 65 MB
  5. (1 row)
复制代码
19、检察表的巨细,仅盘算表的巨细,不包罗索引的巨细。
  1. postgres=# select pg_size_pretty(pg_relation_size('test')); pg_size_pretty
  2. ----------------
  3. 0 bytes
  4. (1 row)
复制代码
20、检察表的巨细,pg_total_relation_size()把表上索引的巨细也盘算入内。
  1. postgres=# select pg_size_pretty(pg_total_relation_size('test'));
  2. pg_size_pretty
  3. ----------------
  4. 0 bytes
  5. (1 row)
复制代码
21、检察表上所有索引的巨细,pg_indexes_size()函数的参数名是一个表对应的oid(输入表名会主动转换成表的oid),而不是索引的名称。
  1. postgres=# select pg_size_pretty(pg_indexes_size('test'));
  2. pg_size_pretty
  3. ----------------
  4. 0 bytes
  5. (1 row)
复制代码
22、检察表空间巨细。
  1. postgres=# select pg_size_pretty(pg_tablespace_size('pg_global'));
  2. pg_size_pretty
  3. ----------------
  4. 477 kB
  5. (1 row)
复制代码
23、检察表对应的数据文件。
  1. postgres=# select pg_relation_filepath('test');
  2. pg_relation_filepath
  3. ----------------------
  4. base/12902/24952
  5. (1 row)
复制代码
增补:PostgreSQL下令行常用下令psql
PostgreSQL下令行常用下令(psql)
一样寻常我们利用 psql来和数据库交互,方括号中为可选项参数,不带任何参数体现连接本机
  1. psql [option…] [dbname [username]]
复制代码
登录数据库
  1. psql -h 127.0.0.1 -p 5432 -d database -U postgres
复制代码
-h 数据库ip
-p 端标语
-d 数据库名
-U 登任命户名
导入SQL脚本
示例:
  1. psql -U postgres -d database -f sqlScript.sql
复制代码
将sqlScript.sql导入到名为database的数据库中
常用下令
展示数据库
\l 大概 \list
支持正则匹配,例如展示包罗post字符的数据库
  1. \l '*post*'
复制代码
切换数据库(创建新的数据库连接)
  1. \c 可选参数 dbname [ username ] [ host ] [ port ]
复制代码
eg:
  1. \c postgres
  2. 或者
  3. \c postgres username localhost 5432
复制代码
展示当前数据库下所有关系(table、view、sequence等)
\d 展示当前所有表

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

展示当前数据库下所有schema信息
  1. \dn
复制代码

显示当前利用的schema
  1. SHOW search_path;
复制代码
当前schema为public
  1. search_path  
  2. ----------------
  3. "$user",public
复制代码
切换当前schema
  1. SET search_path TO myschema;
  2. # set search_path to auth;
  3. # SHOW search_path;
  4. search_path
  5. -------------
  6. auth
复制代码
断开数据库连接
  1. \q
复制代码
以上为个人经验,希望能给各人一个参考,也希望各人多多支持草根技术分享。如有错误或未考虑完全的地方,望不吝见教。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作