postgresql 實現(xiàn)啟動、狀態(tài)查看、關(guān)閉
利用psql啟動數(shù)據(jù)庫
[postgres@highgo ~]$ pg_ctl start
查看系統(tǒng)中運行的postgres進程
#ps -ef | grep postgres
連接postgresql數(shù)據(jù)庫
#psql -h 127.0.0.1 -d postgres -U postgres
停止postgresql數(shù)據(jù)庫實例
#pg_ctl stop #ps -ef | grep postgres
啟動服務(wù)器最簡單的方法是像下面這樣:
$ postgres -D /usr/local/pgsql/data
最好在后臺啟動postgres,使用下面的 Unix shell 語法:
$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
要做一次快速關(guān)閉:
$ kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`
如果啟動失敗提示一下信息
LOG: could not bind IPv4 socket: Address already in use HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. FATAL: could not create TCP/IP listen socket
解決方法:
查看端口在用
netstat -lanp|grep 5432 ps -ef|grep postgres 498 673 1 0 10:50 ? 00:00:00/usr/bin/postgres -D /var/lib/cloudera-scm-server-db/data
kill進程
kill -9 673
重啟啟動服務(wù)
service start service status
補充:PostgreSQL 四種進程啟動方式
Postgres在啟動后,可分別以一下四種形式啟動進程:
1、SubPostmasterMain
2、AuxiliaryProcessMain
3、PostgresMain
4、PostmasterMain
SubPostmasterMain(–fork)
指明由postmaster派生
設(shè)置進程ID
初始化內(nèi)存池
處理輸入?yún)?shù)
運行相應(yīng)的backend或子進程
–forkbackend或–forkboot
1) 關(guān)聯(lián)到共享內(nèi)存
2) 初始化共享內(nèi)存訪問(UsedShmemSegAddr)
3) 初始化AuxiliaryProcess
4) 創(chuàng)建共享內(nèi)存和信號量
5) 啟動AuxiliaryProcessMain
–forkavlauncher
1) 關(guān)聯(lián)到共享內(nèi)存
2) AutovacuumLauncherIAm()
3) 初始化共享內(nèi)存訪問(UsedShmemSegAddr)
4) 初始化AuxiliaryProcess
5) 創(chuàng)建共享內(nèi)存和信號量
6) 啟動AutoVacLauncherMain
–forkavworker
1) 關(guān)聯(lián)到共享內(nèi)存
2) AutovacuumLauncherIAm()
3) 初始化共享內(nèi)存訪問(UsedShmemSegAddr)
4) 初始化AuxiliaryProcess
5) 創(chuàng)建共享內(nèi)存和信號量
6) 啟動AutoVacWorkerMain
–forkarch
1) 啟動PgArchiverMain
–forkcol
1) 啟動PgstatCollectorMain
–forklog
1) 啟動SysLoggerMain
AuxiliaryProcessMain(–boot)
設(shè)置進程ID
初始化內(nèi)存池
設(shè)置路徑、時間等變量
初始化GUC選項,處理輸入?yún)?shù)
以BootstrapProcessing模式初始化一個backend:ipc, lock, file, storage, buffer
設(shè)置信號處理句柄
以NormalProcessing狀態(tài)針對不同auxType分別進行以下處理
a) CheckerProcess
1) 啟動CheckerModeMain
b) BooststrapProcess
1) BootstrapXLOG
2) 啟動XLOG
3) 啟動BootstrapModeMain
c) StartupProcess
1) 啟動XLOG
2) 加載FreeSpaceMap
3) BuildFlatFiles(false)
d) BgWriterProcess
1) 初始化XLOG訪問
2) 啟動BackgroundWriterMain
e) WalWriterProcess
1) 初始化XLOG訪問
2) 啟動WalWriterMain
PostgresMain(–single)
設(shè)置進程ID
初始化內(nèi)存池
設(shè)置路徑、時間等變量
初始化GUC選項,處理輸入?yún)?shù)和其他startup packet中的參數(shù)
設(shè)置信號處理句柄
初始化一個backend(無論它是否由postmaster生成):ipc, lock, file, storage, buffer
啟動XLOG
加載FreeSpaceMap
初始化進程
初始化表緩存和系統(tǒng)目錄訪問
處理預(yù)加載的庫
轉(zhuǎn)到MessageContext內(nèi)存池
進入查詢處理主循環(huán)
PostmasterMain
設(shè)置進程ID
初始化內(nèi)存池
設(shè)置路徑、時間等變量
初始化GUC選項,處理輸入?yún)?shù)并載入hba和ident
設(shè)置共享內(nèi)存和信號量,初始化共享數(shù)據(jù)結(jié)構(gòu)
設(shè)置信號處理句柄
啟動守護進程:
(1) syslogger:收集其他其他進程的日志輸出,寫入到文件
(2) stats daemon:通過UDP獲取各backend的運行時統(tǒng)計信息
(3) autovacuum launcher:定期進行表空間的自動清理
由參數(shù)forkboot啟動一個backend
綁定到TCP socket,監(jiān)聽連接請求
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
如何將excel表格數(shù)據(jù)導(dǎo)入postgresql數(shù)據(jù)庫
這篇文章主要介紹了如何將excel表格數(shù)據(jù)導(dǎo)入postgresql數(shù)據(jù)庫,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
PostgreSQL中數(shù)據(jù)批量導(dǎo)入導(dǎo)出的錯誤處理
在 PostgreSQL 中進行數(shù)據(jù)的批量導(dǎo)入導(dǎo)出是常見的操作,但有時可能會遇到各種錯誤,下面將詳細(xì)探討可能出現(xiàn)的錯誤類型、原因及相應(yīng)的解決方案,并提供具體的示例來幫助您更好地理解和處理這些問題,需要的朋友可以參考下2024-07-07
postgresql 兩表關(guān)聯(lián)更新操作
這篇文章主要介紹了postgresql 兩表關(guān)聯(lián)更新操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL查看數(shù)據(jù)庫占用空間大小的幾種常用方法
在PostgreSQL中,查看數(shù)據(jù)庫及數(shù)據(jù)表當(dāng)前數(shù)據(jù)的占用量可以通過執(zhí)行特定的SQL查詢來實現(xiàn),本文給大家介紹了幾種常用的方法,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-05-05
PostgreSql生產(chǎn)級別數(shù)據(jù)庫安裝要注意事項
這篇文章主要介紹了PostgreSql生產(chǎn)級別數(shù)據(jù)庫安裝要注意事項,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08

