今天安装Postgresql14遇到一个问题,目标服务器只有内网,内网提供标准的apt仓库,但是因为不能连接外网,所以没法添加第三方仓库,这样安装pg14就成了问题.从pg的官网看,https://www.postgresql.org/download/,对于Linux,pg只提供仓库和源码两种方式,因此不能访问外网时,貌似只有源码编译这条路.因为源码编译费时费力并且安装阶段需要自行配置,容易出错.对于机器上只需要安装一个实例的场景,能用仓库还是用仓库.如果还有一台安装了同样发行版,并且可以上网的机器,可以通过这台机器将离线安装包下载下来,再传到目标机器上安装.下载离线安装包和中转机器是否已经
今天安装Postgresql14遇到一个问题,目标服务器只有内网,内网提供标准的apt仓库,但是因为不能连接外网,所以没法添加第三方仓库,这样安装pg14就成了问题.从pg的官网看,https://www.postgresql.org/download/,对于Linux,pg只提供仓库和源码两种方式,因此不能访问外网时,貌似只有源码编译这条路.因为源码编译费时费力并且安装阶段需要自行配置,容易出错.对于机器上只需要安装一个实例的场景,能用仓库还是用仓库.如果还有一台安装了同样发行版,并且可以上网的机器,可以通过这台机器将离线安装包下载下来,再传到目标机器上安装.下载离线安装包和中转机器是否已经
零除的处理用NULLIF(col,0)可以避免复杂的WHEN...CASE判断,例如ROUND(COUNT(view_50.amount_in)::NUMERIC/NULLIF(COUNT(view_50.amount_out)::NUMERIC,0),2)ASout_divide_in,使用COLA/NULLIF(COLB,0)后,如果COLB为0,产生的输出就是NULL空数组解析为默认值使用jsonb_array_elements_text()可以将一个JSONB类型的列解析为多行--这是一个和聚合背道而驰的函数,在处理数组时特别有用.但是在使用中,往往需要全局统计,不单单是统计带内容的数
零除的处理用NULLIF(col,0)可以避免复杂的WHEN...CASE判断,例如ROUND(COUNT(view_50.amount_in)::NUMERIC/NULLIF(COUNT(view_50.amount_out)::NUMERIC,0),2)ASout_divide_in,使用COLA/NULLIF(COLB,0)后,如果COLB为0,产生的输出就是NULL空数组解析为默认值使用jsonb_array_elements_text()可以将一个JSONB类型的列解析为多行--这是一个和聚合背道而驰的函数,在处理数组时特别有用.但是在使用中,往往需要全局统计,不单单是统计带内容的数
本文主要介绍Windows环境下搭建PostgreSQL的主从逻辑复制,关于PostgreSQl的相关运维文章,网络上大多都是Linux环境下的操作,鲜有在Windows环境下配置的教程,所以本文采用Windows环境作为演示系统来进行PostgreSQL高可用数据库服务的搭建。关于Windows系统PostgreSQL的安装方法可以直接看之前的博客https://www.cnblogs.com/berkerdong/p/16645493.html在Windows环境运行PostgreSQL在连接数的配置需要注意以下这个知识点:由于PostgreSQL所依赖的一些库依赖于user32.dll,
本文主要介绍Windows环境下搭建PostgreSQL的主从逻辑复制,关于PostgreSQl的相关运维文章,网络上大多都是Linux环境下的操作,鲜有在Windows环境下配置的教程,所以本文采用Windows环境作为演示系统来进行PostgreSQL高可用数据库服务的搭建。关于Windows系统PostgreSQL的安装方法可以直接看之前的博客https://www.cnblogs.com/berkerdong/p/16645493.html在Windows环境运行PostgreSQL在连接数的配置需要注意以下这个知识点:由于PostgreSQL所依赖的一些库依赖于user32.dll,
代码地址:postgresql-13.1-ml:IntegrationofCardEstMethodsintoPostgreSQLbyHTTPServer(github.com)当前进度:可以支持单表查询、多表innerjoin的基数估计模块的替换。注意:本文的重点在于PG的修改。记录一下我的修改思路。整体流程PG作为http客户端,向基数估计服务端发送http请求。内容为需要基数估计的SQL语句。基数估计服务端返回该语句的selectivity。PG收到该查询的selectivity后乘以当前表的大小,即得到rows项目的难点主要在于获取需要基数估计的SQL查询语句。PG原版基数估计调用逻辑
代码地址:postgresql-13.1-ml:IntegrationofCardEstMethodsintoPostgreSQLbyHTTPServer(github.com)当前进度:可以支持单表查询、多表innerjoin的基数估计模块的替换。注意:本文的重点在于PG的修改。记录一下我的修改思路。整体流程PG作为http客户端,向基数估计服务端发送http请求。内容为需要基数估计的SQL语句。基数估计服务端返回该语句的selectivity。PG收到该查询的selectivity后乘以当前表的大小,即得到rows项目的难点主要在于获取需要基数估计的SQL查询语句。PG原版基数估计调用逻辑
PostgreSQL高可用数据库的常见搭建方式主要有两种,逻辑复制和物理复制,上周已经写过了关于在Windows环境搭建PostgreSQL逻辑复制的教程,这周来记录一下物理复制的搭建方法。首先介绍一下逻辑复制和物理复制的一些基本区别:物理复制要求多个实例之间大版本一致,并且操作系统平台一致,如主实例是Windows环境下的PostgreSQL15则从实例也必须是这个环境和版本,逻辑复制则没有要求。物理复制是直接传递WAL归档文件,在从实例进行重放执行,可以理解为实时的WAL归档恢复,所以延迟低,性能高。,逻辑复制可以简单理解为解析了WAL归档文件中的信息,处理成为标准的SQL语句,传递给存库
PostgreSQL高可用数据库的常见搭建方式主要有两种,逻辑复制和物理复制,上周已经写过了关于在Windows环境搭建PostgreSQL逻辑复制的教程,这周来记录一下物理复制的搭建方法。首先介绍一下逻辑复制和物理复制的一些基本区别:物理复制要求多个实例之间大版本一致,并且操作系统平台一致,如主实例是Windows环境下的PostgreSQL15则从实例也必须是这个环境和版本,逻辑复制则没有要求。物理复制是直接传递WAL归档文件,在从实例进行重放执行,可以理解为实时的WAL归档恢复,所以延迟低,性能高。,逻辑复制可以简单理解为解析了WAL归档文件中的信息,处理成为标准的SQL语句,传递给存库