- 博客(306)
- 资源 (30)
- 问答 (8)
- 收藏
- 关注

原创 Gbase 8s客户端与服务器的通信
Gbase 8s客户端与服务器的通信支持多种不同的方式:共享内存Shared memory、Stream pipe、TCP/IP(Socket、TLI)、IPX/SRX、DRDA。Gbase 8s完整的通信过程:客户端发起新连接请求,poll线程实时接收连接请求信息(服务名、用户名、密码等信息) 将新连接请求转交给listener线程处理 listener线程验证请求信息的有效性,如果有效,则为连接创建一个sqlexec线程 sqlexec线程直接与客户端进行通信已有连接通信...
2022-04-21 10:19:31
2679

原创 GBase8s ESQL/C 跨线程连接
如果多线程应用程序需要使用同一个连接, GBase8s ESQL/C应用程序必须管理连接。最简单的方式是将SET CONNECTION语句放到一个循环中。/* wait for connection: error -1802 indicates that the connection is in use */do{EXEC SQL SET CONNECTION :con_name;} while (SQLCODE == -1802)当SQLCODE不等于-1802,说明在..
2022-01-24 09:43:02
3053

原创 GBase 8s ESQLC创建线程安全的应用程序
GBase8s ESQL/C线程安全库GBase8s ESQL/C提供了静态和共享的线程安全库, 线程安全GBase ESQL/C应用程序中的每一个线程都可以拥有一个活跃的连接, 一个应用程序可以拥有多个线程。线程安全库中包含了线程安全函数。GBase ESQL/C支持POSIX线程库。在esql命令执行时, 提供-thread参数, esql将该参数传递给ESQL/C预处理器esqlc,根据-thread参数,esqlc生成线程安全的代码,确保多线程能够正常执行。ESQL/
2022-01-24 09:39:25
2521
原创 linux下 dpkg 如何强制安装
但是我试了并不奏效,依然报依赖错误,甚至我觉得得搞个apt-get 的本地源,直接装对吧,这个工具肯定可以帮忙把依赖一起装。话题回归,晚上散完步,回来想了想,还得是看看help 吧。对,就是这么简单的问题,起源于我刚刚想装几个deb包。听着su7发布会,我决定得写出来,以免其他人踩坑。就是非常易于理解,但是我网上搜都是第一个命令。因为本人不想看--help,于是就上网搜了。省流看最后那几行就行。
2024-03-28 19:44:08
1137
2
原创 GBASE 8s下 让并发变得如鱼得水的锁[二]
的对象是一个数据页,当采用页级锁访问记录时,GBASE 8s会自动对访问的数据页进行加锁。封锁力度越大,如对整个数据库进行封锁,则将会对数据库中全部关系、记录进行封锁,系统。通常而言,在整个表或者表中的大部分数据需要更新时,使用表级锁的效率高。例如,一条记录上的锁只作用于该记录,一个关系上的锁作用于该关系中的所有记录。,或者进行一些管理事务(数据库重建、表重建),则为了获得较高的性能,可以采用。反之,封锁粒度越小,如对单个表或记录进行封锁,系统的。的能力要强一些,系统开销相对小一些,但是,系统的。
2023-08-07 15:20:34
302
原创 GBASE 8s下 让并发变得如鱼得水的锁[一]
数据库锁(++Database-Level Lock++)、表级锁(++Table-Level Lock++)、页级锁(++Page Lock++)、行级锁(++Row Lock++)以及索引(++Index Key++)等。可以把封锁看作是一种排队机制,将并行任务按照锁的先后顺序排队,把并行任务变成串行任务。GBASE 8s采用全局管理的封锁机制,在共享内存中分配一块内存集中标记锁的使用情况,在每个锁结构中保存锁的拥有者、锁定的对象、锁的类型。
2023-08-07 15:07:41
337
原创 Linux环境如何让git的push、pull、fetch等操作规避掉账号密码输入
你账号密码敲对了(手残党直接哭死了好吧,我还是那种领导在跟前我当场十指offline的体质)。3+的操作时常发生,一个人还好说只是耽搁了恰饭时间,要是领导在看你操作那可就是公开处刑了(悲)。为了保持主分支的代码一致性,一般大多会对本地的主分支进行更新操作(你要是直接在主分支改东西,请收下我的膝盖,就缺你这种勇士)。三次啊喂,名字长的譬如【bazhendoufu】恰巧密码当时又不懂事写的长了点,这简直是下班前的折磨。颜色一一对应,是在克隆代码的时候的操作,栽好树以后就能嘎嘎乘凉了。
2023-04-20 15:22:12
791
1
原创 Linux里如何修改git log最近一次commit的身份信息及邮箱
间隔不长,但产生的效果截然相反,眼睛里的高光消失,伴随着精神石化。屏幕上最新的你的改动,居然是XXX的名字!想着可以光明正大义正严词摸鱼到下班甚至周五,亦或是课程作业提前搞完不用操心这些东西,这是何等的快乐?构想起怎么把我的修改漂亮简洁的描述一下,然后!注:此操作只适合你commit了一次,多次我没试过,好像不行(主要是我也没干过那事)。让我猜猜,你刚刚写好了一个函数&功能,伴随着自信的。上去,这是我的宝贝代码,这比杀了我都难受(T ^ T)文件,里面你就看到那个刚刚悲伤的名字了,改了他!
2023-04-08 15:23:58
299
原创 GBASE 8s的load数据导入工具
Load是一种快速而简单的数据导入工具,但只支持特定的数据格式,通过固定字符(默认为“|”)的文本文件。其中delimiter定义分隔符,默认为“|”。另外,可以根据数据文件格式指定相应的字段信息。
2022-10-27 09:56:10
827
原创 GBASE 8s中的虚拟列
虚拟列是指使用表达式或函数进行定义的数据列。逻辑上,表的虚拟列与普通列具有相同的语法含 义,但虚拟列的值并不保存在任何物理存储介质上,而是在 SQL 的执行过程中,根据定义虚拟列 的表达式或函数进行计算而获得。向带虚拟列的表中插入数据 对虚拟列执行 INSERT 操作,需明确写出插入表的各字段名称。返回结果:报错误代码-981。
2022-10-27 09:50:45
275
原创 GBASE 8s中load&unload
load/unload 用于单表文本数据的装载和卸载,unload 导出表数据到指定文件, load 则将指定的文本文件数据插入到表。load 语句速度较快且较易于使用,但它只接受指定的数据格式。通常可将使 用 unload 语句准备好的数据用于 load。示例 1:导出表 test 的所有数据到 test.unl 文件。示例 2:将文本文件 test.unl 的数据导入到表。
2022-10-27 09:48:57
559
原创 GBASE 8s中dbschema 查看表结构
示例 1:导出库 testdb 的建库 SQL 语句到文本 testdb.sql。dbschema 工具输出创建表、视图或数据库所需的 SQL 语句。示例 2:导出 testdb 库中表 test 的建表语句。
2022-10-26 19:01:06
1374
原创 GBASE 8s中dbaccess 执行 sql
dbaccess 提供了用于输入、执行和调试结构化查询语言(SQL)语句与存储过程语言(SPL)例程的用户界面。
2022-10-26 18:59:35
1040
原创 GBASE 8s中 onunload&onload
onunload导出库或库中单表到指定设备,默认导出到TAPEDEV指定的设备, 导出文件为二进制文件,不可跨版本或跨平台。onunload 和 onload 工具提供在相同平台上使用相同数据库服务器的计算机 之间移动数据的最快方法。示例 1:使用 onunload 导出表 test 到/data/test.dat。示例 2:使用 onload 导入表到 testdb,数据驻留于 datadbs。
2022-10-26 18:57:01
516
原创 GBASE 8s修改实例配置参数
GBASEDBTDIR/etc/$ONCONFIG 进行修改,并重启数据库后生效。对于不支持动态修改的参数,需要修改数据库配置文件。
2022-10-26 18:56:11
435
原创 GBASE 8s关闭数据库实例
使用 onmode -ky 命令关闭数据库实例:onmode -ky使用 onstat -m 检查数据库日志出现以下输出,表示数据库已正常关闭:
2022-10-26 18:50:03
336
原创 GBASE 8s的外部表
对于一个普通的GBase 8s表,GBase 8s server负责其数据存储管理,有相应的DBSPACE、Chunk、extent、page等,可以创建相应的索引。然而,对于GBase 8s的外部表而言,其数据文件由操作系统管理,简单来讲外部表就是一个或者多个文件,GBase 8s数据库引擎提供对文件的SQL 接口访问。GBase 8s外部表具有多项功能。GBase 8s外部表的高性能数据导入、导出功能,可以应用在数据仓库ETL、应用数据采集、表重建、数据库迁移等业务场景中。
2022-10-26 17:51:38
192
原创 GBASE 8s的聚簇索引
对于数据的删除操作,可能导致在索引页中仅有一条记录,这时,该记录可能会被移至邻近的索引页中,原索引页将被回收,即所谓的“索引合并”。聚簇索引的数据按照顺序存放,对于查询一个范围值的SQL语句或者多个SQL语句,在需要查询相邻记录时,采用聚簇索引的I/O效率较高。由于聚簇索引要求表的记录按顺序存放,所以在插入、删除记录以及更新聚簇索引列的UPDATE操作时,需要进行数据的移动。聚簇索引也叫作聚集索引,创建有聚簇索引的表时,表中数据是按照聚簇索引的索引列顺序存储的。操作的表上创建聚簇索引。
2022-10-26 17:50:52
161
原创 GBASE 8s的分片表
GBase 8s的分片是用来处理数据量非常大的表和索引的技术。分片是GBase 8s数据库服务器提供的内部的一种把大表拆分为多个小表的管理方式,同时对外提供同一个表的管理方式,这样对表的访问者而言很透明。分片可以用将大表拆分为小表的方式进行管理,大大提高了GBase 8s的大数据量处理的性能。n 分片是指把一个表的数据分散到多个dbspaces中存储。n 在数据库内部,物理上把大表拆分为多个小表进行管理。n 在逻辑上对外提供一个表的访问接口。
2022-10-26 17:47:19
642
原创 GBASE 8s的onspaces工具
onspaces 功能可以创建dbspace或临时dbspace,命令选项如下所示。-o offset 初始chunk在设备中的偏移量,以KB计算。-p pathname 初始chunk所在的磁盘分区名或设备名。-d spacename 指定创建的新dbspace 的名称。-m pathname offset 镜像的路径名和偏移量。-s size 初始chunk的大小,以KB计算。-t 指定该dbspace为临时dbspace。-c 表明操作为创建dbspace。
2022-10-25 15:27:48
603
原创 GBASE 8s的DBSCHEMA工具
使用DBSCHEMA实用程序来显示分布和溢出信息。要显示为数据库中某个表所存储的分布信息,可使用–hd 选项加上该表的名称。如果指定了关键字ALL而不是表名,则显示数据库中所有表的分布信息。
2022-10-25 15:17:04
269
原创 GBASE 8s的DBLOAD数据导入工具
可以指定分批提交记录数,从而能有效处理大量数据的导入。它还会将导入失败的数据记录到指定文件中,帮助用户快速找到有问题的数据。tablename 定义导入的目的表;[(column) values]为可选项,f01 为文件的第一列,以此类推。“|”为分隔符号,这里为“|”,可以定义为其他的符号;拥有容错机制,可以用来重复导入数据,保持已有数据不变,只增加新增记录。-c 命令文件的名称(也叫作控制文件的名称)-i 从文件第几行开始,默认为第一行记录。-l 保存导入过程中失败的记录。-k 导入过程对表加排他锁。
2022-10-25 15:16:16
742
原创 GBASE 8s的DB_LOCALE环境变量的用途
(1)在客户机应用程序和数据库服务器之间交换字符数据时,如果DB_LOCALE环境变量(在客户机计算机上)的值与。),以确定如何在数据库的系统目录中存储字符信息。(4)在客户机应用程序尝试打开数据库时,数据库服务器将客户机应用程序传递的。(3)在确定如何设置服务器处理语言环境的数据库信息时,数据库服务器会使用。(5)当数据库服务器存取与语言环境相关的数据类型的列时,数据库服务器使用。(6)当数据库服务器创建新数据库时,它将检查数据库语言环境(环境变量的值与在数据库中存储的数据库语言环境进行比较。
2022-10-25 14:59:43
896
原创 GBASE 8s dbload 工具加载数据
以下示例将文本数据 test.unl 导入 test 表中,将 test1.unl 导入到 test1 表中, test 表列数为 2,test1 列数为 5。数据库名为 testdb,每次提交 10000 行,错误输 出到 err.log。dbload 工具将数据从一个或多个文本文件传送到一个或多个现有表中。dbload 工具使用灵活,但没有其他方法快,并且必须准备一个命令文件来控制输 入。dbload 的优势在于可分批提交需要导入的数据,从而避免长事务的发生。
2022-10-25 14:58:30
181
原创 GBASE 8s 正则表达式
z了解以上的正则需求后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。GBase 8s的正则表达式匹配与PHP、Perl这些脚本的类似。下表中的正则模式可应用于 REGEXP_LIKE 操作符中。{n,m} m 和 n 均为非负整数,其中n
2022-10-25 14:55:20
576
原创 GBASE 8s 时间/日期函数和操作符
返回经过表达式调整的日期时间值。返回表达式代表的日期时间值。返回当时日期的日期时间值。返回当时日期的日期时间值。返回表达式代表的间隔值。返回当前日期的日期值。
2022-10-25 14:14:15
558
原创 GBASE 8s 物理日志与检查点
(blocking checkpoints),它将阻塞(block)事务以使检查点完成,并避免物理日志溢出。在物理日志填充度达到 75% 时触发检查点。(transactions)持续生成物理日志数据而导致物理日志开始变得太满,那么数据库服务器执行。物理日志活动的速率可影响检查点性能。在检查点处理期间,如果因。
2022-10-25 14:08:04
130
原创 GBASE 8s并发事务
如果三个用户同时在储蓄系统中,同时进行他们各自的操作,即在储蓄系统的数据库中同时运行各自的事务,则这些事务就是在数据库中运行的并发事务,并发事务柏寒的操作就是并发操作。以银行系统为例,将一笔资金从银行的账号A转入银行账号B是一个操作序列(或操作集合),主要包括“由A转出X元”和“X元转入B”两个重要操作,这两个操作是不可分割的,否则,在“由A转出X元”操作之后,插入一个“账号B挂失的操作”这笔交易的资金将不知去向而造成数据丢失,并会由此引发很多问题。数据库管理系统用“事务”这个概念来描述这样的操作序列。
2022-10-25 14:06:48
374
原创 GBASE 8s IDS数据库系统中线程所包含的信息
在数据库服务器中运行着的某些线程需要访问名为RSAM的动态服务器层,该层用于处理磁盘I/O请求、索引管理、页面管理、缓冲区管理和数据复制。一些系统线程和全部的用户线程都需要RSAM线程控制块。进程中也有堆栈这一概念,但由于一个进程中运行着多个线程,因此每个线程也要有自己的堆栈。线程控制块包含有关线程的信息。数据库服务器中运行着的每个线程都有一个线程控制块。7、用户栈:线程执行的用户方法栈,用来保存线程当前执行的用户方法的信息。8、内核栈:线程执行的内核方法栈,用来保存线程当前执行的内核方法信息。
2022-10-25 14:04:38
413
原创 GBASE 8s ESQLC-数据类型-智能大对象-指针结构-ifx_lo_t
针对新的智能大对象,创建ifx_lo_t结构,并初始化,返回智能大对象文件描述符,用于操作智能大对象的数据。使用临时智能大对象,临时智能大对象是,创建成功,但是没有与数据库关联的智能大对象。, 是智能大对象的引用。语句不处理具体的智能大对象数据,数据库中的CLOB和BLOB列保存的是。程序打开智能大对象进行读写操作, 需要使用智能大对象的指针结构。将ifx_lo_t引用的智能大对象的数据拷贝到指定的文件中。将内存中用户定义的buffer中的数据,拷贝到智能大对象中。访问智能大对象,需要三种数据结构的配合。
2022-10-24 09:42:24
267
原创 GBASE 8s ESQLC-数据类型-智能大对象-文件描述符-fd
一个智能大对象文件描述符,类似于操作系统中的文件描述符。定位到智能大对象中指定的位置,并从该位置读取数据。创建并打开智能大对象,返回智能大对象文件描述符。定位到智能大对象指定的位置,并向该位置写入数据。关闭智能大对象,并释放智能大对象文件描述符。是一个整数,用来标识一个打开的智能大对象。打开智能大对象,返回智能大对象文件描述符。访问智能大对象,需要三种数据结构的配合。将操作系统中的文件内容拷贝到智能大对象。确定智能大对象的当前位置信息。定位到智能大对象指定的位置。截断智能大对象到指定的位置。
2022-10-24 09:40:42
138
原创 GBASE 8s ESQL/C的Ifx_lo_t 数据类型支持SQL数据类型BLOB和CLOB
预估的智能大对象的大小,单位为字节数,数据库服务器根据该值,来确定保存智能大对象需要的扩展(extents)数量。但是,意味着数据库服务器不能使用合适的扩展(extents)来保存智能大对象。理想情况下,分配扩展是一个扩展,包含所有的智能大对象的数据。中保存了创建时间的标记,该标记指示数据库服务器将适当的信息保存到智能大对象上。使用LO_LOG标记时,请确认系统日志足够大,能够保存智能大对象的变化信息。数据库服务器根据磁盘存储信息,更高效的保存智能大对象。预估的智能大对象的大小,单位为字节数。
2022-10-24 09:39:51
207
原创 GBASE 8s 物理日志信息显示
phybegin:物理日志开始位置,这里表示从第16个dbspace上的第53页开始。pages/io:写入页数除以写入次数,表示物理日志缓冲的效率。phypos:表示当前物理日志的位置,这里指向8971860页。buffer:缓冲区编号,P-1表示当前使用第一个缓冲区。physize:物理日志大小,这里是28275800页。phyused:已使用的物理日志页数。bufused:缓冲区已使用的页数。%used:物理日志已使用的百分比。bufsize:缓冲区总的页数。可通过onstat –l命令。
2022-09-27 14:47:21
348
原创 GBASE 8s 物理日志位置
数据库初始化磁盘空间的时候,物理日志放在root dbspace上,用户无法干预。为了提高性能,后续用户可以把物理日志挪到其他dbspace上,该dbspace最好和活动的表空间或者逻辑日志空间在不同的磁盘上。物理日志存储在dbspace空间中,而dbspace一般存储在磁盘上。PHYSFILE 物理日志大小参数,以KB 为单位。
2022-09-27 14:23:36
428
原创 GBASE 8s 物理日志缓冲区(Physical-log buffer)
物理日志缓冲区实际上是两个缓冲区。数据库服务器一次只使用两个物理日志缓冲区中的一个。此缓冲区是活动(或当前)物理日志缓冲区。在数据库服务器将当前物理日志缓冲区清空到磁盘之前,它把另一个缓冲区设为当前物理日志缓冲区并使用,以便该服务器可以在清空第一个缓冲区时继续写入。对于物理日志缓冲区的大小,默认值应为128Kb。使用小于 512 KB 的物理日志缓冲区只会影响性能,而不会影响事务完整性。数据库服务器使用物理日志缓冲区来容纳一些经过修改的数据库空间页的前映像(before-images)。
2022-09-27 14:18:48
1201
原创 GBASE 8s 添加逻辑日志文件
无论 DYNAMIC_LOGS 参数值为多少,您可以在当前日志文件后插入日志文件。添加新大小的日志文件不会更改 LOGSIZE 的值。• 当前逻辑日志文件之后(使用 onparams -a -i 命令)• 文件列表的末尾(使用 onparams -a 命令)1.可以使用 onparams 命令添加逻辑日志文件。
2022-09-27 14:18:05
513
原创 GBASE 8s 数据库存储规划
为了简化静态 表地管理,你可以将它们分离至一个专门的表空间中。而在最活跃的表中,则有更进一步的区分。一般来说,一个应用系统中的数据可以按其用途、使用层次等进行分类。同时对于不同类型的数据进行不同方式的管理。对于不同类型的表可以进行不同表空间的规划。我们需要根据应用系统的需求,创建大量的数据库表空间。一般来说,小的表往往作为相对静态的查找表。(这点和活动表与静态表的分离类似)可以把小表CATCH到缓存中,已提高性能。对于大多数应用系统来说,总是有一些比较经常被使用的表,这些表可以考虑从其他的表中分离出来。
2022-09-27 14:12:53
150
GBASE 8s如何指定网络连接?
2022-11-25
GBASE 8s产品怎么创建表空间
2022-10-27
GBase 8s支持的事务隔离级别有哪些?
2022-09-27
为什么端游 英魂之刃,我的电脑会很卡,ping有时候都很高100,猛的能300偶尔?
2022-09-19
git 使用中rebase 和cherry pick 遇到的困惑,求解答
2022-09-16
GBASE 8s 如何查看锁的信息?
2022-08-29
创建C UDR时,指定的HANDLESNULLS的作用是什么?
2022-07-27
关于#数据库#的问题:GBase 8s中如何避免死锁
2022-06-24
GBASE 8s CDC能够支持的数据类型都有什么?
2022-05-25
GBASE 8s如何清空数据库中的全部数据?
2022-04-24
在GBASE 8s 里怎么看自己有哪些表?
2022-03-28
GBASE 8s 如何创建数据空间&建立分片表?
2022-02-23
GBase 8s里如何获取并显示ESQLC程序发送的SQL语句?
2022-01-21
HAC集群和SSC集群部署时是否要求安装服务器必须为双网卡?
2021-12-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人