postgresql 啟動與停止操作
啟動和停止資料庫伺服器
service 方式
service postgresql-10 start service postgresql-10 stop service postgresql-10 status
pg_ctl 方式
pg_ctl start -D [ data 所在路徑 ] pg_ctl stop -D [ data 所在路徑 ]
三種形式:-m 指定模式
smart
模式:會等待活動的事務提交結束,並等待客戶端主動斷開連線之後關閉資料庫服務
fast
模式:會回滾所有的活動的事務,並強制斷開客戶端的連線然後關閉資料庫(預設就是使用fast 相當於Oracle 中的 immediate模式關閉)
immediate
模式: 會立即終止所有伺服器程序,當下一次資料庫啟動的時候會首先進入恢復狀態( 相當於使用 kill 工具殺死程序[此方式不會乾淨的關閉資料庫且會造成資料丟失] )
pg_ctl status -D [ data 所在路徑 ]
使用 postmaster postgres 程式啟動資料庫
/usr/pgpsql-10/bin/postgres -D [ data 所在路徑 ] kill -sigterm `head -1 /usr/pgpsql-10/data/postmaster.pid`
如果要在作業系統啟動時就啟動PG,可以在/etc/rc.d/rc.local 檔案中加以下語句:
/usr/pgsql-10/bin/pg_ctl start -l /usr/pgsql-10/log/pg_server.log -D/usr/pgsql-10/data
補充:postgresql 服務無法啟動,日誌中報如下錯誤
1、postgresql 服務無法啟動,日誌中報如下錯誤,磁碟空間足夠。
無法找到來自源 PostgreSQL 的事件 ID 0 的描述。本地計算機上未安裝引發此事件的元件,或者安裝已損壞。可以安裝或修復本地計算機上的元件。
1、使用pg_controldata 查詢 nextoID 和 nextXID
2、重置事物日誌
pg_resetxlog -o nextOID -x NextXID -f pgdata的目錄
重啟資料庫即可啟動 ,優麒麟重啟資料庫: service postgresql restart
C:\ParkServer\pgsql\bin>pg_controldata.exe –help pg_controldata
顯示 PostgreSQL 資料庫簇控制資訊.
使用方法:
選項: [-D] DATADIR 資料目錄 -V,–version 輸出版本資訊,然後退出
?,–help 顯示幫助資訊,然後退出
如果沒有指定資料目錄(DATADIR),將使用 環境變數PGDATA.
報告錯誤至 [email protected].
C:\ParkServer\pgsql\bin>pg_controldata.exe -D c:\ParkServer\pgsql\data
備註:
cd /usr/lib/postgresql/9.5/bin
下有pg_controldata pg_resetxlog
locate pg_controldata
可以全系統搜尋
sudo su postgres
才能訪問 /var/lib/postgresql/9.5/main
/etc/postgresql/9.5/main
下檢視postgresql.conf
檔案data
目錄
cd /var/log/postgresql
可以檢視資料庫的日誌
tail -f /var/log/syslog Insecure directory in $ENV{PATH} while running with -T switch at /usr/bin/pg_ctlcluster line 463. echo $PATH
檢視所有路徑的許可權,許可權太大的,都要改小
chmod 755 /usr chmod 755 /bin chmod 755 /sbin chmod 755 /snap
sudo service postgresql start
即可。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。