啟動(dòng)和停止數(shù)據(jù)庫(kù)服務(wù)器
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
模式:會(huì)等待活動(dòng)的事務(wù)提交結(jié)束,并等待客戶端主動(dòng)斷開連接之后關(guān)閉數(shù)據(jù)庫(kù)服務(wù)
fast
模式:會(huì)回滾所有的活動(dòng)的事務(wù),并強(qiáng)制斷開客戶端的連接然后關(guān)閉數(shù)據(jù)庫(kù)(默認(rèn)就是使用fast 相當(dāng)于Oracle 中的 immediate模式關(guān)閉)
immediate
模式: 會(huì)立即終止所有服務(wù)器進(jìn)程,當(dāng)下一次數(shù)據(jù)庫(kù)啟動(dòng)的時(shí)候會(huì)首先進(jìn)入恢復(fù)狀態(tài)( 相當(dāng)于使用 kill 工具殺死進(jìn)程[此方式不會(huì)干凈的關(guān)閉數(shù)據(jù)庫(kù)且會(huì)造成數(shù)據(jù)丟失] )
pg_ctl status -D [ data 所在路徑 ]
使用 postmaster postgres 程序啟動(dòng)數(shù)據(jù)庫(kù)
/usr/pgpsql-10/bin/postgres -D [ data 所在路徑 ]
kill -sigterm `head -1 /usr/pgpsql-10/data/postmaster.pid`
如果要在操作系統(tǒng)啟動(dòng)時(shí)就啟動(dòng)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
補(bǔ)充:postgresql 服務(wù)無法啟動(dòng),日志中報(bào)如下錯(cuò)誤
1、postgresql 服務(wù)無法啟動(dòng),日志中報(bào)如下錯(cuò)誤,磁盤空間足夠。
無法找到來自源 PostgreSQL 的事件 ID 0 的描述。本地計(jì)算機(jī)上未安裝引發(fā)此事件的組件,或者安裝已損壞??梢园惭b或修復(fù)本地計(jì)算機(jī)上的組件。
1、使用pg_controldata 查找 nextoID 和 nextXID
2、重置事物日志
pg_resetxlog -o nextOID -x NextXID -f pgdata的目錄
重啟數(shù)據(jù)庫(kù)即可啟動(dòng) ,優(yōu)麒麟重啟數(shù)據(jù)庫(kù): service postgresql restart
C:\ParkServer\pgsql\bin>pg_controldata.exe –help pg_controldata
顯示 PostgreSQL 數(shù)據(jù)庫(kù)簇控制信息.
使用方法:
選項(xiàng): [-D] DATADIR 數(shù)據(jù)目錄 -V, –version 輸出版本信息,然后退出
?, –help 顯示幫助信息,然后退出
如果沒有指定數(shù)據(jù)目錄(DATADIR), 將使用 環(huán)境變量PGDATA.
報(bào)告錯(cuò)誤至 pgsql-bugs@postgresql.org.
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
可以全系統(tǒng)搜索
sudo su postgres
才能訪問 /var/lib/postgresql/9.5/main
/etc/postgresql/9.5/main
下查看postgresql.conf
文件data
目錄
cd /var/log/postgresql
可以查看數(shù)據(jù)庫(kù)的日志
tail -f /var/log/syslog
Insecure directory in $ENV{PATH} while running with -T switch at /usr/bin/pg_ctlcluster line 463.
echo $PATH
查看所有路徑的權(quán)限,權(quán)限太大的,都要改小
chmod 755 /usr
chmod 755 /bin
chmod 755 /sbin
chmod 755 /snap
sudo service postgresql start
即可。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql 實(shí)現(xiàn)啟動(dòng)、狀態(tài)查看、關(guān)閉
- 啟動(dòng)PostgreSQL服務(wù)器 并用pgAdmin連接操作
- 本地計(jì)算機(jī)上的 postgresql 服務(wù)啟動(dòng)后停止的問題解決
- PostgreSQL pg_ctl start啟動(dòng)超時(shí)實(shí)例分析
- Ubuntu 16.04設(shè)置PostgreSQL開機(jī)啟動(dòng)的方法
- PostgreSQL實(shí)戰(zhàn)之啟動(dòng)恢復(fù)讀取checkpoint記錄失敗的條件詳解
- 解決PostgreSQL服務(wù)啟動(dòng)后占用100% CPU卡死的問題
- PostgreSQL 啟動(dòng)失敗的解決方案