文章目录
我们做后端的小伙伴都知道,在小公司不仅要会代码开发,更需要有一定的运维能力,因为小公司往往都没有专门的运维人员,一切都需要自己动手。
下面我就将平时运维过程中学习总结的一些Postgres
运维经验分享一下。
全量迁移
备份数据
$ pg_dump -h 172.19.235.145 -U <username> -d <database> > xxx_20180704.sql
正式迁移
首先要修改备份文件*.sql
的owner
,防止权限出现错误。
$ 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
如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。
我是阿晨,在技术的道路上我们一起砥砺前行!