【gp數據庫】你一定會用到的運維語句寶典


-- 查詢未空閑的進程信息

select * from pg_stat_activity where current_query<>'<IDLE>';

 

結果可查看數據庫名,進程標識符,用戶名,查詢語句,是否鎖表,查詢開始時間,客戶端地址等信息。

當執行錯誤或者鎖表,可在客戶端處理,可先用取消進程,如果不好用可用終止進程。

 

-- GP查看數據鎖

 

SELECT pid,rolname, rsqname, granted,

current_query, datname

FROM pg_roles, gp_toolkit.gp_resqueue_status, pg_locks, pg_stat_activity

WHERE pg_roles.rolresqueue=pg_locks.objid

AND pg_locks.objid=gp_toolkit.gp_resqueue_status.queueid

AND pg_stat_activity.procpid=pg_locks.pid;

 

 

-- 取消進程

select pg_cancel_backend(procpid);

 

-- 終止進程 

select pg_terminate_backend(procpid);

 

-- 版本信息

SELECT VERSION();

 

-- 客戶端編碼

SELECT pg_client_encoding();

 

--當前數據庫IP和端口

SELECT inet_server_addr(),inet_server_port();

 

 

--查看數據庫大小,以字節和GB格式輸出

SELECT pg_database_size('devrpt'),pg_size_pretty(pg_database_size('devrpt'));

 

-- 查看各模式大小

select pg_size_pretty(cast( sum(pg_relation_size( schemaname  || '.' || tablename)) as bigint)), schemaname  
from pg_tables t inner join pg_namespace d on t.schemaname=d.nspname  group by schemaname ORDER BY 1 DESC;

 

 

-- 根據模式查詢表大小,數據庫空間不足清理表時經常使用!

select schemaname || '.' || tablename, pg_size_pretty(pg_relation_size( schemaname || '.' || tablename))

from pg_tables t inner join pg_namespace d on t.schemaname=d.nspname

where schemaname='anrpt' order by pg_relation_size( schemaname || '.' || tablename) desc;

 

-- 顯示是否自動提交

show  AUTOCOMMIT

 

-- 顯示最大連接數

show max_connections

 

 

-- 按照用戶分組查看連接數

select usename, count(*) from pg_stat_activity group by usename order by count(*) desc;

 

 

-- 修改最大連接數

gpconfig -c max_connection -v 500 -m 500

 

-- 修改用戶user1的連接數

ALTER ROLE user1 CONNECTION LIMIT 300

 

 

-- 查看函數創建語句

select  proname, prosrc   from pg_proc where proname = 'function_name'; 

 

-- 做表分析 

vacuum analyze 表名

 

上一篇:【gp數據庫】后台周期執行函數實例(shell+crontab)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM