数据仓库架构_docker安装sqlserver

数据仓库架构_docker安装sqlserver本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置

Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务

本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置的教程,所以本文采用 Windows 环境作为演示系统来进行 PostgreSQL 高可用数据库服务的搭建。

关于 Windows 系统 PostgreSQL 的安装方法可以直接看之前的博客 https://www.cnblogs.com/berkerdong/p/16645493.html

在Windows 环境运行 PostgreSQL 在连接数的配置需要注意以下这个知识点:

由于PostgreSQL所依赖的一些库依赖于user32.dll,后者从内存中一块称为桌面堆(Desktop Heap)的区域中分配内存。桌面堆被分配给了每一个登录的会话,在 Windows 10 以上的操作系统通常一个非交互的会话将会分配给768KB。每个交互登录会话将会分配给20MB的桌面堆,每个postgres进程典型的桌面堆消耗是3.2KB。

  • 当作为Windows服务运行时,因为每个非交互会话将会分配768KBMB的桌面堆,所以大约可以支撑 200-220个连接。
  • 当在命令行方式运行时,因为每个交互登录会话将会分配20MB的桌面堆,所以大约可以支撑 5000-6000个连接。

以上说的值是操作系统默认的值,这个堆分配大小可以通过调整注册表来进行修改,但是此操作需要非常小心,一旦指定的值过大,系统将无法启动,所以不推荐去手动修改这个值。如果想要了解更多这个知识点可以看 微软官方的这个说明:
https://learn.microsoft.com/zh-CN/troubleshoot/windows/win32/user32-kernel32-not-initialize

结合上面的知识点,所以我们在Windows环境下配置 PostgreSQL 的最大连接数时,如果采用 Windows 服务模式运行则配置最大连接数为200比较好,如果需要200个以上的并发连接,则最好采用控制台形式启动运行PostgreSQL,同时结合计算机的可以内存去综合考虑一般100个连接数会消耗 1G内存,所以假设我们电脑内存为8G,考虑到系统本身运行需要2G内存,所以这是 PostgreSQL 的最大连接数配置为500 左右即可。

PostgreSQL控制台运行,启动和停止命令如下:

启动 pg_ctl.exe -D “D:SoftwarePostgreSQLdata” start
停止 pg_ctl.exe -D “D:SoftwarePostgreSQLdata” stop

-D 的参数 “D:SoftwarePostgreSQLdata” 是 PostgreSQL 的数据实例位置


今天我们采用逻辑同步复制来实现主从数据库的配置,首选在主数据库上调整 postgresql.conf 配置文件启用逻辑复制功能
wal_level = logical

数据仓库架构_docker安装sqlserver

配置调整之后需要重新启动主数据库实例。

然后在主数据库对我们需要配置的数据库执行逻辑发布
CREATE PUBLICATION p FOR ALL TABLES WITH (publish = "insert, update, delete, truncate", publish_via_partition_root = false);
其中 p 为这个发布设置的名称,也可以自定义为其它。
数据仓库架构_docker安装sqlserver

然后在从数据库实例上选择我们要用来订阅主实例的数据库,然后执行创建逻辑订阅

CREATE SUBSCRIPTION s
    CONNECTION "host=127.0.0.1 port=5432 user=postgres dbname=xxxxx connect_timeout=10 password=xxxxxx"
    PUBLICATION p
    WITH (connect = true, enabled = true, copy_data = true, create_slot = true, synchronous_commit = "remote_apply");

其中 s 为这个订阅设置的名称 “host=127.0.0.1 port=5432 user=postgres dbname=xxxxx connect_timeout=10 password=xxxxxx” 为主库的连接信息

数据仓库架构_docker安装sqlserver

这样我们就完成本地 localhost 的 PostgreSQL 实例中 csapp 数据库和 远程服务器上 caspp 数据库的主从配置。

这里要注意的一点是 PostgreSQL 的 逻辑订阅并不会同步DDL操作 ,所以对于数据库的建表等操作是不会进行主从同步的,我们需要手动维护 主从实例数据库上的表结构使其保持一致。
当在主和从数据库都创建完成表之后需要在从库上执行以下刷新订阅的 SQL,每次主库新增或者删除了表,从库都需要执行这个操作。

