标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,769)
- DB2 (22)
- MySQL (77)
- Oracle (1,610)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (592)
- Oracle安装升级 (97)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- 2025年的Oracle 8.0.5数据库恢复
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
分类目录归档:ORA-xxxxx
sqlplus版本不正确,导致ORA-12560
sqlplus登录数据库报ORA-12560
C:\Users\XIFENFEI>sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Tue Feb 14 23:33:31 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-12560: TNS:protocol adapter error Enter user-name: ERROR: ORA-12560: TNS:protocol adapter error Enter user-name: ERROR: ORA-12560: TNS:protocol adapter error SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus C:\Users\XIFENFEI>sqlplus -v SQL*Plus: Release 11.2.0.2.0 Production
在这里发现sqlplus的版本信息不正确,我的数据库安装的11.2.0.1,这么怎么显示sqlplus是11.2.0.2,然后进入%ORACLE_HOME%/bin目录下面执行sqlplus,登录成功
C:\Users\XIFENFEI>cd e:\oracle\11_2_0\BIN e:\oracle\11_2_0\BIN>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期二 2月 14 23:44:38 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL>
出现了这样的问题,考虑应该是环境变量设置不当导致,查看环境变量发现下面一部分
E:\oracle\timesten\bin;E:\oracle\timesten\ttoracle_home\instantclient_11_2;e:\oracle\11_2_0\bin;
问题的答案就是在这里,因为我的电脑是先安装Oracle,前几天安装了TimesTen,导致环境变量发生了改变,使得我在默认情况下使用sqlplus的时候,自动调用了TimesTen中的sqlplus导致
C:\Users\XIFENFEI>cd E:\oracle\timesten\ttoracle_home\instantclient_11_2 E:\oracle\timesten\ttoracle_home\instantclient_11_2>dir sqlplus* 驱动器 E 中的卷没有标签。 卷的序列号是 38D0-2A35 E:\oracle\timesten\ttoracle_home\instantclient_11_2 的目录 2010/11/19 00:50 655,360 sqlplus.exe 2011/11/08 04:12 84,524 sqlplus.sym 2011/11/08 04:12 554 SQLPLUS_README 3 个文件 740,438 字节 0 个目录 9,825,832,960 可用字节
Query Duration=0与ORA-01555
1.ALERT日志错误
奇怪之处:Query Duration=0 sec,竟然出现了ORA-01555
Tue Feb 7 02:41:34 2012 ORA-01555 caused by SQL statement below (Query Duration=0 sec, SCN: 0x0b2e.efcd78a9): Tue Feb 7 02:41:34 2012 SELECT "ID_NO","CUST_ID" FROM "DBACCADM"."DCUSTMSG" "C" WHERE "ID_NO"=:1
2.ORA-01555解释
超过了undo_retention时间,undo被覆盖导致ORA-01555
[zwq_acc1:/home/oraeye/check]oerr ora 1555 01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small" // *Cause: rollback records needed by a reader for consistent read are // overwritten by other writers // *Action: If in Automatic Undo Management mode, increase undo_retention // setting. Otherwise, use larger rollback segments
3.数据库版本
SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production PL/SQL Release 9.2.0.8.0 - Production CORE 9.2.0.8.0 Production TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production NLSRTL Version 9.2.0.8.0 - Production
4.undo基本信息
从这里可以发现,两个节点的undo表空间还有很多剩余,缺发生了undo被覆盖从而出现了ORA-01555
SQL> col name for a20 SQL> col value for a15 SQL> SELECT INST_ID, NAME, VALUE 2 FROM GV$PARAMETER 3 WHERE UPPER (Name) LIKE '%UNDO%'; INST_ID NAME VALUE ---------- -------------------- --------------- 1 undo_management AUTO 1 undo_tablespace UNDOTBS1 1 undo_suppress_errors FALSE 1 undo_retention 1800 2 undo_management AUTO 2 undo_tablespace UNDOTBS2 2 undo_suppress_errors FALSE 2 undo_retention 1800 8 rows selected. TABLESPACE_NAME CURRENT_TOTAL(MB) USED(MB) FREE(MB) FREE% AUT MAX_TOTAL(MB) ------------------------------ ----------------- ---------- ---------- ---------- --- ------------- UNDOTBS1 40950 1587.94 39362.0625 96.12 NO 40950 UNDOTBS2 57330 1926.31 55403.6875 96.64 NO 57330 SQL> SELECT DISTINCT STATUS , 2 COUNT(*) "EXTENT_NUM", 3 SUM(BYTES) / 1024 / 1024 / 1024 "UNDO(G)" 4 FROM DBA_UNDO_EXTENTS 5 GROUP BY STATUS; STATUS EXTENT_NUM UNDO(G) --------- ---------- ---------- ACTIVE 208 .273658752 EXPIRED 7651 2.42865753 UNEXPIRED 941 .752548218
查询MOS[ID 761128.1],发现可能是Oracle bug导致(BUG:6799685 – ORA-1555 ERROR WITH QUERY DURATION=0 AND UNDO_RETENTION=1800和BUG:5475085 – V$UNDOSTAT.EXPBLKREUCNT IS NEVER INCREMENTED)
5.解决方法
Increase the size of the UNDO tablespace and increase the UNDO_RETENTION parameter value to try to prevent required undo expiring too quickly.
基于本库,因为undo空间还有很大剩余,直接设置UNDO_RETENTION=3600即可(可以从一定程度上缓解整个问题,但是要从根本上解决整个问题,需要升级到10.2.0.4及其以上版本)
ORA-00600[4454]
数据库版本信息
SQL> select * from gv$version; INST_ID BANNER ---------- ---------------------------------------------------------------- 1 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production 1 PL/SQL Release 9.2.0.8.0 - Production 1 CORE 9.2.0.8.0 Production 1 TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production 1 NLSRTL Version 9.2.0.8.0 - Production 2 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production 2 PL/SQL Release 9.2.0.8.0 - Production 2 CORE 9.2.0.8.0 Production 2 TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production 2 NLSRTL Version 9.2.0.8.0 - Production 10 rows selected.
早上检查某运营商的结算数据库时发现
Mon Feb 6 16:03:23 2012 Errors in file /oracle9/app/admin/settl/udump/settl1_ora_1355948.trc: ORA-00600: internal error code, arguments: [4454], [], [], [], [], [], [], [] Mon Feb 6 16:03:23 2012 Errors in file /oracle9/app/admin/settl/udump/settl1_ora_1355948.trc: ORA-00600: internal error code, arguments: [4454], [], [], [], [], [], [], []
trace文件信息
*** SESSION ID:(100.35758) 2012-02-06 16:03:23.223 *** 2012-02-06 16:03:23.223 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [4454], [], [], [], [], [], [], [] Current SQL statement for this session: select trim(operator_id) into :b1 from b_sys_proc where program_name=:b2 ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ksedmp+0148 bl ksedst 1029746CC ? ksfdmp+0018 bl 01FD4010 kgeriv+0118 bl _ptrgl kgeasi+00cc bl kgeriv 1101FAF48 ? 110248038 ? 00000000C ? 110235978 ? 000000040 ? ktcsptg+00c4 bl kgeasi 1100062D8 ? 110389E88 ? 116600001166 ? 200000002 ? 000000000 ? 70000010738F0E8 ? 0FFFFFFFF ? 0FFFFFFFF ? opiexe+0524 bl ktcsptg 000000000 ? 000000000 ? opiefn0+01c0 bl opiexe 49FFFFA640 ? 4900000001 ? FFFFFFFFFFFA5C8 ? opiefn+0100 bl opiefn0 01000CF60 ? 1029C61B0 ? 000000002 ? FFFFFFFFFFFC1BC ? 000000001 ? 00000000C ? 00000000B ? 110061F50 ? opiodr+08cc bl _ptrgl ttcpip+0cc4 bl _ptrgl opitsk+0d60 bl ttcpip 11000CF60 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? opiino+0758 bl opitsk 000000000 ? 000000000 ? opiodr+08cc bl _ptrgl opidrv+032c bl opiodr 3C00000018 ? 4101FAF48 ? FFFFFFFFFFFF790 ? 0A000EEA8 ? sou2o+0028 bl opidrv 3C0C000000 ? 4A0147B50 ? FFFFFFFFFFFF790 ? main+0138 bl 01FD3A28 __start+0098 bl main 000000000 ? 000000000 ? ……………… SO: 70000010738f0e8, type: 4, owner: 7000001043acd90, flag: INIT/-/-/0x00 (session) trans: 70000010dde1dd8, creator: 7000001043acd90, flag: (100041) USR/- BSY/-/-/-/-/- DID: 0001-0064-7625733A, short-term DID: 0000-0000-00000000 txn branch: 7000001147dbed8 oct: 0, prv: 0, sql: 700000117b7f778, psql: 0, user: 24/SETTLE O/S info: user: settle, term: , ospid: 1400836, machine: zwq_jies2 program: /settlement/pkg01/bin/long/long_app@zwq_jies2 (T application name: /settlement/pkg01/bin/long/long_app@zwq_jies2 (T, hash value=0 last wait for 'SQL*Net message from client' blocking sess=0x0 seq=483 wait_time=240 driver id=54435000, #bytes=1, =0
查询MOS,发现是Bug# 1402161(虽然在mos中声明该bug是在9.2.0.1中已经被修复,但是这里的trace文件中的Call Stack Trace和mos中记录一致,而且网络上也存在很多9.2.0.8中关于该bug的情况),trace文件最后一段可以看出是在节点2上(zwq_jies2)运行/settlement/pkg01/bin/long/long_app程序导致出现该错误
产生该错误原因:
This exception is signalled because the savepoint number is not what was expected. The current transaction savepoint is less than the beginning savepoint of the transaction.
解决方法:
把/settlement/pkg01/bin/long/long_app中的需要运行的程序分割成几个小程序运行。
Break the job into smaller chunks and reconnect for each part of the job to reset the savepoint number.