随笔分类 - 数据库运维
摘要:用户需求:新建一个用户B,需要能够查询A用户的所有表,并且对以后新建的表也要有select权限。 对于现有的表可以通过动态sql批量进行授权,但是未来新建的表要如何进行授权呢? 查询了帮助文档发现通过alter default privileges命令可以实现。 命令描述 ALTER DEFAULT
阅读全文
摘要:在KingbaseES中,当我们创建一个数据表时,数据库会隐式增加几个系统字段。这些字段由系统进行维护,用户一般不会感知它们的存在。 例如,以下语句创建了一个简单的表: create table test(col number); insert into test(col) values (1),(
阅读全文
摘要:--查看所有数据库大小 select sys_database.datname, sys_size_pretty(sys_database_size(sys_database.datname)) AS size from sys_database; --查看指定表中所有索引大小 select sys
阅读全文
摘要:案例说明: 默认KingbaseES V8R3用户认证采用md5加密,有的生产环境对安全要求较高,需要将md5升级到sha-256;如果口令使用 scram-sha-256 设置加密,那么它可以被用于认证方法 scram-sha-256 和 md5、password (但后一种情况中口令将以明文传输
阅读全文
摘要:一、KingbaseES数据库limit查询子句: 在KingbaseES数据库使用LIMIT子句限制查询结果的行数,从而实现分段显示数据的功能。 使用LIMIT子句在KingbaseES数据库中进行查询结果行数限制: 语法格式为: SELECT * FROM table_name LIMIT ro
阅读全文
摘要:前言 本文介绍生产环境中CPU使用率高的常见原因,以及在CPU使用率高问题上的可能解决措施。 本文主要内容: 关于用于识别高CPU使用率的工具,例如kwr报告中DB CPU指标、kmonitor和sys_stat_statements。 确定CPU使用率高的根本原因。 使用 Explain Anal
阅读全文
摘要:前言 在表级别设置autovacuum有关参数清理表的死亡元祖可以有效规避autovacuum触发全局默认阈值的高峰。例如,如果想让表的autovacuum任务更频繁,可以在表级设置更小的触发autovacuum有关参数autovacuum_vacuum_scale_factor。 如果需要在很多表
阅读全文
摘要:背景 客户现场执行压测时候,发生周期性的TPS大幅下降,通过查看kwr报告发现DBcpu时间占DBtime时间很少,百分之90的DBtime花费在tuple锁等待上,等待事件类型是lock。 等待时间最多的语句是select fd_id,ctid,xmin from ... for update 含
阅读全文
摘要:前言 这是实际生产环境中遇到的一个问题,前端业务有如下报错: could not serialize access due to read/write dependencies among transactions Detail: Reason code: Canceled on coinflict
阅读全文
摘要:timeline定义 每当归档文件恢复完成后,创建一个新的时间线用来区别新生成的WAL记录。WAL文件名由时间线和日志序号组成 引入timeline的意义 为了理解引入时间线的背景,我们来分析一下,如果没有时间线,会有什么问题?先举个将数据库恢复到以前时间点的例子。假设在一个数据库的运行过程中,DB
阅读全文
摘要:1、自动坏块修复简介 主数据库访问系统表数据、索引、持久化用户表数据、索引时,从磁盘读取数据块至共享缓冲区,如果检测到坏块,自动从备节点获取坏块的副本,并修复坏块。 坏块修复相关参数 参数名称 默认值 参数描述 auto_bmr.auto_bmr_max_sess 5 设置自动坏块修复最大的会话数
阅读全文
摘要:前言 CREATE INDEX CONCURRENTLY(CIC)是DBA们最常用的语句之一,它的好处是不阻塞DML语句。 但在大事务、长事务较多的系统,它可能被阻塞得很久。 本篇就从这个阻塞的案例开始,学习CIC的过程、原理以及注意事项。 测试CREATE INDEX CONCURRENTLY被阻
阅读全文
摘要:KingbaesES数据库中遇到表膨胀,有时碰到vacuum失效的场景。最常见的原因如下。 以下测试基于有关analyze和autovacuum的默认阈值触发条件。 1.autovacuum是否运行,通过查看 sys_stat_user_tables 查看autovacuum_count字段次数。
阅读全文
摘要:KingbaseES V8R6集群运维案例之 访问系统表‘unrecognized token: "false"’故障 案例说明: KingbaseES V8R6集群在升级补丁后,主备库访问系统表出现‘unrecognized token: "false"’故障,如下图所示: 适用版本: Kingb
阅读全文
摘要:KingbaseES V8R6运维案例之 数据库resetwal后启动失败 案例说明: KingbaseES V8R6集群触发failover切换后,原主库自动recovery失败,现在需要将原主库启动为单实例的数据库运行,在执行了resetwal后,启动数据库失败。sys_log记录以下故障信息:
阅读全文
摘要:KingbaseES V8R6运维案例之 数据库连接访问故障分析 案例说明: 在部署KingbaseES V8R6后,正常启动数据库服务,但是通过ksql连接数据库服务访问时,出现连接到postgresql socket的错误提示,如下图所示: 适用版本: KingbaseES V8R6 一、问题分
阅读全文
摘要:文章概要: 本文对主要就KES和Oracle的PLSQL中关于存储过程参数模式异同进行介绍,列举和验证了存在的差异 (如果想直接看差异的结论可直接跳到末尾)。 一,存储过程的三种参数模式 重新回顾一下,PLSQL中存储过程的三种参数模式IN、OUT、INOUT 1,IN参数模式,也是默认的模式,在存
阅读全文
摘要:目的 本文目的实现汉字首字母排序。 排序规则和字符集的关系如下。 select sys_encoding_to_char(collencoding) as encoding,collname,collcollate,collctype from sys_collation ; 按照UTF8字符集匹配
阅读全文
摘要:自定义表空间的作用 使用多个表空间可以更灵活地执行数据库操作。当数据库具有多个表空间时,您可以: 1、将用户数据与系统表数据分开存储在不同性能的存储上,以减少I/O争用。 2、将一个应用程序的数据与另一个应用程序的数据分开,以防止在必须使表空间脱机时多个应用程序受到影响。 3、将不同表空间的数据文件
阅读全文
摘要:背景 数据库日志有如下提示: WARNING: skipping "pivot_t1" only table or database owner can vacuum it 从提示可以看出,有用户对表pivot_t1进行vacuum操作时,出现了权限问题。 测试 TEST=# \c - ud; Yo
阅读全文