亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSql服務器的配置

2019-09-08 23:34:18
字體:
來源:轉載
供稿:網友
PostgreSQL最早是由UC Berkley大學計算機系開發的,當初由 Michael Stonebraker 教授領導的 Postgres 項目,是由高級防務研究項目局(Defense Advanced Research Projects Agency) (DARPA) , 陸軍研究處 (ARO ), 國家科學基金會(National Science Foundation)(NSF),和 ESL 公司贊助進行的。它的許多先進的“對象-關系”概念現在已經在一些商業數據庫里得到應用,PostgreSQL支持SQL92/SQL3,事務完整性和可擴展性。它現在是一個源于Berkley代碼并公開源代碼的數據庫。

Postgres 通過一種讓用戶可以很容易擴展系統的方法整合了下面四種基本概念,使其能提供可觀的附加功能:

類/表(classes)
繼承(inheritance)
類型(types)
函數(functions)

其他特性還提供了附加的功能和靈活性:

約束(constraints)
觸發器(triggers)
規則(rules)
事務完整(transaction integrity)

這些特性將 Postgres置于對象-關系 (object-relational) 型數據庫的范疇.盡管Postgres有一些面向對象的特性,它仍然屬于關系型數據庫的范疇, 事實上,一些商用數據庫最近已經集成了一些Postgres 所領先的特性.

1.對系統的要求:

安裝在RedHat Linux 6.0下測試通過。

要用“root”用戶進行安裝。

PostgreSQL的版本是7.0

而且一定要先安裝egcs-c++-1.1.2-24.i386.rpm軟件包。

盡管運行 PostgreSQL 的最小內存需求少到只有 8MB,如果我們把內存增加到96MB,可以看到顯著的性能改善。

檢查你有足夠的磁盤空間。你需要為源代碼樹準備大約30M字節的空間,為安裝目錄準備大約5M字節。為一個空數據庫準備約 1 M字節,否則包含同樣數目數據的平面文件將大約是這個數目的五倍。在回歸測試過程中,你會暫時需要約 20 M字節.

檢查你有足夠的磁盤空間。你需要為源代碼樹準備大約30M字節的空間,為安裝目錄準備大約5M字節。為一個空數據庫準備約 1 M字節,否則包含同樣數目數據的平面文件將大約是這個數目的五倍。在回歸測試過程中,你會暫時需要約 20 M字節.

在編譯PostgreSQL之前。首先看一下“egcs-c++-1.1.2-24.i386.rpm”是不是已經安裝。沒有的話,那就趕緊裝吧。“egcs-c++-1.1.2-24.i386.rpm”直接可從Redhat的光盤里獲得,在“RedHat/RPMS”下。

驗證egcs-c++-1.1.2-24.i386.rpm是否安裝,用命令:

#rpm -qa|grep egcs

安裝egcs用:

# rpm -Uvh egcs-c++-version.i386.rpm

2.下載Postgresql源碼包:

Postgresql到本書發表為止已經推出了7.0.2的版本:

由于postgres7.0.2不支持RPM安裝格式,故我們只介紹源碼方式的安裝

ftp://ftp.postgresql.org/pub/v7.0.2/postgresql-7.0.2.tar.gz

3.安裝Postgresql:

由于postgres7.0.2不支持RPM安裝格式,故我們只介紹源碼方式的安裝;

1、解包:

#tar xzvf postgresql-7.0.2.tar.gz
#cd postgresql-7.0.2

2、創建postgresql用戶

以 root,bin 或者其他有特殊權限的用戶身份運行 PostgreSQL 存在安全問題,因而是不允許的。這是運行服務器的用戶。用于生產時你可以創建一個獨立的非特權的用戶(常用 postgres)

#useradd -M -o -r -d /var/lib/pgsql -s /bin/bash -c "PostgreSQL Server" -u 40 postgres

修改好postgres用戶的密碼,以postgres用戶登錄系統;

3、設置編譯參數:

$CC="egcs"

