PostgreSQL常用管理命令

本文详细介绍了PostgreSQL数据库的管理和监控命令,包括查看版本、启动时间、配置加载时间、时区、数据库列表、用户信息、连接详情、参数配置、数据库和表的大小、索引大小、表空间大小、数据文件路径以及系统维护操作如重载配置、切换日志、手动checkpoint等。此外,还提供了取消和查询长时间运行SQL的方法。
摘要由CSDN通过智能技术生成

常用命令

查看当前数据库实例的版本信息

select version();

查看数据库的启动时间

select pg_postmaster_start_time();

查看最后load配置文件的时间

select pg_conf_load_time();

使用pg_ctl reload后会改变配置的装载时间

pg_ctl reload

select pg_conf_load_time();

显示当前数据库时区

 show timezone;

查看当前实例中有哪些数据库

 psql -l
 \l

查看当前用户名

select user;
select current_user;

查看session用户

select session_user;

查询当前连接的数据库名称

select current_catalog, current_database();

查询当前session所在客户端的IP地址及端口

select inet_client_addr(),inet_client_port();

查询当前数据库服务器的IP地址及端口

select inet_client_addr(),inet_client_port();

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

select pg_backend_pid();

查看当前参数配置情况

show shared_buffers;

修改当前session的参数配置

 set maintenance_work_mem to '128MB';
 SELECT set_config('maintenance_work_mem', '128MB', false);

查看当前正在写的WAL文件

select pg_xlogfile_name(pg_current_xlog_location());

查看当前WAL文件的buffer中还有多少字节的数据没有写入磁盘中

select pg_xlog_location_diff(pg_current_xlog_insert_location(), pg_current_xlog_location());

select pg_xlog_location_diff(pg_current_xlog_insert_location(), pg_current_xlog_location());

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

select pg_is_in_backup(), pg_backup_start_time() ;

查看当前数据库实例处于Hot Standby状态还是正常数据库状态

 select pg_is_in_recovery();

查看数据库的大小

select pg_database_size('osdba'), pg_size_pretty(pg_database_size('osdba'));

查看表的大小

# pg_relation_size()仅计算表的大小,不包括索引的大小,而pg_total_relation_size()则会把表上索引的大小也计算进来
select pg_size_pretty(pg_relation_size('ipdb2')) ;
select pg_size_pretty(pg_total_relation_size('ipdb2')) ;

查看表上所有索引的大小

select pg_size_pretty(pg_indexes_size('ipdb2'));

查看表空间的大小

select pg_size_pretty(pg_tablespace_size('pg_global'));

查看表对应的数据文件

select pg_relation_filepath('test01');

系统维护常用命令

修改配置文件“postgresql.conf”后,要想让修改生效,有以下两种方法。

pg_ctl reload
select pg_reload_conf();

切换log日志文件到下一个

select pg_rotate_logfile();

切换WAL日志文件

select pg_switch_xlog();

手动产生一次checkpoint

checkpoint;

取消正在长时间执行的SQL命令的方法有以下两种

pg_cancel_backend(pid):取消一个正在执行的SQL命令
pg_terminate_backend(pid):终止一个后台服务进程,同时释放此后台服务进程的资源

找出长时间运行的SQL

select pid,usename,query_start, query from pg_stat_activity;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值