02 2023 档案
摘要:数据库日志相关参数:默认设置 log_destination = 'stderr' # Valid values are combinations of # stderr, csvlog, syslog, and eventlog, # depending on platform. csvlog #
阅读全文
摘要: 案例说明: 在KingbaseES V8R6版本提供了sys_upgrade的升级工具, 本案例描述了KingbaseES V8R6单机环境下数据库的小版本升级操作,案例涉及的版本从‘(Kingbase) V008R006C005B0041’通过sys_upgrade升级到‘ (Kingbase
阅读全文
摘要:问题引入 前端提了个问题,说是KingbaseES 返回的结果与 Oracle 返回的结果不一样。具体问题如下: oracle 执行结果:oracle 有结果返回。 SQL> create table t3(id varchar(9)); Table created. SQL>insert into
阅读全文
摘要: 案例说明: KingbaseES V8R3集群数据库服务端口(默认:54321)的配置在数据库及集群多个配置文件中都存在,修改端口需要更改所有的配置文件,本案例详细描述了数据库服务端口修改操作步骤,可用于生产环境下数据库服务端口修改的借鉴。 注意:对于数据库服务端口的修改,kingbase_mo
阅读全文
摘要:背景 对于两个大表关联的场景,如果过滤条件的列值,存在高度倾斜,可以考虑根据反向滤值,进行过滤操作,减少连接的CPU时间。 数据准备 -- 状态表 tp01_state 记录 大表tp01 记录的多种状态 kingbase=# select count(*) from tp01; count 100
阅读全文
摘要:在KingbaseES中,当我们创建一个数据表时,数据库会隐式增加几个系统字段。这些字段由系统进行维护,用户一般不会感知它们的存在。 例如,以下语句创建了一个简单的表: create table test(col number); insert into test(col) values (1),(
阅读全文
摘要:前言 1、TOAST的作用 TOAST全称是The Oversized-Attribute Storage Technique, 超大属性存储技术,就是超长字段在数据库中的存储方式。主要用来应对物理数据行超大的场景。 在KingbaseES中,页是数据在文件存储中的基本单位,它的大小是固定的,并且只
阅读全文
摘要:概述 在Oracle数据库中,DBA权限用户,可以为其他用户,创建对象,即使该用户没有任何权限。当DBA用户在该用户的表,插入数据时,提示 超出表空间的空间限额 。这就需要设置该用户的表空间的空间限额,或者赋予系统权限 UNLIMITED TABLESPACE 。 说明,空间限额,是作用在与用户同名
阅读全文
摘要:等待事件含义 Client:ClientWrite等待事件指数据库等待向客户端写入数据。 在正式业务系统中,客户端必然和数据库集群之间有数据交互,这里指的是数据接收,发送。数据库集群在向客户端发送更多数据之前等待的时间是client:ClientWrite事件。 基于上述原理,数据库集群和客户端之间
阅读全文
摘要:前言 透明加密是指将数据库page加密后写入磁盘,当需要读取对应page时进行加密读取。此过程对于用户是透明, 用户无需干预。 该文档进行数据库V8R3版本测试透明加密功能,需要说明,该版本发布时间早于V8R6,所以只能进行表加密,而没有表空间加密功能。 测试透明加密 参数说明: a) encryp
阅读全文
摘要:统计信息收集器没有响应/Stats collector is not responding 问题现象: kingbase数据库日志提示:统计信息收集器没有响应/Stats collector is not responding 示例Kingbase日志输出: LOG: using stale sta
阅读全文
摘要:Linux系统安装V008R006C007B0012版本KingbaseES数据库报错:Unsupported major.minor version 52.0 系统版本: [root@vm-10-37-129-15 ~]# cat /etc/redhat-release Red Hat Enter
阅读全文
摘要:前言 KingbaseES 物理备库有些配置可能影响到主库性能,或者反过来说主库某些配置也会影响到备库。终极原因还是heap tuple 和dead tuple放在一起导致的。 首先,原理上讲,物理备库就是基于KingbaseES WAL流式复制。物理备库在物理层面与主库完全一致,每一个数据块都一样
阅读全文
摘要:概述 分区修剪(Partition Pruning)是分区表性能的查询优化技术 。在分区修剪中,优化器分析SQL语句中的FROM和WHERE子句,以在构建分区访问列表时消除不需要的分区。此功能使数据库只能在与SQL语句相关的分区上执行操作。 参数 enable_partition_pruning 设
阅读全文
摘要:KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理: 一、sys_backup.sh脚本按照如下顺序寻找初始化配置文件: [kingbase@postgres ~]$ sh -x sys_backup.sh init +++ readlink -f sys_ba
阅读全文
摘要:file_dw简介 file_fdw模块提供外部数据包装器file_fdw, 它能被用来访问服务器的文件系统中的数据文件,或者在服务器上执行程序并读取它们的输出。 数据文件或程序输出必须是能够被COPY FROM读取的格式. 详见COPY。当前只能读取数据文件。 参数设置: filename 指
阅读全文
摘要:KingbaseES V8R6数据库运维案例之 ksql访问动态库问题 案例说明: CentOS环境下,在安装和初始化数据库实例后,启动数据库服务,通过ksql连接访问时出现以下故障: 经检查,是缺失动态库'libpq.so.5 '导致。 系统环境: [kingbase@node102 bin]$
阅读全文
摘要: 官方文档介绍: https://help.kingbase.com.cn/v8/highly/availability/cluster-use/cluster-use-2.html#id35 全局故障恢复(集群多级别自动恢复) 当出现整个集群故障、掉电后重新上电等情况下,对整个集群的自动恢复功能
阅读全文
摘要:索引与表的collate 不一致的情况下,会导致表上的索引不可用,这时要想使用索引,必须在SQL 语句指定建索引所用的collate。 数据库默认collate : test=# \l List of databases Name | Owner | Encoding | Collate | Cty
阅读全文
摘要:某商业银行生产系统KingbaseES读写分离集群主库出现故障,导致集群主备发生切换。客户要求说明具体的原因。 KingbaseES读写分离集群基本信息: KingbaseES集群信息 操作系统 Linux7.5 CPU 海光x86 数据库版本 V008R006C006B0021 集群方案 读写分离
阅读全文
摘要:KingbaseES使用dblink查询报错:unsupported for database link 适用于: KingbaseES所有版本。 问题现象: KingbaseES创建kingbase_fdw、kdb_database_link扩展插件并创建dblink连接后,在当前的连接使用刚创建
阅读全文
摘要:前言 前几天碰到同事咨询一个有关sys_dump导出时,表名为大小写混合情况的报错问题。因为sys_dump命令运行在linux操作系统上,所以这涉及到linux中shell的语法格式问题。 下面模拟测试一下 1,大小写敏感环境和不敏感环境建表的区别,以及表在数据字典中存储方式的区别。 2,sys_
阅读全文
摘要:前言 在KingbaseESV8R6数据库中,必须先将更改写入WAL日志(老版本称为 xlog),然后才能将这些更改从内存shared_buffer 写入到磁盘。 前两天有个同事遇到一个问题,wal日志每天生成120GB,于是我们检查了参数checkpoint_timeout参数是默认的5min。然
阅读全文
摘要:前言 昨天同事遇到了一个有关vacuum的典型问题。 V8R6读写分离集群环境,一主多备。 版本:kingbaseesv008r006c004 问题现象: 主库日常巡检发现日志大量记录: waring :oldest xmin is far in the past,close open transa
阅读全文
摘要:概述 应用连接Windows平台的KingbaseES 数据库,报错“com.kingbase8.util.KSQLException: 致命错误: 用户"system" Password 认证失败(kbjdbc:autodetected server-encoding to be GB2312,
阅读全文
摘要: 案例说明: KingbaseES V8R6在通过sys_rman执行物理备份恢复时,可以通过参数‘--kb1-path’,指定恢复的数据(data)目录,但如果原备份中包含自定义表空间时,需要建立表空间映射,再执行恢复。 适用版本: KingbaseES V8R6 一、案例复现 1、建立自定义表
阅读全文
摘要:案例说明: KingbaseES V8R6集群,备库在执行‘repmgr standby switchover’时,切换失败,出现以下故障: 经检查发现是主库归档配置错误,主库出现归档失败导致。 适用版本: KingbaseES V8R6 问题现象: 在备库执行:repmgr standby swi
阅读全文
摘要:概述 initdb 报错如下:“ERROR:libstdc++.so.6: version: 'CXXABI_1.3.8' not found (required by ...)” 此文是以 CentOS Linux 7 (AltArch)操作系统为例,编译安装高版本 GCC 编译器的具体过程,此过
阅读全文
摘要:概述 对于分区表的大数据统计分析,由于数据量巨大,往往需要采用并行。但是数据库并行的效率相比分进程分表统计还是有比较大的差距。本文通过巧用dblink,实现分进程分分区统计数据。 例子 kingbase=# \d t751 分区表 "public.t751" 栏位 | 类型 | 校对规则 | 可空的
阅读全文
摘要:应用使用jdbc访问KingbaseES数据库发生异常:SocketTimeoutException Read timed out 一、异常现象: 应用显示ERROR信息: Caused By: java.net.SocketTimeoutException: Read timed out at j
阅读全文
摘要:前言 本文介绍一下KingbaseES V8R6版本中逻辑恢复时,将原有的对象恢复到新的schema。 sys_restore命令中如果只加入了-g(原schema) -G(新schema)参数 那么导入数据后,表的schema为最新,但是表的owner没变化。如需owner也替换为最新,还需要加入
阅读全文
摘要:概述 数据表更新时,如果需要对修改前后的数据进行记录或比较,需要返回更新前后的数据。KingbaseES 可以通过 UPDATE语句是否能直接返回影响的数据。 KingbaseES支持insert,delete,update的returning。 insert returning 返回的是新插入的值
阅读全文
摘要: 案例说明: KingbaseES V8R3集群集成了DB VIP(应用连接)和Cluster VIP(集群管理),本案例描述了两种vip在集群的相关配置及集群故障时vip漂移的问题。 适用版本: KingbaseES V8R3 集群架构: 一、集群VIP相关配置 1)HAmodule.conf配
阅读全文
摘要: 案例说明: 数据库下的sys_filenode.map文件被破坏,导致此数据库无法连接访问。 Nail表(内核系统表)Relfilenode的存储机制: 经过研究发现,在数据目录里存在着pg_filenode.map文件,如下所示。 #数据库下pg_filenode.map文件 movead@m
阅读全文
摘要:前言 最近生产环境发生几次由于长事务导致表、库年龄没法回收的情况。我们要规避这种情况的发生,不要等发生了再去强制中断会话连接。当数据库中存在最老事务版本xmin,那么早于他的快照可以被标记为frozen,如果在最老事务之后产生的快照版本,不被标记为frozen。如果数据库中有活动的长事务,长事务不结
阅读全文
摘要:KingbaseES V8R6版本 数据库自动故障转移失败(Automatic Database Failover Fails) 适用于: KingbaseES V8R6 版本。 repmgr配置信息: 首先检查repmgr.conf配置文件,确任数据库主节点,数据库备节点参数:failover='
阅读全文
摘要:KingbaseES Json 系列十二--Json其他函数(JSONB_TYPEOF,JSON_SCALAR,JSON_SERIALIZE,JSON_TYPEOF,JSON_VALUE) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。King
阅读全文
摘要:KingbaseES Json 系列十一--Json数组操作函数(JSONB_ARRAY_ELEMENTS,JSONB_ARRAY_ELEMENTS_TEXT,JSONB_ARRAY_LENGTH,JSON_ARRAY_ELEMENTS,JSON_ARRAY_ELEMENTS_TEXT,JSON_A
阅读全文
摘要:KingbaseES Json 系列十--Json数组构造函数(ARRAY_TO_JSON,JSONB_BUILD_ARRAY,JSON_ARRAY,JSON_BUILD_ARRAY) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。Kingba
阅读全文
摘要:KingbaseES Json 系列九--Json路径查询函数(JSONB_PATH_EXISTS,JSONB_PATH_MATCH,JSONB_PATH_QUERY,JSONB_PATH_QUERY_ARRAY,JSONB_PATH_QUERY_FIRST) JSON 数据类型是用来存储 JSON
阅读全文
摘要:KingbaseES Json 系列八--Json记录操作函数三(JSON_TABLE) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。KingbaseES为存储JSON数据提供了两种类型:JSON和 JSONB。JSON 和 JSONB 几乎
阅读全文
摘要:KingbaseES Json 系列七--Json记录操作函数二(JSONB_POPULATE_RECORD,JSONB_POPULATE_RECORDSET,JSON_POPULATE_RECORD,JSON_POPULATE_RECORDSET) JSON 数据类型是用来存储 JSON(Java
阅读全文
摘要:KingbaseES Json 系列六--Json记录操作函数一(JSONB_TO_RECORD,JSONB_TO_RECORDSET,JSON_TO_RECORD,JSON_TO_RECORDSET) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数
阅读全文
摘要:KingbaseES Json 系列五:Json数据操作函数三(JSONB_SET,JSONB_INSERT,JSON_QUERY) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。KingbaseES为存储JSON数据提供了两种类型:JSON和
阅读全文
摘要:KingbaseES Json 系列四--Json数据操作函数二(JSONB_PRETTY,JSONB_STRIP_NULLS,JSON_OBJECTAGG,JSON_EQUAL,JSON_EXISTS,JSON_STRIP_NULLS) JSON 数据类型是用来存储 JSON(JavaScript
阅读全文
摘要:KingbaseES Json 系列三--Json数据操作函数一(JSONB_EACH,JSONB_EACH_TEXT,JSONB_OBJECT_KEYS,JSONB_EXTRACT_PATH,JSONB_EXTRACT_PATH_TEXT,JSON_EACH,JSON_EACH_TEXT,JSON
阅读全文
摘要:KingbaseES Json 系列二--Json对象函数(JSONB_BUILD_OBJECT,JSONB_OBJECT,JSON_BUILD_OBJECT,JSON_OBJECT) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。Kingba
阅读全文
摘要:KingbaseES Json 系列一--Json构造函数(JSON,ROW_TO_JSON,TO_JSON,TO_JSONB) JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。KingbaseES为存储JSON数据提供了两种类型:JSON和 J
阅读全文
摘要:可更新视图 可简化视图可自动更新:系统将允许在视图上使用 INSERT、UPDATE 和 DELETE 语句,就像在常规表上一样。如果视图满足以下所有条件,就是可简化视图,则视图可自动更新: 该视图的 FROM 列表中必须只有一个条目,该条目必须是一个表或另一个可更新的视图。 视图定义不得在顶层包含
阅读全文
摘要:KingbaseES 引入回收站功能,实现drop table操作的数据恢复。回收站功能默认关闭,参数名称:kdb_flashback.db_recyclebin。如果不允许一个删除的表进回收站,需要在drop 语句后面加上“PUGRE“X 选项。flashback 支持将一个已经删除到回收站中的表
阅读全文
摘要:原生的PG 对于 '' 和 null 认为是不同值:空值 和不确定值;而oracle 认为二者都是不确定的值。KingbaseES 为了兼容Oracle,增加了参数ora_input_emptystr_isnull,用于控制 '' 和 null 的比较。 一、Oracle null and '' 比
阅读全文
摘要:KingbaseES 内置支持 XML 相关操作,也可以通过xml2 插件进行扩展支持。以下通过例子介绍 KingbaseES XML 与Oracle 在用法上存在的一些差异。 一、数据准备 create table t1(content xml); insert into t1 values( x
阅读全文
摘要:一、对于null 值处理 1、Oracle 分区字段允许为空,只要存在maxvalue 分区,值就可以插入。 SQL> create table t1(id number,data varchar(9)) partition by range(id) 2 ( 3 partition p1 value
阅读全文
摘要:KingbaseES PLSQL 从 V8R6C4 版本开始,支持用户自定义异常。具体例子如下: create or replace procedure p_test() as error_number EXCEPTION; x integer:=1; begin if x < 10 then RA
阅读全文
摘要:KingbaseES默认如果在PLSQL-block 执行过程中的任何SQL 语句导致错误,都会导致该事务的所有语句都被回滚,而Oracle 则是语句级的回滚。KingbaseES 为了更好的与 Oracle兼容,新增参数ora_statement_level_rollback 。当 ora_sta
阅读全文
摘要: 案例说明: 数据库在日常的维护过程中,执行表结构查询语句(\d t1),如下图所示,出现“missing chunk number 0 for toast value 16259 in pg_toast_2619”,从报错信息看和toast表有关。本案例复现了以上故障,并提供了解决方案。 适用版
阅读全文
摘要:在使用KingbaseES数据库的时候,系统默认存在一个跟系统初始化用户同名的Superuser(默认是system用户,可更改)。 这个Superuser的存在其实对于权限的管控是很有用的,但是如果我们误操作,把数据库所有的superuser都变成普通账号后,可能会引起很多问题。 本文介绍这种情况
阅读全文
摘要:案例说明: Kingbase V8主备流复制集群在通用机环境部署和运维,需要建立主机间的ssh互信,如果ssh互信被破坏,将导致集群故障。但有的生产环境为了系统安全需要,会配置密码管理策略,定期的修改密码,当系统用户密码被修改或过期对ssh互信产生什么影响,本案例复现了以上问题,以下案例在(Cent
阅读全文
摘要:案例说明: 在集群管理中,会使用到root权限(如ip、aring命令等),为安全需要,有的生产环境禁止普通用户su切换到root,本案例测试了禁止普通用户su切换到root对集群管理带来的影响。 集群节点信息: ID | Name | Role | Status | Upstream | repm
阅读全文