進入解包后的postgresql源文件目錄:
$ ./configure
configure不加任何選項,系統將按默認的設置安裝postgresql,查看configre的相關選項可以使用:configure -help

一些最常用的如下:

--prefix=BASEDIR
為安裝 PostgreSQL 選擇一個不同的基礎路徑。缺省是 /usr/local/pgsql。

--enable-locale
如果你想用本地化支持。

--enable-multibyte
允許使用多字節字符編碼。這個選項主要用于象日語,韓語或中文這樣的語言。

--with-perl
添加 Perl 模塊接口。請注意 Perl 接口將安裝到 Perl 模塊的常用位置(典型的是在 /usr/lib/perl),所以要成功使用這個選項,你必須有 root 權限。

--with-odbc
制作 <SPAN title="常規詞語,單擊這里可以查看解釋" style="BACKGROUND-IMAGE: url(C:PROGRA~1!SUNVDFKC3000
ormmark.gif); BACKGROUND-POSITION: left bottom; BACKGROUND-REPEAT: repeat-x; CURSOR: hand" )>ODBC</SPAN> 驅動包.

--with-tcl
制作 Tcl/Tk 需要的接口庫和程序,包括 libpgtcl,pgtclsh,和 pgtksh。

這些編譯參數告訴編譯器如何編譯PostgreSQL:

4、編譯源碼

$make

5、按照ocnfigure的配置按照程序:

#su
#make install

在這里我們架設postgresql安裝在默認的位置/usr/local/

6、配置共享庫:

告訴你的系統如何找到共享庫。如何實現這些因平臺而異??雌饋砜梢栽谌魏蔚胤缴У姆椒ㄊ窃O置環境變量 LD_LIBRARY_PATH:
# LD_LIBRARY_PATH=/usr/local/pgsql/lib
# export LD_LIBRARY_PATH

你可能把這些放到一個 shell 啟動文件里,象 ~/.bash_profile。
在一些系統里,下面的方法是最好的方法,但是你必須有 root 權限。編輯文件 /etc/ld.so.conf,增加一行

/usr/local/pgsql/lib

然后運行命令:

#/sbin/ldconfig

7、用postgres數據庫超級用戶完成數據庫的安裝:

你必須用 PostgreSQL 超級用戶帳號登錄執行這一步。以 root 是不能進行這一步的;

# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data
#su postgres
$ /usr/local/pgsql/initdb -D /usr/local/pgsql/data
We are initializing the database system with username postgres (uid=40).
This user will own all the files and must also own the server process.
Creating Postgres database system directory /var/lib/pgsql/base
Creating template database in /var/lib/pgsql/base/template1
Creating global classes in /var/lib/pgsql/base
Adding template1 database to pg_database...
Vacuuming template1
Creating public pg_user view
Creating view pg_rules
Creating view pg_views
Creating view pg_tables
Creating view pg_indexes
Loading pg_description

-D 選項聲明數據存儲的位置。你可以使用任何你想用的路徑,它不必在安裝目錄里。在運行 initdb 前只要確保數據庫超級用戶帳戶可以寫(或者創建)那個目錄就行了。

8、啟動postgresql服務;

前面的步驟應該已經告訴你如何啟動數據庫服務器?,F在就做。
$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
這樣將在前臺啟動數據庫服務器。要把它放到后臺,使用 -S。

4.配置Postgresql的腳本文件

配置“/etc/rc.d/ini.d/postgresql”腳本文件,用來啟動和停止PostgreSQL服務器。

創建“postgresql”腳本文件(touch /etc/rc.d/init.d/postgresql)并加入:

