安装postgresql 9.1.1

安装postgresql 9.1.1 ---版本自选,步骤相同 

1、安装必要的依赖包 
yum install -y gcc readline readline-devel zlib zlib-devel iostat python python-devel 

2、解压 
[postgres@mysqltest tmp]$ tar -zxvf postgresql-9.1.1.tar.gz  
[postgres@mysqltest tmp]$ cd postgresql-9.1.1 
[root@localhost postgresql-9.1.1]# ll 
total 2144 
-rw-r--r--  1 258 258     385 Sep 22  2011 aclocal.m4 
drwxrwxrwx  2 258 258    4096 Jul 16 00:14 config 
-rwxr-xr-x  1 258 258  862411 Sep 22  2011 configure 
-rw-r--r--  1 258 258   63014 Sep 22  2011 configure.in 
drwxrwxrwx 51 258 258    4096 Jul 16 00:14 contrib 
-rw-r--r--  1 258 258    1192 Sep 22  2011 COPYRIGHT 
drwxrwxrwx  3 258 258    4096 Jul 16 00:14 doc 
-rw-r--r--  1 258 258    3741 Sep 22  2011 GNUmakefile.in 
-rw-r--r--  1 258 258 1077847 Sep 22  2011 HISTORY 
-rw-r--r--  1 258 258   76550 Sep 22  2011 INSTALL 
-rw-r--r--  1 258 258    1489 Sep 22  2011 Makefile 
-rw-r--r--  1 258 258    1284 Sep 22  2011 README 
drwxrwxrwx 14 258 258    4096 Jul 16 00:14 src 
[root@localhost postgresql-9.1.1]# 

3、编译安装 
使用默认,那么会安装到/usr/local/pgsql/bin目录下 
./configure --prefix=/home/pgsql/9.1/   指定目录 

安装: 
gmake命令   ---直接执行,大概3-5分钟,最后几行如下: 
gmake[2]: Leaving directory `/postgresql-9.1.1/src/test/regress' 
gmake[1]: Leaving directory `/postgresql-9.1.1/src' 
gmake -C config all 
gmake[1]: Entering directory `/postgresql-9.1.1/config' 
gmake[1]: Nothing to be done for `all'. 
gmake[1]: Leaving directory `/postgresql-9.1.1/config' 
All of PostgreSQL successfully made. Ready to install. 

gmake install 
最后两行: 
gmake[1]: Leaving directory `/postgresql-9.1.1/config' 
PostgreSQL installation complete. 

也可以直接使用make && make install 

5、新建数据库用户postgres 
cd /home/pgsql/9.1 
mkdir data 
useradd postgres 
passwd postgres 
cd /home 
chown -R postgres:postgres  pgsql/   --修改data目录的属主为postgres,以便它可以进行读写 

6、环境变量设置,这一步千万不要忘记 
vi ~/.bash_profile 
export PGDATA=/home/pgsql/9.1/data 
export LD_LIBRARY_PATH=/home/pgsql/9.1/lib 
export PATH=/home/pgsql/9.1/bin:$PATH 
编辑完之后,记得source .bash_profile 

7、数据库初始化 
initdb 禁止除 PostgreSQL 用户帐户以外的任何用户访问这个目录。 
[postgres@localhost pg]$ /home/pgsql/9.1/bin/initdb  -D /home/pgsql/9.1/data 

8、启动和停止命令: 
启动: 
安装路径/bin/pg_ctl -D /usr/local/pgsql/data start 
安装路径/bin/postmaster -D /home/pgsql/9.1/data > logfile 2>&1 & 
  
停止: 
安装路径/bin/pg_ctl -D /usr/local/pgsql/data stop 

关闭:-m 是模式 smart 是等连接全部停掉。 fast 事务提交与回滚当前事务后关机 immediate 相当于断电 
/usr/pgsql/bin/pg_ctl stop -D /usr/pgsql/data -m f 

