- 博客(17)
- 收藏
- 关注
原创 hibernate 方言包加载流程
在VersionInsensitiveMapper中内置了常见数据库以及方言映射。2 获取数据库连接信息,如 版本,服务名,方言信息等。4 在使用国产数据库时一般都会单独实现自己的方言。3 加载方言信息,如未配置则走默认内置。
2024-05-22 17:41:38 23
原创 gbase8s 浮点数与日期时间存储
DECIMAL(p,s) NUMERIC(p,s) (p +3)/2 个字节(如果小数位是偶数)或 (p + 4)/2 个字节(如果小数位是奇数)向上取整。FLOAT (DOUBLE PRECISION) 8 字节 双精度浮点数 精度为16位。c (未知) 0/1/2 标识整数部分所占字节,为0 时 整数位0,其余则为小数部分。符号位(1)+指数和偏移(2-12)+尾数(13-64)DECIMAL(p,s) 存储与DECIMAL(p)类似。DECIMAL(p) 1 + p/2 个字节向上取整。
2024-05-22 17:19:18 200
原创 gbase8s数据库寻址过程分析
rowid是一个4字节编码,前3个字节是逻辑页号,第4个字节是slot号,rowid为257,转16进制为0x101,那么逻辑页号就是0x000001,slot号就是0x01,rowid为258,转16进制为0x102,那么逻辑页号就是0x000001,slot号就是0x02,所以rowid为0x101,0x102对应的物理页号就是 2526592 + 8=2526600。前四字节为逻辑偏移 ,之后两字节为表空间编号 ,然后再四字节为物理位置。257,258 转换为16进制为0x101 ,0x102。
2024-05-21 11:09:35 219
原创 gbase8s数据库软件rpm包制作
rpm -ivh GBase8s_test-8.8-1.el7.centos.x86_64.rpm 进行数据库安装。构建结束后在/root/rpmbuild/RPMS/x86_64下生成数据库rpm安装包。将数据库安装包与init_gbase.sh上传至此目录下。rpmbuild构建rpm包。
2024-05-17 13:49:54 97
原创 GBase8s Enterprise Replication(企业级复制) 数据冲突处理
因其独特的复制技术,在某些场景下存在数据同步冲突的可能性,虽然也提供了一些冲突的解决方案,其本质上已经对数据精准度做了让步。在实际经验中,更推荐将连接锁定在一个节点上。然而,在运行过程中,不可避免的会发生数据库/服务器故障导致数据库发生切换,在现有机制下,不能保证连接锁定在一个节点,此时可以借用keepalived 非抢占模式的机制,使用虚拟IP锁定连接。keepalived 原理在本文不做具体介绍,如下提供了一种参考性的实现逻辑。2 在各个节点安装keepalived组件。0 gbase 复制集群正常。
2024-05-12 20:46:19 200
原创 gbase8s spl异常捕获机制
end;end;在 on exception 作用域内可捕获自定义异常,gbase8s自定义异常的错误号为 -746。
2024-05-09 13:24:09 169
原创 flowable 适配gbase8s
在上述的包下新增sql文件 ,将oracle 的sql文件复制出来,将名字中的oracle 替换成gbase8s。在org.flowable.common.db.properties包下。将TIMESTAMP(6) 替换成 TIMESTAMP(5)将sql中的NVARCHAR2 替换成VARCHAR。将语句中的constraint 后边的表名去掉即可。修改ALTER添加唯一约束的语法支持gbase8s。将NUMBER(*,10) 中的* 替换成28。修改ALTER添加外键的语句支持gbase8s。
2024-05-09 13:04:14 354
原创 gbase8s odbc 插入日期时间类型数据简单案例
一种为使用gbase8s相关的结构体。gbase8s提供了两种插入方式。或者直接以字符串的形式插入。
2024-04-29 21:15:28 79
原创 gbase8s odbc 操作 blob、clob简单示例
一种是标准odbcAPI接口,需要设置连接属性SQL_INFX_ATTR_LO_AUTOMATIC 为 true。二 使用gbase8s提供的 ifx_lo等函数。令一种是gbase提供的内部函数接口。gbase8s支持两种操作方式。一 使用标准ODBC API。
2024-04-29 19:53:19 113
原创 gbase8s自定义C 函数
实现类似mysql 中 find_in_set 函数,按照 “-”分割字符串返回第一次出现的位置。更多资料参考gbase8s官方手册。
2024-04-10 19:07:53 104 1
原创 gbase8s ENABLE_NULL_STRCAT,ENABLE_NULL_STRING 参数描述
ENABLE_NULL_STRING 开启后在条件 is null下会包含null and '',但是=‘’不会等效 is null。ENABLE_NULL_STRING参数作用为 开启后 将varchar类型的空字符串与null值在查询条件中的等效判断。ENABLE_NULL_STRCAT 是否允许null值进行拼接。观察发现null 值存储时实际上是占用了1个字节 存储值为 0000。限制,只针对varchar类型的空串 char类型的空串则不适用。varchar 空串和null 存储差异比较。
2024-04-08 19:51:14 102
原创 gbase8s 日志概述
gbase8s数据库为了改善事务处理能力,使用buffer pool 缓存事务所访问的数据,在事务逻辑上做了修改,数据并没有在事务提交后更新到磁盘上,为了保证数据库在异常的情况下数据的完整性、准确性,数据库需要定期(较短时间内)将buffer pool 数据同步到磁盘上,保证数据的物理有效性。数据库周期性的将buffer pool 的脏数据刷新到磁盘上,达到磁盘、内存数据一致性的时间点被称为检查点。
2024-03-28 14:30:30 246
原创 浅谈gbase与oracle 字符集差异
字符集(Character Set):按照一定的字符编码方案,将特定的符号集编码为计算机能够处理的数值的集合。常见字符集名称:ASCII字符集、Unicode字符集、GB2312字符集、BIG5字符集、 GB18030字符集等。
2024-03-25 18:28:44 917 1
原创 druid 连接gbase8s数据库问题记录
在不改动源码的情况下使用druid,不能使用DruidDataSourceFactory工厂类去初始化数据源。但此时不能使用JdbcUtils.getDbType 去拿到typename,因其不再内置的数据源中。在druid 1.2.16以及之前版本中,可以允许dbType =null,不影响数据库连接使用。在druid 1.2.17以及之后版本中,已经不允许dbType =null。必须用到可以考虑去从配置的properties中去读配置属性。可以自定义数据源去绕开dbTypeName。
2024-03-16 15:53:17 419 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人