利用psql啟動數據庫
[postgres@highgo ~]$ pg_ctl start
查看系統中運行的postgres進程
連接postgresql數據庫
#psql -h 127.0.0.1 -d postgres -U postgres
停止postgresql數據庫實例
#pg_ctl stop
#ps -ef | grep postgres
啟動服務器最簡單的方法是像下面這樣:
$ postgres -D /usr/local/pgsql/data
最好在后臺啟動postgres,使用下面的 Unix shell 語法:
$ postgres -D /usr/local/pgsql/data >logfile 2>1
要做一次快速關閉:
$ 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進程
重啟啟動服務
service start
service status
補充:PostgreSQL 四種進程啟動方式
Postgres在啟動后,可分別以一下四種形式啟動進程:
1、SubPostmasterMain
2、AuxiliaryProcessMain
3、PostgresMain
4、PostmasterMain
SubPostmasterMain(–fork)
指明由postmaster派生
設置進程ID
初始化內存池
處理輸入參數
運行相應的backend或子進程
–forkbackend或–forkboot
1) 關聯到共享內存
2) 初始化共享內存訪問(UsedShmemSegAddr)
3) 初始化AuxiliaryProcess
4) 創建共享內存和信號量
5) 啟動AuxiliaryProcessMain
–forkavlauncher
1) 關聯到共享內存
2) AutovacuumLauncherIAm()
3) 初始化共享內存訪問(UsedShmemSegAddr)
4) 初始化AuxiliaryProcess
5) 創建共享內存和信號量
6) 啟動AutoVacLauncherMain
–forkavworker
1) 關聯到共享內存
2) AutovacuumLauncherIAm()
3) 初始化共享內存訪問(UsedShmemSegAddr)
4) 初始化AuxiliaryProcess
5) 創建共享內存和信號量
6) 啟動AutoVacWorkerMain
–forkarch
1) 啟動PgArchiverMain
–forkcol
1) 啟動PgstatCollectorMain
–forklog
1) 啟動SysLoggerMain
AuxiliaryProcessMain(–boot)
設置進程ID
初始化內存池
設置路徑、時間等變量
初始化GUC選項,處理輸入參數
以BootstrapProcessing模式初始化一個backend:ipc, lock, file, storage, buffer
設置信號處理句柄
以NormalProcessing狀態針對不同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)
設置進程ID
初始化內存池
設置路徑、時間等變量
初始化GUC選項,處理輸入參數和其他startup packet中的參數
設置信號處理句柄
初始化一個backend(無論它是否由postmaster生成):ipc, lock, file, storage, buffer
啟動XLOG
加載FreeSpaceMap
初始化進程
初始化表緩存和系統目錄訪問
處理預加載的庫
轉到MessageContext內存池
進入查詢處理主循環
PostmasterMain
設置進程ID
初始化內存池
設置路徑、時間等變量
初始化GUC選項,處理輸入參數并載入hba和ident
設置共享內存和信號量,初始化共享數據結構
設置信號處理句柄
啟動守護進程:
(1) syslogger:收集其他其他進程的日志輸出,寫入到文件
(2) stats daemon:通過UDP獲取各backend的運行時統計信息
(3) autovacuum launcher:定期進行表空間的自動清理
由參數forkboot啟動一個backend
綁定到TCP socket,監聽連接請求
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- PostgreSQL 默認權限查看方式
- Postgresql - 查看鎖表信息的實現
- 查看postgresql數據庫用戶系統權限、對象權限的方法
- PostgreSQL 查看數據庫,索引,表,表空間大小的示例代碼
- PostgreSQL查看正在執行的任務并強制結束的操作方法