标签云
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-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 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,716)
- DB2 (22)
- MySQL (74)
- Oracle (1,576)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (160)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (575)
- Oracle安装升级 (94)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (81)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (28)
- SQL Server恢复 (9)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- 不当使用_allow_resetlogs_corruption参数引起ORA-600 2662错误
- CSSD signal 11 in thread clssnmRcfgMgrThread故障处理
- 使用sid方式直接访问pdb(USE_SID_AS_SERVICE_LISTENER)
- ORA-00069: cannot acquire lock — table locks disabled for xxxx
- ORA-600 [4000] [a]相关bug
- sql server数据库“正在恢复”故障处理
- 如何判断数据文件是否处于begin backup状态
- CDM备份缺少归档打开数据库报ORA-600 kcbzib_kcrsds_1故障处理
- ORA-07445: exception encountered: core dump [expgod()+43] [IN_PAGE_ERROR]
- 2025年第一起ORA-600 16703故障恢复
- _gc_undo_affinity=FALSE触发ORA-01558
- public授权语句
- 中文环境显示AR8MSWIN1256(阿拉伯语字符集)
- 处理 Oracle 块损坏
- Oracle各种类型坏块说明和处理
- fio测试io,导致磁盘文件系统损坏故障恢复
- ORA-742 写丢失常见bug记录
- Oracle 19c 202501补丁(RUs+OJVM)-19.26
- 避免 19c 数据库性能问题需要考虑的事项 (Doc ID 3050476.1)
- Bug 21915719 Database hang or may fail to OPEN in 12c IBM AIX or HPUX Itanium – ORA-742, DEADLOCK or ORA-600 [kcrfrgv_nextlwn_scn] ORA-600 [krr_process_read_error_2]
分类目录归档:Oracle
ORA-00069: cannot acquire lock — table locks disabled for xxxx
在oracle数据库中删除用户遭遇ORA-00069: cannot acquire lock — table locks disabled for HR_XXX_01错误
SQL> drop user XFF cascade; drop user XFF cascade * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-00069: cannot acquire lock -- table locks disabled for HR_XXX_01
关于ORA-00069错误解释
[oracle@xifenfei.com ~]$ oerr ora 00069 00069, 00000, "cannot acquire lock -- table locks disabled for %s" // *Cause: A command was issued that tried to lock the table indicated in // the message. Examples of commands that can lock tables are: // LOCK TABLE, ALTER TABLE ... ADD (...), and so on. // *Action: Use the ALTER TABLE ... ENABLE TABLE LOCK command, and retry // the command.
尝试lock表,直接hang,强制终止
SQL> alter table XFF.HR_XXX_01 enable table lock; ^Calter table XFF.HR_XXX_01 enable table lock * ERROR at line 1: ORA-01013: user requested cancel of current operation
查询tab$.flags的值
SQL> col object_name for a30 SQL> set lines 150 SQL> select x. object_name,obj#, flags 2 from sys.tab$,( 3 select object_name, object_id 4 from dba_objects 5 where owner='XFF' 6 and object_name in ('HR_XXX_01','HR_XXXCONTROL','XXXLZB_JD1') 7 and object_type = 'TABLE') x 8 where obj# = x.object_id; OBJECT_NAME OBJ# FLAGS ------------------------------ ---------- ---------- XXXLZB_JD1 246416 1073742353 HR_XXXCONTROL 246421 1073742353 HR_XXX_01 246424 1073742359
发现报错表的flags和其他表不一样(其他表为1073742353,而报错表为1073742359),对于这种情况官方给出来的解决方法,关闭库,确保没有任何额外会话连接上来
因为本身要重启库维护,直接把库启动到upgrade模式进行操作
[oracle@xifenfei.com ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 14 20:29:28 2025 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 SQL> alter system checkpoint; System altered. SQL> / System altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup upgrade; ORACLE instance started. Total System Global Area 4.2950E+10 bytes Fixed Size 23149944 bytes Variable Size 9529458688 bytes Database Buffers 3.3286E+10 bytes Redo Buffers 111067136 bytes Database mounted. Database opened. SQL> startup upgrade; ORACLE instance started. Total System Global Area 4.2950E+10 bytes Fixed Size 23149944 bytes Variable Size 9529458688 bytes Database Buffers 3.3286E+10 bytes Redo Buffers 111067136 bytes Database mounted. Database opened. SQL> drop user XFF cascade; drop user FZHR cascade * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-00069: cannot acquire lock -- table locks disabled for HR_XXX_01 SQL> alter table XFF.HR_XXX_01 enable table lock; Table altered. SQL> drop user XFF cascade; User dropped. SQL>
ORA-600 [4000] [a]相关bug
ORA-600 [4000 ] [a]一般是这样的报错格式,其中[a] Undo segment number,类似错误主要bug以及对应的修复版本列表
Bug | Fixed | Description |
26966120 | 18.18, 18.3, 19.1 | PDML workload reports ORA-7445 [kdmsfree] / ORA-00600 [4000] |
16761566 | 11.2.0.3.9, 11.2.0.3.BP22, 11.2.0.4, 12.1.0.2, 12.2.0.1 | Instance fails to start with ORA-600 [4000] [usn#] |
13910190 | 11.2.0.3.BP15, 11.2.0.4, 12.1.0.1 | ORA-600 [4000] from plugged in tablespace in Exadata |
37173201 | Hitting ORA-600 [4000] during shutdown | |
36440495 | 19.26 | SECURE FILE LOB CAUSING ORA-00600:[4000] |
34547607 | 19.23, 23.4 | [TXN MGMT LOCAL] ORA-600 [ktugct: corruption detected] w/ Compression & RAC DB Instances Crash |
32800248 | 19.24, 23.4 | DB:DISTRIB: Avoid ORA-600[4000]/ORA-600[4097] in the DB background RECO scenario. |
35143304 | 19.24 | consider converting ORA-600 [4000] to pdb-specific assert or soft assert |
33343993 | 19.16 | Convert ORA-600 [4000] to PDB Specific Assert and Crash Only the Affected PDB |
32156194 | 19.12 | ORA-600 [25027] during the select on x$ktcxb |
32765471 | aim:ORA-600 [4000] – kccpb_sanity_check | |
23030488 | 18.1 | ORA-00600 [4000] During First Open of PDB After Undo Mode Switch |
22610979 | 18.1 | ORA-00600 [4000] On DB Close of STANDBY Due to MMON Process |
21770222 | 12.2.0.1 | ORA-600: [4000] in CDB |
21379969 | 12.2.0.1 | ORA-00600 [4000] after a tablespace is transported and plugged into another DB |
20427315 | 12.2.0.1 | ORA-600 [4000] While Performing DMLs In Freelist Segment |
20407770 | 12.2.0.1 | ORA-00600 [4000] error in CDB and DDL operations in PDBs |
19352922 | 12.2.0.1 | IMC: ORA-600[4000] may occur on HCC block |
14741727 | 11.2.0.2.9, 11.2.0.2.BP19, 11.2.0.3.BP12, 11.2.0.3.BP13, 11.2.0.4, 12.1.0.1 | Fixes for bug 12326708 and 14624146 can cause problems – backout fix |
12619529 | 11.2.0.3.BP18, 11.2.0.4, 12.1.0.1 | ORA-600[kdsgrp1] from SELECT on plugged in tablespace with FLASHBACK |
10425010 | 11.2.0.3, 12.1.0.1 | Stale data blocks may be returned by Exadata FlashCache |
9145541 | 11.1.0.7.4, 11.2.0.1.2, 11.2.0.2, 12.1.0.1 | OERI[25027]/OERI[4097]/OERI[4000]/ORA-1555 in plugged datafile after CREATE CONTROLFILE in 11g |
12353983 | 11.2.0.1 | ORA-600 [4000] with XA in RAC |
7687856 | 11.2.0.1 | ORA-600 [4000] from DML on transported ASSM tablespace |
2917441 | 11.1.0.6 | OERI [4000] during startup |
3115733 | 9.2.0.5, 10.1.0.2 | OERI[4000] / index corruption can occur during index coalesce |
2959556 | 9.2.0.5, 10.1.0.2 | STARTUP after an ORA-701 fails with OERI[4000] |
1371820 | 8.1.7.4, 9.0.1.4, 9.2.0.1 | OERI:4506 / OERI:4000 possible against transported tablespace |
434596 | 7.3.4.2, 8.0.3.0 | ORA-600[4000] from altering storage of BOOTSTRAP$ |
如何判断数据文件是否处于begin backup状态
在数据库恢复中,经常会遇到由于某种原因对数据库执行了begin backup,但是没有执行end backup,然后导致库无法启动的例子,那么怎么判断当前的库是存在这种情况呢?有两种方法可以对其进行判断:
1. 通过查询v$backup表来确认
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- ------------ 1 NOT ACTIVE 1.1210E+12 09-FEB-25 2 NOT ACTIVE 1.1210E+12 04-JAN-25 3 NOT ACTIVE 1.1210E+12 09-FEB-25 4 NOT ACTIVE 1.1210E+12 09-FEB-25 SQL> alter tablespace users begin backup; Tablespace altered. SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- ------------ 1 NOT ACTIVE 1.1210E+12 09-FEB-25 2 NOT ACTIVE 1.1210E+12 04-JAN-25 3 NOT ACTIVE 1.1210E+12 09-FEB-25 4 ACTIVE 1.1210E+12 09-FEB-25 SQL> alter tablespace users end backup; Tablespace altered. SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- ------------ 1 NOT ACTIVE 1.1210E+12 09-FEB-25 2 NOT ACTIVE 1.1210E+12 04-JAN-25 3 NOT ACTIVE 1.1210E+12 09-FEB-25 4 NOT ACTIVE 1.1210E+12 09-FEB-25
v$backup.status=’ACTIVE’表示该文件处于begin backup状态
2. 通过bbed查看kcvfh.kcvfhsta值
确认所有数据文件都没有处于begin backup状态
SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- ------------ 1 NOT ACTIVE 1.1210E+12 09-FEB-25 2 NOT ACTIVE 1.1210E+12 04-JAN-25 3 NOT ACTIVE 1.1210E+12 09-FEB-25 4 NOT ACTIVE 1.1210E+12 09-FEB-25
list内容列表
[oracle@iZbp11c0qyuuo1gr7j98upZ ~]$ cat /home/oracle/list.txt 1 /u01/app/oracle/oradata/xifenfei/system01.dbf 2 /u01/app/oracle/oradata/xifenfei/sysaux01.dbf 3 /u01/app/oracle/oradata/xifenfei/undotbs01.dbf 4 /u01/app/oracle/oradata/xifenfei/users01.dbf
bbed查看kcvfh.kcvfhsta值
[oracle@iZbp11c0qyuuo1gr7j98upZ ~]$ bbed listfile=/home/oracle/list.txt Password: BBED: Release 2.0.0.0.0 - Limited Production on Sun Feb 9 21:20:15 2025 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set file 1 FILE# 1 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x2004 (KCVFHOFZ) BBED> set file 2 FILE# 2 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x0004 (KCVFHOFZ) BBED> set file 3 FILE# 3 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x0004 (KCVFHOFZ) BBED> set file 4 FILE# 4 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x0004 (KCVFHOFZ)
执行database begin backup
SQL> alter database begin backup; Database altered. SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- ------------ 1 ACTIVE 1.1210E+12 09-FEB-25 2 ACTIVE 1.1210E+12 09-FEB-25 3 ACTIVE 1.1210E+12 09-FEB-25 4 ACTIVE 1.1210E+12 09-FEB-25
再次bbed查看kcvfh.kcvfhsta值
BBED> set file 1 FILE# 1 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x2001 (KCVFHHBP) BBED> set file 2 FILE# 2 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x0001 (KCVFHHBP) BBED> set file 3 FILE# 3 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x0001 (KCVFHHBP) BBED> set file 4 FILE# 4 BBED> p kcvfh.kcvfhsta ub2 kcvfhsta @138 0x0001 (KCVFHHBP)
对于非system文件kcvfh.kcvfhsta=0×0001表示begin backup状态
对于system文件kcvfh.kcvfhsta=0×2001表示begin backup状态