PostgreSQL安装及Streaming Replication配置详解

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.  
  7. psql (PostgreSQL) 9.0.4  
  8. -------------------------------------------------------  
  9. cd /root/postgresql-9.0.4  
  10. ./configure --with-wal-segsize=32 --with-wal-blocksize=16 
  11. gmake  
  12. gmake install  
  13. adduser postgres  
  14. mkdir -p /usr/local/pgsql/data  
  15. mkdir -p /usr/local/pgsql/etc  
  16. chown postgres /usr/local/pgsql/data  
  17. chown postgres /usr/local/pgsql/etc  
  18. chown postgres /pg_data_logs  
  19. cd /pg_data_logs/  
  20. mkdir pg_xlog  
  21. chown postgres pg_xlog/  
  22. su - postgres  
  23. /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --xlogdir=/pg_data_logs/pg_xlog  
  24. mv /usr/local/pgsql/data/*.conf /usr/local/pgsql/etc  
  25. exit (su - root)  
  26. cp /root/postgresql-9.0.4/contrib/start-scripts/linux /etc/init.d/postgresd  
  27. vi /etc/init.d/postgresd  修改如下部分,用-c config_file指定postgresql.conf的位置: 
  28. ===============================================================  
  29.   start)  
  30.         echo -n "Starting PostgreSQL: "  
  31.         test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj  
  32.         su - $PGUSER -c "$DAEMON -D '$PGDATA' -c config_file=/usr/local/pgsql/etc/postgresql.conf &" >>$PGLOG 2>&1  
  33.         echo "ok"  
  34.         ;;  
  35.   restart)  
  36.         echo -n "Restarting PostgreSQL: "  
  37.         su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"  
  38.         test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj  
  39.         su - $PGUSER -c "$DAEMON -D '$PGDATA' -c config_file=/usr/local/pgsql/etc/postgresql.conf &" >>$PGLOG 2>&1  
  40.         echo "ok"  
  41.         ;;  
  42. ===============================================================  
  43.  
  44. vi /usr/local/pgsql/etc/postgresql.conf  修改如下部分: 
  45. ===============================================================  
  46. #------------------------------------------------------------------------------  
  47. # FILE LOCATIONS  
  48. #------------------------------------------------------------------------------  
  49.  
  50. # The default values of these variables are driven from the -D command-line  
  51. # option or PGDATA environment variable, represented here as ConfigDir.  
  52.  
  53. #data_directory = 'ConfigDir'           # use data in another directory  
  54.                                         # (change requires restart)  
  55. hba_file = '/usr/local/pgsql/etc/pg_hba.conf'     # host-based authentication file  
  56.                                         # (change requires restart)  
  57. ident_file = '/usr/local/pgsql/etc/pg_ident.conf' # ident configuration file  
  58.                                         # (change requires restart)  
  59.  
  60. # If external_pid_file is not explicitly set, no extra PID file is written.  
  61. #external_pid_file = '(none)'           # write an extra PID file  
  62.                                         # (change requires restart)  
  63. ===============================================================  
  64.  
  65. /etc/init.d/postgresd start  
  66.  
  67. ------------------------------------------------------- 
  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 </dev/null' 
  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.  
  6. vi /usr/local/pgsql/etc/recovery.conf  
  7. #Add by paolo for replications  
  8. restore_command = 'cp /pg_data_logs/archivedir/%f %p'   
  9. archive_cleanup_command = 'pg_archivecleanup /pg_data_logs/archivedir %r' 
  10. standby_mode = 'on' 
  11. primary_conninfo = 'host=10.4.5.94 port=5432 user=repl password=meiyoumima' 
  12. 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/ [email protected]:/usr/local/pgsql/  
  7. scp -r data/ [email protected]:/usr/local/pgsql/  
  8.  
  9. --IN STANDBY  
  10. su - postgres  
  11. cd /usr/local/pgsql/data  
  12. rm postmaster.pid  
  13. ln -s /usr/local/pgsql/etc/recovery.conf recovery.conf  
  14. cd pg_xlog  
  15. mv * /pg_data_logs/archivedir/  
  16. /etc/init.d/postgresd start  
  17.  
  18. --IN PRIMARY  
  19. su - postgres  
  20. 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配置就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. PostgreSQL数据库中pg_hba.conf文件的使用详解
  2. MongoDB数据库中Update参数使用的相关知识简介
  3. SQL Server使用UNION代替OR提升查询性能的实例
  4. Berkeley DB使用SecondKey给数据排序的实现方法
  5. SQL Server数据库中FOR XML AUTO的使用详解续

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/226328.html<

(0)
管理的头像管理
上一篇2025-04-17 07:51
下一篇 2025-04-17 07:52

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注