一佳互联

展开菜单

探讨PostgreSQL实例中数据库之间的关系

探讨PostgreSQL实例中数据库之间的关系
疑问 前几天PG学习微信群有人在问“pg_class 存储了对象和命名空间,表空间的对应关系,为什么没有和数据库的关系?我想查数据库下面有多少对象,找不到数据库和对象的关系?” 简而言之;PostgreSQL数据库和对象的关系;提这个问题的同学;应该是想知道 PostgreSQL实例中数据库之间的关系,以及数据库和对象的关系。 至于能否有这样的SQL;容我一步一步探索 探索 1、探索PG的逻辑结构 逻辑结构图 上图解析: 第一层是实例(Instan...

PostgreSQL数组类型应用

PostgreSQL数组类型应用
在使用 awk 脚本;数组是一大利器;在很多场景是用数组能处理。 在 python 中,数据类型list;相当于array类型。 在 Oracle 中,对 array 不够友好,感觉像是鸡肋。但是在 PostgreSQL 中,对array有很多支持,很多场景可以应用到。下面慢慢说 1、any(array) 替换 in(table) -- 案例1 -- 创建表A;插入1000条记录;并每条记录重复4次 postgres=# create table A (id int,...

Pgsql之查询一段时间内的所有日期

Pgsql之查询一段时间内的所有日期
前几天干活儿的时候,项目中有这么个需求,需要用pgsql查询两个日期间的所有日期,包括年月日,下面贴代码: 1 select date(t) as day 2 from 3 generate_series('2020-10-27'::date,'2020-11-03', '1 days') as t; 下面是执行效果,跨年跨月的情况也是没问题的:   下面咱们说下PostgreSql中generate_series函数的用法: 用处:他可以按照不...

Pgsql之查询一段时间内的所有年月yyyy-mm

Pgsql之查询一段时间内的所有年月yyyy-mm
前几天干活儿的时候,报表中有这么个需求,需要用pgsql查询两个日期间的所有年月,下面贴代码: 1 with recursive t(n) as ( 2 select date('2020-01-01') 3 union all 4 select n+1 from t where n < date('2020-09-30') 5 )select to_char(n, 'yyyy-mm') as month from t group by m...

Pgsql之查询一个月份的天数

Pgsql之查询一个月份的天数
前几天干活儿的时候,项目中有这么个需求,需要用pgsql查询某个月份有多少天,下面贴代码: select date_part('days', date_trunc('month', to_timestamp('2020-11-21 13:13:13', 'yyyy-MM-dd hh24:mi:ss')) + '1 month'::interval - '1 day':: interval) 下面是执行效果:    其中date_trunc函...

PostgreSQL配置密码复杂度策略

PostgreSQL配置密码复杂度策略
安装完PostgreSQL之后,默认是没有开启密码复杂度,为了数据库安全以及应对等保测评等要求,有时我们需要设置密码复杂度。 PostgreSQL支持通过动态库的方式扩展PG的功能,pg在使用这些功能时需要预加载相关的共享库。而密码复杂度可以通过预加载passwordcheck.so模块实现。 有几种设置可用于将共享库预加载到服务器中,如下: local_preload_libraries (string) session_preload_libraries...

5、pgpool-II高可用性(一)数据库的高可用性

5、pgpool-II高可用性(一)数据库的高可用性
官网示例 一、实现原理 使用 pgpool-II 软件;我们常用来实现流复制的高可用性;备库只读的,不可写;就是当主库出现问题时;需要把备库自动激活为主库;来接管服务。 这在其他高可用软件也有这功能,而 pgpool-II 在配置文件 pgpool.conf 中提供配置项 failover_command 。让用户配置一个脚本,当发生故障切换时,执行该脚本。 二、示例演练 本示例采用 PostgreSQL12 + pgpool-II4。 演练目的: 搭建...

在Postgre中设置max_connections时,为什么需要使用连接池 (译)

在Postgre中设置max_connections时,为什么需要使用连接池 (译)
原文地址:https://www.enterprisedb.com/postgres-tutorials/why-you-should-use-connection-pooling-when-setting-maxconnections-postgres PostgreSQL是“世界上最先进的开源数据库”,我相信这一点。在我从事it工作的10多年中,它一直很稳定,向SaaS提供每秒超过1000个查询的数据,很少出现故障,经受住了各种形式的事故(最终证明是软件工程错误)和性...

pgAdmin的Desktop Mode设置允许远程访问

pgAdmin的Desktop Mode设置允许远程访问
有时候因为一些安全设置或权限问题,不允许用户直接访问PostgreSQL数据库,但是Support系统的用户必须要访问数据库. 那怎么办呢? 在一台可以访问PostgreSQL的服务器上安装pgAdmin,然后让用户使用浏览器远程访问pgAdmin,访问PostgreSQL数据库, 那么pgAdmin如何设置允许远程访问呢?其实pgAdmin有Desktop Mode和Server Mode两种模式,对于Server Mode的话,这个根本不是问题。   下面介...

pgloader-pg迁移神器

pgloader-pg迁移神器
一、介绍 pgloader是一款PostgreSQL数据迁移工具,最初只用于支持格式化文件的数据快速导入到PostgreSQL。pgloader支持跳过无法导入的出错数据并进行记录,因此在源数据文件有部份错误数据的情况下依然可以继续完成迁移任务,节省迁移排错后重复导入的时间损耗。最新的版本中,还支持直接将SQLite、MySQL、MS SQL Server数据库作为数据源,进行数据的直接导入,并针对不同数据类型进行自动转换,甚至还会针对不同数据库特性完成自动替换,遗憾的是,...