PostgreSQL中的GENERATED COLUMN

什么是 GENERATED COLUMN      GENERATE COLUMN 是一个在 CREATE TABLE 时指定的标识列(特征列)。该列将会附着一个隐藏的序列,并且在插入数据时以默认的隐藏序列为数据行进行插入。该列默认约束为 NOT NULL 约束。该列后有可选 GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ] 关键字。如果使用 ALWAYS 关键字,当在使用 INSERT 语句时接受 OVERRIDING SYSTEM VALUES 语句。如果指定 BY DEFAULT ,则用户指定的值优先。 该特性是在 PostgreSQL V10 版本中推出,属于约束的一种,实际上是自动为列分配一个唯一的值。类似整形序列加非空约束,但是又可以以用户指定的方式进行数据插入。 语法     列名 数据类型 GENERATED {ALWAYS | BY DEFAULT } AS IDENTIFY [ (sequence_option) ] 语法解释: 数据类型: 通常是整型的一种[ int2 | int4 | int8 | smallint | int | bigint ] GENERATED … [Read more...]

PostgreSQL 对象管理

概述 PostgreSQL 中的所有数据都存储在对应的文件中,即我们常见到的文件。这些用来存储数据的文件共同构成了 PostgreSQL 整个数据库集簇,而数据库集簇是对 PostgreSQL 中多个数据库组成的集合的称呼。而在逻辑上,PostgreSQL 所有的数据库都是隶属于某个表空间,并且单个数据库不能跨表空间,而一个表空间中可以存放多个数据库。表空间和数据库的关系属于多对多的关系。那么数据库中的数据是如何存放在数据文件中的呢?接下来一起探究。 理解 oid 和 relfilenode 的关系 在 PostgreSQL 中,oid 全称为 Object identifier,称为对象标识符,在 PostgreSQL 中,用于为每个对象分配的一个内部主键数据类型,其别名为 regclass,并且 oid 可以转换为整数。而 relfilenode 则为 PostgreSQL 数据库中对对象的物理访问信息。relfilenode … [Read more...]

TIDB集群部署

资源规划 在有外网的环境中部署TIDB集群 资源紧张演示环境配置给的较低,我们这里使用7台虚拟机部署 节点名 IP地址 CPU 内存 磁盘类型 PD1 10.0.0.201 1 4G SSD PD2 10.0.0.202 1 4G SSD PD3 10.0.0.203 1 4G SSD KV1 10.0.0.204 1 4G SSD KV2 10.0.0.205 1 4G SSD KV3 10.0.0.206 1 4G SSD TIDB 10.0.0.207 1 2G SSD monitoring 10.0.0.201 1 4G SSD grafana 10.0.0.201 1 4G SSD alertmanager 10.0.0.201 1 4G SSD 1、连接中控机安装tiup工具 使用tiup工具下载命令安装 dennis@wutongdeMacBook-Pro ~ % ssh root@10.0.0.207 root@10.0.0.207's password: Last login: Sat Jun 26 11:36:38 2021 from wutongdembp [root@tidb ~]# pwd /root [root@tidb ~]# curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | … [Read more...]

ora-00245报错解决方法

1.发现问题 最近使用备份软件对客户11G RAC数据库进行备份,发现备份失败查看日志发现数据库报 ORA-00245: control file backup failed; target is likely on a local file system错误。 2.问题分析 本报错出现于oracle 11.2.0.1.0及以后的版本中,应用于所有平台仅仅RAC环境会发生,因为oracle 11Gr2控制文件备份机制的改变,集群中的任何实例都要可以写入快照文件。当然这个文件也就要对所有实例可见,所以这个快照文件要设置在共享设备上。 我们现在看一下本机设置: [oracle@rac1 ~]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jun 21 10:56:57 2021 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1601183368) RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name … [Read more...]

PostgreSQL 密码验证功能增强

