【IT168 专稿】PostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),功能强大,特性丰富的自由软件数据库系统。这个起源于伯克利(BSD)的数据库研究计划目前已经成为一项国际开发项目,并且有非常广泛的用户。在灵活的BSD风格许可证下发行。
PostgreSQL的前身是BSD的始于1977年的Ingres项目,这个项目是Michael Stonebraker教授领导的,在1982 年,Michael Stonebraker离开伯克利商业化了Ingres,Ingres是一个非关系型的数据库,数据关系需要由用户有意识地维护,在1985年,Michael Stonebraker回到伯克利开始一个后-Ingres(post-Ingres)的项目,目的是解决Ingres中,同时也是1980年代的数据库系统中的主要问题:数据关系维护的问题。这就是 Postgres 的开端。1989年6月发布了版本1,1990年6月发布了版本2,1991年发布了版本3。在版本3里改进了规则系统,增加了多存储系统支持以及改进了查询引擎。在1993年,特性需求急剧增加;在做了一些代码清理、发布了版本4之后,Postgres 项目正式终止。
Postgres 并没有因为 Postgres 项目的终止而停止发展,而是仍然在各种场合被人们所使用,在1994年,两名伯克利的研究生,来自中国香港的 Andrew Yu 和 Jolly Chen,向 Postgres 里增加了现代的 SQL 语言的支持。而原先Postgres用的是 QUEL/Postquel 语言, 1992年SQL 语言的国际标准发布,当时称为 SQL2,但是人们常称为 SQL92。两位研究生是用 bison 和 flex 工具的组合,把Postgres 的Postquel查询语言替换成了 SQL92,然后将Postgres改名为 Postgres95,并将其发布到了互联网上,随后的 1996 年,加拿大的 Marc Fournier提供了第一个非大学的开发服务器平台,然后 Bruce Momjian(美国)和 Vadim B. Mikheev(俄国)开始修改以及稳定伯克利发布的代码,并于1996年8月发布了第一个开源版本。
随后,这些开发者把项目名称改变为 PostgreSQL,以对应 SQL 的支持,并且把 PostgreSQL 的版本号重新放到了原先 Postgres 项目的顺序中去,从 6.0 开始(Postgres 本身到4.2,Postgres95 算5.0)。7.x版本增加了预写入日志的功能,优化了In查询等,8.x版本提升了EXISTS 和NOT EXISTS性能,增加了并行恢复、分析函数和递归With查询等。9.x版本增加了对SQL:2008标准的支持,在数据恢复性能、分析函数等方面加强。
目前,PostgreSQL 的稳定版本到了9.0.4,同时还支持8.x版本的更新,在RDBMS的各种特性方面,已经接近于“无可指摘”的境界了。而目前 PostgreSQL 的开发是围绕在更易用的 SQL 语言扩展、SQL 标准的兼容(比如SQL2003、XML/Xquery的支持)、扩展工具、外围工具等方面。
一些商业公司在PostgreSQL代码的基础上,添加了Oracle兼容性和集群等增强功能,发行了各种企业级商业数据库,著名的有EnterpriseDB 和Greenplum,请读者自行查阅相关资料,这里不再赘述。
一、数据库安装
PostgreSQL在其官方网站http://www.postgresql.org/download/上提供了各种版本软件的下载连接,官方主要发布源代码版本,而编译好的二进制发行版由认证的第3方公司提供,RPM版本的下载连接是http://www.openscg.org/se/postgresql/packages.jsp ,提供32位和64位版本,我们选择64位rpm版进行测试。
PostgreSQL网站http://www.postgresql.org/docs/9.0/interactive/index.html提供了文档在线浏览。http://www.postgresql.org/docs/也有部分其它语言的文档,但没有简体中文版,国内PostgreSQL的志愿者在http://www.pgsqldb.org/提供了8.x的中文文档,便于熟悉中文的用户学习。如果要学习最新的9.0版本,还是建议下载http://www.postgresql.org/files/documentation/pdf/9.0/postgresql-9.0-A4.pdf,制作精美,具备搜索功能。
本次测试基于 Intel Xeon 7550*8的 PC服务器上用 VMWare VSphere 4.1管理的虚拟机,虚拟机的逻辑 CPU个数是 8,内存 100GB,存储为 8个 300GB SAS本地磁盘,采用一块 512M缓存 RAID卡,按 RAID5方式组成磁盘阵列。操作系统采用和 RHEL 5相同的核心级别的 RedFlag Asian Linux Sever 3.0 x64。因此选用的安装文件是RHEL5 (x86, 64-bit), RPM Package版本,postgres-9.0.4-1.x86_64.openscg.rpm,总大小大约16MB。
安装步骤如下:
1.安装前准备工作
文档中介绍安装PostgreSQL前,首先要创建postgres用户和组,但作为一款广受欢迎的软件,很多Linux发行版中都默认安装了PostgreSQL, RedFlag Linux也不例外,因此,建用户的步骤可以忽略。
先来查看一下,系统中已经安装的版本:

















可见,系统预安装的是8.1版本。将下载来的安装文件上传到Linux服务器。然后不卸载旧版PostgreSQL,直接用rpm -ivh命令安装,安装成功了,但是需要注意:/usr/bin上的postgres和psql命令是连接到旧版的,如果要用9.0版,需要指定文件的路径。





Rpm文件安装完成,下一步是用initdb命令初始化数据库。




















