PG_SETTING :配置参数视图
Context类型:
- Internal:只读参数postgres写死或者初始化设置。
- Postmaster:需要重启postgres进程
- Sighup:修改postgresql.conf需要重新reload
- Backend:修改postgresql.conf需要重新reload,配置项只会在新链接生效
- Superuser:只能有超户set生效,同时只会影响自身session。
- User:普通用户set生效其余同superuser
查看数据库启动时间:
Select pg_postmaster_start_time(); |
查看最后load配置文件时间:
Select pg_conf_load_time(); |
查看当前连接用户:
Select current_user(); |
查看当前数据库:
Select current_database(); |
查看数据库当前参数:
如shared_buffers; Show shared_buffers; |
修改当前session的参数配置:
Set maintenance_work_mem to ‘128MB’; |
查看数据库对象大小:
查看表数据大小: select pg_size_pretty(pg_table_size('bdmap.cfz18')); select pg_table_size('bdmap.cfz18');--单位B 查看表中所有索引大小: select pg_size_pretty(pg_indexes_size('bdmap.cfz18')) /1024/1024 MB; SELECT pg_indexes_size('bdmap.cfz18') /1024/1024 MB; 查看表单个索引大小: select pg_size_pretty(pg_relation_size('bdmap.index_cfz18')) ; select pg_relation_size('bdmap.index_cfz18') /1024/1024 MB; 查看表总大小: select pg_size_pretty(pg_total_relation_size('bdmap.cfz18')) /1024/1024 MB; SELECT pg_total_relation_size('bdmap.cfz18')/1024/1024 MB; 查看schema下各表数据量: select relname,pg_size_pretty(pg_total_relation_size(relid)) from pg_stat_user_tables where schemaname ='public' order by pg_total_relation_size(relid) desc; |
查看表数据量:
select reltuples::bigint from pg_catalog.pg_class where relname ='nb_tab_http_102199'; |
查看数据库启动时间
select * from pg_postmaster_start_time(); |
查看数据库最近配置装载时间:
select * from pg_conf_load_time(); |
查看当前session-PID
select pg_backend_pid(); |
获取正在写的wal日志:
Select pg_walfile_name(pg_current_wal_lsn()); |
获取wal的buffer中还有多少字节没写入到磁盘:
select pg_wal_lsn_diff(pg_current_wal_insert_lsn(),pg_current_wal_lsn()); |
查看PG是否在在基础备份,以及开始时间:
select pg_is_in_backup(),pg_backup_start_time(); |
查看当前数据库实例是hot standby还是正常数据库状态:
select pg_is_in_recovery(); |
查看表对应的数据文件:
select pg_relation_filepath('all_result'); |
切换服务器的日志文件
Select pg_rotate_logfile(); |
切换WAL日志:
select pg_switch_wal(); |
手动checkpoint
Checkpoint; |
取消一个长时间执行的SQL:
pg_cancel_backend(pid int);##取消正在执行的sql pg_terminate_backend(pid int); ##终止一个后台服务进程,同时释放后台服务进程资源 区别:前者是给正在执行的SQL配置一个取消标志,正在执行的任务在合适的时候检查到就主动退出,如果没有检测到该任务无法正常退出,这时需要用后者来执行。 |