3.PG查看系统信息的常用命令
1.查看当前数据库实例的版本信息
postgres=# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 14.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit (1 row)
2.查看数据库的启动时间
postgres=# select pg_postmaster_start_time(); pg_postmaster_start_time ------------------------------- 2023-12-16 09:52:59.531553+08 (1 row)
3.查看最后load配置时间
postgres=# select pg_conf_load_time(); pg_conf_load_time ------------------------------- 2023-12-16 09:54:44.140466+08 (1 row)
4.查看当前数据库时区
postgres=# show timezone; TimeZone --------------- Asia/Shanghai (1 row)
5.查看当前时间
postgres=# select now(); now ----------------------------- 2023-12-18 21:55:17.3275+08 (
6.查看当前数据库服务器的ip地址和端口
postgres=# select inet_server_addr(),inet_server_port(); inet_server_addr | inet_server_port ------------------+------------------ | (1 row)
7.查询当前session的后台服务器进程的PID
postgres=# select pg_backend_pid(); pg_backend_pid ---------------- 3449 (1 row
8.查看当前参数配置情况
postgres=# show shared_buffers; shared_buffers ---------------- 128MB
9.修改当前session的参数配置
postgres=# set maintenance_work_mem to '128MB'; SET
11.查看数据库大小
postgres=# select pg_database_size('postgres'),pg_size_pretty(pg_database_size('postgres')); pg_database_size | pg_size_pretty ------------------+---------------- 8758051 | 8553 kB
12.pg中取消正在长时间执行的sql命令的方法有以下两种。
- pg_cancel_backend(pid):取消一个正在执行的sql命令
- pg_terminate_backend(pid):终止一个后台服务进程,同时释放此后台服务进程的资源。
这两个函数的区别是:pg_cancel_backend()函数实际上是给正在执行的sql任务置一个取消的标志,正在执行的任务在合适的时候检查到此标志后会主动退出;但如果该任务没有主动监测到此标志就无法正常退出,此时就需要使用pg_terminate_backend命令来终止SQL命令执行
通常先查询pg_stat_activity来找到长时间运行的sql命令。
select pid,usename,query_start,query from pg_stat_activity;