1. 啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器(posgres用戶):
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),泰山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:泰山等地區(qū)。泰山做網(wǎng)站價(jià)格咨詢:028-86922220
[postgres@localhost bin]$ postgres -D /opt/postgresql/data/ /opt/postgresql/log/pg_server.log 21
[1] 4508
當(dāng)然如果設(shè)置了環(huán)境變量
PGDATA=/opt/postgresql/data
export PGDATA
后,可使用pg_ctl工具進(jìn)行啟動(dòng):
[postgres@localhost log]$ pg_ctl start -l /opt/postgresql/log/pg_server.log
pg_ctl: another server might be running; trying to start server anyway
pg_ctl: could not start server
Examine the log output.
[postgres@localhost log]$
因?yàn)橹耙呀?jīng)啟動(dòng),所以打印“another server might be running”。此時(shí),查看日志,有如下信息:
[postgres@localhost log]$ cat pg_server.log
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 4491) running in data directory "/opt/postgresql/data"?
[postgres@localhost log]$
當(dāng)然,最簡(jiǎn)的.啟動(dòng)方式是:
[postgres@localhost ~]$ pg_ctl start
server starting
[postgres@localhost ~]$ LOG: database system was shut down at 2011-07-09 13:58:00 CST
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
如果要在操作系統(tǒng)啟動(dòng)時(shí)就啟動(dòng)PG,可以在/etc/rc.d/rc.local 文件中加以下語(yǔ)句:
/opt/postgresql/bin/pg_ctl start -l /opt/postgresql/log/pg_server.log -D /opt/postgresql/data
2.關(guān)閉服務(wù)器
最簡(jiǎn)單方法:
[postgres@localhost ~]$ pg_ctl stop
waiting for server to shut down.... done
server stopped
與Oracle相同,在關(guān)閉時(shí)也可采用不同的模式,簡(jiǎn)介如下:
SIGTERM
不再允許新的連接,但是允許所有活躍的會(huì)話正常完成他們的工作,只有在所有會(huì)話都結(jié)束任務(wù)后才關(guān)閉。這是智能關(guān)閉。
SIGINT
不再允許新的連接,向所有活躍服務(wù)器發(fā)送 SIGTERM(讓它們立刻退出),然后等待所有子進(jìn)程退出并關(guān)閉數(shù)據(jù)庫(kù)。這是快速關(guān)閉。
SIGQUIT
令 postgres 向所有子進(jìn)程發(fā)送 SIGQUIT 并且立即退出(所有子進(jìn)程也會(huì)立即退出),而不會(huì)妥善地關(guān)閉數(shù)據(jù)庫(kù)系統(tǒng)。這是立即關(guān)閉。這樣做會(huì)導(dǎo)致下次啟動(dòng)時(shí)的恢復(fù)(通過(guò)重放 WAL 日志)。我們推薦只在緊急的時(shí)候使用這個(gè)方法。
SIGKILL
此選項(xiàng)盡量不要使用,這樣會(huì)阻止服務(wù)器清理共享內(nèi)存和信號(hào)燈資源,那樣的話你只能在啟動(dòng)服務(wù)器之前自己手工做這件事。另外,SIGKILL 直接把 postgres 殺掉,而不會(huì)等它把信號(hào)中繼給它的子進(jìn)程,因此我們還需要手工殺掉每個(gè)獨(dú)立子進(jìn)程。
使用方法舉例:
[postgres@localhost ~]$ pg_ctl stop -o SIGTERM
LOG: received smart shutdown request
LOG: autovacuum launcher shutting down
waiting for server to shut down....LOG: shutting down
LOG: database system is shut down
done
server stopped
[postgres@localhost ~]$
最快速關(guān)閉方法:kill postgres 進(jìn)程
[postgres@localhost ~]$ kill -INT `head -1 /opt/postgresql/data/postmaster.pid`
[postgres@localhost ~]$ LOG: received fast shutdown request
LOG: aborting any active transactions
LOG: autovacuum launcher shutting down
LOG: shutting down
LOG: database system is shut down
附:postgre啟動(dòng)后的進(jìn)程,如下:
[postgres@localhost ~]$ ps -ef|grep post
root 4609 4543 0 13:57 pts/2 00:00:00 su - postgres
postgres 4610 4609 0 13:57 pts/2 00:00:00 -bash
postgres 4724 1 0 14:08 pts/2 00:00:00 /opt/postgresql/bin/postgres
postgres 4726 4724 0 14:08 ? 00:00:00 postgres: writer process
postgres 4727 4724 0 14:08 ? 00:00:00 postgres: wal writer process
postgres 4728 4724 0 14:08 ? 00:00:00 postgres: autovacuum launcher process
postgres 4729 4724 0 14:08 ? 00:00:00 postgres: stats collector process
postgres 4752 4610 0 14:11 pts/2 00:00:00 ps -ef
postgres 4753 4610 0 14:11 pts/2 00:00:00 grep post
[postgres@localhost ~]$
再等待半個(gè)小時(shí),還是如此的話,重啟電腦,再重裝此軟件。還是不行,可能是系統(tǒng)有問(wèn)題了,直接換個(gè)驗(yàn)證過(guò)的系統(tǒng)盤(pán)重裝系統(tǒng)就行了,這樣就可以全程自動(dòng)、順利解決 win7系統(tǒng)中軟件無(wú)法正常安裝 的問(wèn)題了。用u盤(pán)或者硬盤(pán)這些都是可以的,且安裝速度非???。具體安裝方法如下:
1、U盤(pán)安裝:用ultraiso軟件,打開(kāi)下載好的系統(tǒng)安裝盤(pán)文件(ISO文件),執(zhí)行“寫(xiě)入映像文件”把U盤(pán)插到電腦上,點(diǎn)擊“確定”,等待程序執(zhí)行完畢后,這樣就做好了啟動(dòng)及安裝系統(tǒng)用的u盤(pán),用這個(gè)做好的系統(tǒng)u盤(pán)引導(dǎo)啟動(dòng)機(jī)器后,即可順利重裝系統(tǒng)了;
2、硬盤(pán)安裝:前提是,需要有一個(gè)可以正常運(yùn)行的Windows系統(tǒng),提取下載的ISO文件中的“*.GHO”和“安裝系統(tǒng).EXE”到電腦的非系統(tǒng)分區(qū),然后運(yùn)行“安裝系統(tǒng).EXE”,直接回車(chē)確認(rèn)還原操作,再次確認(rèn)執(zhí)行自動(dòng)安裝操作(執(zhí)行前注意備份C盤(pán)重要資料);
postgresql中可以使用pg_dump來(lái)備份數(shù)據(jù)庫(kù)。pg_dump是用于備份PostgreSQL數(shù)據(jù)庫(kù)的工具。它可以在數(shù)據(jù)庫(kù)正在使用的時(shí)候進(jìn)行完整一致的備份,并不阻塞其它用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
用法:
pg_dump [選項(xiàng)]... [數(shù)據(jù)庫(kù)名字]
一般選項(xiàng):
-f, --file=FILENAME output file or directory name
-F, --format=c|d|t|p output file format (custom, directory, tar, plain text)
-v, --verbose 詳細(xì)模式
-Z, --compress=0-9 被壓縮格式的壓縮級(jí)別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時(shí)后操作失敗
--help 顯示此幫助信息, 然后退出
--versoin 輸出版本信息, 然后退出
示例:
備份數(shù)據(jù)庫(kù),指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak
開(kāi)始-運(yùn)行-cmd 彈出dos控制臺(tái);然后 在控制臺(tái)里,進(jìn)入PostgreSQL安裝目錄bin下:
cd C:Program FilesPostgreSQL9.0bin
最后執(zhí)行備份指令:
pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak
指令解釋:
pg_dump 是備份數(shù)據(jù)庫(kù)指令,164.82.233.54是數(shù)據(jù)庫(kù)的ip地址(必須保證數(shù)據(jù)庫(kù)允許外部訪問(wèn)的權(quán)限哦~),當(dāng)然本地的數(shù)據(jù)庫(kù)ip寫(xiě) localhost;
postgres 是數(shù)據(jù)庫(kù)的用戶名;databasename 是數(shù)據(jù)庫(kù)名。
意思是導(dǎo)出到C:databasename.bak文件里,如果沒(méi)有寫(xiě)路徑,單單寫(xiě)databasename.bak文件名,那么備份文件會(huì)保存在C: Program FilesPostgreSQL9.0bin 文件夾里。
推薦學(xué)習(xí)《Python教程》。
每個(gè)child cursor(你可以認(rèn)為是一條SQL的plan tree)下面都有一個(gè)mutexes這樣的簡(jiǎn)單內(nèi)存結(jié)構(gòu),當(dāng)有session要執(zhí)行該SQL而需要pin cursor操作的時(shí)候,session只需要以shared模式set這個(gè)內(nèi)存位+1,表示session獲得該mutex的shared mode lock.可以有很多session同時(shí)具有這個(gè)mutex的shared mode lock;
但在同一時(shí)間,只能有一個(gè)session在操作這個(gè)mutext +1或者-1。+1 -1的操作是排它性的原子操作。