启动: 
/usr/pgsql/bin/postgres -D /usr/pgsql/data 
/usr/pgsql/bin/pg_ctl restart -D /usr/pgsql/data -m f 
/usr/pgsql/bin/pg_ctl start -D /usr/pgsql/data -m f 

9、修改远程连接设置 
修改文件 /opt/sda/pg922/data/postgresql.conf 
#listen_addresses = 'local' 改为 : listen_addresses = '*' 

修改文件 /opt/sda/pg922/data/pg_hba.conf 安装下面的形式改 
# IPv4 local connections: 
host    all             all             0.0.0.0/0            md5 

10、参数设置 
可参考12.20上的设置:(注意12.20的内存是32GB) 
[root@pg data]# grep ^[a-z] postgresql.conf 
listen_addresses = '*' # what IP address(es) to listen on; 
port = 5432 # (change requires restart) 
max_connections = 500 # (change requires restart) 
superuser_reserved_connections = 3 # (change requires restart) 
shared_buffers = 8GB # min 128kB 
work_mem = 400MB # min 64kB 
maintenance_work_mem = 512MB # min 1MB 
wal_level = hot_standby # minimal, archive, or hot_standby 
fsync = on # turns forced synchronization on or off 
synchronous_commit = on # synchronization level; on, off, or local 
checkpoint_segments = 128 # in logfile segments, min 1, 16MB each 
checkpoint_timeout = 20min # range 30s-1h 
archive_mode = on # allows archiving to be done 
archive_command = 'cp %p /home/pgsql/backup_new/archived_log/%f' # command to use to archive a logfile segment 
max_wal_senders = 5 # max number of walsender processes 
wal_keep_segments = 1024 # in logfile segments, 16MB each; 0 disables 
vacuum_defer_cleanup_age = 4 # number of xacts by which cleanup is delayed 
replication_timeout = 120s # in milliseconds; 0 disables 
max_standby_archive_delay = 60min # max delay before canceling queries 
max_standby_streaming_delay = 60min # max delay before canceling queries 
effective_cache_size = 30GB 
logging_collector = on # Enable capturing of stderr and csvlog 
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, 
log_truncate_on_rotation = off # If on, an existing log file with the 
log_rotation_age = 1d # Automatic rotation of logfiles will 
log_rotation_size = 10MB # Automatic rotation of logfiles will 
log_min_duration_statement = 500ms # -1 is disabled, 0 logs all statements 
log_line_prefix = '%t-%d-%h-%a :' # special values: 
log_statement = 'ddl' # none, ddl, mod, all 
log_temp_files = 10MB # log temporary files equal or larger 
datestyle = 'iso, ymd' 
lc_messages = 'en_US.UTF-8' # locale for system error message 
lc_monetary = 'en_US.UTF-8' # locale for monetary formatting 
lc_numeric = 'en_US.UTF-8' # locale for number formatting 
lc_time = 'en_US.UTF-8' # locale for time formatting 
default_text_search_config = 'pg_catalog.english' 

11、新建归档存放目录 
su - postgres 
cd /home/pgsql/ 
mkdir -p backup_new/archived_log 

12、添加postgresql到自动启动,以便可以service postgresql start启动 
添加自动启动 
[root@mysqltest data]# vi /etc/init.d/postgresql   ---将自动启动的代码贴进去 
#! /bin/sh 
# chkconfig: 2345 98 02 
# description: PostgreSQL RDBMS 

# This is an example of a start/stop script for SysV-style init, such 
# as is used on Linux systems.  You should edit some of the variables 
# and maybe the 'echo' commands. 

# Place this file at /etc/init.d/postgresql (or 
# /etc/rc.d/init.d/postgresql) and make symlinks to 
#   /etc/rc.d/rc0.d/K02postgresql 
#   /etc/rc.d/rc1.d/K02postgresql 
#   /etc/rc.d/rc2.d/K02postgresql 
#   /etc/rc.d/rc3.d/S98postgresql 
#   /etc/rc.d/rc4.d/S98postgresql 
#   /etc/rc.d/rc5.d/S98postgresql 
# Or, if you have chkconfig, simply: 
# chkconfig --add postgresql 

