国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PostgreSql服務器的配置

2024-07-21 02:13:49
字體:
來源:轉載
供稿:網友

  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字節.

|||中國最大的web開發資源網站及技術社區,

  檢查你有足夠的磁盤空間。你需要為源代碼樹準備大約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源文件目錄:

|||
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  •   $ ./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、配置共享庫:

      告訴你的系統如何找到共享庫。如何實現這些因平臺而異。看起來可以在任何地方生效的方法是設置環境變量 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服務;

      前面的步驟應該已經告訴你如何啟動數據庫服務器。現在就做。

      $ /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

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

      [[email protected]]# chmod 700 /etc/rc.d/init.d/postgresql

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

      [[email protected]]# 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數據庫競技場成為了一個真正的競爭者。

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 甘孜县| 鄄城县| 惠州市| 台南市| 扶绥县| 富民县| 六枝特区| 新泰市| 新竹市| 达拉特旗| 额敏县| 永安市| 南京市| 龙江县| 扎兰屯市| 永宁县| 永新县| 凤城市| 竹溪县| 屏南县| 台中县| 怀化市| 福建省| 安康市| 柳河县| 隆安县| 绩溪县| 宁海县| 拜泉县| 宝山区| 玛多县| 藁城市| 高青县| 伊金霍洛旗| 临潭县| 文昌市| 大厂| 浦城县| 上思县| 潍坊市| 信丰县|