#! /bin/sh
# postgresql This is the init script for starting up the PostgreSQL
# server
# chkconfig: 345 85 15
# description: Starts and stops the PostgreSQL backend daemon that handles
# all database requests.
# processname: postmaster
# pidfile: /var/run/postmaster.pid
#
# Source function library.
. /etc/rc.d/init.d/functions
# Get config.
. /etc/sysconfig/network
# Check that networking is up.
# Pretty much need it for postmaster.
[ ${NETWORKI<SPAN title="常規詞語,單擊這里可以查看解釋" style="BACKGROUND-IMAGE: url(C:PROGRA~1!SUNVDFKC3000
ormmark.gif); BACKGROUND-POSITION: left bottom; BACKGROUND-REPEAT: repeat-x; CURSOR: hand" )>NG</SPAN>} = "no" ] && exit 0
[ -f /usr/bin/postmaster ] || exit 0
# This script is slightly unusual in that the name of the daemon (postmaster)
# is not the same as the name of the subsystem (postgresql)
# See how we were called.
case "$1" in
start)
echo -n "Checking postgresql installation: "
# Check for the PGDATA structure
if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
then
# Check version of existing PGDATA
if [ `cat /var/lib/pgsql/PG_VERSION` != '6.5' ]
then
echo "old version. Need to Upgrade."
echo "See /usr/doc/postgresql-6.5.2/README.rpm for more information."
exit 1
else
echo "looks good!"
fi
# No existing PGDATA! Initdb it.
else
echo "no database files found."
if [ ! -d /var/lib/pgsql ]
then
mkdir -p /var/lib/pgsql
chown postgres.postgres /var/lib/pgsql
fi
su -l postgres -c '/usr/bin/initdb --pglib=/usr/lib/pgsql --pgdata=/var/lib/pgsql'
fi
# Check for postmaster already running...
pid=`pidof postmaster`
if [ $pid ]
then
echo "Postmaster already running."
else
#all systems go -- remove any stale lock files
rm -f /tmp/.s.PGSQL.* > /dev/null
echo -n "Starting postgresql service: "
su -l postgres -c '/usr/bin/postmaster -i -S -D/var/lib/pgsql'
sleep 1
pid=`pidof postmaster`
if [ $pid ]
then
echo -n "postmaster [$pid]"
touch /var/lock/subsys/postgresql
echo $pid > /var/run/postmaster.pid
echo
else
echo "failed."
fi
fi
;;
stop)
echo -n "Stopping postgresql service: "
killproc postmaster
sleep 2
rm -f /var/run/postmaster.pid
rm -f /var/lock/subsys/postgresql
echo
;;
status)
status postmaster
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: postgresql {start|stop|status|restart}"
exit 1
esac
exit 0

現在讓腳本可執行并設置它的缺省權限:

[root@Aid]# chmod 700 /etc/rc.d/init.d/postgresql

用下面命令創建“rc.d”目錄下PostgresSQL的符號鏈接:

[root@Aid]# chkconfig --add postgresql

系統會在啟動時自動把Postgresql后臺進程啟動,也可以通過

/etc/rc.d/init.d/postgresql start|stop|restart

進行人工控制;

5.Postgresql數據庫的用戶管理和存取權限

和Mysql不同的是,Postgresql的用戶管理和權限控制,是截然不同的一套體制,有點類似于傳統的關系數據庫;

在"pg_hba.conf"文件的PG_DATA段可以用ip地址和用戶名限制對能數據庫的連接,這里你可以指定什么樣的IP地址能夠連接數據庫,什么樣的IP地址是不允許使用數據庫資源的;

在數據庫用戶以及數據庫方面postgresql用系統命令進行管理:

createuser 允許聲明可訪問 Postgres的用戶.destroyuser刪除用戶以及拒絕他們訪問Postgres。

這些命令只影響用戶與 Postgres;而對用戶的其他操作系統級的權限或狀態沒有影響

用“createuser”命令在數據庫中定義一個新超級用戶:

# su postgres
$ createuser
Enter name of user to add ---> admin
Enter user's postgres ID or RETURN to use unix user ID: 500 ->
Is user "admin" allowed to create databases (y/n) y
Is user "admin" a superuser? (y/n) y
createuser: admin was successfully added

用“destroyuser”命令在數據庫中刪除用戶:

# su postgres
$ destroyuser
Enter name of user to delete ---> admin
destroyuser: delete of user admin was successful.

