oracle troubleshoting
文章平均质量分 53
久违的太阳
本人base南京,10+年oracle dba经验,Postgresql PCP认证工程师
oracle日常维护、故障解决、性能优化、数据库迁移、数据库升级
PG安装维护,迁移
国产信创数据库迁移,数据抽取,数据共享等,联系私信我
展开
-
RMAN-06618不同版本之间RMAN无法连接
indicatedindicated他妈的,不支持了。原创 2024-08-03 12:56:23 · 773 阅读 · 0 评论 -
血泪史!ora-00600 16305报错解决过程
最后复盘,客户说他是在操作系统上面删除了国内大厂科某瑞的CDP客户端之后,再重启服务器后出现的故障,怀疑是此大厂客户端删除的时候,底层同时删除了操作系统的网卡设备导致操作系统故障.而且后面我们在虚拟机上面删除网卡再重新添加也没有用的。由于客户的服务器十年前的非常老,尝试了各种办法都没法生成lo网卡,导致127不通,最后的解决办法是将数据文件迁移到另外一个正常的服务器上面恢复。此故障前后导致生产宕机5小时,告诫我们重启需谨慎,测试了一下ping 127.0.0.1不通.原创 2024-07-26 18:07:36 · 153 阅读 · 0 评论 -
ORA-00600 ktbdchk1:bad dscn
一个客户前台报错ORA-00600 ktdbchk1: badscn,原创 2024-07-26 17:53:38 · 136 阅读 · 0 评论 -
openEuler 22.03安装单机版oracle 19c(附录所有patch包)
客户要在OpenEuler 22.0.3 LTS上安装的19.3.0.0 ,在安装到11%的时候报错all_no_orcl错误,我们知道欧拉底层是rhel9,这些错误其实经常接触都知道肯定是各种软件包的版本不对导致的,但是各种依赖太多了也不好解决,最后在官网有所发现:原创 2024-05-16 00:01:57 · 1206 阅读 · 0 评论 -
oracle 12c+ max_string_size参数
这里报错很明显了,是MAX_STRING_SIZE参数不对,客户环境是extended,我的是默认STANDARD,3. 更改参数: ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED;执行脚本编译数据库 --必须执行,不然可能系统的部分对象失效,导致打开数据库 失败。确认没问题后,将集群参数修改为true,再使用集群启动。1. 将集群参数设置为false。5. 检查一下有没有产生失效对象。3. 以升级模式重启数据库。7. 以读写模式重启数据库。2. 关闭所有节点数据库。原创 2024-04-24 23:02:11 · 689 阅读 · 0 评论 -
RMAN duplicate出现segment fault
后面使用其它手段修复坏块后恢复。原创 2024-01-29 11:51:09 · 201 阅读 · 0 评论 -
ORACLE RAC DG文件路径错乱解决办法
最近接手了一个客户的RAC-RAC dg环境的维护,登录上去之后发现dg延迟了8天,由于主库的空间非常紧张,归档日志早就删除了,所以准备使用rman基于scn点的备份恢复的方案恢复dg同步。由于使用了新的控制文件,又没有配置convert导致现在不知道文件的对应关系.再在rman中进行switch:。原创 2024-01-10 12:39:40 · 654 阅读 · 0 评论 -
openEuler22.0.3安装oracle11.2.0.4报错总结
openEuler安装oracle11.2.0.4原创 2024-01-10 01:36:28 · 1607 阅读 · 0 评论 -
oracle impdp 导入元数据表空间异常增大的解决办法
有关,如果设置为true,那么默认建表的时候如果不加任何存储参数,是不会创建段的,如果设置为n,那么就会创建段,如果不显式的指定initial extentd,其实这个初始段一般是非常小的,但是如果要加快创建速度,是可以把他设置为true,这么就是只会建表,而不会创建段。正常impdp,在执行创建表和索引的sql的时候,会带上存储参数,存储参数中就指定了初始化段大小,如果原表非常大或者表分区特别多,那么这个默认的初始化段也会变的非常大,因此会导致你建表的时候占用的空间非常大。原创 2023-11-27 23:15:41 · 725 阅读 · 0 评论 -
记录一次normal diskgroup添加磁盘组操作
b) USABLE_FILE_MB可以变为负值,表示ASM并不会强制留出REQUIRED_MIRROR_FREE_MB的空间,但是这意味着如果遭遇了ASM磁盘组故障,有可能会没有足够的剩余空间来重新满足冗余度的要求。这是因为当前的冗余度为2,磁盘组为了保证当asm出现故障后,剩下的空间能继续保持normal冗余,需要保留Req_mir_free_MB的空间,但是这个并不是必须的,因此Usable_file_MB可以为负数,当为负数的时候说明当前的磁盘组已经不能满足normal冗余需求了。原创 2023-11-04 00:24:46 · 245 阅读 · 0 评论 -
麒麟操作系统安装oracle 19c报错问题汇总
麒麟操作系统安装oracle19c原创 2023-11-01 15:47:13 · 1045 阅读 · 0 评论 -
oracle dblink mysql查询text无法显示问题
帮客户做了一个oracle到mysql的dblink之后,客户反馈发现有的表查询字段不全,通过select * 查询,mysql中有个字段INTERVENTION字段没有显示,首先想到的就是可能不支持查询,检查这个字段类型为text,猜测可能是text不支持?文章里面说的很清楚,mysql中text存储的是unicode编码,所以oracle必须也是unicode编码才能查询,如果能查询会把text转换为long类型,而我客户的oracle编码为gbk,所以不支持,无法访问!原创 2023-06-27 10:17:35 · 636 阅读 · 0 评论 -
oracle基于时间点恢复遇到ORA-10877错误
这里当前的incarnation是3号,reset的时间是2023-05-15 18:28:50,这个是我上次resetlog打开数据库的时间,由于上次recover之后,数据不对,所以重新又做了恢复,而每次resetlog之后就会生成一个incarnation,所以当前的incarnation就是上次resetlog的.原创 2023-05-15 21:07:25 · 834 阅读 · 1 评论 -
ORACLE 19C ADG遇到一次奇怪的ORA-12154错误
19.8.0.0环境搭建ADG,duplicate之后,主库无法将日志发送到备库,检查错误报错ORA-12154。经过多方面的测试,发现是数据库没有读取tnsnames.ora这个文件,配置TNS_ADMIN都不起任何作用。后面可以找时间重启一下数据库实例。这样就可以正常发送日志了。原创 2022-12-27 22:30:43 · 877 阅读 · 0 评论 -
TX - row lock contention分享一次锁表故障处理
TX锁在等待事件中属于application,即应用不合理,一般我们要找出相关的sql语句,首先先看sql执行效率是否正常,再检查业务逻辑,是否有大并发的update同时修改同一条数据。医院有很多个自助机,当在业务高峰期的时候,每个自助机挂号的时候,都是同时修改同一条数据,因为所有的自助机的收款员都一样.这样只要有一台自助机慢或者不提交,就会使其它自助机进入等待.这里发现,在使用自助业务的时候,这里的收款员都是启航自助.而人工挂号的时候,这里的操作员是每个医生.这里发现有大量的update锁表操作,原创 2022-11-03 18:51:30 · 333 阅读 · 0 评论 -
ORA-16171当DG出现GAP的时候,如何强制启动备库
*原创 2022-11-03 18:12:34 · 621 阅读 · 0 评论 -
ORA-00704,ORA-00702 bootstrap错误导致库无法启动解决办法
这个错误是oracle的引导数据块被破坏了,这种一般就是人为的或者恶意软件破坏的,像以前的勒索病毒,用了非正版的plsql,非正版的oracle 安装包等,都可能会被安装上恶意的程序.这里需要注意的是,10g版本bootsrap是377数据块,而11g是520,521,522,523三个数据块,2.找一个相同平台相同版本的11.2.0.4数据块,dd出来520,521,522,523数据块。3.将刚刚的1.ora拷贝到故障数据块,再dd回去。原创 2022-11-01 12:03:35 · 1297 阅读 · 0 评论 -
ORA-38824无法手工修改存储过程的问题
一个客户在修改procedure的时候报错ORA-38824ACREATEORREPLACEcommandmaynotchangetheEDITIONABLEpropertyofanexistingobject。MOS找了一下发现没有相应的解决办法.百度了一下,有一个老外的文章有一点提示,我进行了测试.我这里报错的检查下来都是N,我是使用expdp/impdp来导入的,经过确认源端也是N,表示是否可编辑,默认创建的都是Y表示可编辑.批量执行完成之后,即可进行修改了。...原创 2022-08-01 12:31:50 · 1454 阅读 · 0 评论 -
ORACLE 19C PDB克隆遇到ORA-65169错误问题
oracle 的pdb克隆是非常方便的功能,这次一个客户进行了PDB克隆迁移,源端是oracle 19.3.0 LINUX 单实例,目标端是linux 19.3.0 RAC在克隆的过程中遇到了ORA-65169和ORA-19505报错:alert日志如下:找不到答案,找MOS找到一篇文章,如下: 这里提到,需要在RAC每个节点配置好TNSNAMES,这里现场只在一个执行克隆的节点配置了tnsnames.ora,修改之后,删除克隆的数据文件,重新克隆恢复正常...原创 2022-06-27 21:43:32 · 896 阅读 · 0 评论 -
oracle10g升级到11g之后跨平台ADG遇到ORA-10561错误问题
原来生产环境为oracle 10.2.0.5单实例,现在需要迁移到Linux RAC 11.2.0.4,由于数据量比较大,停机时间要很短,这里提供的方案是先将oracle10.2.0.5升级到11.2.0.4,然后再使用ADG的方式,将数据迁移到Linux RAC中在数据库从10.2.0.5升级到11.2.0.4之后,搭建ADG环境,在duplicate之后,应用日志报错:ORA-10562: Error occurred while applying redo to data block (file# 5原创 2022-06-24 13:49:19 · 731 阅读 · 0 评论 -
安装GRID遇到CRS-5016无法启动ora.ons故障解决办法
安装GRID之后,在执行root.sh的时候,发现无法启动ora.ons,其它资源都是正常的.root.sh报错如下:检查报错日志,有如下核心报错信息:其中关键点是无法获取localhost的地址.很自然的想到是不是/etc/hosts里面把localhost的解析给丢掉了.重新在/etc/hosts里面添加127.0.0.1 localhost再执行root.sh即可...原创 2022-04-22 15:44:54 · 924 阅读 · 0 评论 -
ORA-00600 kjxmgmb_nreq:!bat ,[17],[56],[19]
一个客户现场,oracle HP-UX 11.2.0.4 RAC环境,一个实例突然crash,启动报错信号量失败,将oracle下的所有的信号量kill掉之后,再进行启动lms进程报错:ORA-00600 kjxmgmb_nreq:!bat ,[17],[56],[19]在MOS上找到了一个相同的问题,定位是oracle的bug:此bug在oracle 12.1.02中进行了修复。在11.2.0.4中也提供了相关的补丁。这里怀疑是信号量的问题后续触发的bug,由于另一个节点运行正常,原创 2020-12-22 14:32:27 · 476 阅读 · 0 评论 -
ORA-12541一次listener hang的故障解决
晚上十点多,一个朋友联系我说他们的数据库有问题,客户连接不上数据库,没有任何报错,就是卡住,也不提示任何信息.这是一台windows 数据库,单实例数据库版本为11.2.0.1.远程到服务器之后查看数据库,发现数据库运行正常,查看监听发现异常,使用lsnrctl status 直接卡住.尝试使用lsnrctl start启动,发现报错监听已经存在,查看监听服务确实已经启动.这种情况第一反应就是监听日志文件达到了4G,导致无法写日志.根据经验进入到$ORACLE_HOEM/diag/tnslsnr下面原创 2020-10-06 23:48:20 · 269 阅读 · 0 评论 -
ORACLE RAC19C到单实例ADG DUPLICATE ORA-01017 错误的解决办法
准备搭建一个19C RAC到单实例的ADG.在duplicate的时候报错ORA-01017用户密码错误contents of Memory Script:{ backup as copy reuse passwordfile auxiliary format '/u01/app/oracle/product/19.3.0/db_1/dbs/orapwrac19c' ;}executing Memory ScriptStarting backup at 14-SEP-20al原创 2020-09-15 22:08:21 · 2270 阅读 · 0 评论 -
一次ORACLE RAC中连接ScanIP报错ORA-12545的问题解决
客户的RAC的一个节点挂了之后,手工重启,所有资源都恢复正常,本地同网络连接正常,但是下面的其它网络客户端连接scanIP报错ORA-12545: 因目标主机或对象不存在, 连接失败C:\Users\Administrator>sqlplus system/manager@172.16.80.24/dbserverSQL*Plus: Release 10.2.0.1.0 - Production on 星期五 8月 14 23:57:53 2020Copyright (c) 198.原创 2020-08-15 00:13:57 · 1288 阅读 · 0 评论 -
INLIST ITERATOR执行计划导致返回错误的结果
一个客户反应,几乎相同的两个sql,查询出来的结果却不同:如下,当使用select *的时候结果是正常的,能查询到所有的7条数据,当指定字段查询的时候结果是错误的,只能查询到一条数据,sql如下:这种问题,一般都是执行计划不一致导致的,不同的执行计划表的访问方式,过滤等都可能会导致此问题:查看两个sql的执行计划,下面分别是1,2的执行计划:我们发现错误的执行计划中使用了inlist iterator,我在MOS进行查找,发现很多执行计划中使用inlist iterator导原创 2020-08-03 11:49:09 · 568 阅读 · 0 评论 -
不同scheam下查询视图报错ORA-01031的故障解决
客户在schema MEDADM下创建了一个视图,并且将视图的查询权限赋予给了另一个用户BAZK.但是使用BAZK查询视图的时候还是报错:ORA-01031: insufficient privileges我查看了视图的内容,视图很复杂,涉及的表有10个左右.使用BAZK用户查询视图中的表都是有权限的查询的.注意到这个视图中的表并不全是MEDADM下的,例如还有表是INPADM下的.那么这里就涉及到了很多用户,在此归类一下:1.原始的基表用户.例如这里的INPADM或者其它的用户.原创 2020-07-08 14:30:10 · 567 阅读 · 0 评论 -
一次特别的ADG ORA-16191故障解决
客户环境是windows 11.2.04 adg同步到linux下11.2.0.4.搭建好同步之后正常运行了两天后出现目标端延时.经过检查发现是源端无法发送日志,报错ORA-16191:主日志传送客户机没有登录到备用数据库:这个错误遇到过很多次了,基本都是密码文件不对,可能需要重建密码文件等等,以前也遇到过一次奇怪的ORA-16191,详细见博客:https://blog.csdn.net/su377486/article/details/96988184这次的情况和以前的都不一样,查看原创 2020-06-25 23:22:19 · 3451 阅读 · 0 评论 -
一次关闭绑定变量窥探_optim_peek_user_binds导致的存储过程缓慢故障
一个客户联系我,他写了一个存储过程,其中有一条insert into select的sql语句运行非常缓慢,平均处理每天的数据量需要4分钟,而如果单独执行此sql语句,其实很快,大概6s左右即可完成,返回的条数也不多,总共500条左右,希望帮忙优化一下.1.先看一下正常的执行sql效率和执行计划此sql非常长,有多个union all连接而成,大概sql如下:...我们看到这个sql通过时间字段enter_date进行了限制,取一天的数据,而且时间字段上面有索引,所以直接执行的时候肯原创 2020-06-16 13:27:50 · 4404 阅读 · 1 评论 -
一则opatch return with error code = 1错误故障解决
准备给客户升级数据库,下载最新的opath之后,解压缩,查看当前的opatch补丁,但是却出现报错:$ ./opatchJava could not be located. OPatch cannot proceed!OPatch returns with error code = 1百度搜索了一下,基本都是说java不对或者说ORACLE_HOME不对.但是我这里的环境都是正确的.检查opatch的README发现有如下一段:How to install the utility:原创 2020-06-08 21:17:44 · 2078 阅读 · 0 评论 -
一次ADG无法实时应用日志No standby redo logfiles故障解决
rac->单机的ADG同步,搭建好之后,开启实时应用发现报错:RFS[1]: No standby redo logfiles available for thread 1RFS[1]: Opened log for thread 1 sequence 900 dbid 1911584814 branch 1038507374Fri Jun 05 13:20:22 2020Archived Log entry 46 added for thread 2 sequence 595 rlc .原创 2020-06-05 13:42:31 · 3007 阅读 · 0 评论 -
记录一次使用logminer数据恢复
晚上一个客户联系我,开发修改数据,误删除了一批数据(一千条左右),希望我能帮忙进行恢复.首先询问客户是使用了什么方法来删除数据的,不同的删除方法恢复的难易程度不同.1.如果是delete,如果时间不长,可以通过闪回查询的方法将数据查询出来.2.如果是delete,时间较长,如果归档日志还存在,那么可以使用logmnr的方式.3.如果是truncate,那么只有进行备份恢复了.这里客户使用...原创 2020-04-07 23:58:06 · 727 阅读 · 0 评论 -
ORACLE RAC中expdp出现ORA-29283错误解决方法
一个脚本,正常运行了很久,突然之间就报错了脚本核心语句如下:expdp system/********@orclfy directory=expdir dumpfile=20200313.dmp full=y cluster=n logfile=20200313.log报错如下:Export: Release 19.0.0.0.0 - Production on Fri M...原创 2020-03-13 20:16:44 · 9788 阅读 · 3 评论 -
记录一次ORA-12518找出连接失败的IP地址
ORA-12518:监听程序无法分发客户机连接这个错误很简单,原因是process被占满了.一个客户凌晨突然报错,此客户的process值为4500,正常使用在1000左右,正常根本不可能出现进程数被占满的情况.连接到服务器,杀掉几个会话之后快速登录到数据库,发现session数很少,但是process却很高.这个问题以前也遇到过,原因是进程连接到数据库,但是由于某种原因被拒绝了,没有...原创 2020-03-12 12:46:14 · 477 阅读 · 0 评论 -
记录一次ORA-00742 REDO日志写丢失问题
大半夜,接到客户电话,数据库挂了,下面所有客户端连接不上了.由于是7*24小时业务,因此客户很着急,让客户发了报错截图,第一感觉是归档日志满了,但是客户那边有定时删除日志脚本啊,不应该啊,报错截图如下赶紧和客户要了远程进行查看,明显归档日志空间是足够的.再检查归档日志路径报错,如下:错误很明显了,归档日志在归档redo的时候发现了redo出现了写丢失.检查alert日志也是同样...原创 2020-02-20 23:22:18 · 1752 阅读 · 0 评论 -
一则异常的无法连接到oracle实例Connected to an idle instance问题.
最近遇到的问题也越来越妖了,在linux环境中使用sqlplus / as sysdba无法连接到oracle实例,如下:[dsg@cnsvwshs0438 config]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 22 22:05:31 2019Copyright (c) 198...原创 2019-11-22 21:48:32 · 1332 阅读 · 0 评论 -
记录一次奇怪的sysdate时间错误问题
最近总是遇到奇葩的问题...客户的生产环境为一套两节点RAC,数据库版本为11.2.0.4,运行在centos6.9虚拟机中,现在发现下面客户端连接到数据库的时候,当会话连接在节点1上的时候,查询的sysdate时间不对,比正常时间晚了13个小时,而当会话连接到节点2的时候,时间是正常的.对于此问题,第一反应就是两个系统的时区不对.连接到节点上,分别执行date命令查看,发现时区都是对的,...原创 2019-11-19 23:07:32 · 2184 阅读 · 0 评论 -
记录一次ORA-12516 process爆满的特殊故障
ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序这两个错误很常见了,意思是oracle进程数已满了.导致oracle无法分配出process处理客户的连接.一般的解决办法就是加大process,但是我们这里却不是这种情况.客户的环境是AIX-10.2.0.4 首先在proces...原创 2019-11-17 21:50:58 · 1222 阅读 · 0 评论 -
DG Duplicate遇到RMAN-05501错误解决
一次在客户这里配置DG的时候出现如下报错:executing Memory ScriptStarting backup at 09-NOV-2019 23:20:53released channel: ORA_AUX_DISK_1RMAN-00571: ===========================================================RMAN-0...原创 2019-11-09 23:33:52 · 2538 阅读 · 0 评论 -
ORACLE11g的PASSWORD_VERSIONS导致的JBOSS无法连接数据库
我们都知道oracle 11g账户密码默认是区分大小写的,由参数sec_case_sensitive_logon控制而且11g在dba_users里添加了一个新列PASSWORD_VERSIONS提示这个用户是由哪个版本的数据库创建的。最近一个项目遇到问题,使用expdp/impdp做rac数据库迁移之后发现jboss连接不上数据库,报错error:data source error,但是原创 2014-07-21 13:00:32 · 2209 阅读 · 1 评论