`
LJ你是唯一LT
  • 浏览: 243403 次
社区版块
存档分类
最新评论

安装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


分享到:
评论

相关推荐

    postgreSQL9.1.1英文帮助文件

    postgreSQL9.1.1英文帮助文件chm格式的。

    postgresql-9.1.1-1-windows-binaries

    在"postgresql-9.1.1-1-windows-binaries"这个压缩包中,包含了在Windows操作系统上安装和运行PostgreSQL 9.1.1所需的所有基本组件。这个版本针对的是对数据库性能、稳定性和兼容性有较高要求的用户。 **1. ...

    postgresql-9.1.1.tar.gz

    标题中的"postgresql-9.1.1.tar.gz"表明这是一个针对PostgreSQL 9.1.1版本的源代码压缩包,通常用于在Linux或Unix-like系统上进行编译安装。 **一、PostgreSQL核心概念** 1. **关系型数据库**: PostgreSQL作为一款...

    Devart UniDAC 9.1.1 Professional For RAD Studio 11 Alexandria

    在描述中提到的"exe文件,直接安装,非源码"意味着用户可以直接下载并执行unidac_9.1.1_d28pro.exe安装文件来安装组件,无需处理源代码。这个版本已经过Delphi 11的测试,确保在该开发环境下能正常运行。 总之,...

    UniDAC 9.1.1 Delphi10.3 Rio

    《UniDAC 9.1.1 Delphi10.3 Rio:高效数据库访问技术解析》 UniDAC(Universal Data ...安装文件"unidac_9.1.1_d26pro-Rio.exe"正是实现这一切的关键,只需运行此文件,即可将这一优秀工具添加到你的开发工具箱中。

    UniDAC 9.1.1 Pro Delphi11 Alexandria

    在实际开发中,通过"unidac_9.1.1_d28pro-Alexandria.exe"这个安装文件,用户可以快速简便地在Delphi 11环境中安装并开始使用UniDAC。只需几步简单的配置,就可以将数据库连接集成到项目中,从而大大提高开发效率。 ...

    Devart UniDAC 9.1.1 Professional For RAD Studio 10.3 Rio

    在安装过程中,提供的"unidac_9.1.1_d26pro.exe"是一个可执行文件,用户只需运行该文件,按照向导提示进行安装,即可将UniDAC集成到Delphi 10.3 Rio的IDE中。由于是直接安装文件,而不是源码,用户无法查看或修改...

    Devart UniDAC 9.1.1 Professional For RAD Studio 10.4 Sydney

    Devart UniDAC 9.1.1 Professional 是一个专门针对RAD Studio 10.4 Sydney开发的数据库连接组件。这个版本特别为使用Delphi ...安装文件"unidac_9.1.1_d27pro.exe"提供了完整的组件库,可以直接安装到开发环境中使用。

    Devart-UniDAC-9.1.1-Pro-RAD-Studio-10.4-Sydney-Downloadly.ir.rar

    它支持多种数据库引擎,包括Oracle、MySQL、SQL Server、PostgreSQL、SQLite等,提供了统一的API来访问不同的数据库系统,大大简化了数据库连接和数据操作的工作。 在标题中提到的"Devart-UniDAC-9.1.1-Pro-RAD-...

    unidac_9.1.1_D11.rar

    主要组件有ODAC(Oracle数据访问组件),SDAC(SQL Server数据访问组件),MyDAC(MySQL数据访问)包括IBDAC组件(InterBase 和 Firebird 数据访问组件)、PgDAC 组件(PostgreSQL 数据访问组件)和 LiteDAC 组件...

    UniDAC9.1.1

    在Delphi编程中,UniDAC(Universal Data Access Components)是一个关键的工具,它允许开发者无需了解底层数据库API即可直接与各种数据库系统交互,包括但不限于Oracle、MySQL、SQL Server、PostgreSQL、SQLite、...

    Devart_UniDAC_9.1.1_Professional_For_Alexandria XE11

    UniDAC,全称 Universal Data Access Components,正如其名,它支持多种数据库类型,包括但不限于 Oracle、MySQL、SQL Server、PostgreSQL、SQLite、Firebird 等,使开发者能够轻松地在各种数据库系统之间进行数据...

    UniDAC 9.1.1 Pro

    主要组件有ODAC(Oracle数据访问组件),SDAC(SQL Server数据访问组件),MyDAC(MySQL数据访问)包括IBDAC组件(InterBase 和 Firebird 数据访问组件)、PgDAC 组件(PostgreSQL 数据访问组件)和 LiteDAC 组件...

    UniDAC 9.3 Pro for RAD Studio 11.2

    2. **一键安装即可.txt**:这可能是一个简短的说明文件,提供了关于如何使用unidac_9.1.1_d28pro.exe进行一键安装的指导,包括可能的系统需求、安装步骤以及安装后如何在项目中使用UniDAC等信息。 UniDAC的主要特点...

    Devart_UniDAC_v8.3.2_Pro_Retail_RAD_Studio_10.4.1.rar

    它提供了一个统一的接口来访问多种关系型数据库管理系统(RDBMS),包括但不限于Oracle、MySQL、SQL Server、PostgreSQL、SQLite、Firebird等。 UniDAC的主要特点和优势包括: 1. **跨平台支持**:UniDAC可以在...

    宇宙最强数据库访问组件

    它是跨平台的数据库连接解决方案,允许开发者直接与多种关系型数据库管理系统(RDBMS)进行交互,如Oracle、MySQL、SQL Server、PostgreSQL、SQLite等。通过UniDAC,开发者无需关心底层数据库的具体实现,只需编写...

Global site tag (gtag.js) - Google Analytics