用“createdb”命令創建新的數據庫:

# su postgres
$ createdb dbname

用“destorydb”命令刪除數據庫:
# su postgres
$ destorydb dbname

6 使用psql操作postgresql數據庫

postgresql和mysql一樣擁有一套獨立的客戶端程序,使用標準的SQL語句對數據庫進行操作和管理;

$psql databasename
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
[PostgreSQL 6.5.3 on i686-pc-linux-gnu, compiled by egcs ]
type ? for help on slash commands
type q to quit
type g or terminate with semicolon to execute query
You are currently connected to the database: databasename

告訴用戶已經連接到數據庫databasename

7.postgresql數據庫的備份

Postgres 提供兩個工具備份你的系統:pg_dump 備份獨立的數據庫以及 pg_dumpall 在一個步驟里備份你的數據庫節點。

可以用下面的命令備份一個獨立的數據庫:

$ pg_dump dbname > dbname.pgdump

然后可以用下面命令恢復

$cat dbname.pgdump | psql dbname

這個技巧可以用于把數據庫移動到一個新位置,然后重新命名現有數據庫。

Postgres 允許表的尺寸大于你的系統的最大文件尺寸,可能把表輸出到一個文件會有問題,生成的文件很可能比你的系統允許的最大文件大。

使用壓縮的輸出格式:

$ pg_dump dbname | gzip > filename.dump.gz

重載:

$ createdb dbname
$ gunzip -c filename.dump.gz | psql dbname



$ cat filename.dump.gz | gunzip | psql dbname

使用分割(split):

$ pg_dump dbname | split -b 1m - filename.dump.

重載:

$createdb dbname
$ cat filename.dump.* | pgsql dbname

當然,文件名(filename)和 pg_dump 輸出的內容不必與數據庫名一樣。同樣,重載的數據庫可以有任意新的名稱,所以這個機制還適用于給數據庫改名。