# Installation prefix 
prefix=/home/pgsql/9.1 

# Data directory 
PGDATA="/home/pgsql/9.1/data" 

# Who to run the postmaster as, usually "postgres".  (NOT "root") 
PGUSER=postgres 

# Where to keep a log file 
PGLOG="$PGDATA/serverlog" 

# The path that is to be used for the script 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

# What to use to start up the postmaster.  (If you want the script to wait 
# until the server has started, you could use "pg_ctl start -w" here. 
# But without -w, pg_ctl adds no value.) 
DAEMON="$prefix/bin/postmaster" 

# What to use to shut down the postmaster 
PGCTL="$prefix/bin/pg_ctl" 

set -e 

# Only start if we can find the postmaster. 
test -x $DAEMON || 

echo "$DAEMON not found" 
if [ "$1" = "stop" ] 
then exit 0 
else exit 5 
fi 

# Parse command line parameters. 
case $1 in 
  start) 
echo -n "Starting PostgreSQL: " 
test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj 
su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 
echo "ok" 
;; 
  stop) 
echo -n "Stopping PostgreSQL: " 
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" 
echo "ok" 
;; 
  restart) 
echo -n "Restarting PostgreSQL: " 
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" 
test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj 
su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 
echo "ok" 
;; 
  reload) 
        echo -n "Reload PostgreSQL: " 
        su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" 
        echo "ok" 
        ;; 
  status) 
su - $PGUSER -c "$PGCTL status -D '$PGDATA'" 
;; 
  *) 
# Print help 
echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 
exit 1 
;; 
esac 

exit 0 

[root@mysqltest init.d]# chmod +x postgresql 
[root@mysqltest init.d]# chkconfig --add postgresql 

以服务的形式启动pg 
[root@mysqltest init.d]# service postgresql start 
Starting PostgreSQL: ok 

13、创建用户,修改postgres密码: 
postgres=# CREATE ROLE engine LOGIN ENCRYPTED PASSWORD 'enginepassword'  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 

CREATE ROLE fenxi LOGIN 
  ENCRYPTED PASSWORD 'fenxi' 
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 

CREATE ROLE sqluser LOGIN 
  ENCRYPTED PASSWORD 'sqlpassword' 
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 
  
CREATE ROLE repluser LOGIN 
  ENCRYPTED PASSWORD 'repluser' 
  SUPERUSER INHERIT NOCREATEDB NOCREATEROLE REPLICATION; 

postgres=# alter user postgres password with 'tina'; 

14、建库: 
CREATE DATABASE rename_check 
WITH OWNER = postgres 
   ENCODING = 'UTF8' 
   TABLESPACE = pg_default 
   LC_COLLATE = 'zh_CN.UTF-8' 
   LC_CTYPE = 'zh_CN.UTF-8' 
   CONNECTION LIMIT = -1 
   TEMPLATE template0;    --必须是这个模板,不然会报下面的错 

GRANT CONNECT, TEMPORARY ON DATABASE rename_check TO public; 
GRANT ALL ON DATABASE rename_check TO postgres; 
COMMENT ON DATABASE rename_check  IS '改名系统'; 

报错: 
ERROR:  new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF-8) 

15、备份表(12.20): 
pg_dump --host localhost --port 5432 --username postgres -Fc --encoding=UTF8 --verbose 
--file /opt/db_backup/tmp_bk/five_tables.bk  -t t_rename_sample_state_list  -t t_rename_sample_state_sts 
-t  t_rename_task_type -t t_rename_task_type_list -t  t_rename_task_type_sts tm_samples 

16、新库来恢复表(12.108): 
pg_restore -U postgres -d rename_check  /tmp_bk/t_analyst_list.bk  2>&1 
pg_restore -U postgres -d rename_check  /tmp_bk/t_rename_analyst_list.bk 2>&1 

时间: 2024-12-03 11:02:45

安装postgresql 9.1.1的相关文章

FreeBSD下安装PostgreSQL新手教程

