赞
踩
登录
- --登录
- psql -h 主机 -p 端口 -U 用户 -d 数据库
授权
- grant select on my_schema.t to aa; -- my_schema.t .t 表名称
-
- grant all on clean_data to yy_odp;
-
- ALTER TABLE "public"."tyc_data_20211019_copy2"
- OWNER TO "yy_odp";
备份还原
- --还原
- pg_restore -h 决策易数据库地址 -p 5432 -U 数据库用户 -a -d 数据库 -t 表名称 备份文件路径
-
- pg_restore -h 192.168.6.214 -p 5432 -U postgres -a -d masterdata_clean
-
- --备份
- pg_dump -h 主机地址 -p 端口 -U 用户名 -d 数据库 -W -F c -b -v -t 表名称 -f e:\tt.dmp
导入导出
- --导出数据至csv
-
- \COPY (select roleprivileges.* from roleprivileges inner join TblUdtEntity on roleprivileges.entityid = TblUdtEntity.tbludtentityid where TblUdtEntity.entitytypecode in('dd_accountbase'))
- TO 'E:database\zz\data.csv' with csv;
- -- 替换 E:database\zz\data.csv 修改该路径
-
-
- --导入csv数据至数据库
- \COPY roleprivilegesbase FROM 'E:database\zz\data.csv' WITH csv;
数据库链接
-
- -- 查看数据库连接使用情况
- select * from pg_stat_activity
-
- -- 杀死进程 (强度从弱到轻)
- select pg_cancel_backend(pid) -- 后台发送sigint信号,关闭当前后台进程,用户只能关闭自己的后台进程,事务回滚。
-
- select pg_terminate_backend(pid) --推荐 强杀,向后台发送sigterm信号,关闭当前后台进程,需要有超级用户权限,超级用户可以关闭所有后台进程,事务回滚。
-
- select kill -9 (pid) --不推荐 操作系统层面,暴力杀死进程 如果是kill一个很大的update,需要很长的时间做回滚,回滚过程中数据库不可用。
-
- set statement_timeout to 30000; -- 30000 单位 毫秒 -- 超时设置
- select count(1) from pg_stat_activity; -- 当前总共正在使用的连接数
- show max_connections; --显示系统允许的最大连接数
- show superuser_reserved_connections ; --显示系统保留的用户数
- select usename, count(*) from pg_stat_activity group by usename order by count(*) desc; --按照用户分组查看
- alter system set max_connections= 数量 --修改最大连接数
- https://blog.51cto.com/geekbin/1398671 --postgresql修改配置生效方法

结束闲置数据库链接
- select * from pg_stat_activity where state = 'idle';
- --select pg_terminate_backend(pid);
-
- -- 释放空链接
- SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state='idle';
数据库扩展
- -- 查看数据库扩展
- select * from pg_extension;
- -- 创建 gin 索引扩展
- CREATE EXTENSION pg_bigm;
- -- 创建 gin 索引 (主要用于扩展模糊搜索)
- CREATE INDEX odp_accountbase_name_bigm_idx ON public.odp_accountbase USING gin (name gin_bigm_ops);
查看表索引情况
select * from pg_indexes where tablename = 'tyc_data_cleanbase';
备份表
SELECT * INTO doctor20220107 FROM doctor;
查看锁表情况
- select
- b.relname,
- a.pid,
- a.locktype,
- a.database,
- a.mode,
- a.relation
- from pg_locks a
- join pg_class b on a.relation = b.oid
- where b.relname = '表名';
-
- --杀死进程释放锁
- select pg_cancel_backend(pid); -- pid 就是上面查询到的 pid 列
查看清理情况
- SELECT
- relname ,--表名
- seq_scan ,--全表扫描次数
- seq_tup_read ,--全表扫描记录数
- idx_scan ,--索引扫描次数
- idx_tup_fetch ,--索引扫描记录数
- n_tup_ins ,--插入的条数
- n_tup_upd ,--更新的条数
- n_tup_del ,--删除的条数
- n_tup_hot_upd ,--热更新条数
- n_live_tup ,--活动元组估计数
- n_dead_tup ,--死亡元组估计数
- last_vacuum ,--最后一次手动清理时间
- last_autovacuum ,--最后一次自动清理时间
- last_analyze ,--最后一次手动分析时间
- last_autoanalyze ,--最后一次自动分析时间
- vacuum_count ,--手动清理的次数
- autovacuum_count ,--自动清理的次数
- analyze_count ,--手动分析此表的次数
- autoanalyze_count ,--自动分析此表的次数
- ( CASE WHEN n_live_tup > 0 THEN n_dead_tup :: float8 / n_live_tup :: float8 ELSE 0 END ) :: NUMERIC ( 12, 2 ) AS "死/活元组的比例"
- FROM
- pg_stat_all_tables
- WHERE
- schemaname = 'public' and relname ='odp_doctorbase'
- ORDER BY n_dead_tup::float8 DESC;
-
- VACUUM FULL VERBOSE odp_doctorbase;
- VACUUM FULL VERBOSE ANALYZE odp_doctorbase;

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。