postgres 异步standby 创建

简介:

postgres 异步standby 创建

 

说明

 

1、如果要求及时性不是很高(前后几秒钟的差距),那么建议使用postgres的备份数据库可以是异步流复制STANDBY

2、主节点指的是生产库,standby指的是备份库

    3、如无说明,#代表root用户,$代表osdba用户

 

问题

 

1、该测试是在postgres9.3系列完成,已知在postgres9.0系列才开始流复制概念

2、该测试没有测试表空间为自己创建时(默认只有的表空间)的迁移情况,所以迁移时要注意

 

环境

 

  操作系统:CentOS release 6.5 (Final)

  数据库:postgres (9.3.13)

  

异步standby创建

 

 

1、以主节点的相关信息为模板,新建和主节点类似的服务器

 

略过

 

2、检查主节点的编译环境

 

$ pg_config --configure

'--prefix=/usr/local/pgsql' '--with-perl' '--with-python'

 

3、在standby节点模仿主节点进行编译工作,进行三板斧操作

 

# ./configure --prefix=/usr/local/pgsql --with-perl --with-python

# make

# make install

 

4、模仿主节点创建用户名密码,以及.bash_profile环境

   

略过

 

5、在主节点创建用户拥有权限replication

 

   $ psql -d postgres

   

   =# create role replica login REPLICATION ENCRYPTED PASSWORD 'replica

 

6、修改主节点的pg_hba.conf

  

 $ cd $PGDATA

   $ vim pg_hba.conf

   

host    replication    replica          192.168.1.0/24          md5

 

   

7、修改主节点的postgresql.conf

  

 $ cd $PGDATA

   $ vim postgresql.conf

 

    listen_addresses = '*'

    max_wal_senders = 32

    wal_keep_segments = 256

wal_level = hot_standby

hot_standby = on

 

8standby节点执行基础备份

    

    $ pg_basebackup -F p -D $PGDATA -R -x -h 192.168.1.36 -p 5432 -U replica

    $ ls -ls $PGDATA

    

9、检查并修改standby节点的recovery.conf

    

$ vim $PGDATA/recovery.conf

  

standby_mode = 'on'

primary_conninfo = 'user=replica password=replica host=192.168.1.36 port=5432 sslmode=disable sslcompression=1'

 

如果符合上文中standby执行基础备份的脚本密码,就不需要修改

 

10、启动standby节点并检查进程

 

$ pg_ctl start

$ psql

$ ps -ef|grep postgres

 

 

11、测试

 

1、主节点和standby是否同步

 

在主节点上创建一张表,并插入数据,测试standby是否存在表和数据

[osdba@pg36 data]$ psql

psql (9.3.13)

Type "help" for help.

 

osdba=# create table t_1(id int,info text);

CREATE TABLE

osdba=# insert into t_1 select generate_series(1,1000),'good';

INSERT 0 1000

 

[osdba@pg37 data]$ psql

psql (9.3.13)

Type "help" for help.

 

osdba=# \dt

       List of relations

 Schema | Name | Type  | Owner

--------+------+-------+-------

 public | t_1  | table | osdba

(1 row)

 

osdba=# select count(1) from t_1;

 count

-------

  1000

(1 row)

 

2、standby挂掉后,是否影响主节点使用

 

当备机挂掉时,并不影响主机的正常的使用,等备机重新启动时,自动将数据同步

 

[osdba@pg37 data]$ pg_ctl stop

waiting for server to shut down.... done

server stopped

 

[osdba@pg36 data]$ psql

psql (9.3.13)

Type "help" for help.

 

osdba=# insert into t_1 select generate_series(1,1000),'good';

INSERT 0 1000

osdba=# insert into t_1 select generate_series(1,1000),'good';

INSERT 0 1000

 

[osdba@pg37 data]$ pg_ctl start

server starting

[osdba@pg37 data]$ psql

psql (9.3.13)

Type "help" for help.

 

osdba=# select count(1) from t_1;

 count

-------

  3000

(1 row)

 

3、主节点挂掉后,是否影响standby节点使用

 

当主机挂掉时,备机是否可以读取数据,但不允许插入更改数据

 

[osdba@pg37 data]$ psql

psql (9.3.13)

Type "help" for help.

 

osdba=# select count(1) from t_1;

 count

-------

  3000

(1 row)

 

osdba=# insert into t_1 values(1,'1');

ERROR:  cannot execute INSERT in a read-only transaction

 

 

目录
相关文章
|
SQL Java 数据库连接
hibernate和mybatis的区别
hibernate和mybatis的区别
|
3月前
|
人工智能 Java API
Java Spring Boot 拥抱 AI 原生:从 API 调用到架构重构的进化之路
在AI时代,Java开发者需超越简单API调用,以Spring Boot为基石重构软件范式。从“菜单驱动”转向“意图驱动”,通过智能体、工具、记忆与安全四层架构,打造具备自主决策能力的AI原生应用。利用Spring生态的工程化优势,实现AI能力的可控、可观测与可演进,推动系统从功能实现迈向智能协同,构建稳健可靠的下一代企业级AI应用。
162 8
|
3月前
|
存储 人工智能 JSON
Agent系统
大模型Agent是具备自主规划、推理、工具调用与记忆能力的智能系统,能分解任务、反思调整并持续交互。核心架构含大脑(LLM)、感知、行动与记忆模块,支持函数调用与多Agent协作,广泛应用于复杂任务场景,区别于传统Chatbot,更具主动性与执行力。
146 0
|
XML 编解码 前端开发
svg和canvas的区别
【10月更文挑战第24天】SVG和Canvas各有优缺点,在实际应用中需要根据具体的需求和场景来选择合适的技术来实现图形绘制和交互效果。
453 62
新版Jadx 加载dex报错 jadx.plugins.input.dex.DexException:Bad checksum 解决方法
新版Jadx 加载dex报错 jadx.plugins.input.dex.DexException:Bad checksum 解决方法
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
存储 固态存储 文件存储
|
并行计算 前端开发 JavaScript
前端3D技术概述(1)
前端3D技术概述
2443 2
|
编译器 C++
vs的常用配置【以及vs常用的快捷键】
vs的常用配置【以及vs常用的快捷键】
260 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【12】自编码器(Auto-Encoder)的介绍与pytorch实现
【12】自编码器(Auto-Encoder)的介绍与pytorch实现
1508 0
【12】自编码器(Auto-Encoder)的介绍与pytorch实现

热门文章

最新文章