PostgreSQL已經是不利新聞的一個犧牲品,被列為一個學術的玩物,為真實世界使用太復雜。在過去這可能是對的,然而不再是。它有一個遠遠超過其他進展緩慢的數據庫甚至一些企業數據庫的功能集,然而, 它缺乏用來衡量達到高價產品的很多管理特征和調節能力,這些特征是數據庫決不會一般水平的數據庫所要求的,并且甚至他們不會注意到這很少的缺點。PostgreSQL在Unix數據庫競技場成為了一個真正的競爭者。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
高清欧美电影在线| 欧美丰满少妇xxxxx做受| 国产日韩综合一区二区性色av| 亚洲女人被黑人巨大进入| 国产精品成人免费电影| 国产一区二区黄| 亚洲黄页网在线观看| 国产成人精品视频在线观看| 亚洲黄色av女优在线观看| 欧洲中文字幕国产精品| 欧美性猛交xxxxx免费看| 久久精品国产久精国产思思| 国产精品久久久久久久久久久久| 欧美丰满少妇xxxxx做受| 国产成人avxxxxx在线看| 欧美另类在线播放| 亚洲成人网在线观看| 亚洲欧洲在线视频| 日韩av免费看| 久久亚洲成人精品| 97久久精品人人澡人人爽缅北| 日韩精品福利网站| 亚洲福利视频网站| 日韩精品极品视频| 久久久之久亚州精品露出| 日韩美女免费视频| 国产精品久久久久91| 北条麻妃一区二区在线观看| 亚洲男女自偷自拍图片另类| 91福利视频网| 亚洲qvod图片区电影| 国产精品7m视频| 日韩欧美第一页| 国产精品久久久久久av下载红粉| 97免费在线视频| 国产成人av在线播放| 亚洲一区二区三区四区在线播放| 欧美成人午夜免费视在线看片| 日本一区二区三区四区视频| 91精品在线国产| 亚洲在线免费观看| 91免费看片在线| 国产精品视频精品视频| 久久久久99精品久久久久| 午夜精品一区二区三区在线视频| 91国内免费在线视频| 曰本色欧美视频在线| 亚洲高清福利视频| 伊人一区二区三区久久精品| 欧美精品18videos性欧美| 亚洲国产精品国自产拍av秋霞| 久久久国产精品视频| 国产精品电影网| 国产色综合天天综合网| 青青青国产精品一区二区| 国产+成+人+亚洲欧洲| 91久久久精品| 亚洲精品久久7777777| 国产免费久久av| 色悠悠久久久久| 欧美一级成年大片在线观看| 91中文精品字幕在线视频| 美女福利视频一区| 亚洲精品www久久久久久广东| 国产亚洲精品91在线| 亚洲第一精品电影| 日韩精品免费电影| 久久久在线视频| 精品亚洲一区二区| 在线成人一区二区| 久久这里有精品视频| 亚洲bt欧美bt日本bt| www.99久久热国产日韩欧美.com| 91黄色8090| 国产亚洲在线播放| 国产精品免费久久久久影院| 日韩av一区在线观看| 久久久精品一区二区三区| 欧美午夜精品久久久久久人妖| 日韩精品中文字幕视频在线| 亚洲色图综合久久| 欧美激情精品久久久久久| 亚洲精选中文字幕| 欧美日韩亚洲网| 一区二区三区动漫| 欧美日韩国产综合视频在线观看中文| 日本一欧美一欧美一亚洲视频| 色悠悠久久88| 热re99久久精品国产66热| 亚洲电影免费观看高清| 爱福利视频一区| 亚洲永久在线观看| 欧美性受xxxx白人性爽| 日韩av中文字幕在线| 国产精品普通话| 538国产精品视频一区二区| 精品国产拍在线观看| 一区二区三区四区在线观看视频| 国产精品va在线| 国产精品久久久久久久久久东京| 国产午夜精品一区二区三区| 欧美视频第一页| 日韩av成人在线| 国产日韩av在线| 欧美午夜女人视频在线| 国产ts一区二区| 国产一区二区黑人欧美xxxx| 中文字幕亚洲在线| 欧美一级成年大片在线观看| 日韩av最新在线| 亚洲激情久久久| 欧美电影电视剧在线观看| 国产大片精品免费永久看nba| 97久久精品人搡人人玩| 欧美韩国理论所午夜片917电影| 久久成人18免费网站| 欧美最猛性xxxxx亚洲精品| 九九热视频这里只有精品| 欧美极品欧美精品欧美视频| 欧美成人全部免费| 久久综合88中文色鬼| 欧美性极品xxxx娇小| 欧美另类99xxxxx| 91社影院在线观看| 福利视频导航一区| 色悠悠久久88| 国产91网红主播在线观看| 北条麻妃99精品青青久久| 欧美一级电影在线| 国产精品视频一区国模私拍| 欧美刺激性大交免费视频| 狠狠色狠狠色综合日日小说| 欧美日韩一区二区精品| 亚洲福利小视频| 久久久精品2019中文字幕神马| 欧美日韩在线视频一区| 日本欧美中文字幕| 欧美老女人在线视频| 欧美高清视频一区二区| 日韩高清欧美高清| 亚洲欧美一区二区三区久久| 高潮白浆女日韩av免费看| 欲色天天网综合久久| 成人网在线免费看| 久久久国产91| 久久精品国产亚洲精品| 精品美女永久免费视频| 国产aⅴ夜夜欢一区二区三区| 国产精品草莓在线免费观看| 亚洲精品一区在线观看香蕉| 91九色国产社区在线观看| 在线看日韩欧美| 成人黄色av网站| 另类视频在线观看| 欧美日韩福利在线观看| 欧美精品激情在线观看| 日韩精品福利在线| 亚洲欧洲午夜一线一品| 欧洲永久精品大片ww免费漫画| 国产精品黄色影片导航在线观看| 91精品国产免费久久久久久| 中文字幕亚洲一区| 日韩在线免费视频观看| 国产欧美最新羞羞视频在线观看|