自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(248)
  • 资源 (2)
  • 收藏
  • 关注

原创 成为Oracle ACE一份子了......

当初写博客就为了分享和记录巩固自己的研究和遇到的问题,写着写着也有上百篇了。至于什么是ACE,网上介绍很多我就偷个懒截几个图放这里了。上次想着就试试申请ACE-A,没想到真通过了。也没其他什么想写的了。想想从业也将近10年了。这个是官网的个人简介,

2024-11-05 09:02:00 11

原创 Oracle从一条SQL优化中分析rownum和order by哪个先执行

我们对比PLAN 1的id=5可以看到,结合SQL 1的文本可以知道,此步骤是把所有RE_TIME为2025-04-10和2025-04-11之间的数据直接降序取到后,在回表(回表导致了更多的逻辑读)去过滤出所有满足orde_type = '订单'的数据,然后在取第21-40条的数据,这样自然更慢消耗更多。因为PLAN 2在id=4和id=3的步骤中,只需要按照降序的顺序取到满足前40条即可立刻停止对索引IDX_FT_RE_TIME的继续扫描,不单单是索引的读变少,更重要的是回表的次数也变少。

2025-04-15 17:30:00 282

原创 Oracle备库srvctl start丢失某个原有的service_names的案例

Oracle备库srvctl start丢失某个原有的service_names的案例最近在测试主备环境中使用srvctl添加新的service之后,srvctl start发现其中一个原本用于主备同步的service丢失了。原始的参数文件中的service_names参数值如下(数据库中service_names的值也一样,省略查看步骤):[oracle@smartdbstb01 20...

2025-02-20 15:26:00 1104

原创 Oracle执行计划阅读不符合“最右最上最先执行“的一例

按照常规方式得到的执行顺序,是先取的v表的数据,Id = 4 的谓词信息确看的出来明显需要用到t表的t.create_time相关数据信息。Ord列显示了执行顺序,看来 Adrian Billington 截至目前的脚本在这种情况下也是错误的。官方介绍的时候也说了,normally(正常情况下),那么这里就是特殊情况了。写了个脚本,可以在执行计划中显示执行顺序的,找来验证看看脚本实际执行情况。也有这个问题,看来以后留意标量子查询SQL的执行计划的执行顺序问题了。我们都知道,阅读执行计划的时候,执行顺序是。

2025-01-09 16:41:00 13

原创 Oracle SQL优化过程一则以及group by少见用法报错点

看执行计划id为4的谓词信息,to_char(t.create_time, 'yyyy-mm')是作为一个整体的值:B1代入做判断了,并没有去看t.create_time的值,那么除了to_char(t.create_time, 'yyyy-mm')以外都应该进行分组。首先看了下,表就一个主键带的索引,create_time字段是没有索引的,从表t的条件看,查询了从20240101以来将近1年的数据,数据量太大占比接近表40%的数据量(验证过程略),并不太适合使用索引。

2025-01-09 10:55:00 23

原创 吐槽和记录下遇到的一些GaussDB奇葩问题

在pg里边,create user和create role几乎是一样的,GaussDB足够做参考了吧。2.alter user语句不存在可以修改默认表空间的子句。实际是因为存在数据库的默认表空间是tbs_zkm导致的。压根就没往这方面去想,如果真的是无实际意义为啥不删。但是实际上表空间tbs_zkm根据没有任何对象。3.创建用户的时候可以瞎指定不存在的表空间。删除数据库或者修改掉库的默认表空间就可以了。1.创建完后,没有数据字典视图记录相关属性。

2024-12-13 16:41:00 250

原创 MySQL使用sysdate()导致无法使用索引以及NLJ驱动表结果集增大

理想情况是第5行的Filter使用过滤条件t2.c3=4 and t2.dtime = date_sub(sysdate(), interval 1 day)后,一行数据都没有,这样被驱动表一次都可以不需要执行。简而言之,在SQL语句开始执行后,sysdate()可以理解为一个不确定的值,是一个变量,因此无法使用索引(包括强制),这在官网也提到了。不知道尝试多久想放弃的时候,鬼使神差使用now()替换sysdate()之后,您猜怎么着,可以了。参数控制让sysdate()等同于now(),但不建议这么做。

2024-11-29 15:49:00 8

原创 Oracle关于ORA-08006和ORA-30926一点有趣的测试

两个报错的详细信息如下:ORA-30926: unable to get a stable set of rows in the source tables/ORA-30926: 无法在源表中获得一组稳定的行现有表zkm,根据如下一样的测试流程,表zkm是否为分区表会影响merge into报错结果为ORA-08006还是ORA-30926,非常的神奇。

2024-11-25 17:43:00 1104

原创 Oracle、MySQL、ClickHouse的通用AES256加解密如何实现?

前段时间研究了加密算法aes,写了个文档,分享到博客上来。

2024-10-30 15:55:00 20 1

原创 Oracle 19C重启库后警告日志报错ORA-12012&&ORA-27476: “SYS“.“MAX_JOB_SLAVE_PROCESSES“ does not exist

粗略看了job涉及的对象内容,也没发现类似"SYS"."MAX_JOB_SLAVE_PROCESSES"的突破点,搞了好几天也没搞定。到这里我就已经无能为力了,感觉有可能是触发了19c的bug了,只不过官方还没发现或者登记而已。然而,前几天数据库正式完成数据转移后,将作为生产库上线之前,重启库打开归档后,发现又报错了。看来,果然是因为环境变量ORACLE_PDB_SID设置的情况下启动库导致的。好吧,看来发现了个mos上还没有的问题,总算是解决了。然后观察了一两天,还是刷刷的报错。

2024-09-20 16:45:00 31

原创 Oracle 19c通过cdb的service name连接后为pdb库

Oracle 19c通过cdb的service name连接后为pdb库现在数据库版本为19.19,库名为oemdb,有1个容器数据库pdb为empdbrepos,如下:[oracle@oem13c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 19 09:34:51 2024V...

2024-09-19 09:47:00 661

原创 Oracle 12c后enable_ddl_logging的日志位置变化

Oracle 12c后enable_ddl_logging的日志位置变化先吐个槽,enable_ddl_logging功能是Oracle Change Management Pack 的一部分,需要作为单独的许可证购买,这是要单独花钱的吗......开启enable_ddl_logging功能,在11g中,ddl操作将以XML格式被记录在ADR_HOME/trade/alert_<S...

2024-08-19 09:47:00 414

原创 Oracle INSTR和LIKE转换注意事项

Oracle INSTR和LIKE转换注意事项A式:INSTR(A.G_NO || ',', B.G_NO || ',') >= 1 和 B式:INSTR(A.G_NO , B.G_NO) >= 1 等价吗不等价,1、B.G_NO有空值的情况,假设A.G_NO也为空值,则A式为','和','比较是成立的,即空值和空值是符合的,而B式则不符合假设A.G_NO='XXXX',则A式为'...

2024-08-01 08:43:00 451

原创 Oracle impdp只导入元数据占用大量空间以及如何删除空段

Oracle impdp只导入元数据占用大量空间以及如何删除空段从某个库导出整个库的元数据,在另外一个新库导入元数据,发现导入时间久并且占用了大量空间。有好几张的空表甚至能占用十几二十G大小的空间,看了一下都是按天分区的间隔分区表,每个分区会有8M的大小。通过在源库使用dbms_metadata.get_ddl包查看某张表的ddl(不要用PLSQL Developer工具看)可以发现原因,...

2024-07-08 17:03:00 669

原创 Oracle如何切换temp表空间以及需要注意的点

Oracle如何切换temp表空间以及需要注意的点昨天有套库报/u01的磁盘90%使用率报警了,无法通过LVM在原盘基础上扩容,计划新增加磁盘并将能在线迁移的相关数据库文件迁移走。其中,对于temp表空间的处理,我采取的方法实际和undo差不多,均是通过切换来达到目的。版本是11.0.2.4.0.200714记录一下遇到的一些问题。假设现在的临时表空间为temp,我要切换成temp2。...

2024-07-02 09:47:00 1410 1

原创 《将博客搬至优快云》

将博客搬至优快云

2024-06-28 10:39:37 164

原创 对比Oracle和MySQL索引对于like的支持,MySQL一言难尽啊...

对比Oracle和MySQL索引对于like的支持,MySQL一言难尽啊...MySQL版本:8.0.36Oracle版本:11.2.0.4.0MySQL: | Oracle:(root@localhost 09:44:08) [zkm]...

2024-06-21 16:37:00 330

原创 为什么MySQL的information_schema.tables字段index_length显示为0?

为什么MySQL的information_schema.tables字段index_length显示为0?测试版本为:MySQL社区版 8.0.36分情况1:innodb引擎的表是索引组织表,按照主键进行顺序存放。则表是索引,索引是表,index_length不会有值。如下,创建一个表,并追加主键,查看索引情况。(root@localhost 11:02:20) [zkm](79940...

2024-06-05 11:08:00 1032

原创 Oracle获取吞吐量和IOPS的脚本

Oracle获取吞吐量和IOPS的脚本数据底层存储要换盘,对新盘做IOPS压测。并花了点时间写了脚本获取数据库每秒的吞吐量和IOPS信息。可以将数据导成excel并绘制为折线图等统计图。--获取 IOPS(当前实例)select to_char(t.begin_interval_time, 'yyyy-mm-dd hh24:mi') || ' -> ' || t...

2024-06-03 17:39:00 469

原创 Oracle RAC备库启动service报"ORA-16000: database open for read-only access"

Oracle RAC备库启动service报"ORA-16000: database open for read-only access"还是2019.03.01那天的事了,当时在KFT客户就遇到这个问题,最近在规整一些资料看到当时待整理的文档,就抽空做做实验整理下。报错信息如下,ADG备库:[oracle@xxxprdoradb01 ~]$ srvctl start service -...

2024-05-14 17:46:00 977

原创 Oracle:谈谈service_names和dbms_service的一点问题

Oracle:谈谈service_names和dbms_service的一点问题services_name在在19C中官方明确提到已经弃用了,只保留兼容,且在未来版本中可能不再支持该初始化参数。传送门。其次,无论是在12C或者11G,官方都表明了Oracle RAC或者Oracle Restart环境下,不通过直接修改services_name参数,而除此之外的单点环境就可以直接修改。详情...

2024-05-14 11:03:00 1001

原创 Oracle Hint "index_combine"对于like的局限性

Oracle Hint "index_combine"对于like的局限性数据库版本:11.2.0.4.0今天遇到1条问题SQL,优化遇到一点问题,SQL文本大概如下:其中,col2和col3存在索引的且选择性都很高,col1的业务特性是只有两个值选择性低没有也不适合建Btree索引。导致每次执行都是全表扫描,统计发现这条SQL每半小时执行次数大概在1200次左右。select * ...

2024-05-10 15:59:00 351

原创 Oracle OCR,Vote disk故障恢复方案

OracleOCR,Vote disk故障恢复方案1 概述OCR/Vote disk 磁盘组故障场景恢复操作方案。测试版本:11.2.0.4.0适用于以下场景:操作维护 OCR/Vote disk 对应的磁盘组,提前备份了 OCR 文件信息,以便存在回退维护的空间。由于某些原因导致 OCR/Vote disk 的磁盘组丢失从而 CRS stack 无法运行。不存在有效的 O...

2024-04-23 14:53:00 1103

原创 Oracle关于半连接SQL执行计划的执行路径一些有趣的实验

Oracle关于半连接SQL执行计划的执行路径一些有趣的实验从摩天轮的问答里边看到的一个问题,https://www.modb.pro/issue/34573大概有这么条SQL(包括环境构造语句),如何强制走出nested loops的执行路径。create table tb1 as select * from dba_objects;create table tb2 as selec...

2024-04-12 09:24:00 440

原创 达梦设置命令行/交互式提示符

达梦设置命令行/交互式提示符DIsql 在连接成功数据库时会自动运行两个配置文件 glogin.sql 和 login.sql。glogin.sql 文件中的设置永久生效,该配置文件需要用户自行创建在​DM_HOME/bin/disql_conf路径下,其中DM_HOME 为 DM 的安装目录,需要用户在操作系统配置 DM_HOME 环境变量,disql_conf 目录需要用户自行创建。log...

2024-04-09 14:58:00 310

原创 达梦数据守护系统(主备架构)如何正确重启备库

达梦数据守护系统(主备架构)如何正确重启备库达梦主备架构有官方的名称,叫做:数据守护系统。无论是重启主库还是备库,或者关闭守护系统的时候,需要按照一定顺序和规则来执行。不然可能引起主备切换,主库进入suspend状态,甚至造成守护进程组分裂等可能。这里讨论如何规范重启备库。另外开启一个普通监视器,进入命令行交互界面:1.通过 detach database 命令分离目标备库。de...

2024-03-15 14:41:00 413

原创 GaussDB的gs_dump工具问题整理,疑似BUG

GaussDB的gs_dump工具问题整理,疑似BUG目前分布式GaussDB用起来问题感觉巨多啊。版本信息如下:09:04:11 root@postgres > select version();-[ RECORD 1 ]-------------------------------------------------------------------------------...

2024-03-14 09:19:00 478

原创 GaussDB命令行显示设置

GaussDB命令行显示设置vi ~/gauss_env_file export PSQLRC=/home/omm/.gsqlrcvi /home/omm/.gsqlrc \set PROMPT1 '%`date +%H:%M:%S` %n@%/ > ' \timing on效果如下:[omm@gaussdb ~]$ gsql -Uroot -W xx...

2024-03-11 09:58:00 255

原创 Oracle半连接的连接条件为like导致无法使用nl_sj的嵌套循环半连接

Oracle半连接的连接条件为like导致无法使用nl_sj的嵌套循环半连接如同标题描述,感觉有点奇怪。HASH JOIN SEMI JOIN不生效很容易理解,HASH JOIN算法会根据两个表连接字段值生成hash值,这样就丢失了包含关系而无法使用like。但是NEST LOOP SEMI JOIN无法使用就不太理解为什么了。数据库版本:11.2.0.4.0模拟如下:create...

2024-03-08 09:33:00 249

原创 达梦不支持filter类型的执行路径导致慢SQL

达梦不支持filter类型的执行路径导致慢SQL最近有个政府项目的库往政务云上迁移到达梦库,源库的业务量不是很大,库本身也不大。迁移后抓取达梦的AWR,发现有一条SQL每次执行需要15s多,而在原来的Oracle里边执行0.1s。查看后发现是达梦不支持filter执行路径导致的。模拟如下:创建dgd,p,s共3个表。create table dgd (hsstr varchar2(...

2024-03-08 08:36:00 492

原创 Oracle DCD和Linux TCP KeepAlive和网络硬件防火墙探讨

Oracle DCD和Linux TCP KeepAlive和网络硬件防火墙探讨Oracle的某些会话在超时断开后在警告日志抛出一定量类似如下日志:Fri Aug 19 17:51:32 2022***********************************************************************Fatal NI connect error...

2024-01-31 11:21:00 859

原创 Oracle ASMLIB配置iSCSI设备导致的问题

Oracle ASMLIB配置iSCSI设备导致的问题出于测试目的或者环境不重要等目的,如果使用iSCSI设备并且使用ASMLIB配置管理,可能会遇到如下两个问题。都是我遇到的问题。OracleLinux7上边正常安装配置ASMLIB后,如果进行重启会导致扫描不到之前创建标记的盘,需要手工使用oracleasm scandisks才能识别到无论是OracleLinux6还是7,安装配置...

2024-01-16 17:12:00 949

原创 Oracle如何安装配置ASMLIB

Oracle如何安装配置ASMLIB官方安装参考文档/链接https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-and-configuring-oracle-asmlib-software.htmlFAQ ASMLIB CONFIGURE,VERIFY, TROUBLESHOOT (Do...

2024-01-16 16:20:00 894

原创 Oracle如何从官方渠道下载ASMLIB组件安装包

Oracle如何从官方渠道下载ASMLIB组件安装包简介ASMLib 由以下组件组成:开源 (GPL) 内核模块包:kmod-oracleasm开源 (GPL) 实用程序包:oracleasm-support闭源(专有)库包:oracleasmlib如果是Oracle Linux系统,并且是使用了带uek内核的方式启动的(uname -a确认),则只需要安装"oracleasm-...

2024-01-16 11:12:00 1149

原创 ClickHouse安装登录warning处理记录

ClickHouse安装登录warning处理记录政务云的麒麟系统,ARM架构。目前只能安装到23.4.1.1943版本,再新的版本会因为cpu架构太老无法安装。安装23.4.1.1943版本登录也有如下warning。[root@host-192-168-3-4 ~]# clickhouse-clientClickHouse client version 23.4.1.1943 (...

2024-01-11 15:57:00 456

原创 达梦设置兼容日期格式导致查询dba_objects报错:[-6118]:Invalid datetime value.

达梦设置兼容日期格式导致查询dba_objects报错:[-6118]:Invalid datetime value.目前在如下版本中发现这个问题:SQL> select t.*,id_code from v$version t;LINEID BANNER ID_CODE ----------...

2023-12-15 09:30:00 389

原创 ClickHouse中select final和optimize table final的区别

ClickHouse中select final和optimize table final的区别使用OPTIMIZE TABLE FINAL该语句会对表的数据部分进行计划外的合并,通常不建议使用。见官档:传送门而在select中当FINAL被指定,ClickHouse会在返回结果之前完全合并数据,从而执行给定表引擎合并期间发生的所有数据转换。见官档:传送门其中,需要特别注意的是:1...

2023-12-13 09:52:00 867

原创 Oracle切换undo后如何确定使用旧undo的会话信息

Oracle切换undo后如何确定使用旧undo的会话信息背景是这样的,最近RAC的磁盘组90%报警,存储空间只能再加2T空间。而这套RAC的DATA组用了normal冗余,不知道当初哪个大聪明这么搞的,底层还是做了RAID 10的。领导也不知道不懂这么设置的。因此,这新的2T创建新磁盘组且使用extern的外部冗余,后续将index和undo切换到新的磁盘组上。index重建到新表...

2023-12-11 10:23:00 343

原创 Linux多路径IO流量负载和单链路负载压测

Linux Multipath的IO流量多链路负载和单链路负载压测再linux下,对于udev和multipath均能做到自定义并持久化设备名,其中udev还能做到更改设备权限。而multipath也能做到持久化设备名,但无法更改设备权限,但是multipath能够实现更多的功能,比如IO流量负载功能。测试情况1 单链路IO流量负载新增一个存储挂载的磁盘设置,共4条链路,在linux上...

2023-11-13 17:34:00 44

原创 Oracle找出所有表字段中值包含中文并生成扩充字段的SQL脚本

Oracle找出所有表字段中值包含中文并生成扩充字段的SQL脚本背景后续计划将Oracle的某个库迁移到云上的达梦库,Oracle字符集为ZHS16GBK,达梦库字符集为UTF-8。我们知道,中文汉字在UTF8中一个汉字占3个字节,而在GBK中则是占2个字节,测试过程发现若字段中存有中文的行,有可能在达梦中会报长度不足而报错。经过讨论,将含有中文的字段均按照(字段长度/2)*3的规则来扩...

2023-11-10 10:55:00 113

PLSQL Developer 12.0.7 64位 注册码

product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le serial Number:226959 password: xs374ca

2018-01-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除