QianBase/EsgynDB/Trafodion
QianBase、EsgynDB及Trafodion都源自同一产品,Trafodion为开源版本,EsgynDB为基于Trafodion的商业版本,而QianBase则是EsgynDB面向于金融行业的定制版本分支。
数据源的港湾
这个作者很懒,什么都没留下…
展开
-
记一次HBase启动异常的恢复历程
我去hdfs这个表对应的目录下面查看发现.regioninfo文件是存在的,但meta表中确实没有相关信息,既然是这样情况,那理论上通过-fixMeta应该就可以修复Meta数据,但是实际上执行-fixMeta后并没有实际的效果。至些,这个HBase启动的问题算是彻底修复了,虽然,但是,关于最后的.regioninfo为什么会有问题以及是什么问题,为什么不删除.regioninfo后再-repair就可以修复,这里面的一些细节问题我还没有研究清楚。不管怎样,先记录下来这次的恢复历程吧,后面有时间再来细究。原创 2022-09-08 11:25:36 · 2491 阅读 · 2 评论 -
EsgynDB Troubleshooting - ERROR[2012] Server process tdm_arkesp could not becreated
monitor启动的进程数超过这个值时,就会报2012错误,同时,monitor日志中会打印 [CExtNewProcReq::performRequest], Unsuccessful, MAX_PROCESSES limit!esp是由monitor启动的,而monitor启动的进程总数是有限制的,是由内部的宏。由于代码中对进程个数有硬性限制,需要考虑kill部分进程,如ESP进程。限制的,这个值是2048,目前这个值在代码中是硬编码的,外部无法修改。......原创 2022-08-09 14:23:29 · 191 阅读 · 0 评论 -
EsgynDB Troubleshooting - 网卡MTU导致跨网段访问数据库失败
大部分网络设备的MTU都是1500,如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。查询发现客户端的MTU值和集群服务器的MTU值设置为9000,而网关的MTU值为1500,导致网络传输丢包严重。设置:echo “1500” > /sys/class/net/eth0/mtu。查看:cat /sys/class/net/eth0/mtu。查看当前MTU值:ifconfig eth0。.原创 2022-08-04 10:00:28 · 325 阅读 · 0 评论 -
QianBase 运维实用命令
QianBase 运维实用命令原创 2022-08-03 16:36:43 · 607 阅读 · 0 评论 -
EsgynDB Troubleshooting - python脚本执行备份导出卡住的问题
EsgynDB数据库中使用DBManager可视化工具通过调用python脚本的方式来执行备份导出的任务。在数据库节点的cds目录下有相关备份恢复的执行脚本如edb_br_action.py。此脚本正常情况下均运行正常,但在个别运行很久的环境中,我们偶尔发现脚本会有执行卡住的问题。通过在脚本中关键位置中增加日志,我们定位到脚本卡在了以下语句:p = subprocess.Popen(sqlci_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, st原创 2022-03-28 17:02:05 · 1627 阅读 · 0 评论 -
EsgynDB Troubleshooting-ERROR[8837] Internal error occurred.
现象某环境突然发现连接不上数据库,使用JDBC或trafci连接数据库报错如下:*** ERROR[8837] Internal error occurred. User: XXX分析报错ERROR[8837] Internal error occurred.一般是数据库与LDAP连接认证出现问题。所以遇到此报错后,第一点我们可以使用ldapcheck命令检查是否能正常从ldap中查询到数据库用户,命令为:ldapcheck --username=trafodion如果以上命令返回resu原创 2022-03-16 10:10:35 · 1264 阅读 · 0 评论 -
QianBase-SQL计算当天距生日还有多少天
使用SQL计算当天距生日还有多少天的场景:一开始使用的SQL写法如下datediff(DAY,sysdate,to_date(year(sysdate)||substring('1988-07-10',5),'YYYY-MM-DD'))但后面发现这种写法在遇到闰年的时候存在问题,如下面所示>>select datediff(DAY,sysdate,to_date(year(sysdate)||substring('1988-07-10',5),'YYYY-MM-DD')) from d原创 2022-03-02 19:41:28 · 635 阅读 · 0 评论 -
TOP查看mxosrvr进程的常见用法
top -b -n 1显示所有进程信息并只执行一次top -b -n 1 | grep mxosrvr显示所有moxsrvr进程信息并只执行一次-top -b -n 1 | grep mxosrvr | awk ‘{if($6~/m/) printf("%d %d",$1,$61024);else if($6~/g/) printf("%d %d",$1,$61024*1024);else printf("%d %d",$1,$6)}’显示所有mxosrvr进程信息并只执行一次,将内存..原创 2021-04-05 09:59:26 · 286 阅读 · 0 评论 -
CDH 5.13升级到5.16
本篇章节主要介绍如何从CDH 5.13升级到5.16版本,此步骤也可以借鉴用来作其他CDH版本升级的指导。首先,准备CDH 5.16的安装包,包括CM 5.16的rpm包,及CDH 5.16的parcel包。//parcel包-rw-r--r-- 1 root root 2132782197 Oct 14 16:01 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel -rw-r--r-- 1 root root 41 Oct 14 16:01 CDH-原创 2020-10-26 19:39:03 · 508 阅读 · 0 评论 -
从已有CDH集群中配置CM HA
Hadoop的很多组件都是具有高可用性的,NameNode有HA,Zookeeper一般也是配置多个奇数个节点保证高可用,HBase Master可以配置多个做HA,DataNode、RegionServer等一般情况下都是配置成多个,保证数据的三副本。大多数据情况下,我们在安装Cloudera集群的时候对于Cloudere Manager这块可能只会默认装在一个节点,且一般情况下会安装在根目录。由于根目录磁盘一般会配置成RAID1,所以即使根目录磁盘坏了一块,也不影响CM服务。不过在某些特殊的情况下,原创 2020-07-27 23:21:19 · 1186 阅读 · 0 评论 -
EsgynDB schema不存在但get schemas仍然显示
现象在某些特殊情况下,我们已经清除了schema,但get schemas仍然存在,使用drop schema或cleanup schema均提示schema已经不存在,如下述步骤所示,SQL>get schemas;Schemas in Catalog TRAFODION============================ AFA_LTAFA_SITSEABASE_LIBMGR__MD__PRIVMGR_MD__REPOS_=====================原创 2020-07-25 15:46:56 · 615 阅读 · 0 评论 -
EsgynDB delete报错org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException
现象当表行宽较大时,批量删除数据或者插入数据可能会报错org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException,典型的错误场景如下,SQL>delete from TE_JZYY_TRADEDATA where TRANDATE <'20240101';*** ERROR[8448] Unable to access Hbase interface. Call to ExpHbaseInterface::nextRo原创 2020-07-13 20:04:44 · 651 阅读 · 0 评论 -
HBase FullGC导致RegionServer宕机
现象HBase的某台RegionServer发生了Full GC,导致了RegionServer宕机,主要日志如下2020-07-09 20:23:44,610 WARN org.apache.hadoop.hbase.util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 35202msGC pool 'G1 Young Generation' had collection原创 2020-07-10 10:16:10 · 1149 阅读 · 1 评论 -
EsgynDB 简单步骤测试JDBC能否连通数据库
有时候我们会发现某个应用通过JDBC接口无法连通数据库,但从其他环境中是可以正常连接目标数据库的,为了排除是应用本身的问题,我们可以构建一个简单的JDBC测试程序来验证机器到数据库的连通性。主要步骤为:编写简单的Java测试程序TestConnEsg.java,内容如下import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultS原创 2020-07-09 18:57:40 · 907 阅读 · 1 评论 -
EsgynDB 关于收集core信息的小技巧
EsgynDB数据库的使用中有时候会碰到一些mxosrvr的core的情况,此时需要分析core产生的原因。常规的做法是执行gdb mxosrvr coreName,然后执行t,看一下堆栈的情况。一些常规的手段可以收集一下client&server的基本信息, 展示如下:(gdb) bt#0 0x00007fac59d9368c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x00007fac4e原创 2020-06-23 08:53:18 · 367 阅读 · 0 评论 -
HBase Master启动报错java.io.IOException: error or interrupted while splitting logs
今天在一个CDH环境中启动HBase时HBase Master启动发生异常,HBase Master采用的是两台HMaster做一个HA。从CDH管理界面查询启动成功后,HBase Master状态并不太正常(如下图所示),以上截图看似正常,实质不正常。正常情况下两个HMaster主备可用时,Master后面应该有一个标识是活动还是备份的状态,但上面图片中缺少状态信息。于是查看两个HMaster日志,其中一台HBase Master日志信息正常,另外一台HBase Master日志一直在刷SplitL原创 2020-06-20 20:56:07 · 2596 阅读 · 2 评论 -
EsgynDB 清理不一致对象
EsgynDB中每个对象主要由于底层的HBase对象和上层的元数据组合,把一个Key-Value格式的HBase对象可以映射成为二维的关系型的表。目前EsgynDB是可能会有某些异常场景下会导致底层的HBase对象和上层的元数据之间匹配异常,这可能主要有以下几种情况,1、HBase对象存在,元数据坏了。2、元数据正常,HBase对象坏了。3、元数据和HBase对象都坏了。我们可以分别从EsgynDB层面和HBase层面来验证检查是元数据出现问题还是底层HBase对象出现问题。如果在EsgynDB原创 2020-06-06 15:50:07 · 350 阅读 · 0 评论 -
EsgynDB SQL统计模式下各对象个数
EsgynDB数据库把对象的元数据信息保存在"_MD_"这个模式下,所有对象信息,包括表、索引、视图、序列、存储过程、触发器、函数等均能在元数据表中找到对应信息。"_MD_"这个模式下有一张关键表OBJECTS,每个对象有一个唯一的OBJECT_ID,通过此OBJECT_ID,关联不同的元数据表可以获取表不同的信息,如列信息、主键信息、索引信息等等。OBJECTS表中有一个字段OBJECT_TYPE表示对象类型, 我们可以通过此对象类型字段查询每个对象是哪种对象。这里就分享一条SQL语句来查询某个模式原创 2020-05-14 15:37:04 · 407 阅读 · 0 评论 -
c3p0的坑导致并发性能问题
最近几天在做数据库结合应用的并发压力测试,发现并发压测性能一直上不去,透过应用日志发现主要慢在获取数据库连接上面,应用使用c3p0连接池的方式。连接池的主要配置如下, <dbConnPools> <dbConnPool id="1" name="afa" type="0"> <property name="User" value="xxx"/> <property name="Pas原创 2020-05-12 20:53:41 · 2681 阅读 · 1 评论 -
EsgynDB之TRIM函数
EsynDB支持TRIM函数,TRIM函数又细分为TRIM、LTRIM、RTRIM三个。TRIM:删除一个字符串的前导和尾随字符。包括多字节字符在内的每个字符都被视为一个字符。LTRIM:删除一个字符串的前导空格。RTRIM:删除一个字符串的尾随空格。以上三个函数的语法为,TRIM ([[trim-type] [trim-char] FROM] trim-source )trim-type is:LEADING | TRAILING | BOTHLTRIM (character-expre原创 2020-05-08 19:22:44 · 314 阅读 · 0 评论 -
易鲸捷钱库新特性之SQL级别HINT功能初见
易鲸捷数据库之金融数据库在即将到来的新版本1.6.0中将支持SQL级别的HINT功能。熟悉使用Oracle的各位看官可能都知道Oracle的HINT功能,大致语法如下,{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]… */Oracle支持多种HINT,下面列举一些常用的HINT,1、/*+ ALL_ROWS */ 表明对语...原创 2020-05-06 19:30:37 · 549 阅读 · 0 评论 -
Trafodion Troubleshooting-清空表报错ERROR[1034] Unable to obtain privileges
现象Trafodion中可以使用TRUNCATE或PURGEDATA命令进行表的清空操作,某些异常情况下清空表时会报错没有权限,*** ERROR[1034] Unable to obtain privileges.解决TRUNCATE之前添加两个CQD,cqd TRAF_RELOAD_NATABLE_CACHE 'on';cqd query_cache '0';...原创 2020-04-02 14:36:20 · 330 阅读 · 0 评论 -
Trafodion Troubleshooting-java.lang.Out OfMemoryError: unable to create new native thread
现象EsgynDB节点的sql日志中报错java.lang.Out OfMemoryError: unable to create new native thread,具体信息如下,2020-03-27 23:22:28,910, ERROR, SQL.EXE, Node Number: 0, CPU: 0, PIN: 45539, Process Name: $Z0000001DG3,,,J...原创 2020-03-30 16:32:39 · 477 阅读 · 0 评论 -
EsgynDB 使用JDBC UDR访问远程Trafodion的几个问题小结
在前面的文章Trafodion 通过TMUDF访问远程Oracle数据库中我们介绍如何通过TMUDF访问来访问远程数据库,如Oracle、MySQL乃至于远程的Trafodion数据库。凑巧今天在一个环境中需要使用TMUDF来访问远程Trafodion数据库,并在使用过程中遇到了几个小问题,以下我们描述几个问题及解决方案,供大家后续遇到问题时参考使用。问题一:带多租户的远程访问报错信息:te...原创 2020-03-30 16:06:15 · 663 阅读 · 2 评论 -
EsgynDB CQD-traf_lock_ddl
本文介绍EsgynDB的CQD之traf_lock_ddl,此CQD是为了控制并发的DDL/DML操作的用途,默认情况下在EsgynDB中的DDL和DML操作不会相互阻塞,这可能会导致DDL和MDL同时进行时的一些怪异现象。打个比方,如果在一个正在不停写入数据的表上创建索引,那么可能会造成表和索引的数据不一致。鉴于此问题,EsgynDB新的版本引入了并发DDL/DML功能,此功能通过cqd tr...原创 2020-03-30 15:17:03 · 450 阅读 · 0 评论 -
EsgynDB 关于带索引的DELETE性能提升
EsgynDB在金融行业的分支版本钱库(QianBase)已经问世有段时间,在钱库版本中,对相关的功能、性能部分做了大量的增强。这其中包括插入、更新及删除的性能提升。在早期的版本中,当目标表只有主键的情况下,EsgynDB的增删改的性能是相当不错的,因为默认情况下执行计划走的是批量提交的方式,在执行计划中我们可以看到诸如VSBB_UPSERT、VSBB_DELETE这样的字眼,VSBB即批量执行...原创 2020-02-10 17:38:59 · 1592 阅读 · 0 评论 -
Trafodion Troubleshooting-java.io.IOException: delete late checkin for transaction xxx
现象在Trafodion数据库中做批量删除时,执行时长超过2小时后报错如下,>>delete from test_delete where a>100;*** WARNING[6008] Statistics for column (A) from table TRAFODION.SEABASE.TEST_DELETE were not available. As a r...原创 2020-02-08 17:00:13 · 411 阅读 · 0 评论 -
Trafodion更新统计信息原理分析
在前面的文章Trafodion 更新统计信息数据收集 中我们介绍了如何查看更新信息统计的详细步骤,今天正好有空对更新统计信息日志做了一些基本的分析,也算是大致了解了更新统计信息的内部原理了吧,以下内容对更新统计信息的步骤做了一些简化,希望没有不小心剔除掉重要的点。1. Get Detail Update Statistics Logsqlcicqd ustat_log 'ustat_2020...原创 2020-01-31 21:12:54 · 3239 阅读 · 0 评论 -
Trafodion Troubleshooting- Object has invalid state and cannot be accessed
现象当表做truncate发现异常中断时,表可能会处于一种中间状态,再查询表时可能会报表处于invalid state的错误。解决Truncate操作内部会执行一系列过程:包括修改元数据信息、禁用底层HBase表、删除底层HBase表等。Truncate是一个DDL操作,目前由于异常中断可能造成某些步骤没有回滚,导致表的状态异常。如果底层HBase表正常,则我们只需要改写元数据信息的v...原创 2020-01-10 18:15:28 · 570 阅读 · 1 评论 -
EsgynDB Troubleshooting- NodeExists for /trafodion/recovery/LOCK/SnapshotMetaLock
现象EsgynDB中创建带增量备份的表, 出现长时间不结束的现象。DTM日志中有报错如下,分析表带增量备份属性,建表时有一个额外的snapshot动作,此动作执行时会在zookeeper中临时注释一个znode节点,其他建表动作若要完成需要等待此LOCK结束。解决从zookeeper-client中删除节点/trafodion/recovery/LOCK/SnapshotMetaLo...原创 2020-01-10 16:26:27 · 437 阅读 · 0 评论 -
EsgynDB Troubleshooting-Transaction subsystem TMF returned error 82 while starting a transaction
现象数据库执行相关命令,只要跟事务相关的均报错ERROR [8604],如执行BEGIN WORK报错信息为:ERROR [8604] Transaction subsystem TMF returned error 82 while starting a transaction分析错误信息判断与TM进程有关。ERROR 82表示数据库TM服务未正常启动,FETMFNOTRUNNING...原创 2020-01-09 11:59:07 · 500 阅读 · 0 评论 -
EsgynDB Troubleshooting-java.io.IOException: java.util.NoSuchElementException
现象EsgynDB在做版本升级以后,发现无法查看backup tag,报错信息如下,SQL>get all backup tags;*** ERROR[5050] GET BACKUP TAGS command could not be completed. Reason: Error returned during list all backups. See next error ...原创 2020-01-02 15:32:53 · 518 阅读 · 0 评论 -
Trafodion Troubleshooting-Failed to replace a bad datanode on the existing pipeline
现象安装EsgynDB在单个节点,在数据库初始化过程中报错,错误内容如下,Create Library Manager: Started*** ERROR[8458] Unable to access ExpLOBInterfaceInsert interface after retry. Call to ExpLOBInterfaceInsert returned error LOB_D...原创 2019-12-28 10:54:41 · 483 阅读 · 0 评论 -
Trafodion Troubleshooting-failed because A clone should not have regions to restore
现象在HBase中做RESTORE_SNAPSHOT时报错,hbase(main):022:0* restore_snapshot 'RLZYGLXT_FILE_snapshot'ERROR: org.apache.hadoop.hbase.snapshot.RestoreSnapshotException: clone snapshot={ ss=RLZYGLXT_FILE_snapsh...原创 2019-12-12 12:24:11 · 727 阅读 · 0 评论 -
EsgynDB之递增序列
EsgynDB在很早期的版本就已经开始支持了SEQUENCE(序列)这一对象了。SEQUENCE的用法符合标准用法,与其他关系型数据库如Oracle使用方法几乎没有区别。以下是摘自SQL手册里面的关于创建SEQUENCE的语法,CREATE SEQUENCE [[catalog-name.]schema-name.]sequence-name[START WITH integer][INCR...原创 2019-12-11 11:05:56 · 460 阅读 · 0 评论 -
Trafodion Troubleshooting-org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException
现象使用INSERT或UPSERT插入表报以下错误,但UPSERT USING LOAD或LOAD INTO则执行成功。*** ERROR[8448] Unable to access Hbase interface. Call to ExpHbaseInterface::nextRow returned error HBASE_ACCESS_ERROR(-706). Cause: java....原创 2019-11-25 12:20:59 · 602 阅读 · 0 评论 -
EsgynDB 升级CDH从5.13.3到5.16.2后导致HBase启不来的问题排查
最近在项目测试中需要把CDH从5.13.3升级到5.16.2,升级过程中比较顺利,但是升级后HBase Master总是过一小会儿就出问题,HBase有两个Master,一主一备,正常情况下,查看HBase实例时应该是显示一个Master(主)和一个Master(备),但升级后看到主备状态,Region也无法OPEN,过一段时间后HBase Master出现异常,如下图所示:虽然看似状态正常,...原创 2019-11-04 17:01:42 · 687 阅读 · 0 评论 -
Esgyn Designer工具指定JDK启动
Esgyn Designer工具的启动需依赖JDK 1.8版本。如果客户端机器上默认的JDK版本低于1.8,则Esgyn Designer可能无法启动。然而,有些时候,客户端机器原来可能有其他一些工具也依赖于默认的JDK,且需要JDK版本为1.7。方法为,修改Esgyn Designer工具的启动参数脚本,添加启动的JDK路径。此时客户端的默认JDK还是1.7,但需要在客户端是单独再安装一个JD...原创 2019-10-25 15:56:47 · 689 阅读 · 0 评论 -
get views on table查看表上关联的视图
Trafodion支持语法“get views on table <tablename>”,可以看到一个表上关联的视图。在Trafodion中,如果表有被其他视图引用,则无法直接用"drop table <tablename>"来进行删除。这种情况下,我们需要使用"drop table <tablename> cascade"来进行级联删除。然而,如果某一个...原创 2019-10-25 14:43:54 · 690 阅读 · 0 评论 -
Trafodion 客户端
Trafodion 客户端主要分为两类,即JDBC-Based和ODBC-Based,JDBC-BasedDriver Trafodion JDBC Type 4 Driver --- 用于将外部应用(Java应用)连接到Trafodion数据库。Tool Trafodion Command Interface(TrafCI) --- 命令行工具,允许通过命令连原创 2016-09-22 18:56:40 · 1596 阅读 · 3 评论