PostgreSQL安装及StreamingReplication配置详解

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

 
 
 
  1. -------------------------------------------------------
  2. >>>>>>>>>INSTALL<<<<<<<<<<<<<
  3. --primary 10.4.5.94
  4. --standby 10.4.5.93
  5. --standby 10.4.5.91
  6. psql (PostgreSQL) 9.0.4
  7. -------------------------------------------------------
  8. cd /root/postgresql-9.0.4
  9. ./configure --with-wal-segsize=32 --with-wal-blocksize=16
  10. gmake
  11. gmake install
  12. adduser postgres
  13. mkdir -p /usr/local/pgsql/data
  14. mkdir -p /usr/local/pgsql/etc
  15. chown postgres /usr/local/pgsql/data
  16. chown postgres /usr/local/pgsql/etc
  17. chown postgres /pg_data_logs
  18. cd /pg_data_logs/
  19. mkdir pg_xlog
  20. chown postgres pg_xlog/
  21. su - postgres
  22. /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --xlogdir=/pg_data_logs/pg_xlog
  23. mv /usr/local/pgsql/data/*.conf /usr/local/pgsql/etc
  24. exit (su - root)
  25. cp /root/postgresql-9.0.4/contrib/start-scripts/linux /etc/init.d/postgresd
  26. vi /etc/init.d/postgresd  修改如下部分,用-c config_file指定postgresql.conf的位置:
  27. ===============================================================
  28.   start)
  29.         echo -n "Starting PostgreSQL: "
  30.         test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj
  31.         su - $PGUSER -c "$DAEMON -D '$PGDATA' -c config_file=/usr/local/pgsql/etc/postgresql.conf &" >>$PGLOG 2>&1
  32.         echo "ok"
  33.         ;;
  34.   restart)
  35.         echo -n "Restarting PostgreSQL: "
  36.         su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"
  37.         test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj
  38.         su - $PGUSER -c "$DAEMON -D '$PGDATA' -c config_file=/usr/local/pgsql/etc/postgresql.conf &" >>$PGLOG 2>&1
  39.         echo "ok"
  40.         ;;
  41. ===============================================================
  42. vi /usr/local/pgsql/etc/postgresql.conf  修改如下部分:
  43. ===============================================================
  44. #------------------------------------------------------------------------------
  45. # FILE LOCATIONS
  46. #------------------------------------------------------------------------------
  47. # The default values of these variables are driven from the -D command-line
  48. # option or PGDATA environment variable, represented here as ConfigDir.
  49. #data_directory = 'ConfigDir'           # use data in another directory
  50.                                         # (change requires restart)
  51. hba_file = '/usr/local/pgsql/etc/pg_hba.conf'     # host-based authentication file
  52.                                         # (change requires restart)
  53. ident_file = '/usr/local/pgsql/etc/pg_ident.conf' # ident configuration file
  54.                                         # (change requires restart)
  55. # If external_pid_file is not explicitly set, no extra PID file is written.
  56. #external_pid_file = '(none)'           # write an extra PID file
  57.                                         # (change requires restart)
  58. ===============================================================
  59. /etc/init.d/postgresd start
  60. -------------------------------------------------------
 
 
 
  1. >>>>>>>>>Streaming Replication<<<<<<<<<<<<<
  2. -------------------------------------------------------
  3. --IN ALL SERVER:
  4. 修改访问控制
  5. vi /usr/local/pgsql/etc/pg_hba.conf
  6. ***加一行
  7. host all all 10.4.5.0/24 password
  8. host all all 10.4.2.0/24 password
  9. 修改监听范围
  10. vi /usr/local/pgsql/etc/postgresql.conf
  11. 修改listen_addresses = ‘localhost’为listen_addresses = ‘*’,如果前面有#号则需要删除#号
  12. 重启
  13. /etc/init.d/postgresd restart
  14. --IN PRIMARY SERVER:
  15. 设置同步账号
  16. psql
  17. create user repl superuser login password 'meiyoumima';
  18. 修改访问控制
  19. vi /usr/local/pgsql/etc/pg_hba.conf
  20. ***添加以下内容
  21. host replication repl 10.4.5.93/32 password
  22. host replication repl 10.4.5.91/32 password

修改postgresql服务配置文件

 
 
 
  1. vi /usr/local/pgsql/etc/postgresql.conf
  2. ####Add by paolo for replications
  3. wal_level = hot_standby
  4. archive_mode = on
  5. archive_command = 'cp -i %p /pg_data_logs/archivedir/%f 
  6. #archive_timeout = 600
  7. archive_timeout = 86400
  8. max_wal_senders = 5
  9. wal_keep_segments = 32

建立归档目录

mkdir -p /pg_data_logs/archivedir

重启

/etc/init.d/postgresd restart

--IN STANDBY SERVER:

修改postgresql服务配置文件

 
 
 
  1. vi /usr/local/pgsql/etc/postgresql.conf
  2. #Add by paolo for replications
  3. wal_level = hot_standby
  4. hot_standby = on
  5. vi /usr/local/pgsql/etc/recovery.conf
  6. #Add by paolo for replications
  7. restore_command = 'cp /pg_data_logs/archivedir/%f %p' 
  8. archive_cleanup_command = 'pg_archivecleanup /pg_data_logs/archivedir %r'
  9. standby_mode = 'on'
  10. primary_conninfo = 'host=10.4.5.94 port=5432 user=repl password=meiyoumima'
  11. trigger_file = '/home/postgres/trigger_activestb'

建立归档目录

mkdir -p /pg_data_logs/archivedir

停止postgres

/etc/init.d/postgresd stop

删除原数据目录下数据文件

 
 
 
  1. exit (su - root)
  2. cd /usr/local/pgsql/
  3. rm -rf data/
  4. mkdir data
  5. chown postgres data
  6. chmod -R 700 data/
 
 
 
  1. >>>>>>>>>>>>>>传送数据文件到StandBy并启动集群<<<<<<<<<<<<<<<<<
  2. --IN PRIMARY
  3. su - postgres
  4. psql -c "SELECT pg_start_backup('label',true);"
  5. cd /usr/local/pgsql/
  6. scp -r data/ postgres@10.4.5.93:/usr/local/pgsql/
  7. scp -r data/ postgres@10.4.5.91:/usr/local/pgsql/
  8. --IN STANDBY
  9. su - postgres
  10. cd /usr/local/pgsql/data
  11. rm postmaster.pid
  12. ln -s /usr/local/pgsql/etc/recovery.conf recovery.conf
  13. cd pg_xlog
  14. mv * /pg_data_logs/archivedir/
  15. /etc/init.d/postgresd start
  16. --IN PRIMARY
  17. su - postgres
  18. psql -c "SELECT * from pg_stop_backup();"

重启

 
 
 
  1. /etc/init.d/postgresd restart
  2. -------------------------------------------------------
  3. >>>>>>>>>pg_archivecleanup inatall<<<<<<<<<<<<<
  4. -------------------------------------------------------
  5. su - root
  6. cd postgresql-9.0.4/contrib/pg_archivecleanup/
  7. make
  8. make install

关于PostgreSQL安装及Streaming Replication配置就介绍到这里了,希望本次的介绍能够对您有所收获!

网页标题:PostgreSQL安装及StreamingReplication配置详解
URL分享:http://www.shufengxianlan.com/qtweb/news46/386046.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联