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
即可。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- PostgreSQL 數據庫跨版本升級常用方案解析
- PostgreSQL 啟動失敗的解決方案
- Centos環境下Postgresql 安裝配置及環境變量配置技巧
- CentOS PostgreSQL 12 主從復制(主從切換)操作
- PostgreSQL忘記postgres賬號密碼的解決方法