postgresql 資料庫的啟動與 關閉

2021-07-10 18:13:05 字數 3035 閱讀 2384

一、伺服器程序的啟動和關閉:

下面是pg_ctl命令的使用方法和常用選項,需要指出的是,該命令是postgres命令的封裝體,因此在使用上比直接使用postgres更加方便。

pg_ctl init[db] [-d datadir] [-s] [-o "options"]

pg_ctl start     [-w] [-t secs] [-d datadir] [-s] [-l filename] [-o "options"]

pg_ctl stop     [-w] [-t secs] [-d datadir] [-s] [-m shutdown-mode]

pg_ctl restart  [-w] [-t secs] [-d datadir] [-s] [-m shutdown-mode]

pg_ctl reload  [-d datadir] [-s]

pg_ctl status  [-d datadir]

pg_ctl promote [-d datadir] [-s]

選項

描述

-d指定資料庫儲存的路徑

-l指定伺服器程序的日誌檔案

-s僅列印錯誤資訊,不列印普通資訊

-t secs

當使用-w選項時等待的秒數

-w等待直到資料庫操作完成(對於stop而言,該選項時預設選項)

-w不等待任何操作的完成

--help

顯示幫助資訊

--version

顯示版本資訊

-m對於stop和restart操作,可以指定關閉模式

系統關閉模式

smart

不在接收新的連線,直到當前已有的連線都斷開之後才退出系統

fast

不在接收新的連線請求,主動關閉已經建立的連線,之後退出系統

immediate

立即退出,但是在restart的時候需要有恢復的操作被執行

這裡我們只是給出最為常用的使用方式,即資料庫伺服器的正常啟動和關閉。

#start表示啟動postgres伺服器程序。

#-d指定資料庫伺服器的初始目錄的存放路徑。

#-l指定資料庫伺服器程序的日誌檔案

/> pg_ctl -w start -d /opt/postgresql/9.1/data -l /opt/postgresql/9.1/data/pg_log/startup.log

#stop表示停止postgres伺服器程序

#-m fast在關閉系統時,使用fast的關閉模式。

/> pg_ctl stop -m fast -w -d /opt/postgresql/9.1/data

二、伺服器配置:

1. 設定引數:

在postgresql中,所有配置引數名都是大小寫不敏感的。每個引數都可以接受四種型別的值,它們分別是布林、整數、浮點數和字串。其中布林值可以是on、off、true、false、yes、no、1和0。包含這些引數的配置檔案是postgresql.conf,該檔案通常存放在initdb初始化的資料(data)目錄下,見如下配置片段:

# 這是乙個注釋

log_connections = yes

log_destination = 'syslog'

search_path = '$user, public'

井號(#)開始的行為注釋行,如果配置值中包含數字,則需要用單引號括起。如果引數值本身包含單引號,我們可以寫兩個單引號(推薦方法)或用反斜扛包圍。    

這裡需要注意的是,並非所有配置引數都可以在伺服器執行時執行動態修改,有些引數在修改後,只能等到伺服器重新啟動後才能生效。

postgresql還提供了另外一種修改配置引數的方法,即在命令列上直接執行修改命令,如:

/> postgres -c log_connections=yes -c log_destination='syslog'

如果此時命令列設定的引數和配置檔案中的引數相互衝突,那麼命令列中給出的引數將覆蓋配置檔案中已有的引數值。除此之外,我們還可以通過alter database和alter user等postgresql的資料定義命令來分別修改指定資料庫或指定使用者的配置資訊。其中針對資料庫的設定將覆蓋任何從postgres命令列或者配置檔案從給出的設定,然後又會被針對使用者的設定覆蓋,最後又都會被每會話的選項覆蓋。下面是當伺服器配置出現衝突時,postgresql伺服器將會採用哪種方式的優先順序,如:

1). 基於會話的配置;

2). 基於使用者的配置;

3). 基於資料庫的配置;

4). postgres命令列指定的配置;

5). 配置檔案postgresql.conf中給出的配置。

最後需要說明的是,有些設定可以通過postgresql的set命令進行設定,如在psql中我們可以輸入:

set enable_seqscan to off;

也可以通過show命令來顯示指定配置的當前值,如:

show enable_seqscan;

與此同時,我們也可以手工查詢pg_settings系統表的方式來檢索感興趣的系統引數。 

三、記憶體相關的引數配置:

1. shared_buffers(integer):

postgresql在執行排序操作時,會根據work_mem的大小決定是否將乙個大的結果集拆分為幾個小的和work_mem差不多大小的臨時檔案。顯然拆分的結果是降低了排序的速度。因此增加work_mem有助於提高排序的速度。然而需要指出的是,如果系統中同時存在多個排序操作,那麼每個操作在排序時使用的記憶體數量均為work_mem,因此在我們設定該值時需要注意這一問題。

3. maintence_work_mem(integer):

指定在維護性操作中使用的最大記憶體數,如vacuum、create index和alter table add foreign key等,該配置的預設值為16mb。因為每個會話在同一時刻只能執行乙個該操作,所以使用的頻率不高,但是這些指令往往消耗較多的系統資源,因此應該盡快讓這些指令快速執行完畢。

PostgreSQL資料庫的注入

目錄 postgresql postgresql常用查詢命令 布林盲注 錯誤注入 堆疊注入 時間盲注 聯合查詢 postgresql是一種特性非常齊全的自由軟體的物件 關係型資料庫管理系統 ordbms 4.2版本為基礎的物件關係型資料庫管理系統。postgresql安裝後,預設的埠是 5432,預...

PostgreSQL 資料庫的命令

系統命令行視窗 查詢退出 q 備註root izuf624rjpfgj95cg9aw9fz su postgres postgres izuf624rjpfgj95cg9aw9fz postgres izuf624rjpfgj95cg9aw9fz psql postgres postgres l p...

postgresql模板資料庫

template0和template1為postgresql資料庫的模板資料庫,新建的資料庫預設使用template1作為模板。template0和template1的區別在於template0無法修改,因此你可以修改template1資料庫以定製新建立的資料庫。template資料庫無法被刪除 d...