pgsql基本命令

参考:
https://blog.csdn.net/adminwbbmm/article/details/126450388
https://blog.csdn.net/u012551524/article/details/127801844
https://www.runoob.com/postgresql/postgresql-drop-table.html
https://blog.csdn.net/m0_56981185/article/details/120304011

1.登录

psql -h 10.253.100.9 -p 5432 -U postgres -d postgres
密码:postgres
退出命令行:\quit

命令行中直接密码登录,同样适用于pg_dump
PGPASSWORD=postgres  psql -h 10.253.100.x  -U postgres -p 5432  -d postgres
https://blog.csdn.net/jycjyc/article/details/130366826

2.查询所有数据库

select datname from pg_database;
或者
\l

3.查询版本

psql --version  #客户端版本
或者
select version(); #服务端版本

4.切换数据库

\c test

5.查看当前库中的所有的表

\d
或者
select * from pg_tables;   其中pg_tables 表是 PostgreSQL 内置的一个表,它存储了数据库中的所有的表。

\c 库名: 切换数据库
查看当前库中有多少个表,
select count(*) from pg_tables;

统计表数量时时也可以排除某些表
SELECT count(tablename) FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%';

6.查看数据库大小

SELECT pg_size_pretty(pg_database_size('postgres'));

7.查看表大小

SELECT pg_size_pretty(pg_relation_size('table_test'));  

8.查看索引大小

SELECT pg_size_pretty(pg_relation_size('table_test_pkey'));

9.查看表空间大小

SELECT pg_size_pretty(pg_tablespace_size('pg_default')); 

10.查看表大小(包含索引)

 SELECT pg_size_pretty(pg_total_relation_size(cast('text_table' as text)));

11.查看表(包含索引)大小 Top 10

select 
tablename,
pg_size_pretty(size) 
from 
(select 
tablename,
pg_total_relation_size(cast(tablename as text)) as size 
from pg_tables 
where schemaname = 'public' 
) as tmp 
order by size desc limit 30;

输出

 odpathflowtable_hour_202012   | 66 GB
 odpathflowtable_hour_202011   | 41 GB
 odpathflowtable_hour_202010   | 39 GB
 odpathflowtable_hour_202005   | 30 GB
 odpathflowtable_hour_202007   | 30 GB
 odpathflowtable_hour_202008   | 30 GB
 odpathflowtable_hour_202009   | 29 GB
 odpathflowtable_hour_202001   | 28 GB
 odpathflowtable_hour_202004   | 28 GB
 odpathflowtable_hour_202006   | 27 GB
 odpathflowtable_hour_202002   | 27 GB
 odpathflowtable_hour_202003   | 26 GB
  1. 导出数据库,以及表数据

导出表
pg_dump -h 10.253.100.9 -p 5432 -U postgres -d postgres -t public.odpathflowtable_hour_202001 > odpathflowtable_hour_202001.dmp
或者
pg_dump -U postgres -d postgres -t customers -a -f customers.sql
其中,-t 参数指定要导出的表名,-a 参数指定只导出数据而不导出表结构,-f 参数指定导出数据的文件名。
-s  这个选项可以只导出表结构,而且不会导出表中数据;

导出库
pg_dump -h 192.168.100.23 -U postgres postgres > D:\postgres.bak
指令说明
pg_dump               是备份数据库指令;
10.194.227.231            是数据库的 ip 地址;
postgres              是数据库的用户名;
postgres                  是数据库名;
>                     意思是导出到指定目录;
https://zhuanlan.zhihu.com/p/596487792?utm_id=0
https://blog.csdn.net/hongjunaiyu/article/details/129039349


导入表
psql -U postgres -d postgres <c:\worldcity.sql

13.删除表

DROP TABLE public.odpathflowtable_hour_202001;

14.查看所有数据库大小

select pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size from pg_database;

15.备份

备份位置是	
10.253.100.30
/home/pg-2_backup

拷贝数据
scp odpathflowtable_hour_202001.dmp root@10.253.100.30:/home/pg-2_backup/

16. 查看锁表语句和pid

select pid, query from pg_stat_activity where datname='postgres' and wait_event_type = 'Lock';

17. 删除锁进程

https://blog.csdn.net/weixin_55282974/article/details/129365322
select pg_cancel_backend( ‘进程pid’);该语句可以把锁住的进程杀掉。

18. 查看表记录数

select count(*) from table1;
可用此命令分时间段查看,来预估数据写入速率

19. 清除pg_wal归档文件

查看检查点文件
pg_controldata /home/data   #/home/data为pgsql的数据目录
清理wal文件
pg_archivecleanup -d /home/data/pg_wal 00000001000000010000000E

posted @ 2023-06-25 10:30  坚强的小蚂蚁  阅读(300)  评论(0编辑  收藏  举报