YashanDB共享集群V23.3 新特性解读
孟凡彬 YashanDB集群首席架构师本文基于孟凡彬2024年11月在2024年国产数据库创新生态大会“根”技术专场的演讲整理形成,主要对YashanDB共享集群近一年发布的新特性进行原理探讨与技术解析。 2023年11月,YashanDB推出采用单库多实例架构的多活共享集群形态(YashanDB for Cluster,YAC),并在今年3月,崖山共享集群也发布了长期维护的商用集群版本
【YashanDB 知识库】jdbc 查询 st_geometry 类型的数据时异常
问题现象某客户的业务在通过 YashanDB jdbc 驱动查询含有 st_geometry 列的数据时,报如下异常:YAS-00101 cannot allocate 0 bytes for anlHeapMalloc问题的风险及影响影响客户的正常业务运行 问题影响的版本所有的 YashanDB 版本 问题发生原因数据库用户没有对 st_geometry 类型的 execut
JDBC 驱动的 date 类型字段结果集调用 getString 方法只返回日期,不返回时分秒
问题现象JDBC 驱动查询 date 类型字段,对 ResultSet 直接调用 getString 方法,驱动返回的字符串只有日期,没有时分秒。如上 Java 代码片断只返回 YYYY-MM-DD 类型的字符串,没有带时分秒问题的风险及影响返回的字符串只有日期,没有时分秒,影响业务逻辑。问题影响的版本所有的 YashanDB 驱动。问题发生原因YashanDB 驱动内部实现问题。解决方法及规避方
【YashanDB 知识库】Mybatis-Plus 调用 YashanDB 怎么设置分页
数据库状态正常异常1、查看告警列表 例如:告警显示实例无法连接,一般是数据库实例服务掉了,需要尽快联系系统负责人查看2、若知道此系统的数据库用户名和密码,尝试登录,若能登录,则是数据库主实例故障,数据库已经自动切换到备库,联系系统负责人排查问题,启动实例,若无法登录或数据库是单节点的,再做其他排查。3、查看监控项,数据库监控和主机监控若都有数据,则故障原因基本是数据库主实例掉了,联系系统
【YashanDB 知识库】单机部署报错:prohibited operation
现象部署第 1 步 install 成功,在第 2 步 deploy 时报错。报错信息:prohibited operation, please check if the IP and username are correct。原因主机配置文件(hosts.toml)里的 ssh 登录 IP 地址不是本机地址导致,为了安全考虑,崖山数据库部署时不允许远程机器操作本地部署。解决办法ssh 登录 IP
【YashanDB 知识库】启动数据库时报错
问题现象在部署数据库时,或直接用 yasdb 启动数据库时报错:YAS-02059 control file version 0.2.64 is incompatible with YashanDB version 0.2.65原因数据库的文件(如:control file)的版本与数据库实例要求的版本不兼容,通常数据库要求的文件格式更新了,而 control file 还是旧的格式,所以不兼容。
【YashanDB 知识库】如何处理报错"UDT column batch insert"
问题现象YashanDB 中的 ST_GEOMETRY 类型是数据库内置的一种自定义类型,用于存储和访问符合开放地理空间信息联盟(Open Geospatial Consortium,简称 OGC)制定的 SFA SQL 标准的几何对象。在批量插入(例如 insert into select 或使用 yasldr 导入数据)的时候, 如果表有 ST_GEOMETRY 类型的字段, 则会报错 YAS
如何解决共享集群部署遇到报错:YAS-05721 invalid input parameter
问题现象在共享集群部署执行数据库部署(步骤 3)遇到报错: YAS-05721 invalid input parameter, reason: node name invalid.问题原因部署共享集群时,默认是用操作系统的主机名(hostname)来做节点名称(node name),即服务器名称,如果操作系统的主机名称不符合服务器名称要求,就会报此错误。服务器名称要求如下:l 
如何排查 YMP 报错:”OCI 版本为空或 OCI 的架构和本地系统的架构不符“
问题现象在迁移预检查的版本检查阶段报错:检查未通过 OCI 版本为空,报错的详细信息:OCI 版本为空或 OCI 的架构与本地系统架构不符; 如何排查1、查看 yasdts 日志,从日志报错信息得知 libdrv_oracle.so 少了依赖库 libnsl.so.1tail -f yashan-migrate-platform/logs/dts_log/run.lo
【YashanDB 知识库】如何限制用户 session 连接数
问题原因客户连接数过多,报错 YAS-06004 maximum number of sessions exceeded 问题的风险及影响后续连接业务报错,影响测试和业务使用 解决方法及规避方式1、$YASDB_DATA/log/listener/listener.log,查找历史连接多的用户,关掉相关应用。2、限制每个用户的 session 连接数CREATE PROFILE
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
问题现象某客户在通过 yasql 查询 Oracle 数据时,报如下异常:SQL> select 1 from dual@link_oracle;YAS-07301 external module timeout, reason: yex_server heatbeat timeout问题的风险及影响dblink 功能无法正常使用问题影响的版本所有的 YashanDB 版本问题发生原因查看
使用 leading hint 调整 SQL 执行计划后报错 YAS-04522 invalid hint leading
问题现象使用 leading hint 调整 SQL 执行计划后,执行 SQL 时,报错:YAS-04522 invalid hint leading问题的风险及影响SQL 语句无法正常执行问题影响的版本所有的 YashanDB 版本问题发生原因YashanDB 优化器的 Bug解决方法及规避方式规避方式:不使用 leading hint问题分析和处理过程使用如下 SQL 语句验证当前版本 Yas
【YashanDB 知识库】通过触发器复制 varchar(4000 char) 列的数据导致乱码
问题现象某客户在使用触发器将 varchar(4000 char)列的数据从表 A 复制到表 B 时,表 B 上列的数据与 A 上对应列的数据不同且为乱码。如下截图为 A 的数据及使用触发器复制到 B 的数据:问题的风险及影响数据正确性无法保证。问题影响的版本所有的 YashanDB 版本问题发生原因YashanDB 在处理触发器场景下的 varchar(4000 char)列的数据复制时,处理机
数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
问题现象数据库在正常或异常情况下,如何实现主备切换问题的风险及影响数据库主备切换若没有正确配置,在数据库发生主节点故障时,会影响业务的使用问题影响的版本23.2 整个大版本问题发生的原因1、若主节点所在主机因为其他原因导致资源紧张的情况下,想要切换备节点为主节点更好的提供服务,此时就需要在数据库正常的情况下执行手动主备切换 2、数据库主节点异常时,若配置了自动主备切换,则数据库在心跳时间
【YashanDB 知识库】删除用户组后,yasql 不能免密登录问题
问题现象免密登录失败,报用户密码错误。如下图:问题的风险及影响免密登录失败问题影响的版本所有版本问题发生的原因删除了 yashandb 安装时的用户组,导致该问题。解决方法及规避方式把用户,重新添加到新创建的用户组groupadd xpusermod -g xp xp问题分析和处理过程命令:id xp查看当前用户加入的用户组,发现该用户所属的组不是该用户自己。也就是登录时默认不是 xp,考虑改成默
【YashanDB 知识库】崖山有哪些内存参数,Share Pool 各个参数之间有什么关系
问题现象Oracle 一般只需要配置 SGA/PGA,SGA 内存会自动做分配,在崖山有比较多的内存配置参数,可以根据需要做详细的配置控制。具有有哪些主要参数,功能是什么呢,用户常有这种疑问。在用户使用 YashanDB 的时候,开始的时候就会对内存的参数做一些配置调优,在另一篇文章《要有好的跑批性能,有哪些参数要注意》也介绍到如何合理配置各项参数,其中也涉及较多内存参数的配置。但是用户实际使用的
【YashanDB 知识库】GBK 库,生僻字插入 nvarchar2 字段后乱码问题
问题现象如下 SQL,插入的人名中有两个 GBK 生僻字和,GBK 编码中没有这两个字符。 drop table t1;create table t1(id int,c1 nvarchar2(128));insert into t1 values (1,'xx林海');//生僻字显示不出来,用xx替换 drop table test061;create tabl
【YashanDB 知识库】IMP 跨网络导入慢问题
问题现象同样一份数据 290M,在同一个机器本地导入,耗时 2 分钟多,本机用 ip 连接导入耗时 4 分钟多,跨机器导入,耗时 17 分钟多,客户现场耗时 30 分钟多。问题风险及影响客户导入慢问题影响的版本客户测试环境版本:22.2.8.3问题发生原因imp 导入时,是一条一条 SQL 传到 yashanDB 执行,交互次数较多,网络有一定延时,交互次数多时性能就突降。解决方法和规避将待导入文
【YashanDB 知识库】insert 语句有编码不识别字,执行卡住问题
问题现象insert 语句卡住,yasdb worker 线程 cpu 占用 99.9%问题风险及影响sql 执行不了问题影响版本22.2.16.1、23.3.0.61 及之前版本问题发生原因lex 解析时,对于不能识别字符的特殊场景,形成死循环。1、alter system kill session '22,26'; kill 掉 session 后,发现 session 显示状
【YashanDB 知识库】服务器重启后 Yashandb 无法启动
**【问题分类】**安装部署**【关键字】**服务器重启 Yashandb 启动失败【问题描述】部署 YashanDB 的服务器关机后,第 2 天重启服务器,启动 YashanDB 报错。dial tcp xx.xx.xx.xx:1675: connect: connection refused 【问题原因分析】1675 端口是 yasom 端口,说明 yasom 进程未启动,启动 ya