Oracle
文章平均质量分 63
c.a.p
江湖人
展开
-
RMS恢复-鲜为人知的坑
当前数据库版本为12.2,rms等待事件为 SGA: allocation forcing component growth并且阻塞会话event为latch:shared pool ,确定触发bug31700234。原因是:前一天数据库重启过,重启完成之后rms进程用来恢复集群,而在此工作中阻塞了session,造成系统故障。)操作,突然收到告警session飙升一千多,同时收到告警数据库断开,正值两会,精神一下绷起来了。事情说在前面,故障发生在3月8日20:17-20:22。原创 2023-03-15 11:22:42 · 821 阅读 · 0 评论 -
追根溯源-数据库deadlock重启
每周日必出故障系列,似乎是看不惯我周末休息,老美的圣诞节也没镇住老美的数据库。数据库在圣诞节最后一刻宕机了!!!!当然按照重启法则似乎能解决一切,但是这里并不适用,重启之后故障重现,给了我足够的取证和分析时间。Oracle database version 19.5 no CDB下面看一组alert2021-12-25T23:28:05.264842+08:00ARC0 (PID:12469): Archived Log entry 452730 added for T-2.S-2567原创 2021-12-28 11:44:52 · 1611 阅读 · 0 评论 -
被坑的第N天-暴雷case
21:10分收到告警,数据库会话500多个,一下来精神了,开机干活,告警有些延迟。登陆数据库已是21:15,检查会话都已正常,难道是告警故意搞事?保险起见开始仔细看看吧select to_char(sample_time,'YYYY-MM-DD hh24:mi:ss') mtime,count(*) c from ash_11_30 where sample_time > to_date('2021-11-30 21:02:00','YYYY-MM-DD hh24:mi:ss')原创 2021-12-01 11:32:42 · 683 阅读 · 0 评论 -
ORA-01450: maximum key length (3215) exceeded问题处理
近日生产出现性能告警,经过一番排查发现一条SQL没有使用索引,对其创建索引时报ora-01450ERROR at line 1:ORA-00604: error occurred at recursive SQL level 1ORA-01450: maximum key length (3215) exceeded于是查看表结构发现一个十分恼火的问题,所有字段全是varchcar2(4000)...原创 2021-11-26 11:21:32 · 1779 阅读 · 0 评论 -
drop table 引出的问题之 ORA-21700: object does not exist or is marked for delete
应客户要求对确认不用的表drop掉,释放存储。看到这个要求首先想到的是风险,没有想到接下来遇到的棘手问题。经过一系列查询之后还是对表进行删除。SQL> truncate table GIS.ALL_STRUCT_L_1;ORA-04063: table "GIS.ALL_STRUCT_L_1" has errorSQL> drop table GIS.ALL_STRUCT_L_1;ORA-21700: object does not exist or is marked f原创 2021-11-22 15:30:51 · 1213 阅读 · 0 评论 -
SYSAUX表空间清理之WRH$_ACTIVE_SESSION_HISTORY
查看sysaux表空间使用率高,对于sysaux表空间之前有文章讨论过,本次直入正题。1.检查sysaux表空间占用空间较大的segments。SQL> select * from (select owner, segment_name, segment_type, sum(bytes) / 1024 / 1024 / 1024 GB from dba_segments where tablespace_name='SYSAUX' grou原创 2021-04-15 14:26:48 · 4549 阅读 · 0 评论 -
exadata的紧张一刻-ORA-27626: Exadata error: 2201 (IO cancelled due to slow/hung disk)
生产环境alert日志持续报错,顿时一惊-IO报错?赶集看下数据库没crash,进行一轮番检查,当前数据库运行正常,长出一口气,分析一下报错。Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_2422.trc:ORA-27603: Cell storage I/O error, I/O failed on disk o/192.168.10.1;192.168.10.2/RECOC1_CD_10_xxxx03 a原创 2021-03-30 10:32:27 · 535 阅读 · 0 评论 -
crontab的坑
或许大家都是直接用Linux/Unix的crontab而没有研究过,又或许大家有过我一样的困扰和经历。早晨发现我的定时任务没有执行,这个定时任务是放在crontab下的,登陆crontab一脸惊讶[root@XXX ~]# crontab -u oracle -lAuthentication token is no longer valid; new one requiredYou (oracle) are not allowed to access to (crontab) because原创 2021-03-19 10:59:45 · 584 阅读 · 1 评论 -
SYSAUX表空间清理之SM/OPTSTAT
sysaux是system的辅助表空间,主要存放AWR基表和审计信息,一般情况下sysaux的使用率都是正常的,看到sysaux表空间使用过高就有点怀疑了,首先查看下表空间。SQL> select * from (select owner,segment_name,segment_type,sum(bytes)/1024/1024/1024 GB from dba_segments where tablespace_name='SYSAUX'group by owner,segment_n原创 2021-03-15 14:52:32 · 1671 阅读 · 1 评论 -
一个BUG引发的灾难:ORA-00600 [kjmchkiseq:!seq]
对于打工人可能最痛苦的就是被告知的故障,数据库有监控、告警、每天巡检,自己做了一系列数据库的“安保”工作,本以为可以万无一失,中午在安心的睡觉中,被人告知数据库crash了。当时的我一脸懵逼,不可能,没有告警,半小时前我还登进去查信息呢,怎么可能crash了呢,结果登陆系统被现实一幕啪啪打脸,数据库1节点crash了,2节点正常,监控和告警突然也有问题了,当然今天重点不在这。立马启动数据库~咦~数据库真的起来了,那么怎么宕的呢,需要研究alert日志了。###alert.logArch...原创 2021-02-01 14:32:31 · 729 阅读 · 0 评论 -
一起Oracle回收站过大引发的insert逻辑读过高故障
某客户CPU暴增,且居高不下,通过gv$session发现一条insert造成大量的阻塞和等待,产生大量row chache lock、gc buffer busy acquire、read by other session等待。通过row cache lock 等待的p1参数发现了大量的内存字典争用,问题点一定在这条SQL。SQL> select parameter,gets,getmisses,MODIFICATIONS from v$rowcache where cache#=8 2原创 2021-01-27 17:03:32 · 827 阅读 · 0 评论 -
ORA-00600 [4194] 处理
在某客户现场遇到一个看着很唬人的报错 ORA 600 ,遇到此报错很多人心里一慌,此次故障ORA-00600 [4194]根本原因是数据库断电down机后undo损坏了,导致数据库不能open。接下来看alert报错Tue Dec 15 10:45:27 2020Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6032.trc (incident=166522):ORA-00603: ORACLE s原创 2020-12-15 20:20:28 · 2848 阅读 · 0 评论 -
来自灵魂的拷问:之迁移之后SQL执行变慢了
来自灵魂的拷问,为什么迁移到性能更好的服务器上之后SQL会变得更慢了呢,执行效率远不如从前。这大概是每一位DBA最不愿意又必须是要经历的浩劫。开发反馈 一系列SQL执行都很慢,平均时间都在10多分钟,这个时间是不能接受的,要求从数据库层面优化SQL。直接上SQL:select count(1) from table_A a left join table_B b on A.id = B.id left join table_C c on A.code = C.reg...原创 2020-11-19 10:51:04 · 596 阅读 · 2 评论 -
记录OGG-01028 Incompatible record (101) 故障一则
近日搭建ogg目标端replicat应用数据时出现报错:OGG-01028 Incompatible record (101) in ./dirdat/li000344, rba 2706945 (getting header).查询MOS1507462.1给出如下解决方式 How to Recover from an OGG-01028 Incompatible Record If the Trail Is Not Corrupt (Doc ID 1507462.1) AP...原创 2020-08-20 14:10:59 · 1184 阅读 · 0 评论 -
浅析Oracle等待事件
oracle 等待事件一、简述Oracle等待事件是在Oracle 7.0.12中引入的,当时等待事件大致有100多个;在Oracle 8.0中Oracle等待事件数目增加到150多个,在Oracle 8i中有大约220个等待事件;而在Oracle 9i中大约有400多个等待事件;在Oracle 10g中有约916个等待事件,在oracle 11g中有约1367个等待事件。Oracle...原创 2020-04-19 14:27:00 · 3765 阅读 · 0 评论 -
浅析oracle执行计划
Oracle 执行计划一、什么是执行计划Oracle执行计划是Oracle为了执行某些SQL而生成的执行步骤的组合。这些执行计划是由Oracle优化器通过具体参数配合和被访问对象统计信息等内容来生成的一系列具体的执行步骤,然后优化器选择一个最优的执行步骤作为这一条语句的执行计划。正如之前讨论所述执行计划是优化器通过划分CPU和内存在Oracle中生成的一个执行步骤,这种执行计划通常是以pl...原创 2020-03-26 10:51:03 · 664 阅读 · 0 评论 -
Oracle绑定执行计划
Oracle 执行计划一、什么是执行计划Oracle执行计划是Oracle为了执行某些SQL而生成的执行步骤的组合。这些执行计划是由Oracle优化器通过具体参数配合和被访问对象统计信息等内容来生成的一系列具体的执行步骤,然后优化器选择一个最优的执行步骤作为这一条语句的执行计划。正如之前讨论所述执行计划是优化器通过划分CPU和内存在Oracle中生成的一个执行步骤,这种执行计划通常是以pl...原创 2020-03-19 19:19:55 · 3626 阅读 · 0 评论 -
Oracle查询转换和SQL连接方式
Oracle查询转换和SQL连接方式一、表连接方法:在Oracle数据库中,几个表甚至十几个表相互关联的语句随处可见,这就需要Oracle提供一整套的表连接方案来支持这种类型的SQL,实际上不管多少个表的连接,Oracle都只能先处理两个表的连接,Oracle会通过优化器依据统计信息选出驱动表和被驱动表,然后完成第一次两表关联,依此类推直至完成整条SQL的表连接。关于Oracle提供...原创 2020-01-21 18:06:03 · 1394 阅读 · 0 评论 -
Oracle进程解析
近期对Oracle 10g和11g单机环境下的主要进程做了一个整理,对比较模糊的进程做了解析,以供查阅:---------------------10g[oracle@renCAP admin]$ ps -ef | grep ora_*oracle 63440 1 0 03:49 ? 00:00:00 ora_smon_CAPoracle 63428 1 0 03:49 ? ...原创 2020-01-12 16:27:55 · 634 阅读 · 0 评论 -
Oracle恢复手册
一、前言常言道-“有备无患”,备份对于一套数据库来说十分重要,当遇到天灾人祸的时候有效的备份是数据库最后的希望,也是DBA从业人员自救的最后手段。一款不错的备份软件,一个适用的备份策略,对于数据保护来说是十分必要的,对于数据库系统要定时做有效的全备,以便随时恢复到任意时间点。在不同环境下有多种恢复环境,不同环境也会使用不同的方式来恢复,有时候方式不止一种。总之,有效的备份和不同环境下的恢复手段...原创 2020-01-11 10:53:02 · 561 阅读 · 1 评论 -
rman备份原理
RMAN备份一、RMAN备份原理1、简介RMAN备份是ORACLE数据库自带的在线热备工具,使用RMAN不需要安装,可会数据块进行压缩和检测,可备份数据块的变化量,是数据块级别的备份解决方案。缺点:若数据库中出现坏块,RMAN会自动检测坏块并跳过坏块,造成一定数据的丢失,建议,采用expdp/impdp、ACTIVE DATAGUARD、ORACLE GOLDENGATE等在...原创 2019-12-14 15:54:27 · 4045 阅读 · 0 评论 -
Oracle游标和绑定变量
初探Oracle里的Cursor游标(Cursor)谈起游标首先要谈的就是sga和pga了,先简单讨论一下sga和pga:SGA:在SGA中有一个块固定区域Fixed Size ,它包含几千个变量和一些小的数据结构,如 Latch或地址指针等,这部分内存分配和特定的数据库版本以及平台有关,不受用户控制,而且这些信息对于数据库来说非常重要,但是通常我们用户不需要关心。固定部分只...原创 2019-09-08 14:58:55 · 976 阅读 · 0 评论 -
浅析Oracle统计信息
oracle优化器(Optimizer)优化器对于每一位从业人士都不陌生,它是oracle数据库内置的核心子系统,是数据库的核心,可以说优化器是数据库的一个灵魂,它在一定程度上决定了数据库的效率。在oracle数据库中有一个参数OPTIMIZER_MODE控制着该数据库的优化器模式,我们可以选择不同方式的优化器。①RULE此模式是RBO优化器。②CHOOSEoracl...原创 2019-08-17 12:57:35 · 1237 阅读 · 0 评论 -
unix&linux截取时间脚本
本人在工作中Unix环境想要截取2天前的日期,无奈Unix没有date -d命令,无法截取时间,只能按时区截取yesterday的日期,经和同事沟通有了新的思路,抽时间整理一个脚本,主要用来Unix中历史日期抽取(linux 有date -d,不太需要此脚本)具体脚本内容如下,测试环境linux HP-UX#!/bin/bash### this shell cu...原创 2019-06-15 17:11:56 · 296 阅读 · 0 评论 -
oracle - adg搭建
oracle 11g active dataguard 搭建1.修改参数1>新添加dg备库检查主库配置SQL> select DBID,NAME,DATABASE_ROLE,PROTECTION_MODE,SWITCHOVER_STATUS,DATAGUARD_BROKER,GUARD_STATUS,DB_UNIQUE_NAME from v$database;...原创 2019-05-02 10:25:26 · 467 阅读 · 0 评论 -
oracle 10+11静默安装-单机
10g 静默安装gunzip 10201_database_linux_x86_64.cpio.gzcpio -idcmv <10201_database_linux_x86_64.cpioyum install -y binutils-* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* gcc-*...原创 2019-05-01 21:15:57 · 355 阅读 · 0 评论 -
resetlogs浅析
------------感谢博主分享--------- alter database open resetlogs;SCN:系统改变号,记录系统所有数据块的变化,当有新的数据块变化,oracle database server会依据SCN进行一次增长,保证数据的连续性,buffer cache 中最新更改的数据块为当前最大的SCN。log sequence number:re...转载 2018-10-04 10:27:27 · 3144 阅读 · 0 评论 -
direct path read
传统读取数据的方式是服务器进程通过读取磁盘,然后把数据加载到共享内存中,这样后面的进程就可以通过共享内存访问这些数据,不用再通过缓慢的磁盘读取来 完成。direct path read读取数据块方式,是指服务器进程直接读取数据文件,不经过buffer cache,这种方式读取的数据块会加载到服务器进程的PGA内中当中,不会进入buffer cache中。11G之 前的direct pat...转载 2018-08-02 14:34:50 · 263 阅读 · 0 评论 -
shared pool --4031错误
本文转自 : http://blog.sina.com.cn/s/blog_8f5296d50100xsgf.htmlshared pool的管理一、转储shared pool 共享内存的内容 alter session set events 'immediate trace name heapdump level 2'; 二、shared pool 通过free lists...转载 2018-07-29 13:03:08 · 311 阅读 · 0 评论 -
row cache lock 引起的会话超标
背景:凌晨收到告警,数据库会话超标连接不上,其实对于压力比较大的数据库这是在正常不过的了,过几分钟就会恢复到正常值,可是半小时之后ogg复制进程告警,多个复制进程先后异常关闭,同事呗半夜“揪起来”处理故障,数据库是open状态,没有管数据库的会话超标,首先是先把ogg复制进程启动起来,dba同事真的很辛苦。。第二天分析故障点,会话过多引起的数据库连接不上告警是出现在3:04,但其实上在这之前数...原创 2018-07-21 22:34:18 · 883 阅读 · 0 评论 -
XTTS跨平台迁移
XTTS 跨平台迁移——停机时间少,可跨平台进行数据迁移 ------------------------------------------------------------------------------------------------------------------- 跨版本 跨平台停机时间 ...原创 2018-07-07 17:11:46 · 1888 阅读 · 0 评论