- 博客(162)
- 资源 (2)
- 收藏
- 关注
原创 Oracle SQL多表关联索引优化案例
近期迁云,云上磁盘性能很差,对当前数据库优化IO如下SQL消耗IO资源很高:SELECT SUM("A2"."FEE_CASH"), '1',"A1"."CHL_REFUND_NO","A2"."PAYPLAT_TRADNO", 2 FROM (SELECT MAX("A4"."UUID") "MAX(TTTT.UUID)" FROM "HUZH_CREDIT"."B_SETTILE_DATA" "A4" GROUP BY "A
2021-09-07 17:52:00 2057
原创 Oracle 大表回表过滤优化案例
某业务报表SQL:执行时间3小时.asncn3a24zu67SELECT NVL(XHSD0001.CG_F_GHSMC_TONGJI_SPBS_CGB(FHMX.SPBS), '0000000000') KHBH, FHMX.CGBMBH, ROUND(SUM(DECODE(FHMX.CLZT, 'e', FHMX.SFSL, FHMX.SSSL)), 0) SL, SUM(FHMX.MY) MY, SUM(FHMX.SY) S
2021-09-07 16:51:47 1155
原创 Oracle VIEW PUSHED PREDICATE案例分析
SELECT * FROM (SELECTA.INVOICE_ID, A.VENDOR_ID, A.INVOICE_NUM, A.INVOICE_AMOUNT, A.GL_DATE, A.INVOICE_CURRENCY_CODE, SUM(NVL(B.PREPAY_AMOUNT_APPLIED,0)) PAID_AMOUNT
2021-08-31 16:35:33 1020
原创 Oracle Cardinality Feedback
关闭动态采样:SQL> alter session set optimizer_dynamic_sampling=0;Session altered.获取sharepool中使用基数反馈的子游标。SQL> select sql_ID,USE_FEEDBACK_STATS FROM V$SQL_SHARED_CURSOR where USE_FEEDBACK_STATS ='Y';SQL_ID U------------- -0mp85ftwxaky5 Y
2021-08-31 16:03:03 432
原创 Oracle Adaptive Cursor Sharing(ACS)
Adaptive Cursor Sharing(ACS) 解决了绑定变量窥探问题开启自适应游标共享后测试绑定变量窥探:确保开启自适应共享游标相关参数:alter system set "_optim_peek_user_binds"=true scope=spfile;alter system set "_optimizer_adaptive_cursor_sharing"=TRUE scope=spfile;alter system set "_optimizer_extended_c
2021-08-31 15:59:45 399
原创 Oracle Bind Value Peeking
Oracle 9i引入绑定变量窥视技术(Bind Value Peeking),在没有这项技术之前,使用绑定变量后,执行计划的产生要靠默认的选择性判断,这种判断往往会出现严重的偏差,加了这项技术后,当SQL进行硬解析时,对于使用了绑定变量的字段,不再采用以往默认的cost来分析的方式,而是会对绑定变量进行窥探,也就是优化器采集绑定变量的值,用窥探到的绑定变量的值来计算CBO的开销,生成执行计划为了测试Bind Value Peeking:在11g环境下先将自适应共享游标关闭:alter sy
2021-08-31 15:56:38 177
原创 Oracle CBO Transformation-FPD(filter push-down)
对于用户写的SQL,Oracle会进行等价改写。这种改写转换都是基于一种固定的算法,也叫启发式转换,大多存在问题,比如我们写in,oracle在有可能的情况下,会将in转换成exist,然后用semi join的方式给你做join,在一般情况下exist比in...一.Oracle不做transformation,这时你就要去分析原因二.Orale做错了transformation,导致了错误的结果集.(复杂的视图)join: inner-join:等值连接 outer-jo...
2021-08-19 16:46:57 924
原创 Oracle 一次ORA-00600[13013]
起初后台报错:昨晚9点至早上10点:ORA-00600: , : [13013], [5001], [126801], [109382409], [101], [109382437], [17], [], [], [], [], []Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_99948/jcd_ora_23550_i99948.trcNon critical error ORA-48113 caug
2021-03-17 21:55:02 488
原创 Oracle ORA-1499 table/Index Cross Reference Failure
ORA-1499 table/Index Cross Reference Failure - see trace file (Doc ID 1499.1)详情:Error: ORA 01499Text: table/Index Cross Reference Failure - see trace file-------------------------------------------------------------------------------Cause: An error o
2021-03-17 21:37:47 415
原创 Oracle 一次ORA-00600[kdsgrp1]
报错语句:select * from zx_wonder.TB_LIS_REPORT t where bgrq>'20210101'出现:ORA-00600: 内部错误代码, 参数: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []观察trace:[oracle@ETL trace]$ more /oracle/diag/rdbms/etl/ETL/trace/ETL_ora_25565.trc出现:* kdsgrp1-1:
2021-03-17 21:33:59 762
原创 Oracle DataGuard环境下使用TDE透明加密需要注意的点
DataGuard环境下使用TDE透明加密:开启TDE:1.创建一个新目录,并指定为wallet目录$ mkdir -p /oracle/wallet设置wallet目录的方法很简单,编辑参数文件sqlnet.ora:$ vi $ORACLE_HOME/network/admin/sqlnet.ora加入以下信息,保存。ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=file) (METHOD_DATA= (DIRECTORY
2021-03-08 23:47:34 942 1
原创 Oracle 搭建OracleRAC底层存储策略设置(VMware底层存储vsan6.7)
VMware厚置备延迟置零,厚置备置零,精简置备的概念:1.厚置备延迟置零立刻分配指定大小的空间,空间内数据暂时不清空,以后按需清空。2.厚置备置零立刻分配指定大小的空间,并将该空间内所有数据清空。3.精简置备为该磁盘文件指定增长的最大空间,需要增长的时候检查是否超过限额。在客户环境的VMware环境下.由于底层存储设备采用VSAN 6.7.虚拟机存储策略为VSAN默认策略.那么磁盘策略也就是VSAN默认策略.在VSAN6.7中,默认的策略为精简置备.要记住如果搭建Oracle RAC使
2021-03-07 18:14:05 830
原创 Linux Centos6使用网络源出现404问题
说明:2020年11月30日,Centos6停止维护.2020年12月2日,下架所有Centos6的源以及网易,阿里都无法使用.问题 :http://mirrors.aliyun.com/centos/6/os/x86_64/repodata/repomd.xml:[Errno 14] PYCURL ERROR 22 - “The requested URL returned error: 404 Not Found”Trying other mirror.可用网络源:[centos-off
2021-01-29 23:35:02 376
转载 Oracle SGA:allocation forceing comonent growth与cursor:pin s wait on X问题排查
1.问题现象20年12月31日,数据库应用人员反映2020-12-31 12:40:10存在告警,过了几分钟之后业务恢复正常。表现的状态:Connect to database time out, please check db status!因为业务反馈的内容很有限,所以我们取了12月31日12:00-13:00的AWR进行分析。可以看到AAS并不是很高,AAS=755.39/32.05=23.57(备注:AAS是衡量快照时间内数据库负载的重要指标)通过AWR观察可以看到有大量的cursor
2021-01-28 23:10:58 300
转载 Oracle LATCH ROW CACHE OBJECT案例
LATCH ROW CACHE OBJECT问题分析客户的系统,先后发生了几次Latch:row cache object等待,该等待会导致CPU迅速达到100%。SQL> select event,p1,P1RAW from v$session where event='latch: row cache objects';EVENT P1 P1RAW-------------------------
2021-01-27 23:10:11 2094
原创 Oracle SGA:allocation forceing comonent growth
Mos给出解释:属于明显的内存抖动故障排查视图:通过v$sga_resize_ops可以查询出AMM内存管理下的内存收缩增长分配情况:V$SGA_RESIZE_OPS官方解释:displays information about the last 800 completed SGA resize operations. This does not include in-progress operations. All sizes are expressed in bytes.当前执行的操作记录
2021-01-27 23:05:09 359
转载 Oracle 值得学习的一篇有关v$Latch的文章
值得学习的一篇有关Latch的文章:Latch的请求获取类型分为两种模式:Willing-to-wait:是指如果所请求的latch不能立即得到,请求进程将等待一很短的时间后再次发出请求。进程一直重复此过程直到得到latch。Immediate:是指如果所请求的latch不能立即得到,请求进程就不再等待,而是继续执行下去。以下参数都是对于Willing-to-wait模式的latch而言的,no-wait模式的latch获得情况统计值则在IMMEDIATE_GETS和IMMEDIATE_MISSES
2021-01-26 23:15:04 504
原创 Oracle PL/SQL工具kill会话跟踪测试
一:问题说明:在PL/SQL DeveloperVersion 11.0.5.1790 (64.bit)使用PL/SQL Developer进行kill会话,发现没有kill会话的选项。客户咨询,这种kill会话的情况是属于正常kill会话还是属于立即kill会话:二 跟踪测试:使用PLSQL连接测试数据库,并定位到当前会话ID:PL/SQL会话信息:SID=404 serial#=24050使用Oracle 10046事件进行跟踪该会话:查询出OS进程ID:select spid
2021-01-25 21:27:38 1024
原创 Oracle 一种CPU高定位会话的诊断思路
很多时候,系统CPU资源使用率高通常都是由于SQL导致的.所以找到这些问题SQL通常也就找到了问题所在.思路如下:1.通过top工具直接定位到高CPU耗用的进程PIDtop / ps -ef oracleora11g1 (LOCAL=NO)2.如果这些进程是远程连接数据库的进程,我们就可以通过系统层面PID和v$ process.spid相关联.select addr from v$process where spid=xxx3.进而再通过v$ process.addr和v$session
2021-01-24 22:34:03 192
原创 Oracle 统计信息的备份恢复机制
统计信息的备份恢复机制:今天说一下统计信息的备份恢复机制.从Oracle10g开始,当收集统计信息的时候,旧的统计信息会被保留,如果因为新的统计信息而出现性能问题,旧的统计信息旧可以被恢复。Oracle的历史统计信息保存在以下几张表中:WRI$_OPTSTAT_TAB_HISTORY 表的统计信息WRI$_OPTSTAT_IND_HISTORY 索引的统计信息WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息WRI$_OPTSTAT_HISTGRM_HISTORY 直方图的
2021-01-23 23:06:27 709 1
原创 Oracle 19c ORA-00700: soft internal error, arguments: [pga physmem limit]
19c数据库启动有ORA-00700错误:ORA-00700: soft internal error, arguments: [pga physmem limit], [5368709120], [3268329062], [], [], [], [], [], [], [], [], []内存设置问题:如果SGA+PGA>OS Memory * 80%,启动时则会给出错误警告.仅在19c版本中给出错误告警,具体看Mos:Getting ORA-00700 Message when Sta
2021-01-22 22:26:42 2399
原创 Oracle 集群资源db_unique_name不一致导致密码文件失效
情况描述:RAC集群环境,尝试通过tnsname连接备库.出现密码不正确的问题,问题反馈到我这里:[oracle@rac1 ~]$ sqlplus sys/oracle@orcldg as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Thu Jan 21 10:57:38 2021Copyright (c) 1982, 2016, Oracle. All rights reserved.ERROR:ORA-01017: invalid us
2021-01-21 22:20:18 360
原创 Oracle 共享内存段未释放导致数据库无法启动
Oracle 数据库异常关闭,共享内存未释放,导致无法启动。以下内容为测试环境复原故障现场:流程:尝试启动数据库出现报错信息:[oracle@server1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Thu Jan 21 00:18:04 2021Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to an idle inst
2021-01-20 23:22:26 892
原创 Oracle shmmax参数设置与SGA的关系
Linux系统层面shmmax定义的是单个共享内存段的最大值.如果该参数设置小于Oracle SGA设置,那么SGA仍然可以创建成功,但是会被分配多个共享内存段.推荐调整shmmax设置,将SGA限制在一个共享内存段中。在Linux平台shmmax默认值为32M:[root@server1 ~]# more /proc/sys/kernel/shmmax33554432[oracle@server1 ~]$ sqlplus / as sysdbaSQL> startup;ORACLE in
2021-01-20 23:12:08 696
原创 Oracle DBCA出现PRVG-6085 : failed to retrieve the ASM parameter “cluster_database“ value
Oracle 12.2.0.1 RAC环境下DBCA新建实例.进行安装前检测时出现ASM Integrity:详细内容:报错信息:PRVG-6085 : failed to retrieve the ASM parameter “cluster_database” value on the node “rac1” PRVG-12941 : An internal command ‘cvuhelper’failed to run a SQL query on ASM on node “rac1”.
2021-01-20 23:04:05 635
转载 Oracle Warning: VKTM detected a time drift.
集群版本:11.2.0.4 数据库版本:11.2.0.4文章来自:https://www.linuxidc.com/Linux/2016-03/128903.htm时间是包括数据库系统在内的诸多信息系统基础件的重要因素。对于运行在操作系统OS之上的中间件组件而言,获取到一个准确、连续和一致的时间非常重要,特别是多节点的环境下。如果没有一个统一的时间管理机制,其上的cluster组件工作是及其困难的。本篇主要介绍Oracle vktm时间后台进程报警的Bug问题。1.从11g VKTM进程谈起对O
2021-01-19 22:18:07 2576
原创 Oracle NFS异常导致RAC集群宕机排查
本套RAC环境采用NFS做RAC共享存储.dbca安装实例时,安装中途集群宕机,记录一下。首先查看dbca安装日志:[root@rac1 ~]# tail -100f /oracle/app/cfgtoollogs/dbca/orcl/trace.log_2021-01-19_05-50-20PM[progressPage.flowWorker] [ 2021-01-19 17:57:49.336 CST ] [InstanceStepOPS.executeImpl:1213] create p
2021-01-19 22:02:50 1231
原创 Oracle 数据块头部的Fuzzy标记
Fuzzy标记位于数据文件头块offset 138中.可以使用bbed进行查询,0x04表示Fuzzy为YES,0x00表示fuzzy为NO当数据块的SCN可能大于数据文件头的SCN时,FUZZY标记为YES,所以数据库打开时的数据文件头fuzzy状态始终为YES。当数据正常运行时, 数据文件头的Fuzzy状态为YES.当数据正常关闭时,数据文件头的Fuzzy状态为NO.当数据异常关闭时, 数据文件头的Fuzzy状态为YES.SQL> select file#,status,fuz
2021-01-18 22:29:45 987
原创 Oracle RAC存储双活采用第三方仲裁的原因
Oracle RAC存储双活采用第三方仲裁的原因:DATA:设置双Failure group,每个存储柜为一个故障组,做normal冗余,一路镜像,Oracle保证每一个extent和它对应的镜像不会保存在相同的Failure group中,从而确保了当Failure group 中的某一个或多个磁盘,甚至整个failure group全部丢失时也不会有数据丢失,并实现了数据的镜像。OCR:在oracle中,一个节点必须能够访问大多数的VF(VF/2+1)才能够运行,如果某个节点在一个时间内一直无法
2021-01-17 21:23:50 800 1
原创 MYSQL 初识Innodb存储引擎
Innodb存储引擎:InnoDB存储引擎自Mysql5.5以后,为Mysql默认存储引擎,特性如下:1.支持事务,遵循ACID。2.支持行级锁,并且引入类似Oracle数据库中的一致性读特性,以提升多用户并发时的读写特性。3.InnoDB支持主外键约束.4.InnoDB存储引擎由于具备日志体系所以也具备Oracle的实例恢复特性5.InnoDB拥有自己独立的缓冲池(对应innodb_buffer_pool_size,类似于Oracle数据库中的SGA_TARGET),常用数据 (含索引)都在缓
2021-01-17 20:47:13 216 1
原创 MYSQL 5.7.31二进制包安装
mysql二进制包下载地址:https://downloads.mysql.com/archives/community/上传软件包至tmp目录:[root@mysql57 tmp]# pwd/tmp[root@mysql57 tmp]# ll mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz-rw-r–r-- 1 root root 118 Jan 16 11:29 mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz创建
2021-01-16 20:43:15 326 1
原创 Oracle AWR详解-DB Time
AWR报告头:需要了解的信息如下:CPUs:64个Cores:32核Memory:内存为128GSessions:采样快照点时刻的session数,Cursors/Session:每个session开启的游标数(根据这个判断ora-1000错误)Elapsed:代表采样时间.结束快照点-起始快照点的时间.DB Time: 所有用户会话(前台会话)花费在数据库调用上的总和时间(不包含后台进程).这个时间包含CPU时间,CPU队列时间,以及非空闲会话的等待时间,所以DB TIME= DB CP
2021-01-16 20:37:46 1814
原创 Oracle RAC异常进程占用端口导致VIP监听注册出现Not All Endpoints Registered
Oracle RAC VIP监听注册情况如下:[grid@rac11gn1 ~]$ crsctl status res -tora.LISTENER.lsnr ONLINE INTERMEDIATE rac11gn1 Not All Endpoints Registered ONLINE online rac11gn2 排查流程:1.尝试手动注册
2021-01-15 10:02:06 894
原创 Oracle 磁盘IO异常诊断定位
说明:客户反应,系统IO负载很高,前台业务卡顿,远程连接排查问题.首先IO负载高存在两种情况.操作系统层面观察IO浮动情况,判断是否由于存储设备异常导致.数据库层面定位物理读,进而确定导致IO异常的原因.由于操作系统IO负载很高,我们在数据库内部可以直接通过v$ sesstat,v$ stguatname以及v$session三个视图获取到物理读最多的会话正在执行的SQL.确定物理读统计信息号:select name,statistic# from v$statname where name
2021-01-15 09:56:08 1203
原创 Oracle ORA-27090: UNABLE TO RESERVE KERNEL RESOURCES FOR ASYNCHRONOUS DISK I/O
说明:RAC更换存储后存储断链路后进行mulitiph -ll查询存储链路信息出现io_setup_failed情况结合当时ASM进行rebalance时出现ORA-27090: UNABLE TO RESERVE KERNEL RESOURCES FOR ASYNCHRONOUS DISK I/O出现问题原因为fs.aio-max-nr值设置过小。redhat官网给出建议为将该值调大oracle官网给出的标准化安装参数最小值为1048576核心生产不敢轻易调整.最终根据mos查询出一篇
2021-01-14 18:27:43 1066
原创 Oracle 数据泵异常JOB状态DEFINING处理
10.2.0.5数据泵导入hang住,JOB变为异常DEFINING状态.前台输出以及日志输出:Import: Release 10.2.0.5.0 - 64bit Production on Thursday, 14 January, 2021 14:02:50Copyright (c) 2003, 2007, Oracle. All rights reserved.;;; Connected to: Oracle Database 10g Enterprise Edition Releas
2021-01-14 18:13:13 1550
原创 Oracle v$active_session_history与dba_hist_active_sess_history关系与区别
1.v$ active_session_history(活动session历史信息记录)ASH(v$ active_session_history)与v$ session为基础,每秒钟采样一次,记录活动会话(非idel会话)的等待事件等一系列信息至,对于每个活动的session,每次采样会记录一行,并保存在ASH buffer中.2.dba_hist_active_sess_history(保留活动历史会话的采集信息)要知道ASH信息最终都是要写入AWR的,v$ active_seesion_hist
2020-12-27 19:50:59 2312 2
原创 Oracle 会话层面性能诊断视图
会话层面性能诊断视图1.v$event_name:记录当前数据库版本所有的等待事件2.v$system_wait_class:可通过该视图获得各类主要等待事件的等待时间和等待次数信息.例如:select * from v$system_wait_class order by time_waited;WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS TOTAL_WAITS TIME_WAITED TOTAL_WAITS_FG TIME_WAITED_
2020-12-27 19:48:52 262 1
原创 Oracle 10g中dba_objects无法查询出lob字段索引
说明:在一次expdp跨版本迁移时(10g->11g),迁移完成后,在进行目标端与源端对象数量校验时.发现目标端索引数量比源端索引数量多。校验语句如下:select OWNER,OBJECT_TYPE,count(*) from dba_objects where owner in ('ANONYMOUS','BAJK','BATJ','EMR','EMR3','EMRJK','ZHLIS','JYK','XUEYE','HISBAK','YLSBGL','PDJH','DSG','SCOTT'
2020-12-14 19:33:49 407
原创 Oracle RAC磁盘采用multipath做多路径
规划:两节点磁盘信息如下:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 3.5G 0 rom /media/20140320_093241sdc 8:32 0 4G 0 disk sdf 8:80 0 4
2020-12-14 19:31:29 1758
Oracle BBED工具解压包
2020-09-30
mdbutil.pl.zip
2020-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人