广告位联系
返回顶部
分享到

postgresql13主从搭建Ubuntu的教程

数据库其他 来源:互联网 作者:佚名 发布时间:2022-11-24 14:17:22 人浏览
摘要

先安装完数据库以后,安装路径如下: 数据库安装完毕以后, 服务的安装路径为:/usr/lib/postgresql/13/bin/ 数据路径为:/var/lib/postgresql/13/main/ 配置文件路径为:/etc/postgresql/13/main/ 1 2 3

先安装完数据库以后,安装路径如下:

数据库安装完毕以后,

服务的安装路径为:/usr/lib/postgresql/13/bin/

数据路径为:/var/lib/postgresql/13/main/

配置文件路径为:/etc/postgresql/13/main/

1

2

3

4

5

6

7

8

9

10

pg_hba.config路径为:/etc/postgresql/13/main/postgresql.conf

# postgres用户密码修改

#修改postgres密码为123456

passwd postgres

#在输入密码的位置输入密码123456

#切换到postgres用户

su - postgres

#修改数据库账号postgres的密码为123456

psql -c "alter user postgres with password '123456';"

exit

设置环境变量

1

2

3

4

5

6

vi /etc/profile

在最后增加

export PGDATA=/var/lib/postgresql/13/main/

export PATH=$PATH:$HOME/bin:$PGDATA:/usr/lib/postgresql/13/bin

保存后,使环境变量立即生效

source /etc/profile

1

2

3

4

5

6

7

8

9

#设置允许远程连接

#编辑postgresql.conf配置文件

vi /etc/postgresql/13/main/postgresql.conf

#增加允许任何用户连接,新增 listen_addresses = '*'

#设置从库复制槽名称为pgstandby1,设置了复制槽名称以后,复制流将由异步变为同步

synchronous_standby_names = 'pgstandby1'

#保存修改

Esc

:wq

1

2

3

4

5

6

7

8

#修改配置文件pg_hba.conf,设置访问规则

#编辑pg_hba.conf配置文件

vi /etc/postgresql/13/main/pg_hba.conf

#新增 host all all 0.0.0.0/0 md5 访问规则,并修改加密方式为md5(设置允许任何客户端远程连接)

#新增 host    replication     replica         192.168.31.130/32       trust(设置允许replica用户由主库复制到从库,其中ip为从库的ip)

#保存修改

Esc

:wq

主库创建流复制的用户

1

2

3

4

su - postgres

psql -c "CREATE ROLE replica login replication encrypted password 'replica'";

exit;

systemctl restart postgresql

至此,主库设置就完成了,介于将来主库、从库会进行提级和降级操作或者主从互换操作,所以建议对从库也进行相同的主库设置

从库设置+从主库进行数据流复制

1

pg_basebackup -h 192.168.31.129 -D $PGDATA -U replica -P -X stream -R -C -S pgstandby1

其中: 

-h指向主库的ip,

-D指数据从主库复制到从库的路径

-U指用户名,即从库以replica的用户进行流复制

-P表示显示流复制的过程

-X表示复制方式,stream表示以流的方式进行

-R表示创建一个standby.signal文件,该文件作为一个从库的标识文件,存在此文件,则表示从库

-C指定在启动备份之前应创建由--slot选项命名的复制插槽。如果插槽已存在,则会引发错误。即pgstandby1表示插槽的名称。主库、备库指定插槽名称后,流复制为同步复制,否则为异步复制。

从库进行数据流复制之后,重启从库,主从模式正式工作

1

systemctl restart postgresql

注:Ubuntu上使用仓库安装的postgresql从库启动,必须要使用systemctl重启,无法通过pg_ctl进行。

这时,就可以看到备库服务器上自动生成了standby.signal文件。同时,也看到在$PGDATA路径下,数据库自动帮我们配置了关于流复制的主库的信息:

1

2

3

4

5

6

$ cat $PGDATA/postgresql.auto.conf

# Do not edit this file manually!

# It will be overwritten by the ALTER SYSTEM command.

#primary_conninfo = 'user=replica passfile=''/var/lib/postgresql/.pgpass'' channel_binding=prefer host=192.168.31.129 port=5432 sslmode=prefer sslcompression=0 sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any'

