阿晨的运维笔记 | Postgres常用命令


我们做后端的小伙伴都知道,在小公司不仅要会代码开发,更需要有一定的运维能力,因为小公司往往都没有专门的运维人员,一切都需要自己动手。

下面我就将平时运维过程中学习总结的一些Postgres运维经验分享一下。

全量迁移

备份数据

$ pg_dump -h 172.19.235.145 -U <username> -d <database> > xxx_20180704.sql

正式迁移

首先要修改备份文件*.sqlowner,防止权限出现错误。

$ psql -h <ip> -U <username> -d <database> -f xxx_20180704.sql

该迁移操作会覆盖原来的数据库,所以最好创建一个新库来进行操作。

列出所有表名和数据库名

select tablename from pg_tables where schemaname ='public';

“ERROR: database “xxxxxx” is being accessed by other users DETAIL: xxx”

psql -h <ip> -U <username>
psql> SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='数据库名' AND pid<>pg_backend_pid();

然后就可以删除数据库了

修改表的序列为id最大值

SELECT setval('表名_id_seq', (SELECT MAX(id) FROM 表名));

查询表结构

SELECT 
	COLUMN_NAME AS 列名,
	DATA_TYPE AS 字段类型,
	CHARACTER_MAXIMUM_LENGTH AS 长度,
	IS_NULLABLE AS 是否为空,
	COLUMN_DEFAULT AS 默认值 
FROM
	INFORMATION_SCHEMA.COLUMNS 
WHERE
	table_schema = 'public' 
	AND TABLE_NAME = '表名';

Postgres数据库状态,启动,停止

$ pg_ctlcluster 9.5 main status
$ pg_ctlcluster 9.5 main start
$ pg_ctlcluster 9.5 main stop

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。
image-20210723185904932
我是阿晨,在技术的道路上我们一起砥砺前行!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿晨聊技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值