progresql - 常用的管理命令
1、查看当前数据库实例的版本
Select version();
2、查看数据库的启动时间
Select pg_postmaster_start_time();
3、查看最后load配置文件的时间
select pg_conf_load_time();
4、显示当前数据库的时区
Show timezone;
5、查看当前用户名
select user;
6、查看Session 用户
select session_user;
注:通常情况下,Session_user和user是相同的,但当命令set role改变用户角色时,两者就不同了。
7、查询当前数据库名称
select current_catalog,current_database();
8、查询当前Session所在客户端的IP地址及端口
select inet_client_addr(),inet_client_port();
9、查询当前数据库服务器的IP地址及端口
select inet_server_addr(),inet_server_port();
10、查询当前Session的后台服务进程的Pid
select pg_backend_pid();
11、查看当前的一些参数配置情况
show shared_buffers;
12、修改当前Session的参数配置
set maintenance_work_mem to '128MB';
13、查看当前正在写的WAL文件
select pg_xlogfile_name(pg_current_xlog_location());
14、查看当前WAL的buffer中还有多少字节的数据没有写到磁盘中
select pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location());
15、查看数据库实例是否正在做基础备份
select pg_is_in_backup(),pg_backup_start_time();
16、查看当前数据库实例是Hot Standby状态还是正常数据库状态
select pg_is_in_recovery();
17、查看数据库的大小
select pg_database_size('osdba'),pg_size_pretty(pg_database_size('osdba'));
18、查看数据表的大小
select pg_size_pretty(pg_relation_size('tablename'));//字节展示
select pg_size_pretty(pg_total_relation_size('tablename'));//会转换成MB、GB展示,还包括索引的大小
19、查看表上全部索引的大小
select pg_size_pretty(pg_indexes_size('tablename'));
20、查看表空间的大小
select pg_size_pretty(pg_tablespace_size('pg_global'));
select pg_size_pretty(pg_tablespace_size('pg_default'));//默认
21、修改配置文件postgresql.conf后,让修改生效的方法有两种
方法一:在操作系统下使用如下命令
pg_ctl reload
方法二:在psql中使用如下命令
select pg_reload_conf();
注:以上两个方法只针对不需要重启数据库服务的配置项
22、切换日志文件
select pg_rotate_logfile();
select pg_switch_xlog();
23、手工产生一次checkpoint
checkpoint;
24、取消一个正在长时间执行的SQL方法
pg_cancel_backend(pid):取消一个正在执行的SQL,此命令会配置取消标志,正在执行的任务在合适的时候检测到此标志后会主动退出,但如果没有检测到,则任务无法正常退出。
select pg_cancel_backend(pid);
pg_teminate_backend(pid):终止一个后台服务进程,同时释放此后台服务进程的资源。此命令为强制执行
select pg_teminate_backend(pid);
pg_stat_activity 查询出运行最长的sql
select pid,usename,query_stat,query from pg_stat_activity;