PostgreSQL是一個數(shù)據(jù)庫,120G代表postgreSQL保存的數(shù)據(jù)占的空間有120G,如果沒用到可以直接刪除,對系統(tǒng)沒影響。
定制設(shè)計可以根據(jù)自己的需求進行定制,成都網(wǎng)站設(shè)計、成都做網(wǎng)站構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司成都網(wǎng)站設(shè)計、成都做網(wǎng)站的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義
一、去官方網(wǎng)站下載PostgreSQL當(dāng)前最新版(當(dāng)前最新版本為9.3.2)
如上圖,下載紅框內(nèi)的Source文件。
二、除此之外還需準(zhǔn)備Perl(當(dāng)前最新為5.18.1.1800)及Flex、Bison安裝包
之所以用Perl是因為我們后面安裝PG主要采用的就是Perl來安裝,而Flex、Bison則是PG中對命令或查詢語句進行詞法、語法解析所用到的,Perl的安裝教程請戳這里^_^(安裝到C盤也不要緊,我們可以添加系統(tǒng)環(huán)境變量解決),F(xiàn)lex、Bison下載后不用安裝,至于有童鞋想知道為什么PG需要這兩個東西請戳這里^_^。我們現(xiàn)在有Flex、Bison的包,有PG的Source Code及Perl的安裝包(要安裝),如下圖所示:
準(zhǔn)備好的程序
Flex_Bison文件夾中的程序
將PG及flex_bison放置于同一文件夾下即可。
三、開始安裝PostgreSQL
首先要修改一個小地方,打開PG文件夾,找到MKVcbuild.pm文件(如下圖所示),用文本編輯器打開(如Notepad++),修改其中my $vsVersion = DetermineVisualStudioVersion()該行,變?yōu)?/p>
my $vsVersion = “9.0.0”,至于為什么這么改,是因為不這么改,我的VS2008就無法打開,并且項目也無法編譯成功,這個地方我不敢保證是不是特例還是共性,有待驗證。具體如下圖所示:
接下來如果Perl是安裝到了C盤,則在系統(tǒng)環(huán)境變量中添加Perl的C盤路徑位置,比如:
打開你的命令編輯器,因為我的電腦是64位的,這里我打開的是VS自帶的64位命令編輯器,CMD也OK。
到MSVC目錄下,輸入perl build.pl DEBUID
這樣就開始編譯了,全過程大概需要5分鐘吧,期間可能會有若干warning,但是無所謂啦,只有沒有error就行,(我自己安裝了兩遍,有些許warning,但是絕對沒有error出現(xiàn))
編譯結(jié)束后,就可以打開你的工程了,如下圖所示
接著在命令編輯器中繼續(xù)輸入perl install.pl (此處為bin文件夾路徑,自己指定),例如:
perl install.pl C:/bin,這樣就可以將相關(guān)執(zhí)行文件拷貝到你的bin目錄下,將來執(zhí)行的時候就可以在bin目錄下執(zhí)行了
執(zhí)行完后,恭喜,PG就安裝完成了,下面你可以簡單的登陸你的PG來進行調(diào)試了
四、簡單的調(diào)試
首先初始化系統(tǒng)數(shù)據(jù)目錄(包括系統(tǒng)表等元數(shù)據(jù))輸入initdb.exe DB(數(shù)據(jù)目錄名字,可自己指定)
其次啟動服務(wù)器,輸入postgreys.exe -D DB (注意-D中的D一定要大寫)
再次,啟動客戶端(另打開一個窗口),輸入psql.exe DB
最后,自己可以create
database,create table,往table中insert
into些數(shù)據(jù),最后可以select數(shù)據(jù)等等,就可以自由操縱了,比如下例中,執(zhí)行一個Select語句,通過VS2008附加到進程中去跟代碼,具體研究PG的細(xì)節(jié)實現(xiàn)。
五、結(jié)尾
postgresql中可以使用pg_dump來備份數(shù)據(jù)庫。pg_dump是用于備份PostgreSQL數(shù)據(jù)庫的工具。它可以在數(shù)據(jù)庫正在使用的時候進行完整一致的備份,并不阻塞其它用戶對數(shù)據(jù)庫的訪問。
用法:
pg_dump [選項]... [數(shù)據(jù)庫名字]
一般選項:
-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 被壓縮格式的壓縮級別
--lock-wait-timeout=TIMEOUT 在等待表鎖超時后操作失敗
--help 顯示此幫助信息, 然后退出
--versoin 輸出版本信息, 然后退出
示例:
備份數(shù)據(jù)庫,指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename C:databasename.bak
開始-運行-cmd 彈出dos控制臺;然后 在控制臺里,進入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ù)庫指令,164.82.233.54是數(shù)據(jù)庫的ip地址(必須保證數(shù)據(jù)庫允許外部訪問的權(quán)限哦~),當(dāng)然本地的數(shù)據(jù)庫ip寫 localhost;
postgres 是數(shù)據(jù)庫的用戶名;databasename 是數(shù)據(jù)庫名。
意思是導(dǎo)出到C:databasename.bak文件里,如果沒有寫路徑,單單寫databasename.bak文件名,那么備份文件會保存在C: Program FilesPostgreSQL9.0bin 文件夾里。
推薦學(xué)習(xí)《Python教程》。
安裝PostgreSQL Server
# yum install postgresql90-server
初始化數(shù)據(jù)庫,默認(rèn)路徑為/var/lib/pgsql/9.0/data
# service postgresql-9.0 initdb
啟動服務(wù)
# service postgresql-9.0 start
END
一些初始的配置
1
連接到數(shù)據(jù)庫,修改管理員密碼
# psql -U postgrespostgres=# ALTER USER postgres WITH PASSWORD 'admin';postgres=# \q
2
修改客戶端認(rèn)證配置文件,將METHOD由默認(rèn)的ident改為md5
# vi /var/lib/pgsql/9.0/data/pg_hba.conf
3
重啟服務(wù)
# service postgresql-9.0 restart
PostgreSQL自帶一個客戶端pgAdmin,里面有個備份,恢復(fù)選項,也能對數(shù)據(jù)庫進行備份 恢復(fù)(還原),但最近發(fā)現(xiàn)數(shù)據(jù)庫慢慢龐大的時候,經(jīng)常出錯,備份的文件過程中出錯的幾率那是相當(dāng)大,手動調(diào)節(jié)灰常有限。所以一直尋找完美的備份恢復(fù)方案。
夢里尋他千百度,伊人卻在燈火闌珊處...其實PostgreSQL內(nèi)置不少的工具,尋找的備份恢復(fù)方案就在其中:pg_dump,psql。這兩個指令 在數(shù)據(jù)庫的安裝目錄下,比如我自己本地安裝的,路徑形如:C:\Program Files\PostgreSQL\9.5\;然后進入到bin文件夾,會看到不少的exe文件,這就是PostgreSQL內(nèi)置的工具了。里面會找到 pg_dump.exe,psql.exe兩個文件。我們怎么用他們?
用法:
備份數(shù)據(jù)庫,指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak
開始-運行-cmd 彈出dos控制臺;然后 在控制臺里,進入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最后執(zhí)行備份指令:
pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak
指令解釋:如上命令,pg_dump 是備份數(shù)據(jù)庫指令,164.82.233.54是數(shù)據(jù)庫的ip地址(必須保證數(shù)據(jù)庫允許外部訪問的權(quán)限哦~),當(dāng)然本地的數(shù)據(jù)庫ip寫 localhost;postgres 是數(shù)據(jù)庫的用戶名;databasename 是數(shù)據(jù)庫名。 意思是導(dǎo)出到C:\databasename.bak文件里,如果沒有寫路徑,單單寫databasename.bak文件名,那么備份文件會保存在C: \Program Files\PostgreSQL\9.0\bin 文件夾里。
恢復(fù)數(shù)據(jù)庫,指令如下:
psql -h localhost -U postgres -d databasename C:\databasename.bak(測試沒有成功)
pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(測試成功)
指令解釋:如上命令,psql是恢復(fù)數(shù)據(jù)庫命令,localhost是要恢復(fù)到哪個數(shù)據(jù)庫的地址,當(dāng)然你可以寫上ip地址,也就是說能遠(yuǎn)程恢復(fù)(必須保證 數(shù)據(jù)庫允許外部訪問的權(quán)限哦~);postgres 就是要恢復(fù)到哪個數(shù)據(jù)庫的用戶;databasename 是要恢復(fù)到哪個數(shù)據(jù)庫。 的意思是把C:\databasename.bak文件導(dǎo)入到指定的數(shù)據(jù)庫里。
以上所有的是針對windows而言的,如果在linux下,會不會有效?
在linux里依然有效。有一個值得注意的是:如果直接進入PostgreSQL的安裝目錄bin下,執(zhí)行命令,可能會出現(xiàn) 找不到pg_dump,psql的現(xiàn)象,我們在可以這樣:
備份:
/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename databasename.bak
恢復(fù):
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename databasename.bak
在pgAdmin的窗口中,直接打開SQL文件然后執(zhí)行就可以了。
你所說的Oracle的執(zhí)行方式,應(yīng)該是在sql
plus命令窗口中執(zhí)行sql文件。這個功能在PostgreSQL的命令窗口psql中也有此功能:開啟psql命令窗口之后,執(zhí)行命令:
\i sqlfile_path就可以執(zhí)行指定的sql文件了,
其中sqlfile_path是要執(zhí)行的sql文件,
如下圖,
要注意的是:
在Windows系統(tǒng)中,路徑中用的是斜杠,不是反斜杠。