Centos 安装postgreSQL9.4.3

 

 

rpm -ivh http://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7.2-x86_64/pgdg-centos94-9.4-3.noarch.rpm

yum install postgresql94-server postgresql94-contrib -y

#首先在/home下创建一个Postgresql的数据目录
mkdir /home/postgresql_data

#然后为这个目录指定所有者同时分配权限
chown postgres:postgres /home/postgresql_data -R

chmod 0700 /home/postgresql_data

#请在root用户和切换至postgres用户,同时设置环境变量
export PATH=/usr/pgsql-9.4/bin:$PATH

export LD_LIBRARY_PATH=/usr/pgsql-9.4/lib

export PGDATA=/home/postgresql_data

#然后source使环境变量生效
source .bash_profile

#然后使用命令initdb生成数据库簇,
initdb

#最后尝试启动Postgresql服务

pg_ctl start -D $PGDATA


#使用 ps -ef | grep postgres 验证,如果有一堆postgres相关进程,那就安装成功了。

如果就到此结束了,貌似第4步就没法做了,因为使用 systemctl start postgresql-9.4 将不会成功的,为啥呢?请打开
vi /usr/lib/systemd/system/postgresql-9.4.service ,因为在#Location of database direcotry配置节里面没有指定正确的PGDATA。所以我们需要将下面的PGDATA设置成正确值

#Location of database directory
Environment=PGDATA=/home/postgresql_data

#设置服务开机自启动
systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service(注意:如果已经使用pg_ctl start -D $PGDATA启动数据库,必须先停止数据库运行pg_ctl stop,否则将会由于端口冲突导致数据库服务无法启动)
systemctl status postgresql-9.4.service
------------------------------------------------------------------------------------------

安装数据库同步


在主数据库db1上执行:

mkdir -p /home/postgresql_data/xlog_archive
---------------------------------------------------

vi /home/postgresql_data/postgresql.conf

listen_addresses = '*'
wal_level = hot_standby
synchronous_commit = on
archive_mode = on
archive_command = 'cp %p /home/postgresql_data/xlog_archive/%f'
max_wal_senders=5
wal_keep_segments = 32
hot_standby = on
restart_after_crash = off
restart_after_crash = off

-------------------------------------------------------------
#创建用于数据库同步的用户replica并授予权限
create user replica superuser password 'replica';
--------------------------------------------------------------
vi /home/postgresql_data/pg_hba.conf

local all all trust
host all all 192.168.2.0/24 trust #允许94连接到主服务器
host replication replica 192.168.2.0/24 md5 #允许94使用postpgresql用户来复制

---------------------------------------------------------------
db1上切换postgresql用户执行:

pg_ctl start -D $PGDATA

或者root用户执行:

systemctl restart postgresql-9.4.service
-----------------------------------------------------------

在从数据库db2上执行

#首先在/home下创建一个Postgresql的数据目录
mkdir /home/postgresql_data

#然后为这个目录指定所有者同时分配权限
chown -R postgres:postgres /home/postgresql_data

chmod 7500 /home/postgresql_data

#然后切换用户:

su - postgres

pg_basebackup -h 192.168.2.103 -U postgres -D $PGDATA -X stream -P(提示输入postgres用户密码)
Password:
86664/86664 kB (100%), 1/1 tablespace

-------------------------------------------------------------------------
vi /home/postgresql_data/recovery.conf
standby_mode = on # 说明该节点是从服务器
primary_conninfo = 'host=192.168.2.103 port=5432 user=postgres password=postgres' # 主服务器的信息以及连接的用户
recovery_target_timeline = 'latest'
--------------------------------------------------------------------------
#启动数据库

pg_ctl -D /data/postgresql/data/ start 或 systemctl start postgresql-9.4.service

posted @ 2020-03-16 17:01  疯刘小三  阅读(295)  评论(0编辑  收藏  举报