ALTER SUBSCRIPTION s
    REFRESH PUBLICATION WITH (copy_data = true);

然后我们在主库的数据库表中进行数据操作,所有的操作就会被同步到 从库的数据表中。
数据仓库架构_docker安装sqlserver

下面介绍如果想要删除发布设置和订阅设置的操作
在主库执行
SELECT * FROM pg_publication 可以查询当前主库的所有发布信息
数据仓库架构_docker安装sqlserver

DROP PUBLICATION p 删除名字为 p 的发布信息

在从库执行:
SELECT * FROM pg_subscription 可以查询当前从库的所有订阅信息
数据仓库架构_docker安装sqlserver

DROP SUBSCRIPTION s 删除名字为 s 的订阅信息

至此 Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务 就讲解完了,有任何不明白的,可以在文章下面评论或者私信我,欢迎大家积极的讨论交流,有兴趣的朋友可以关注我目前在维护的一个 .NET 基础框架项目,项目地址如下
https://github.com/berkerdong/NetEngine.git
https://gitee.com/berkerdong/NetEngine.git

原文地址:https://www.cnblogs.com/berkerdong/archive/2022/10/26/16823891.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4615.html

(0)
上一篇 2023-06-12
下一篇 2023-06-12

相关推荐

  • mybaties 批量模糊查询、foreach string[]用法

    mybaties 批量模糊查询、foreach string[]用法List<Recipe> randomRecipe(@Param("str")String[] strs,@Param("num")int num)

    2023-03-04
    145
  • 基于Linux上Mysql8主从设置

    基于Linux上Mysql8主从设置上一篇已经说明了Mysql8的安装方法,这篇来说说主从怎么配置 一、配置修改 # 除去其他的,最关键的就是下面这些了,其实在上一篇里面已经设置好了 [mysqld3306] server_id=33…

    2023-03-14
    153
  • Python中subprocess和os.system的差异及用途

    Python中subprocess和os.system的差异及用途Python在执行操作系统命令时,通常会用到os模块下的system方法。最近几年,subprocess模块也逐渐被广泛应用。两者都可以在Python中执行操作系统命令,但是有一些区别。在本文中,我们将详细讨论这两个模块的差异和用途。

    2024-03-10
    69
  • 如何正确管理HBase的连接,从原理到实战「建议收藏」

    如何正确管理HBase的连接,从原理到实战「建议收藏」本文将介绍HBase的客户端连接实现,并说明如何正确管理HBase的连接。 最近在搭建一个HBase的可视化管理平台,搭建完成后发现不管什么查询都很慢,甚至于使用api去listTable都要好几秒…

    2023-02-19
    132
  • 以Pycharm字体大小为中心的标题

    以Pycharm字体大小为中心的标题Pycharm是一个非常流行的Python开发工具,它拥有丰富的功能和插件,可以大大提高我们的开发效率。在Pycharm中,我们经常需要设定一些标题,比如函数名、模块名等等,其中一个很重要的问题就是如何让标题在代码中更加突出,从而便于我们更好地理解和阅读代码。在这篇文章中,我们将介绍如何以Pycharm字体大小为中心的标题。

    2024-08-04
    20
  • Python中的str数据类型

    Python中的str数据类型字符串(string)是Python中的一种常见数据类型。Python中使用单引号或双引号来表示字符串,可以包含数字、字母、符号、空格等字符。

    2024-06-03
    47
  • Excel中金额小写转大写,职场小技能,值得学习

    Excel中金额小写转大写,职场小技能,值得学习对于做财务的同学应该经常会遇到要求把金额用大写的方式展示吧,如下图这样。今天小编就和大家分享如何把数字金额转换为大写金额。1、单元格格式Excel本身自带了中文大写数字格式,但是实际使用不仅容易,下面

    2023-03-02
    151
  • Python数字输入

    Python数字输入Python可以轻松地生成数字序列并进行操作。以下是将从100到200的数字序列生成的代码示例,并输出从100到200之间的所有奇数。

    2024-05-20
    64

发表回复

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