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.trc
Non critical error ORA-48113 caught while writing to trace file "/opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_99948/jcd_ora_23550_i99948.trc"
ORA-00600: , : [13013], [5001], [126801], [109382408], [102], [109382433], [17], [], [], [], [], []
Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_99980/jcd_ora_445_i99980.trc
ORA-00600: , : [13013], [5001], [126801], [109382409], [123], [109382437], [17], [], [], [], [], []
Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_101652/jcd_ora_8586_i101652.trc
ORA-00600: , : [13013], [5001], [126801], [109382409], [168], [109382437], [17], [], [], [], [], []
ORA-00600: , : [13013], [5001], [126801], [109382406], [99], [109382433], [17], [], [], [], [], []
ORA-00600: , : [13013], [5001], [126801], [109382405], [152], [109382433], [17], [], [], [], [], []

该600错误号可以拆分:
ORA-600 [13013]
Format: ORA-600 [13013] [a] [b] [c] [d] [e] [f]
This format relates to Oracle Server 8.0.3 and above
    Arg [a] Passcount
    Arg [b] Data Object number
    Arg [c] Tablespace Decimal Relative DBA (RDBA) of block containing the row to be updated
    Arg [d] Row Slot number
    Arg [e] Decimal RDBA of block being updated (Typically same as [c])
    Arg [f] Code

ORA-00600: internal error code, arguments: [13013], [5001], [268], [8457615], [5], [8457615], [17], [], [], [], [], []

根据报错信息确定相对文件号与相对块号:

select dbms_utility.data_block_address_file(109382409) rfile,
    dbms_utility.data_block_address_block(109382409) rblocks
     from dual;
     RFILE    RBLOCKS
---------- ----------
        26     330505

select dbms_utility.data_block_address_file(109382408) rfile,
    dbms_utility.data_block_address_block(109382408) rblocks
     from dual;       

     RFILE    RBLOCKS
---------- ----------
        26     330504

select dbms_utility.data_block_address_file(109382406) rfile,
    dbms_utility.data_block_address_block(109382406) rblocks
     from dual;      
     RFILE    RBLOCKS
---------- ----------
        26     330502

select dbms_utility.data_block_address_file(109382405) rfile,
    dbms_utility.data_block_address_block(109382405) rblocks
     from dual;          

   RFILE    RBLOCKS
---------- ----------
        26     330501

确认对象:

SQL> set linesize 999 pagesize 9999
SQL> select owner,segment_name,segment_type,tablespace_name from dba_extents 
    where file_id =26
    and 330505 between block_id and block_id + blocks -1;        

OWNER      SEGMENT_NAME    SEGMENT_TYPE TABLESPACE_NAME
---------- ----------    ----------   --------------------
XHSD_JCD   JCD_PUB_YHBMB    TABLE      TS_PUB_DATA

同时dbv校验26号文件:
无物理坏块!

尝试执行分析:

analyze table XHSD_JCD.JCD_PUB_YHBMB validate structure cascade online;
ERROR at line 1:
ORA-08104: this index object 130036 is being online built or rebuilt

确认130036索引:

OBJECT_NAME   OBJECT_TYPE
---------------------------------------------------------
PK_JCD_PUB_YHBMB   INDEX

//与客户沟通,此时正在重建索引.无法进行分析.

客户重建索引后仍无法继续分析:(经反馈其创建索引会话被杀掉.)

analyze table XHSD_JCD.JCD_PUB_YHBMB validate structure cascade online;
ERROR at line 1:
ORA-08104: this index object 130036 is being online built or rebuilt

执行清理索引创建操作:
SQL> DECLARE
    isClean BOOLEAN;
    BEGIN
    isClean := DBMS_REPAIR.ONLINE_INDEX_CLEAN(130036);
    END;
    /

再次手动进行rebulid:
alter index XHSD_JCD.PK_JCD_PUB_YHBMB rebuild

再次进行分析资源被占用,对象被hang住sql占用:
analyze table XHSD_JCD.JCD_PUB_YHBMB validate structure cascade online;
analyze table XHSD_JCD.JCD_PUB_YHBMB validate structure
ANALYZE INDEX  XHSD_JCD.PK_JCD_PUB_YHBMB VALIDATE STRUCTURE;