密码验证介绍 passwordcheck 模块是在 CREATE ROLE 或者 CREATE USER 期间检查用户密码是否符合指定的规则模块如果密码比较弱,那么在此期间将会拒绝执行密码并返回一个错误。 该模块位于 srcpkg/contrib 目录下,安装后位于 $libdir 目录下,使用 shared_preload_libraries加载并重新启动服务器后生效。在该模块中,主要有两个规则判断,一个是用户名自身的判断,一个是密码长度少于8位的判断,一个是对是否包含用户名本身的判断。 密码验证增强功能 密码验证增强功能主要是在原有密码检查模块的基础上,增加了对密码中是否包含至少一个大小写字母,一个数字和一个特殊字符的判断。 实现 <code class="hljs">/*------------------------------------------------------------------------- * * passwordcheck_enchance.c * * Author: Sungsasong * * IDENTIFICATION * … [Read more...]

使用SQLBuilder功能在Swingbench中构建性能测试场景

1、Swingbench介绍 Swingbench是常用的一款进行压力测试和基准测试的软件,旨在对Oracle数据库(12c,18c,19c)进行压力测试。该软件可以生成负载并绘制事务/响应时间图表。SwingBench附带的代码包括6个基准,即OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest。 当SwingBench附带的6个基准代码无法满足压力测试要求时,可以使用Swingbench提供的 SQLBuilder 工具和 Java API … [Read more...]

greenplum使用gpcopy数据传输方案

一 架构基础环境 主机mdw和备机mdwbak节点对等,都采用2+4架构。 1.1 主机列表 主机 IP地址 备机 IP地址 mdw 192.168.0.20 mdwbak 192.168.0.30 smdw 192.168.0.21 smdwbak 192.168.0.31 sdw1 192.168.0.22 sdw1bak 192.168.0.32 sdw2 192.168.0.23 sdw2bak 192.168.0.33 sdw3 192.168.0.24 sdw3bak 192.168.0.34 sdw4 192.168.0.25 sdw4bak 192.168.0.35 1.2 CPU及内存 所有节点都采用华为云服务器,CPU核心数为16核心,内存为32G,节点总数为12。主机备机都采用内部万兆网络。磁盘为单独挂载磁盘,采用高性能IO磁盘,实际最高读写性能为350M/s。 1.3 计算节点和镜像节点 计算节点primary数量为主备机都为24,镜像节点mirror数量为主备机都为24,总节点数量为48。 1.4 数据库版本 数据库采用greenplum官方发布的5.27.1开源版本。   二 环境磁盘IO和网络IO性能基准测试 2.1 … [Read more...]

Greenplum 数据同步方案—PostgreSQL技术文章晟数

更多精彩内容,请登录:ke.sandata.com.cn 一、目的 当前现有服务器状态为同机房两套 Greenplum 集群,节点数为 2 + 4。为满足未来灾备中心建设,需要构架高可用架构方案,以满足未来在生产系统集群出现不可恢复状态下,备用集群可以完全接管生产系统集群,以实现高可用架构。 二、方案 目前方案分为以下两种,一种为数据实时同步高可用方案,一种为允许数据同步有一定的延迟状态。 2.1 数据实时同步高可用架构(本文省略) 架构图如下(不做说明) 当主机中心由于不可抗拒因素或者硬件及认为因素不可用,备机完全接管主机。 2.2 … [Read more...]

【故障处理】再次安装Grid时,出现oraInventory目录 No such file or directory的错误

【故障描述】 /u02是之前单实例数据库的安装目录,客户执行删除脚本已经把数据库软件和实例都删除了,现在新装Grid软件,Grid目录指定在/u01下, 现在安装提示没有u02目录。截图如下: 【问题分析】 oracle软件安装时,通常都需要产品清单目录来保存软件安装的目录等信息,有点类似于window里面的注册表。再删除软件时,也需要读取产品清单目录里面的内容,来确定曾经安装的软件位置。 产品清单目录的位置,是保存在/etc/oraInst.loc文件中,如下: [cce] [root@sdedu ~]# cat … [Read more...]

PostgreSQL HLL插件介绍

前言 HLL是 HyperLogLog数据结构的简称。PostgresSQL通过插件的方式引入了这种新的数据类型hll。HyperLogLog是一个具有固定大小,类似于集合结构,用于可调精度的不同值计数。例如,在1280字节的hll数据结构中,它可以在很小的误差范围内估算出数百亿的不同值计数。 算法 hll可以被视为层次结构的不同集合/不同值计数算法的组合,并向上移动该层次结构的规则。为了区分上述描述算法,将其命名为以下: ♠ EMPTY 表示空集的常量值 ♠ EXPLICIT 集合中确定的,唯一的,排序完整的整数列表,该列表保持一个固定的基数 ♠ SPARSE HyperLogLog是基于映射的“惰性”实现,是一种基于概率集合的数据结构。仅将非零寄存器的索引和值存储在 map中,直到非零寄存器的数量超过固定的基数。 ♠ … [Read more...]