PostgreSQL安装及Streaming Replication配置是本文我们主要要介绍的内容,因为项目需要搭建postgres环境,并要求具有一定的可靠性。所以笔者在搭建这个环境的同时把步骤及命令记录下来的。笔者是DB2 DBA.但现在项目准备从DB2迁移到postgresql. postgresql笔者也是刚刚接触.笔者以后会把学到的关于postgresql的知识,以及DB2迁移postgresql过程中遇到的问题及经验总结出来,陆续整理成文档.,然后和有同样需求的朋友进行交流,希望能够对您有所帮助。

- -------------------------------------------------------
 - >>>>>>>>>INSTALL<<<<<<<<<<<<<
 - --primary 10.4.5.94
 - --standby 10.4.5.93
 - --standby 10.4.5.91
 - psql (PostgreSQL) 9.0.4
 - -------------------------------------------------------
 - cd /root/postgresql-9.0.4
 - ./configure --with-wal-segsize=32 --with-wal-blocksize=16
 - gmake
 - gmake install
 - adduser postgres
 - mkdir -p /usr/local/pgsql/data
 - mkdir -p /usr/local/pgsql/etc
 - chown postgres /usr/local/pgsql/data
 - chown postgres /usr/local/pgsql/etc
 - chown postgres /pg_data_logs
 - cd /pg_data_logs/
 - mkdir pg_xlog
 - chown postgres pg_xlog/
 - su - postgres
 - /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --xlogdir=/pg_data_logs/pg_xlog
 - mv /usr/local/pgsql/data/*.conf /usr/local/pgsql/etc
 - exit (su - root)
 - cp /root/postgresql-9.0.4/contrib/start-scripts/linux /etc/init.d/postgresd
 - vi /etc/init.d/postgresd 修改如下部分,用-c config_file指定postgresql.conf的位置:
 - ===============================================================
 - start)
 - echo -n "Starting PostgreSQL: "
 - test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj
 - su - $PGUSER -c "$DAEMON -D '$PGDATA' -c config_file=/usr/local/pgsql/etc/postgresql.conf &" >>$PGLOG 2>&1
 - 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' -c config_file=/usr/local/pgsql/etc/postgresql.conf &" >>$PGLOG 2>&1
 - echo "ok"
 - ;;
 - ===============================================================
 - vi /usr/local/pgsql/etc/postgresql.conf 修改如下部分:
 - ===============================================================
 - #------------------------------------------------------------------------------
 - # FILE LOCATIONS
 - #------------------------------------------------------------------------------
 - # The default values of these variables are driven from the -D command-line
 - # option or PGDATA environment variable, represented here as ConfigDir.
 - #data_directory = 'ConfigDir' # use data in another directory
 - # (change requires restart)
 - hba_file = '/usr/local/pgsql/etc/pg_hba.conf' # host-based authentication file
 - # (change requires restart)
 - ident_file = '/usr/local/pgsql/etc/pg_ident.conf' # ident configuration file
 - # (change requires restart)
 - # If external_pid_file is not explicitly set, no extra PID file is written.
 - #external_pid_file = '(none)' # write an extra PID file
 - # (change requires restart)
 - ===============================================================
 - /etc/init.d/postgresd start
 - -------------------------------------------------------
 
- >>>>>>>>>Streaming Replication<<<<<<<<<<<<<
 - -------------------------------------------------------
 - --IN ALL SERVER:
 - 修改访问控制
 - vi /usr/local/pgsql/etc/pg_hba.conf
 - ***加一行
 - host all all 10.4.5.0/24 password
 - host all all 10.4.2.0/24 password
 - 修改监听范围
 - vi /usr/local/pgsql/etc/postgresql.conf
 - 修改listen_addresses = ‘localhost’为listen_addresses = ‘*’,如果前面有#号则需要删除#号
 - 重启
 - /etc/init.d/postgresd restart
 - --IN PRIMARY SERVER:
 - 设置同步账号
 - psql
 - create user repl superuser login password 'meiyoumima';
 - 修改访问控制
 - vi /usr/local/pgsql/etc/pg_hba.conf
 - ***添加以下内容
 - host replication repl 10.4.5.93/32 password
 - host replication repl 10.4.5.91/32 password
 
修改postgresql服务配置文件
- vi /usr/local/pgsql/etc/postgresql.conf
 - ####Add by paolo for replications
 - wal_level = hot_standby
 - archive_mode = on
 - archive_command = 'cp -i %p /pg_data_logs/archivedir/%f
 - #archive_timeout = 600
 - archive_timeout = 86400
 - max_wal_senders = 5
 - wal_keep_segments = 32
 
建立归档目录
mkdir -p /pg_data_logs/archivedir
重启
/etc/init.d/postgresd restart
--IN STANDBY SERVER:
修改postgresql服务配置文件
- vi /usr/local/pgsql/etc/postgresql.conf
 - #Add by paolo for replications
 - wal_level = hot_standby
 - hot_standby = on
 - vi /usr/local/pgsql/etc/recovery.conf
 - #Add by paolo for replications
 - restore_command = 'cp /pg_data_logs/archivedir/%f %p'
 - archive_cleanup_command = 'pg_archivecleanup /pg_data_logs/archivedir %r'
 - standby_mode = 'on'
 - primary_conninfo = 'host=10.4.5.94 port=5432 user=repl password=meiyoumima'
 - trigger_file = '/home/postgres/trigger_activestb'
 
建立归档目录
mkdir -p /pg_data_logs/archivedir
停止postgres
/etc/init.d/postgresd stop
删除原数据目录下数据文件
- exit (su - root)
 - cd /usr/local/pgsql/
 - rm -rf data/
 - mkdir data
 - chown postgres data
 - chmod -R 700 data/
 
- >>>>>>>>>>>>>>传送数据文件到StandBy并启动集群<<<<<<<<<<<<<<<<<
 - --IN PRIMARY
 - su - postgres
 - psql -c "SELECT pg_start_backup('label',true);"
 - cd /usr/local/pgsql/
 - scp -r data/ postgres@10.4.5.93:/usr/local/pgsql/
 - scp -r data/ postgres@10.4.5.91:/usr/local/pgsql/
 - --IN STANDBY
 - su - postgres
 - cd /usr/local/pgsql/data
 - rm postmaster.pid
 - ln -s /usr/local/pgsql/etc/recovery.conf recovery.conf
 - cd pg_xlog
 - mv * /pg_data_logs/archivedir/
 - /etc/init.d/postgresd start
 - --IN PRIMARY
 - su - postgres
 - psql -c "SELECT * from pg_stop_backup();"
 
重启
- /etc/init.d/postgresd restart
 - -------------------------------------------------------
 - >>>>>>>>>pg_archivecleanup inatall<<<<<<<<<<<<<
 - -------------------------------------------------------
 - su - root
 - cd postgresql-9.0.4/contrib/pg_archivecleanup/
 - make
 - make install
 
关于PostgreSQL安装及Streaming Replication配置就介绍到这里了,希望本次的介绍能够对您有所收获!
                文章题目:PostgreSQL安装及StreamingReplication配置详解
                
                转载注明:http://www.csdahua.cn/qtweb/news46/386046.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网