确定锁定对象会话:
 select l.session_id,o.owner,o.object_name 
 from v$locked_object l,dba_objects o where l.object_id=o.object_id;   
SESSION_ID OWNER      OBJECT_NAME
---------- ---------- --------------------
       780 XHSD_JCD   JCD_PUB_YHBMB
       627 XHSD_JCD   JCD_PUB_YHBMB
      1152 XHSD_JCD   JCDMS_DZTSYCCL


操作系统层面杀锁:
select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.sid=780;
select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.sid=627;
select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.sid=1152;

kill -9进行操作系统层面杀锁

再次执行分析成功:
analyze table XHSD_JCD.JCD_PUB_YHBMB validate structure cascade online;
analyze table XHSD_JCD.JCD_PUB_YHBMB validate structure
ANALYZE INDEX  XHSD_JCD.PK_JCD_PUB_YHBMB VALIDATE STRUCTURE;

此时客户给出问题SQL,执行SQL 会话hang住

UPDATE XHSD_JCD.PUB_YHBMB SET DLBZ = '1' WHERE DLH='00560';

后台出现:
ORA-07445: exception encountered: core dump [kduudm()+1798] [SIGSEGV] [ADDR:0x1E1000000] [PC:0x4BCB2A2] [Address not mapped to object] []
//对于该错误代码,Mos并无相关记录.
--------------
Wed Mar 03 11:49:46 2021
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x1E1000000] [PC:0x4BCB2A2, kduudm()+1798] [flags: 0x0, count: 1]
Errors in file /opt/app/oracle/diag/rdbms/jcd/jcd/trace/jcd_ora_9960.trc  (incident=100772):
ORA-07445: exception encountered: core dump [kduudm()+1798] [SIGSEGV] [ADDR:0x1E1000000] [PC:0x4BCB2A2] [Address not mapped to object] []
Incident details in: /opt/app/oracle/diag/rdbms/jcd/jcd/incident/incdir_100772/jcd_ora_9960_i100772.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Wed Mar 03 11:49:48 2021
Dumping diagnostic data in directory=[cdmp_20210303114948], requested by (instance=1, osid=9960), summary=[incident=100772].
Wed Mar 03 11:49:49 2021
Sweep [inc][100772]: completed
Sweep [inc2][100772]: completed
--------------

询问客户视图创建SQL:

create or replace view pub_yhbmb as
select DLH,BM,YHM,KL,SYBZ,QYRQ,ZZRQ,DLBZ,SM
    from jcd_PUB_YHBMB;

对原表执行delete也hang住: 
delete from  jcd_pub_yhbmb  WHERE DLH='00560';

select语句数据获取正常:
select * from XHSD_JCD.jcd_pub_yhbmb

尝试跟踪delete以及update语句,但sql_trace以及10046无输出.

最终尝试手动通过CTS创建一张测试表进行DML测试可以执行:
create table XHSD_JCD.test as select * from XHSD_JCD.jcd_PUB_YHBMB;
delete from  XHSD_JCD.test  WHERE DLH='00560';

最终使用CTS重建业务表业务正常.

记录排查过程.

