[20260919]oracle skgmhash函数的等价C以及python代码(整理版本).txt
[20260919]oracle skgmhash函数的等价C以及python代码(整理版本).txt--//gdb反汇编oracle的skgmhash函数,生成汇编代码,提交给kimi,本来想问它采用什么hash算法,顺便要求生成c或者python代码,主--//要想看看自己是否能读懂。经过反复沟通已经尝试,kimi终于生成正确的c代码。--//我觉得提问时除了给出oracle的skgmhash
[20260918]gdb下如何调用skgmhash函数.txt
[20260918]gdb下如何调用skgmhash函数.txt--//kimi给出的答案:可以,但建议只在测试/可控环境 attach 调用;生产关键进程上直接 call 有把进程搞崩的风险。gdb(gdb) attach <oracle_server_pid>(gdb) p (unsigned int) skgmhash((char *)"u01/app/oracle&q
[20260917]oracle共享内存段Key值的冲突.txt
[20260917]oracle共享内存段Key值的冲突.txt--//接着上午的测试,如果启动数据库前共享内存段的key已经存在呢?先尝试写代码建立1个共享内存段key=0xafa94c20。--//首先自己不熟悉这类编程,代码来自别人的例子:$ cat shmtest.c#include <stdio.h>#include <sys/shm.h>#include <
[20260917]oracle共享内存段Key值的计算4.txt
[20260917]oracle共享内存段Key值的计算4.txt--//前几天遇到斜线引起的问题,突然想了解共享内存段Key值的计算,肯定是某种hash算法,开始使用ora_hash函数盲猜,根本对不上。--//做一个小小的分析尝试,中间遇到许多问题,比如sqlplus登录连接数据库,导致是那个函数调用shmget,在这里浪费了许多时间,--//另外写blog分析。1.环境:SYS@book&g
[20260915]斜杠引起的问题.txt
[20260915]斜杠引起的问题.txt--//再次遇到斜杠引起的问题,只不过这次出现在开头.通过例子说明:1.环境:SYS@book> @ ver1PORT_STRING &n
[20260908]关于spfile参数文件转换pfile文件的问题.txt
[20260908]关于spfile参数文件转换pfile文件的问题.txt--//同事遇到spfile参数文件设置错误,需要建立pfile参数,快速启动数据库。实际上这类问题处理很简单,只不过有时候缺乏必要的--//知识储备,遇到问题有点自乱阵脚。--//我个人工作习惯,喜欢在做大的改动前做一个备份。$ cp spfilebook.ora spfilebook.ora.2026062
[20260903]sqlplus timing命令.txt
[20260903]sqlplus timing命令.txt--//sqlplus 除了set timing on命令,还有1个timing命令设置多个命令一起执行需要多时间。通过简单例子说明问题。1.环境:SCOTT@book01p> @ ver2==============================PORT_STRING &
[20260902]跟踪特定进程sql语句的执行.txt
[20260902]跟踪特定进程sql语句的执行.txt--//利用oracle每次执行前都计算hash值的特性,使用bpftrace写一个跟踪sql语句执行的脚本,--//有点小问题,无论使用str,buf,缺省最大仅仅显示1024字节,无法抓取更长的sql语句。--//可以加入 BPFTRACE_MAX_STRLEN=32768 bpftrace sql <spid> ,这样最大3
[20260902]建立完善md5sum.bt脚本4.txt
[20260902]建立完善md5sum.bt脚本4.txt--//再次做了改进,增加sql语句hash值的计算。$ cat md5sum.btBEGIN{ printf("Tracing Oracle kggmd5Update... Target PID: %d\n", $1); printf("
[20260901]建立完善md5sum.bt脚本.txt
[20260901]建立完善md5sum.bt脚本.txt--//拿以前别人写的md5.gdb脚本,抽取计算MD5的字符串,根据其脚本写一个bpftrace脚本。1.环境:SCOTT@book01p> @ ver2==============================PORT_STRING &
[20260901]表exp_head$的exp_id如何计算.txt
[20260901]表exp_head$的exp_id如何计算.txt--//实际上如何计算表sys.exp_head$的exp_id并不重要,主要目的学习bpftrace脚本,以及那些信息参与运算。1.环境:SCOTT@book01p> @ ver2==============================PORT_STRING
[20260827]sqlplus使用绑定变量与nul字符问题.txt
[20260827]sqlplus使用绑定变量与nul字符问题.txt--//测试绑定变量里有nul字符的情况。1.环境:SCOTT@book01p> @ ver2==============================PORT_STRING &n
[20260825]利用proc查看对应地址信息的方法.txt
[20260825]利用proc查看对应地址信息的方法.txt--//昨天测试 [20260823]数字字典对象hash的计算验证.txt时,遇到的问题:krqhsh Begin[15:57:23] kgghash #11 pid=3809 hash_text=m\x00\x00\x00\x04\x00DEPT\x00......x00\x00\x00\x00\x00\x01\.......\x0
[20260825]sqlplus输入nul字符问题.txt
[20260825]sqlplus输入nul字符问题.txt--//上午测试遇到的问题,单独拿出来做一个记录.1.环境:SYS@book> @ ver2==============================PORT_STRING &n
[20260825]ora_hash与kgghash函数.txt
[20260825]ora_hash与kgghash函数.txt--//昨天测试使用oracle的ora_hash函数计算数据字典对象的hash值,使用bpftrace跟踪发现调用oracle的内部函数kgghash,与我手工执--//行ora_hash计算结果一致.既然这样是否可以反向验证如果执行带有ora_hash的sql语句,使用内部调用kgghash函数.1.环境:SYS@book>
[20260824]数字字典对象hash的计算验证.txt
[20260824]数字字典对象hash的计算验证.txt--//前面的测试已经猜测数据字典对象hash的大致计算方法。拿来验证看看。1.环境:SYS@book> @ ver2==============================PORT_STRING &n
[20260824]数字字典对象hash的计算.txt
[20260824]数字字典对象hash的计算.txt--//前几天探究row cache时,好奇对应的hash值如何计算,经过多次尝试,大致知道算法。1.环境:SYS@book> @ ver2==============================PORT_STRING  
[20260824]gdb的使用问题.txt
[20260824]gdb的使用问题.txt--//想写一个gdb脚本跟踪oracle kqrhsh函数的调用,实际上以前也遇到类似情况,做一个记录:1.环境:SYS@book> @ ver2==============================PORT_STRING
[20260824]bpftrace的str和buf函数使用问题.txt
[20260824]bpftrace的str和buf函数使用问题.txt--//使用bpftrace脚本使用str与buf函数遇到的问题,通过例子说明问题:1.环境:SYS@book> @ ver2==============================PORT_STRING &nb
[20260819]关闭pdb CON_NAME=PDB$SEED.txt
[20260819]关闭pdb CON_NAME=PDB$SEED.txt--//发现CON_NAME=PDB$SEED,缺省打开在READ ONLY模式,如果不通过它建立新的pdb根本不需要,也就是我的测试环境根本无需要每次启--//动都打开到read only,做一个记录关闭它、1.环境:SYS@book> @ ver2==============================PORT