当前位置:数据库 > SQLServer >>

PostgreSql服务器的配置

PostgreSql服务器的配置
 
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 
制作 ODBC 驱动包. 
 
--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_des cription 

 

 
-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 s cript for starting up the PostgreSQL 
# server 
# chkconfig: 345 85 15 
# des cription: 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. 
[ ${NETWORKING} = "no&q
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,