Postgresql常用管理命令

查看系統(tǒng)信息

查看當前數(shù)據(jù)庫實例的版本信息:

select version();

查看數(shù)據(jù)庫的啟動時間:

select pg_postmaster_start_time();

使用pg_ctl reload后會改變配置的裝載時間运挫。查看最后load配置文件的時間:

select pg_conf_load_time();

顯示當前數(shù)據(jù)庫時區(qū):

show timezone;

注意挠日, 數(shù)據(jù)庫的時區(qū)有時并不是當前操作系統(tǒng)的時區(qū)惯雳, 此時在數(shù)據(jù)庫中看到的時間就與在操作系統(tǒng)中看到的不一致邪驮。
顯示當前數(shù)據(jù)庫時間:

select now();

查看當前實例中有哪些數(shù)據(jù)庫:

\l

查看當前用戶名:

select user;
select current_user;

查看session用戶:

select session_user;

通常情況下“session_user”與“user”是相同的候味。
但當用命令“SET ROLE”改變用戶的角色時笙隙, 這兩者就不同了洪灯,session_user始終是原始用戶, 而user是當前的角色用戶逃沿。

查詢當前連接的數(shù)據(jù)庫名稱:

select current_catalog;
select current_database();

使用current_catalog與current_database()都顯示當前連接的數(shù)據(jù)庫名稱婴渡, 兩者的功能完全相同幻锁, 只不過catalog是SQL標準中的用語凯亮。

查詢當前session所在客戶端的IP地址及端口:

select inet_client_addr(),inet_client_port();

查詢當前數(shù)據(jù)庫服務(wù)器的IP地址及端口:

select inet_server_addr(),inet_server_port();

查詢當前session的后臺服務(wù)進程的PID:

select pg_backend_pid();

通過操作系統(tǒng)命令查看此后臺服務(wù)進程:

ps -ef|grep pid號 |grep -v grep

查看當前參數(shù)配置情況,如查看shared_buffers參數(shù):

show shared_buffers;
select current_setting('shared_buffers');

修改當前session的參數(shù)配置:

set maintenance_work_mem to '128MB';
SELECT set_config('maintenance_work_mem', '128MB', false);

查看當前正在寫的WAL文件:

select pg_xlogfile_name(pg_current_xlog_location());

查看當前WAL文件的buffer中還有多少字節(jié)的數(shù)據(jù)沒有寫入磁盤中:

select pg_xlog_location_diff(pg_current_xlog_insert_location(), pg_current_xlog_location());

查看數(shù)據(jù)庫實例是否正在做基礎(chǔ)備份:

select pg_is_in_backup(), pg_backup_start_time() ;

查看當前數(shù)據(jù)庫實例處于Hot Standby狀態(tài)還是正常數(shù)據(jù)庫狀態(tài):

select pg_is_in_recovery();

如果上面命令的運行結(jié)果為真哄尔, 說明數(shù)據(jù)庫處于Hot Standby狀態(tài)假消。

查看數(shù)據(jù)庫的大小:

select pg_database_size('osdba'), pg_size_pretty(pg_database_size('osdba'));

上面的命令用于查看數(shù)據(jù)庫“osdba”的大小岭接。
注意富拗, 如果數(shù)據(jù)庫中有很多表, 使用上述命令查詢將比較慢鸣戴, 也可能對當前系統(tǒng)產(chǎn)生不利的影響啃沪。
在上面的命令中, pg_size_pretty()函數(shù)會把數(shù)字以MB窄锅、 GB等格式顯示出來创千, 這樣的結(jié)果更加直觀。

查看表的大腥胪怠:

select pg_size_pretty(pg_relation_size('t1')) ;
select pg_size_pretty(pg_total_relation_size('t1')) ;

上例中追驴, pg_relation_size()僅計算表的大小, 不包括索引的大小疏之, 而pg_total_relation_size()則會把表上索引的大小也計算進來殿雪。

查看表上所有索引的大小:

select pg_size_pretty(pg_indexes_size('t1'));

注意锋爪, pg_indexes_size()函數(shù)的參數(shù)名是一個表對應(yīng)的OID(輸入表名會自動轉(zhuǎn)換成表的OID) 丙曙, 而不是索引的名稱爸业。

