环境: 19c 单机 + ADG
expdp 导出报错
Trace 文件报错 Ora-00600
临时解决办法
1、删除不匹配的对象(对exp基表操作,避免异常建议提前备份)
sql
SQL> With b as (select count(*) cnt,objn,snapshot_id from sys.exp_stat$ es group by objn,snapshot_id)select * from sys.exp_obj$ a, b
2 where a.objn=b.objn and a.snapshot_id=b.snapshot_id and a.EXP_CNT<>b.CNT;
OBJN SNAPSHOT_ID EXP_CNT CNT OBJN SNAPSHOT_ID
---------- ----------- ---------- ---------- ---------- -----------
96444 1 652 66188 96444 1
-- manually update exp_stat$, exp_obj$
SQL> delete from sys.exp_stat$ b where b.snapshot_id = 1 and b.objn = 96444 ;
66188 rows deleted.
SQL> With b as (
2 select count(*) cnt,objn,snapshot_id from sys.exp_stat$ es group by
3 objn,snapshot_id)
4 select * from sys.exp_obj$ a, b where a.objn=b.objn and
5 a.snapshot_id=b.snapshot_id
6 and a.EXP_CNT<>b.CNT;
no rows selected
SQL> update sys.exp_obj$ a set a.EXP_CNT=0 where a.SNAPSHOT_ID= 1 and a.objn = 96444;
1 row updated.
SQL> commit;
Commit complete.
SQL> With b as (
2 select count(*) cnt,objn,snapshot_id from sys.exp_stat$ es group by
3 objn,snapshot_id)
4 select * from sys.exp_obj$ a, b where a.objn=b.objn and
5 a.snapshot_id=b.snapshot_id
6 and a.EXP_CNT<>b.CNT;
no rows selected
修复办法
1、检查列补丁是否升级
28681153 31143146
未打上:
利用停机维护时间,安装补丁31143146并使其生效
sql
ALTER SYSTEM SET "_FIX_CONTROL"='31143146:ON' scope=both;
已打上,检查是否生效:
sql
--检查spfile
select name,value from V$SYSTEM_PARAMETER2 where name like '_fix_control';
--检查memeory pfile
select a.ksppinm "Parameter",
c.ksppstvl "Instance Value"
from x$ksppi a, x$ksppcv b, x$ksppsv c
where a.indx = b.indx
and a.indx = c.indx
and a.ksppinm in ('_fix_control')
order by 1;
--使特定修复措施在数据库中生效
alter system set "_fix_control"='31143146:on' scope=both;
参考文档
ORA-00600 [qosdExpStatRead: expcnt mismatch] Still Happens Even After Applied both Patch 28681153 and Patch 31143146 (Doc ID 2803002.1)
Document 2803002.1.pdf