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
-
导出数据库,以及表数据
导出表
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
努力生活,融于自然