查看表空間的大小:

select pg_size_pretty(pg_tablespace_size('pg_global'));
select pg_size_pretty(pg_tablespace_size('pg_default'));

上面的示例中查看了全局表空間“pg_global”和默認表空間“pg_default”的大小亏镰。

查看表對應(yīng)的數(shù)據(jù)文件:

select pg_relation_filepath('test01');

系統(tǒng)維護常用命令

修改配置文件“postgresql.conf”后沃呢, 要想讓修改生效, 有以下兩種方法拆挥。

  • 方法一: 在操作系統(tǒng)下使用如下命令:
pg_ctl reload
  • 方法二: 在psql中使用如下命令:
select pg_reload_conf();

注意薄霜, 如果是需要重啟數(shù)據(jù)庫服務(wù)才能使修改生效的配置項, 使用上面的方法無效纸兔。
使用上面的方法能使修改生效的配置項都是不需要重啟數(shù)據(jù)庫服務(wù)就能使修改生效的配置項惰瓜。

切換log日志文件到下一個:

select pg_rotate_logfile();

切換WAL日志文件:

select pg_switch_xlog();

手動產(chǎn)生一次checkpoint:

checkpoint;

取消正在長時間執(zhí)行的SQL命令的方法有以下兩種。

  • pg_cancel_backend(pid): 取消一個正在執(zhí)行的SQL命令汉矿。
  • pg_terminate_backend(pid): 終止一個后臺服務(wù)進程崎坊, 同時釋放此后臺服務(wù)進程的資源。

這兩個函數(shù)的區(qū)別是洲拇, pg_cancel_backend()函數(shù)實際上是給正在執(zhí)行的SQL任務(wù)置一個取消標志奈揍, 正在執(zhí)行的任務(wù)在合適的時候檢測到此標志后會主動退出; 但如果該任務(wù)沒有主動檢測到此標志就無法正常退出赋续, 此時就需要使用pg_terminate_backend命令來中止SQL命令的執(zhí)行男翰。

通常先查詢pg_stat_activity以找出長時間運行的SQL命令, 命令如下:

select pid,usename,query_start, query from pg_stat_activity;

然后再使用pg_cancel_backend()取消該SQL命令纽乱, 如果pg_cancel_backend()取消失敗蛾绎,再使用pg_terminate_backend(), 命令如下:

select pg_cancel_backend(pid號);
select pg_terminate_backend(pid號);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸦列,一起剝皮案震驚了整個濱河市租冠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌薯嗤,老刑警劉巖顽爹,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骆姐,居然都是意外死亡镜粤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門诲锹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來繁仁,“玉大人,你說我怎么就攤上這事归园』剖” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵庸诱,是天一觀的道長捻浦。 經(jīng)常有香客問我晤揣,道長,這世上最難降的妖魔是什么朱灿? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任昧识,我火速辦了婚禮,結(jié)果婚禮上盗扒,老公的妹妹穿的比我還像新娘跪楞。我一直安慰自己,他們只是感情好侣灶,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布甸祭。 她就那樣靜靜地躺著,像睡著了一般褥影。 火紅的嫁衣襯著肌膚如雪池户。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天凡怎,我揣著相機與錄音校焦,去河邊找鬼。 笑死统倒,一個胖子當著我的面吹牛寨典,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播檐薯,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼凝赛,長吁一口氣:“原來是場噩夢啊……” “哼注暗!你這毒婦竟也來了坛缕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤捆昏,失蹤者是張志新(化名)和其女友劉穎赚楚,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骗卜,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡宠页,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了寇仓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片举户。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遍烦,靈堂內(nèi)的尸體忽然破棺而出俭嘁,到底是詐尸還是另有隱情,我是刑警寧澤服猪,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布供填,位于F島的核電站拐云,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏近她。R本人自食惡果不足惜叉瘩,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粘捎。 院中可真熱鬧薇缅,春花似錦、人聲如沸攒磨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咧纠。三九已至蓬痒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漆羔,已是汗流浹背梧奢。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留演痒,地道東北人亲轨。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像鸟顺,于是被迫代替她去往敵國和親惦蚊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容