常用命令
查看当前数据库实例的版本信息
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;