硕果仅存的真正开源数据库Postgresql

来源:it168 作者:王燃
  最近在做一些开源的数据库项目,到现在也有快两年了,当初做选择时还是在mysql与Postgresql 之间比较了下,当时感觉两者都差不多,各有优缺点,一句话也难说清,由于当时有现有的上线系统在使用postgresql db 所以最后也就选择了后者。

     一开始找资料时真是难呀!首先也是先来ITPUB来找的,找半天终于算是找到了一些关于postgresql 的初步介绍,连个完整安装也没找到,不过感觉有的自己想要的还是没有,比如replication,cluster 等等,后来只好硬着头皮去postgresql 的官方网站看英文的原档了,(http://www.postgresql.org/),好在自己以前有点数据库的概念,(以前做过oracle 的管理)感觉postgresql 的架构有很多方面和oracle 的都一样,比如归档备份这一块,都是产生archive file 来进行备份的,当时看到这个就感觉很亲切,心想这开源的还挺厉害的,连oarcle 的一些应用技术它都有,后来想想开源还是有开源的好处的,发展快,更新快,新技术应用的快,不像商业的数据库,它要从很多方面考虑商业赢利的运作,从而在技术更新方面有时侯就显得落后了一点儿,不过各有所长吧。

    总之当时就是觉得postgresql 的这方面的资料太少了,自己也只是共享一下学习到的一点微薄知识,也算是共同学习探讨一下,也希望本土的一些小型企业如果想从降低IT成本来考虑的话,我感觉postgresql 的确是一个不错的选择,感觉它的速度还是挺快的,如果你说mysql也不错,是的很不错,有个朋友是在藤讯做的,听说他们那里有很多系统就是建立在mysql上的,而且数据量还是挺 大的,不过大家要注意mysql 现在已被甲骨文收购了,可见其前途已是渺茫(只是个人之见),其它先不多说了,下面我就先从postgresql 的最基础写起,首先是安装了,其次是一个简单的操作,然后说说自己拿postgresql 与mssql做的一个性能比较,再谈谈postgresql 的备份与恢复,最后是性能调优方面,我想这些应该是学习一个数据库最基础的了,也是大家都想要了解的了,如果大家还有兴趣的话可以看看我们做的一个专案:mssql 向postgresql 的移转。

    序列:

    I.           Postgresql的安装
    II.          Postgresql 的简单操作
    III.         Postgresql 与 Mssql 性能比较
    IV.        Postgresql 的备份与恢复
    V.         Postgresql 性能调优
    VI.        基于Mssql 的数据库向Postgresql 的转移

    I. Postgresql的安装

    1.  建立系统平台,我的是 Centos 5.2 (Linux version 2.6.18-92.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Tue Jun 10 18:49:47 EDT 2008)我大致查了下只要是在linux 上安装的都着不多,只要区分好32位与64位就好了,我都是采用源码编译安装,感觉这样安装的话db 会更稳定些,只是个人感觉了,你也可以下载RPM包进行安装,这里只介绍源码编译的安装了。

    1.1  首先下载postgresql db 安装文件从下面网站:http://www.postgresql.org/ftp/source/v8.4.2/   选择文件postgresql-8.4.2.tar.gz进行下载;

    1.2  解压下载文件 

       # tar -zxvf postgresql-8.4.2.tar.gz
 

硕果仅存的真正开源数据库Postgresql

    2. 安装编译DB源文件所需的OS软件包gcc,  你可以把yum 设好,只需要yum install gcc 就可以了 (安装这个主要是为了可以compile)

    3. 创建postgres 用户(由于postgresql db 是基于postgres 这个os 用户的,所以必需先创建)

    # useradd postgres

    4. 授权给postgres 读取postgresql-8.4.2/的权限

    # chown -R postgres.postgres postgresql-8.4.2/

    5. 切换用户到postgres

    # su -l postgres

    6. 设置DB安装的环境变量

    $ export PGDATA=/usr/local/

    $ export LD_LIBRARY_PATH=/usr/local/pgsql/lib

    7. 进入到解压文件所在的目录

    $ cd postgresql-8.4.2/

    8. 编译安装

    $ ./configure --enable-thread-safety --without-zlib --without-readline --with-perl  

    这里稍微介绍下,首先要注意/configure 前面有个点的,后面的所带的参数大家可以在官方网站查到各个参数的作用,我主要说一个with-perl 这个主要是为了使DB在安装完以后支持perl 语言的使用,你可以在DB里创建用 Perl 写的存储过程等等,它还可以支持功能强大的pl/perlu,pl/tcl 等等。

    9. $ make

    10. 这一步要注意切换到root 下来做

    $ su root

    # make install

    11.切换到目录 /usr/local/pgsql  创建资料夹data,用于存放初始化的数据库,

    # cd /usr/local/pgsql

    # mkdir data

    12. 授权给postgres 读取data资料夹的权限

    # chown -R postgres /usr/local/pgsql/data

    13. 切换用户到postgres (注意从此以后只要是操作DB的就在postgres 用户下)

    # su -l postgres

    14. 初始化数据库

    $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

    到此数据库就算是安装完成了,这个写的有点详细,也许有点罗了吧,本人做事有时是比较细的,每个环节都要弄的清清楚楚,以前看别人有的写的贴子,就一段命令,看到每行不知什么作用,总是迷迷糊糊的,也算是解新手之迷吧,尤其是新学linux 的,这点我当初也是深有体会的。 


    II.   Postgresql 的简单操作

    1.上一节说了下安装,下面简单说下它的连接与使用,首先需要启动数据库

    (以下操作都是在postgres 用户下进行的)

    $ pg_ctl start

    2. 连接数据库

    $ psql 
 

硕果仅存的真正开源数据库Postgresql

    这样连接进来的是数据库的默认DB: postgres,输入英文字母l可以显示所以已经建立的数据库

    postgres=# l
 

硕果仅存的真正开源数据库Postgresql

    其中数据库名postgres ,tempalte0,template1都是初始化DB后自动建立起来的,这跟oracle 里面的系统表呀等等类似,用于维护其本身运作所必需的一些系统文件。

    3. 创建新的数据库,首先退出连接介面,其实在这个介面也是可以建立的    我们比较喜欢在系统下建立,也是出于安全的考虑,

    $ createdb test

    test 为自己创建的DB名
 

硕果仅存的真正开源数据库Postgresql

    4. 连接指定的数据库
   
    $ psql test
    

硕果仅存的真正开源数据库Postgresql

    在这个介面就可以下一些数据库的命令了,比如查表呀,select * from table,  等等一些DDL,DML数据库操作语句了,说到这里也许你要问了有没有运行在windows 上的一些客户端软件了,postgresql 的官方网站提供了一个pgadminIII的客户端软件,虽然不是太好用,有一些bug ,但想想这一切都是免费的也可以原谅了,如下图
 

硕果仅存的真正开源数据库Postgresql

    注意host 一栏是输入DB 所在机器的IP

    配置客户端连接时首先要确定你的linux 上的防火墙是关闭的,要不然你是连不进去的,再就是配置pg_hba.conf 这个数据库的配置文件里的几个参数,如下 

     cd /usr/local/pgsql/data/

     vi pg_hba.conf
 

硕果仅存的真正开源数据库Postgresql

    查看你的IP是哪一段把它加进去;

    再就是配置postgresql.conf
 

硕果仅存的真正开源数据库Postgresql

    vi postgresql.conf

  修改listen_addresses,port 这两个参数如上所示,这样你就可以从远端连入你的postgresql db 了。

    由于工作原因,今天就先到这里了,后面我会接着写下面的几个项目,祝虎年好运,但愿能给新手一点帮助。

    路慢慢其修远兮,吾将上下而求索!




   


时间:2010-03-03 17:17 来源:it168 作者:王燃 原文链接

好文,顶一下
(9)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量