- 博客(167)
- 资源 (3)
- 收藏
- 关注
原创 GBase 8s数据库用户登陆验证大致过程
如果用户名不匹配username,刚使用默认用户(default user的properties);如果匹配username,则获取surrogate_id。如果用户名不匹配username,则认为不是内部用户,转使用操作系统验证;如果匹配username,则继续2。如果匹配,则获取os_username。1,访问系统库sysuser的表sysintauthuser。3,访问系统库sysuser的表syssurrogates。如果匹配,完成检验。2,访问系统库sysuser的表sysusermap。
2025-04-01 17:04:20
249
原创 JayDeBeApi对GBase 8s数据库数据类型的支持
本文基于GBase 8s V8.8 3.6.2_2版本编写, 是对原文档:https://gbasedbt.com/index.php/archives/459/ 的更新。常用的数据类型如下:GBase 8s数据库数据类型参考:https://gbasedbt.com/index.php/archives/628/
2025-03-26 17:41:57
703
原创 GBase 8s的TRANSLATE() 函数使用说明
GBase 8s TRANSLATE() 函数返回一个翻译后的字符串,它将 string 中的所有在 from_set 指定的字符翻译成在 to_set 中对应的字符。1, from_set 为 abcd,它告诉我们 a, b, c, d 这四个字符将要被翻译。在本示例中,我们使用 NVL()函数将 NULL 值显示为 ‘NULL’ 字符串。to_set 中的字符和 from_set 中的字符一一对应形成翻译关系。一个字符串,它是要翻译的字符的集合。一个字符串,它是要翻译成的字符集合。
2025-03-26 17:37:39
353
原创 SealOS部署k8s集群(单节点)
sealos默认提供了一个私有镜像仓库,sealos的私有仓库默认运行在集群的第一个节点上,第一个节点是指创建集群的时候输入的第一个节点的地址,使用下面的命令查看守护进程的状态。注:192.168.80.12:5000 (k8s-master的IP地址)为私有镜像仓库中地址。在干净的服务上直接执行上面的命令,不需要额外多余操作即可安装一个高可用K8S集群(单节点)在干净的服务上直接执行上面的命令,不需要额外多余操作即可安装一个高可用K8S集群(单节点)显示service详细信息。显示deployment。
2025-03-10 14:38:24
1103
2
原创 在 Docker 中搭建GBase 8s主备集群环境
Docker安装后,默认会创建三种网络。bridge网络是默认情况下启动Docker容器的网络,为Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这会导致Docker重启后IP地址的改变。因此在搭建一些集群软件的时候,组件和组件之间需要进行网络通信,如果没有固定分配的IP,容器提供的服务将是不可靠的。每次主机重启时,如果容器没有固定IP,容器的IP将由启动顺序决定。这将导致主备集群容器之间访问异常,从而使得服务提供失败;因此需要将容器的IP固定下来。
2025-03-07 15:39:13
920
原创 GBase 8s随机排序查询
从oracle迁移到GBase 8s数据库的过程中,有类似进行随机排序查询的写法。GBase 8s默认不支持dbms_random之类的函数,这些函数存在称为datablade的扩展包中,以下示例在库中注册excompat。
2024-12-31 13:35:33
183
原创 GBase 8s数据类型与java.sql.Types对应关系
GBase 8s数据类型与java.sql.Types对应关系GBase 8s类型类型java.sql.Typesjava类型名称SMALLINT5SMALLINTINTEGER4INTEGERBIGINT-5BIGINTINT8-5BIGINTSMALLFLOAT7REALFLOAT8DOUBLEDECIMAL3DECIMALMONEY3DECIMALCHAR1CHARNCHAR1CHAR
2024-09-14 14:03:18
379
原创 GBase 8s数据库随系统启动、自重启配置
近期的客户想实现数据库自重启功能(即故障后自动重启),该功能需要在自动启动的基础上进行改进。关于systemd方式实现自启动的方法可参考之前的文档:https://gbasedbt.com/index.php/archives/161/以下仍是通过systemd方式实现GBase 8s数据库的自启动、自重启与关闭。适用于操作系统: RHEL7/CENTOS7, 以及基于RHEL7内核的系统。
2024-08-22 16:25:41
1074
1
原创 GBase 8s数据类型CLOB直接insert功能
GBase 8s的数据库CLOB是一种文本智能大对象类型,一般情况下可以使用fileclob函数进行插入数据,或者在程序中使用绑定变量的方式插入。在GBase 8s的SQLMODE=Oracle模式中,实现了直接insert操作,但SQLMODE=GBase模式中没有实现以下介绍自己实现在SQLMODE=GBase模式下实现直接insert clob的操作的方法。
2024-08-22 16:24:16
486
原创 bash和dash的区别(及示例)
Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等。
2024-06-20 14:16:39
1259
原创 GBase 8s 检查是否是IP且转数值函数
GBase 8s中没有ip类型字段(如inet),对于判断字符串是否是IP地址,需要自己编写相应的函数。
2024-05-23 09:14:09
311
原创 GBase 8s 数据库HAC集群切换及恢复操作
当原主节点需要恢复时,可直接启动(oninit -vy)、物理恢复方式(oninit -PHY后onmode -d secondary 主节点服务名称)或者备份恢复(脑裂时)。当原主节点需要恢复时,需要通过物理恢复的方式然后加入集群(oninit -PHY后onmode -d secondary 主节点服务名称)或者备份恢复(脑残时)。可通过模拟主节点故障的方式进行切换,也可以通过强制切换的方式(onmode -d make primary 服务名称 force),恢复时按照故障时的恢复方式进行。
2024-05-23 09:11:53
493
原创 Kylin V10SP1桌面版下GBase 8s java udr异常处理
根据以往的经验:由于桌面版的内核要高于服务器版,对程序的要求要新一些,当前GBase 8s自带的jre版本为jre 1.8.0_60,略显偏低,于是更换jre的版本为openjdk 1.8.0_232,重试(需要重启数据库,重新加载jvp),重新创建、运行UDR正常。
2024-05-13 14:15:01
313
原创 Nginx下PHP连接到GBase 8s数据库 - PDO_GBASEDBT方式
PHP可以通过odbc,pdo_odbc和pdo_gbasedbt三种方式连接到GBase 8s数据库,这三种方式均需要通过CSDK客户端工具。操作系统:CentOS 7.9 x86_64。
2024-04-22 13:52:59
624
原创 Nginx下PHP连接到GBase 8s数据库 - PDO_ODBC方式
PHP可以通过odbc,pdo_odbc和pdo_gbasedbt三种方式连接到GBase 8s数据库,这三种方式均需要通过CSDK客户端工具。操作系统:CentOS 7.9 x86_64。
2024-04-22 13:50:38
489
原创 Nginx下php连接到GBase 8s数据库 - ODBC方式
PHP可以通过odbc,pdo_odbc和pdo_gbasedbt三种方式连接到GBase 8s数据库,这三种方式均需要通过CSDK客户端工具。操作系统:CentOS 7.9 x86_64。
2024-04-22 13:49:25
431
原创 GBase 8s 中的关键字(表达式)
表面上的意思是:查询tab1中default_role字段中包含’N’字符的数据,select * from tab1返回的default_role字段中也有包含’N’的数据。原因就是DEFAULT_ROLE是内置关键字,直接写DEFAULT_ROLE是获取当前用户的默认角色,当前默认角色名并不包含’N’,因此该语句应该改成。GBase 8s中有一些特殊的关键字,比如rowid,rownum这样的,可以直接在查询语句中直接使用,表示特定的含义。以下是已知现有的关键字(表达式),它们有特别含义。
2024-04-18 13:04:30
742
原创 ALTER TABLE 之 定点变更(in-place alter)
定点变更算法可以提供优于慢速变更算法的诸多性能优势:ALTER TABLE操作使用定点变更算法时,其他用户稍后可以访问该表,因为数据库服务器只在更新表定义和重建包含更改列的索引时才锁定该表。对于要求7 * 24不停运行的应用程序系统,这种对表可用性的增强可以提高系统吞吐量。ALTER TABLE操作使用慢速变更算法时,数据库服务器将复制表以将该表转换为新定义。ALTER TABLE操作要求空间至少为原始表大小的两倍与日志空间之和。
2024-04-09 17:09:34
771
原创 ALTER TABLE 之 快速变更(Fast alter)
使用快速变更算法时,数据库服务器对表的锁定只保持很短的时间。在某些情况下,数据库服务器锁定系统目录表只是为了更改属性。无论哪种情况,无法查询此表的时间均很短。ALTER TABLE 语句更改表的属性但不影响数据时,数据库服务器将使用快速变更算法.。
2024-04-09 17:07:07
486
原创 ALTER TABLE 之 慢速变更(slow alter)
由于数据库服务器复制表数据以将该表转换为新定义,因此慢速变更操作需要的空间至少为原始表大小的两倍与日志空间之和。数据库服务器使用慢速变更算法来处理ALTER TABLE语句时,其他用户可能会长时间无法使用该表。
2024-04-09 17:06:05
272
原创 GBase 8s Docker镜像说明
最后更新:2024-04-07版本号使用:v8.8_3503x1v8.8_3331x12Dockerfile注:不同数据库版本的ADD 文件名称不一样。v8.8_3503x1_x64.tar.gzGBase 8s 数据库安装、配置后的压缩包注:不同数据库版本的该文件名不一样。README.txt说明文档,内容仅包含之后的内容。从docker.com获取镜像自行构建镜像获取需要的版本地址:1,UC网盘「Docker」https://drive.uc.cn/s/59e6a30aaf784
2024-04-08 14:43:17
902
3
原创 GBase 8s内连接和外连接
在SQL中,内连接和外连接是在联接多个表时常用的操作。内连接仅返回在连接的表之间有匹配的记录,而外连接则返回匹配和不匹配的记录。左外连接和右外连接分别根据左边表和右边表的数据来返回记录,全外连接则返回两个表的所有记录。内连接(inner join):取出两张表中匹配到的数据,匹配不到的不保留外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL。
2024-03-06 13:27:45
1241
原创 GBase 8s 获取对象创建时间语句
获取实例初始化时间,通过rootdbs的创建时间来确定。获取dbspace的创建时间,与上面相同的语句。获取索引的创建时间,如果是分片索引,将返回多行。获取表的创建时间,需要包含标准表和分片表。获取视图的创建日期(仅日期)获取数据库的创建时间。
2024-02-28 14:55:55
632
1
原创 Kettle 8.3 资源库(GBase 8s V8.8)表结构
Kettle默认只支持使用mysql/oracle/sqlserver等数据库为资源库,若要使用GBase 8s为资源库,需要从其它资源库迁移相应的结构及数据。
2023-11-28 12:07:33
1387
原创 Kettle连接到GBase 8s数据库
如下图,在data-integration\lib下添加连接GBase 8s数据库的驱动gbasedbtjdbc.jar(视Server版本,增加匹配的驱动)请输入连接成功后要执行的SQL语句,用分号(:)隔开中,增加强制指定使用的库,库名来源于上面的URL,如 database t20db;自定义连接URL 实际的GBase 8s连接URL。指定连接名称,如这里使用TAR_GBase8s。或者是在 转换 -> DB连接 -> 新建。连接方式使用 Native(JDBC)如下图,表示连接成功。
2023-11-28 10:05:31
1153
转载 Linux操作系统错误代码列表
“OS error code 1: Operation not permitted”“OS error code 2: No such file or directory”“OS error code 3: No such process”“OS error code 4: Interrupted system call”“OS error code 5: Input/output error”“OS error code 6: No such device o
2023-10-16 10:46:45
904
原创 Mybatis-Plus之使用LocalDateTime等java8新日期时间类型报错
LocalDateTime是java8新增日期时间类型,在mybatis 3.4版本之后有对应的转换类org.apache.ibatis.type.LocalDateTimeTypeHandler,但数据库的jdbc驱动(jdk6)里IfxPreparedStatement.setObject(java.lang.String, java.lang.Class)中未实现该方法。由于驱动是jdk6的,暂时还没有实现LocalDateTime,故需要在mybatis中对LocalDateTime进行转换。
2023-09-21 11:42:09
3914
原创 QT5.12.12通过ODBC连接到GBase 8s数据库(CentOS)
这里使用5.12.12版本(安装包名称为qt-opensource-linux-x64-5.12.12.run),需要使用到图形化界面。查看Qt安装目录下的/opt/Qt5.12.12/5.12.12/gcc_64/plugins/sqldrivers。配置SQLHOSTS文件内容,在/opt/gbase/etc/sqlhosts配置文件中增加实际数据库地址。确认当前用户环境变量中包括2)中配置的环境变量,3)已经完成。开始安装,要求有Qt的账号,如果没有账号需要注册(如果想跳过该步,需要断网)
2023-08-23 13:12:04
1806
原创 QT通过ODBC连接GBase 8s数据库(Windows)示例
在main.cpp中编写连接数据库的代码(使用ODBC连接),可以使用DSN的方式(使用setDatabaseName(“ODBC数据源中配置的DSN名称”)),或者使用直连(DSN-Less)方式(使用setDatabaseName(“ODBC连接字符串(一般包含DRIVER、HOST、SERV、PROT、DB和SRVR等参数)”))在用户DSN或者系统DSN中,创建新数据源,使用的驱动名称为GBase ODBC DRIVER(64-bit),名称为testdb。执行debug测试,输出显示操作成功。
2023-08-23 12:49:50
1129
原创 在mybatis-plus中增加对GBase 8s的支持
在mybatis-plus 3.4.3.2版本之后已经增加了对GBase 8s的支持(使用GBASEDBT类型),在3.5.2版本中变更类型为GBASE8S。如果使用的是其它版本,按照以下进行修改。
2023-07-12 16:36:33
1277
原创 GBase 8s重建sysuser库的方法G
6,如果业务库使用了GL_USEGLU,必要重启数据库,重新加载用户环境变量DB_LOCALE/CLIENT_LOCALE/GL_USEGLU。确认只有is_logging值为1,其它为0。5,确保环境中没有GL_USEGLU、DB_LOCALE和CLIENT_LOCALE。4,如果原环境变量中有GL_USEGLU,必须要重启数据库。1,停止使用USERMAPPING,全使用操作系统验证。2,去除字符集相关的环境变量。然后就可以重新创建内部用户。3,删除sysuser库。创建默认内部用户映射。
2023-07-07 09:15:03
318
原创 GBase 8s使用C3P0连接池时去除SQLWarning警告
在com.mchange.v2.c3p0.SQLWarnings类中,我们可以看到:MLevel.INFO时,就将java.sql.SQLWarning的信息写到日志信息中。以上警告,虽然不影响操作,但该日志频繁出现,将影响系统性能。
2023-06-16 15:56:53
517
原创 GBase 8s中的start with connect by用法
如果表中存在层次数据,则可以使用层次化查询子句查询出表中行记录之间的层次关系数据之间的层次关系即父子关系,通过表中列与列间的关系来描述,如tabpart表中的id和parentid。id表示部门编号,parentid表示部门归属的更高层部门编号,在表的每一行中都有一个表示父节点的parentid(除根节点外),通过每个节点的父节点,就可以确定整个树结构。CONDITION2 [PRIOR expr = expr] : 指定层次结构中父节点与子节点之之间的关系。
2023-06-12 15:16:19
1848
原创 三种Python操作GBase 8s数据库数据类型的差异
29种数据类型中:DbtPy完全支持的27种(含需转码),不能完全支持的包含:INTERVAL [FIRST to LIST]和TEXTPyodbc完全支持的27种(含需转码),不能完全支持的包含:INTERVAL [FIRST to LIST]和CLOBJayDeBeApi(jdbc)完全支持26种,不能完全支持的包含:BSON、CLOB和BLOB。
2023-04-03 12:14:19
617
原创 JayDeBeApi对数据类型的支持
DEC(p,s)、NUMERIC(p,s)、INT和DOUBLE PRECISION这样的别名同样支持。参考代码:test_json_bson_type.py。参考代码:test_byte_text_type.py。参考代码:test_blob_clob_type.py。参考代码:test_numeric_type.py。参考代码:test_boolean_type.py。参考代码:test_string_type.py。参考代码:test_list_type.py。
2023-04-03 11:06:43
644
原创 Pyodbc对GBase 8s数据库的数据类型的支持
DEC(p,s)、NUMERIC(p,s)、INT和DOUBLE PRECISION这样的别名同样支持。取值范围:‘t’/1, ‘f’/0, null(None)参考代码:test_json_bson_type.py。参考代码:test_byte_text_type.py。参考代码:test_blob_clob_type.py。参考代码:test_numeric_type.py。参考代码:test_boolean_type.py。参考代码:test_string_type.py。
2023-03-29 13:23:54
343
原创 DbtPy对GBase 8s数据库的数据类型的支持
clob仅支持使用函数操作(filetoclob(),locopy(),dbms_lob_new_clob())DEC(p,s)、NUMERIC(p,s)、INT和DOUBLE PRECISION这样的别名同样支持。内置字符类型包括:char, nchar, varchar, nvarchar 和lvarchar。blob支持使用bytes和函数操作(filetoblob(),locopy())取值范围:‘t’/1, ‘f’/0, null(None)LIST类型:list(TYPE not null)
2023-03-22 12:33:29
422
1
原创 DbtPy API接口描述及示例
MM是主版本,mm是次版本,uuuu是更新版本。CHAR_OCTET_LENGTH - 字符数据类型参数的最大字节长度,对于单字节字符集数据,该参数匹配COLUMN_SIZE,对于非字符数据类型,该参数为None。DBMS_VER - 数据库的版本号,格式为"MM.mm.uuuu",其中 MM 是主版本号,mm 是次版本号,uuuu 是更新版本号。NUM_PREC_RADIX - 一个整数值,可以是10(表示精确的数字数据类型),2(表示近似的数字数据类型),或者None(表示基数不适用的数据类型)。
2023-03-22 12:30:43
3645
GBase 8s数据库操作指南.pdf
2020-11-12
ANSI SQL 2003标准文档,英文版
2020-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人