暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL数据库维护相关命令

1693

查看数据库版本:

select version();

查看数据库启动时间:

select pg_postmaster_start_time();

查看最后加载配置文件的时间:

select pg_conf_load_time();

查看数据库时区:

select timezone;

查看数据库当前时间:

select now();

查看当前会话pid:

select pg_backend_pid();

查看当前数据库会话信息:

select pid,datname,usename,application_name,state,now()-query_start query_duration,query,wait_event_type,wait_event from pg_stat_activity;

取消正在执行的SQL命令:

select pg_cancle_backend(pid);

终止一个后台服务进程:

select pg_terminate_backend(pid);

查看当前的WAL日志相关信息:

PG10之前版本:

select pg_current_xlog_location(),pg_xlogfile_name(pg_current_xlog_location()),pg_xlogfile_name_offset(pg_current_xlog_location());
其中:
pg_current_xlog_location():获得当前wal日志写入位置。
pg_xlogfile_name():转换wal日志位置为文件名。
pg_xlogfile_name_offset():返回转换后的wal日志文件名和偏移量。

PG10及以后版本:

select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn()),pg_walfile_name_offset(pg_current_wal_lsn());

其中:
pg_current_wal_lsn():获得当前wal日志写入位置。
pg_walfile_name():转换wal日志位置为文件名。
pg_walfile_name_offset():返回转换后的wal日志文件名和偏移量。

说明
LSN:3FB/AE61A1A0
3FB:代表wal文件的第二部分
AE:代表wal文件的最后两位
61A1A0:代表偏移量

00000001000003FB000000AE
wal文件由24个字符,三部分组成,每部分由8个字符组成,代表含义如下
00000001:代表数据库运行的时间轴,如果恢复过数据库(主备切换)这个值会增大
000003FB:对LSN的第二部分对应
000000AE:代表walfile文件的最后两位

查看WAL日志缓存有多少字节未写入磁盘:

PG10之前版本:

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

其中:

pg_current_xlog_location():获得当前预写式日志写入位置
pg_current_xlog_insert_location():获得当前预写式日志插入位置
pg_xlog_location_diff(location pg_lsn, location pg_lsn)计算两个预写式日志位置间的差别

PG10及以后版本:

select pg_wal_lsn_diff(pg_current_wal_insert_lsn(),pg_current_wal_lsn());

其中:

pg_current_wal_lsn():获得当前预写式日志写入位置
pg_current_wal_insert_lsn():获得当前预写式日志插入位置
pg_wal_lsn_diff(lsn pg_lsn, lsn pg_lsn):计算两个预写式日志位置间的差别

切换WAL日志文件:

PG10之前版本:

select pg_switch_xlog();

PG10及以后版本:

select pg_switch_wal();

手动产生一次checkpoint:

checkpoint;

切换数据库日志文件:

select pg_rotate_logfile();

查看数据库中是否有正在进行的备份并查看备份开始时间:

select pg_is_in_backup(),pg_backup_start_time();

停止数据库备份:

select pg_stop_backup();

查看数据库是否为备库:

select pg_is_in_recovery();

查看数据库大小:

select pg_size_pretty(pg_database_size(‘database_name’));

其中:

pg_size_pretty()函数,可以根据情况将字节转换为KB、MB、GB 或者 TB。

查看表数据大小:

select pg_size_pretty(pg_relation_size(‘table_name’));

查看表数据和表上索引的总大小:

select pg_size_pretty(pg_total_relation_size(‘table_name’));

查看表上所有索引的大小:

select pg_size_pretty(pg_indexes_size(‘table_name’));

查看表空间大小:

select pg_size_pretty(pg_tablespace_size(‘tablespace_name’));

查看表所在数据文件:

select pg_relation_filepath(‘table_name’);

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论