primary_conninfo = 'user=replica host=192.168.31.129 port=5432 application_name=pgstandby1'

primary_slot_name = 'pgstandby1'

查看主从运行状态

主从搭建后,主库运行状态为: ps -ef|grep postgres

可以看到有一个walsender在向从库发送

从库运行状态为:

可以看到有一个walreceiver在接收数据,startup recovering 000000030000000000000030也是从库的标识

通过SQL语句查看主从信息:

1

2

3

4

5

6

select * from pg_stat_replication;

select application_name, client_addr, sync_state from pg_stat_replication;

//查询复制插槽名称

SELECT * FROM pg_replication_slots

//下面这句话是删除pgstandby1复制插槽的语句

select pg_drop_replication_slot('pgstandby1');

主备切换

备->主

1

2

#在备库下执行命令

pg_ctl promote

主->备

1

2

3

4

5

6

7

8

9

10

11

# 在数据库的数据路径下$PGDATA,新增一个standby.signal文件

touch standby.signal

同时,也看到在$PGDATA路径下,编辑postgresql.auto.conf的主库的信息:

$ vi $PGDATA/postgresql.auto.conf

# Do not edit this file manually!

# It will be overwritten by the ALTER SYSTEM command.

primary_conninfo = 'user=replica host=192.168.31.130 port=5432 application_name=pgstandby1'

primary_slot_name = 'pgstandby1'

wq

#重启新备库启动

systemctl restart postgresql


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。

您可能感兴趣的文章 :

原文链接 : https://juejin.cn/post/7169025036886966279
相关文章
  • 六大主流数据同步工具对比:DataX、Airbyte、Cana
    当数据量变大、数据源复杂、实时需求提高,很多团队在选数据同步工具时犯难。本文对 DataX、Airbyte、Canal、Debezium、Fivetran 与 Apache SeaTun
  • 解读SQL生成工具
    SQL 生成工具可用于测试Parser与其他数据库产品的兼容性,通过解析YACC语法文件中的产生式,生成对应的SQL语句,再使用数据库执行该SQL,根
  • SQLite3在嵌入式C环境中存储音频/视频文件的最优

    SQLite3在嵌入式C环境中存储音频/视频文件的最优
    SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案 在嵌入式系统中存储大型媒体文件需要平衡存储效率、访问速度和资源限制。以下是针
  • 嵌入式数据库SQLite 3配置使用

    嵌入式数据库SQLite 3配置使用
    0、惨痛教训 随着管理开发的项目体积越来越庞大,产品系统涉及的数据量也越来越多,并且伴随着项目不久就要交付给甲方了。如果项目的
  • Sqlite3基本语句及安装过程

    Sqlite3基本语句及安装过程
    SQLite3简介 SQLite3是一款轻量级的、基于文件的开源关系型数据库引擎,由 D. Richard Hipp 于 2000 年首次发布。它遵循 SQL 标准,但与传统的数据
  • 在SQLite中进行批量操作的有效实现方法
    SQLite 是一个轻量级的关系型数据库管理系统,因其高效性和易用性而广受欢迎。在许多应用场景中,批量操作的需求是不可避免的,例如在
  • 一文介绍在Hive中NULL的理解
    在 Hive 中,NULL 是一个特殊的值,表示未知或缺失。任何与NULL的比较操作(如=,,,=,=,)都会返回NULL,而不是TRUE或FALSE。 1.NULL 的比较规则 在
  • Navicat Premium 12数据库管理解决方案

    Navicat Premium 12数据库管理解决方案
    Navicat Premium 12是一款全面的数据库管理工具,支持多种数据库系统如MySQL、MariaDB、Oracle、SQL Server、PostgreSQL等。它提供了多数据库连接、数据
  • sqlite3命令行工具使用介绍
    一、启动与退出 启动数据库连接 1 2 3 sqlite3 [database_file] # 打开/创建数据库文件(如 test.db) sqlite3 # 启动临时内存数据库 (:memory:) sqlite3 :m
  • StarRocks简介与搭建使用介绍

    StarRocks简介与搭建使用介绍
    StarRocks简介 StarRocks 是一款高速、实时、全场景的MPP(大规模并行处理)分析型数据库系统,专为现代数据分析场景设计,强调亚秒级查询性
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计