PostgreSQL 常见时间日期处理

前言 在实际业务开发过程中,通常会遇到对时间日期相关的处理,这里列出一些常见的时间日期处理方法。 1. 时间戳带时区和不带时区 创建表字段时,指定带时区时间日期数据类型 postgres=# CREATE TABLE tab_test(id serial,app_name varchar,app_release_date timestamp with time zone default now()); CREATE TABLE postgres=# INSERT INTO tab_test VALUES(1,'app'); INSERT 0 1 postgres=# select * from tab_test; id | app_name | app_release_date ----+----------+------------------------------- 1 | app | 2021-10-11 15:24:05.730805+08 (1 row) 修改表字段为不带时区的数据类型 postgres=# alter table tab_test alter column app_release_date set data type timestamp without time zone; ALTER TABLE postgres=# alter table tab_test alter column app_release_date set default now(); ALTER TABLE postgres=# insert into tab_test values(2,'app2'); INSERT 0 1 postgres=# select * from tab_test; id | app_name | … [Read more...]

MySQL 有关用户密码

MySQL 介绍 MySQL 是由Oracle Corporation 开发和发行的最流行的数据库管理系统。MySQL 网站地址为: www.mysql.com,提供最新的MySQL软件包及相关工具的下载。MySQL 是一个数据库管理系统,数据库是由数据的集合构成。MySQL 是关系型数据库,关系型数据库存储数据在单独的一系列表中,而不是将数据存储在一个大的存储空间中。数据库的结构是被组织在快速的优化后的物理文件中。逻辑模型和对象如数据库、表、视图、行和列,提供了灵活的编程环境。MySQL 的 SQL 部分是标准的 "Structured Query Language"。SQL 是用来访问数据库的最标准的语言。当然,取决于你的编程环境。 安装 MySQL 使用 rpm 或者 yum 方式安装将会自动创建一个 mysql 普通操作系统用户。在当前 redhat 家族操作系统中,已经不再提供 mysql 安装包了,如果使用 yum … [Read more...]

记一次oracle HAIP引发的数据库问题

一、客户背景 前不久客户找到我跟我说他们新实施的两套oracle 12CRAC数据库补丁不能成功打上让我帮忙解决一下前往客户现场,客户系统为IBM AIX7.2,数据库为oracle12.2.0.1补丁是2021年4月份的补丁,采用了双心跳,客户已经将一节点GI补丁安装,二节点装不上,我尝试使用opatch auto二节点可以正常安装该补丁当时并没有注意集群的状态,第二天客户又找到我说集群状态不正常。 二、问题处理分析过程 1、登录数据库服务器查看集群状态发现只有一个节点ASM磁盘是在线状态 2、经过多次尝试关闭一边另一边ASM可以正常启动,只有一边能启动的情况两节点ASM实例无法同时启动,排查ASM日志发现ASM最后报错为 No connectivity to other instances in the cluster during startup. Hence, LMON is terminating the instance. Please check the LMON trace file for details. Also, please check the … [Read more...]

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...]