教程  FreeBSD下安装PostgreSQL新手教程  作者: heiyeluren QQ群: 5415735 (FreeBSD安装维护群) 日期: 2004/9/17 -- 特别感谢QQ群好友阿南,本文在他的耐心指导下才产生 -- PostgreSQL是一个开源的数据库管理系统,PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS), 也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.它的很多特性正是当今许多商业数据库的前身,有些特性甚至连商业数据库都不

Mac上使用homebrew安装PostgreSql

安装 brew 安装 postgresql : $ brew install postgresql 查看安装的版本: $ pg_ctl -V pg_ctl (PostgreSQL) 9.3.5 安装成功之后,安装路径为:/usr/local/var/postgres 接下来,初始化数据库: $ initdb /usr/local/var/postgres The files belonging to this database system will be owned by user "june

安装postgre 问题-安装postgreSQL时出现的警告如下图,望能够帮忙解决,谢谢

问题描述 安装postgreSQL时出现的警告如下图,望能够帮忙解决,谢谢 解决方案 去对应目录查看具体的log.

CentOS 6.x环境yum安装PostgreSQL 9.3.x及报错: jade: Command not found解决

CentOS 6.x环境下yum安装PostgreSQL 9.3.x的过程 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户. 下面记录CentOS 6.3环境下yum安装Postgres 9.3的简要过程. 1.查看已安装的包 # rpm -qa|grep postgres

linux安装PostgreSQL并启动和关闭教程

操作系统版本 [root@web103 ~]# more /etc/issueCentOS release 5.9 (Final)Kernel \r on an \m[root@web103 ~]# uname -aLinux web103 2.6.18-348.el5 #1 SMP Tue Jan 8 17:53:53 EST 2013 x86_64 x86_64 x86_64 GNU/Linux 下载对应PostgreSQL对应rpm包因为操作系统版本为CentOS 5.9的64位Linux

用一整天的时间安装postgreSQL NTFS权限_PostgreSQL

由于某个项目要求,需要安装postgreSQL,于是下载来.exe的安装文件运行. 一开始很顺利,可哪知安装到最后,初始化数据库的时候出现了一个该死的对话框(在此画个圈圈诅咒微软,他跳出来的错误对话框从来没什么用)云: Exception Processing Message c0000135 Parameters 759851d8 759851d8 759851d8 759851d8 手动运行initdb也是这样的错误. 遂到google搜索之,答案寥寥无几,却貌似都在讨论用户权限的问题. 难

linux安装PostgreSQL 9.4数据库并启动数据库

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES, Version 4.2为基础的对象关系型数据库管理系统(ORDBMS).POSTGRES开创的许多概念在很久以后才出现在商业数据库中.PostgreSQL是最初伯克利代码的一个开放源码的继承者.它支持大部分SQL标准并且提供了许多其它现代特性: 复杂查询 外键 触发器 可更新的视图 事务完整性 多版本并发控制 另外,PostgreSQL可以用许多方法进行扩展,比如通过增加新的: 数据类型 函数 操作符 聚合函数 索引方

在 Linux 上安装 PostgreSQL

  说实在的,我的这个 LAMP 网站,其实是不能遗忘这头大象的.MySQL 是一条轻快的小海豚,但是缺少很多现代关系数据库应有的特色,例如:引用完整性,视图,触发器等.因此,如果你需要开发一个电子商务的网站,需要这些功能的话,你或许应该考虑 PostgreSQL 了.本文将通过其在 Red Hat 7.1 上安装过程,简要介绍其用法. PostgreSQL 的官方下载地址为: ftp://ftp.postgresql.org/pub/v7.1.3/postgresql-7.1.3.tar.gz

centos下编译安装PostgreSQL数据库的教程

 PostgreSQL是开源关系型数据库的首选了,因为现在mysql数据库都给oracle收购了,下面我们来介绍在centos中编译PostgreSQL数据库的教程.   readline是一个开源的跨平台程序库,提供了交互式的文本编辑功能.postgresql需要readline的支持. wget -c https://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.gz [root@rootop postgresql-9.3