相关Mos:
How to Use DBMS_REPAIR.ONLINE_INDEX_CLEAN For The Cleanup Of Online Index Failing With ORA-08104?(文档 ID 1378173.1)
How to Cleanup and Rebuild an Interrupted Online Index Rebuild - ORA-8104 , ORA-8106 (文档 ID 272735.1)
Session Was Killed During The Rebuild Of Index ORA-08104 (文档 ID 375856.1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle 19c是一款流行的数据库管理系统,而ORA-01017是指用户身份验证失败的错误代码。当用户尝试使用错误的用户名或密码连接到Oracle数据库时,系统会返回ORA-01017错误。这是因为系统无法识别用户提供的凭据。 要解决ORA-01017错误,首先需要确认提供的用户名和密码是否正确。可以检查连接字符串或应用程序代码中的用户名和密码是否正确输入。确保用户名和密码的大小写也要匹配,因为Oracle对它们是敏感的。 如果确认用户名和密码是正确的,那么可能是由于账户密码过期或被锁定导致的身份验证失败。可以尝试使用sys用户登录到数据库,并使用以下命令解锁用户账户: ALTER USER <用户名> ACCOUNT UNLOCK; 如果错误仍然存在,那么可能是由于密码验证文件配置不正确导致的。可以检查数据库参数文件(init.ora或spfile.ora)中的REMOTE_LOGIN_PASSWORDFILE参数的值,确保它被设置为正确的值。如果值是EXCLUSIVE或SHARED,可以尝试使用以下命令重新创建密码验证文件: ORAPWD FILE=<密码文件路径> FORMAT=12.2 如果以上方法仍未解决问题,那么可以考虑联系数据库管理员寻求进一步帮助。DBA可以检查数据库的审计日志,以确定身份验证失败的具体原因,并采取适当的措施解决问题。 总结来说,ORA-01017错误通常是由于错误的用户名或密码导致的身份验证失败。确认凭据是否正确,并解锁账户或重新创建密码验证文件可能会解决此问题。如仍无法解决,寻求数据库管理员的帮助是一个好的选择。 ### 回答2: 当出现ORA-01017错误时,这意味着用户尝试连接到Oracle数据库实例时,提供的用户名/密码不正确。 可能有几个原因导致此错误: 1. 错误的用户名:用户输入了错误的用户名。请确保输入的用户名与数据库中的用户名完全匹配。 2. 错误的密码:用户输入了错误的密码。请确保输入的密码与给定用户名的密码匹配。 3. 账户已锁定:如果多次尝试错误的用户名和密码,数据库会将该用户的账户锁定。在这种情况下,需要联系数据库管理员(DBA)解锁账户。 4. 密码过期:如果指定的用户密码已过期,则需要修改密码。可以通过DBA或拥有适当权限的用户执行密码更改操作。 为了解决该问题,可以采取以下操作: 1. 确认提供的用户名和密码是否正确。请确保没有输入错误的大小写字母或任何额外空格。 2. 确认该用户的账户是否已被锁定。如果是,请联系DBA解锁账户。 3. 确认指定用户的密码是否过期。如果是,请修改密码。 4. 如果以上步骤都无效,可以尝试重启数据库实例,并检查是否解决了问题。 总之,ORA-01017错误是由于提供的用户名和密码不正确引起的。请确认用户名和密码是否正确,并排除其他可能的问题,例如账户被锁定或密码过期。 ### 回答3: ORA-01017是Oracle数据库中的一个错误代码,表示“无效的用户名/密码;登录被拒绝”。当用户尝试使用无效的用户名或密码登录到Oracle数据库时,就会出现这个错误。 要解决这个问题,首先需要检查输入的用户名和密码是否正确。确保没有输入错误或拼写错误,包括大小写敏感性。如果确认用户名和密码正确,那么可能是由于账户被锁定或密码过期导致的。 如果是账户被锁定的问题,可以使用系统管理员权限登录到数据库,然后使用以下命令解锁账户: ALTER USER username ACCOUNT UNLOCK; 如果是密码过期导致的问题,可以使用系统管理员权限登录到数据库,然后使用以下命令更改密码并解锁账户: ALTER USER username IDENTIFIED BY new_password ACCOUNT UNLOCK; 另外,还可以检查数据库的远程登录设置。可能是由于数据库配置的问题,导致不能通过远程连接进行登录。可以通过以下命令检查和修改远程登录设置: SELECT * FROM V$PARAMETER WHERE NAME LIKE 'remote_login_passwordfile'; 如果返回的值是NONE,表示远程登录密码文件未设置,可以通过以下命令设置: ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = 'EXCLUSIVE' SCOPE=SPFILE; 总之,要解决ORA-01017错误,需要确认输入的用户名和密码是否正确,解锁或更改密码以解决账户锁定或过期的问题,并检查和修改远程登录设置,确保允许远程登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值