[20210325]SCHEDULER$_PROGRAM_ARG SCHEDULER$_JOB_ARG在哪里.txt --//上午在测试建立数据库触发器时执行expdp测试出现意外,提示。 $ expdp scott/book ... . . exported "SCOTT"."T" 0 KB 0 rows >>> ORA-31642: the following SQL statement fails: BEGIN "SYS"."DBMS_SCHED_EXPORT_CALLOUTS".SCHEMA_CALLOUT(:1,1,1,'11.02.00.04.00'); END; ORA-20000: YOU CAN NOT TRUNCATE or DROP SCHEDULER$_PROGRAM_ARG TABLE! --//自己尝试分析看看。 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production CREATE OR REPLACE TRIGGER SYS.TRI_PREVENT_DROP_TRUNCATE BEFORE TRUNCATE OR DROP ON DATABASE DISABLE BEGIN --//dbms_output.put_line( ora_dict_obj_type); IF ora_dict_obj_type IN ('TABLE', 'SEQUENCE') AND ora_dict_obj_owner = 'SCOTT' AND ORA_DICT_OBJ_NAME NOT LIKE 'SYS\_JOURNAL\_%' ESCAPE '\' AND ORA_DICT_OBJ_NAME NOT LIKE 'SYS\_EXPORT\_SCHEMA_%' ESCAPE '\' THEN raise_application_error ( -20000 ,'YOU CAN NOT TRUNCATE or DROP ' || ora_dict_obj_name || ' TABLE!' ); END IF; END; / SYS@book> alter TRIGGER SYS.TRI_PREVENT_DROP_TRUNCATE enable ; Trigger altered. 2.分析: SCOTT@book> @ desc_proc SYS DBMS_SCHED_EXPORT_CALLOUTS SCHEMA_CALLOUT INPUT OWNER PACKAGE_NAME OBJECT_NAME sample : @desc_proc sys dbms_stats gather_%_stats OWNER PACKAGE_NAME OBJECT_NAME SEQUENCE ARGUMENT_NAME DATA_TYPE IN_OUT DEFAULTED ---------- -------------------------- -------------- -------- -------------------- -------------------- --------- ---------- SYS DBMS_SCHED_EXPORT_CALLOUTS SCHEMA_CALLOUT 1 SCHEMA VARCHAR2 IN N 4 VERSION VARCHAR2 IN N 3 ISDBA BINARY_INTEGER IN N 2 PREPOST BINARY_INTEGER IN N --//很明显参数1是schema。 SCOTT@book> @ 10046on 12 Session altered. SCOTT@book> BEGIN "SYS"."DBMS_SCHED_EXPORT_CALLOUTS".SCHEMA_CALLOUT('SCOTT',1,1,'11.02.00.04.00'); END; / PL/SQL procedure successfully completed. SCOTT@book> @ 10046off Session altered. 3.分析转储: $ grep -i "drop table" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_60907.trc drop table "SCOTT".scheduler$_program_arg drop table "SCOTT".scheduler$_job_arg --//确实存在drop table!! $ grep -i "create" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_60907.trc if (m_type='TRIGGER' and m_event='CREATE') m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391, ''GeoRaster reserved names cannot be used to create regular triggers.'')'; --//而没有找到建立表的语句,要跟踪整个expdp操作。 4.跟踪expdp看看: --//简单粗暴一点: create or replace trigger sys.TRACE_ALL_LOGINS after logon on scott.schema begin execute immediate 'alter session set tracefile_identifier = expdp'; execute immediate 'alter session set events = ''10046 trace name context forever, level 12'''; exception -- -- if something goes wrong, we still want to allow a login to proceed -- when others then null; end; / --//SYS@book> alter TRIGGER TRACE_ALL_LOGINS disable ; --//Trigger altered. $ ll -l *EXPDP.trc -rw-r----- 1 oracle oinstall 4686780 2021-03-25 11:01:21 book_dm00_61296_EXPDP.trc -rw-r----- 1 oracle oinstall 20458765 2021-03-25 11:01:21 book_dw00_61298_EXPDP.trc -rw-r----- 1 oracle oinstall 6488787 2021-03-25 11:01:21 book_ora_61294_EXPDP.trc $ grep -i "scheduler\$_program_arg" *EXPDP.trc book_dm00_61296_EXPDP.trc: AND ORA_DICT_OBJ_NAME not in ('SCHEDULER$_PROGRAM_ARG','SCHEDULER$_JOB_ARG') book_dw00_61298_EXPDP.trc:SELECT COUNT(*) FROM OBJ$ O, SYS.SCHEDULER$_PROGRAM_ARGUMENT A, USER$ U WHERE A.OID = O.OBJ# AND O.OWNER# = U.USER# AND U.NAME = :B1 book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARGUMENT" book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARG_PK" book_dw00_61298_EXPDP.trc:SELECT COUNT(*) FROM ALL_TABLES WHERE OWNER = :B1 AND TABLE_NAME = 'SCHEDULER$_PROGRAM_ARG' book_dw00_61298_EXPDP.trc:drop table "SCOTT".scheduler$_program_arg book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARG" book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARG" book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARG" book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARG" book_dw00_61298_EXPDP.trc: value="SCHEDULER$_PROGRAM_ARG" book_dw00_61298_EXPDP.trc: AND ORA_DICT_OBJ_NAME not in ('SCHEDULER$_PROGRAM_ARG','SCHEDULER$_JOB_ARG') book_dw00_61298_EXPDP.trc: AND ORA_DICT_OBJ_NAME not in ('SCHEDULER$_PROGRAM_ARG','SCHEDULER$_JOB_ARG') --//根本找不到建立的语句。 $ grep -i "drop *table" *EXPDP.trc book_dm00_61296_EXPDP.trc:DROP TABLE "SCOTT"."SYS_EXPORT_SCHEMA_01" PURGE book_dw00_61298_EXPDP.trc:drop table "SCOTT".scheduler$_program_arg book_dw00_61298_EXPDP.trc:drop table "SCOTT".scheduler$_job_arg $ grep -n -C2 -i "create *table" *EXPDP.trc book_ora_61294_EXPDP.trc-1807-===================== book_ora_61294_EXPDP.trc-1808-PARSING IN CURSOR #139941690952496 len=2288 dep=1 uid=83 oct=1 lid=83 tim=1616641253579955 hv=3427723960 ad='7e22e918' sqlid='4zf7a9764xups' book_ora_61294_EXPDP.trc:1809:CREATE TABLE "SCOTT"."SYS book_ora_61294_EXPDP.trc-1810-END OF STMT book_ora_61294_EXPDP.trc-1811-PARSE #139941690952496:c=3000,e=2640,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,plh=0,tim=1616641253579953 --//"建立表的语句显示不全,应该是SYS_EXPORT_SCHEMA_NN. ===================== PARSING IN CURSOR #140254176584752 len=41 dep=3 uid=0 oct=12 lid=0 tim=1616641279637777 hv=1873832356 ad='7f8f7896d420' sqlid='c9zv0udrv0ud4' drop table "SCOTT".scheduler$_program_arg END OF STMT PARSE #140254176584752:c=1000,e=186,p=0,cr=0,cu=0,mis=1,r=0,dep=3,og=3,plh=0,tim=1616641279637776 ===================== --//手工执行看看: SCOTT@book> drop table "SCOTT".scheduler$_job_arg; drop table "SCOTT".scheduler$_job_arg * ERROR at line 1: ORA-00942: table or view does not exist $ grep err=942 *_EXPDP.trc book_dw00_61298_EXPDP.trc:ERROR #140254176584752:err=942 tim=1616641279773289 book_dw00_61298_EXPDP.trc:ERROR #140254176584752:err=942 tim=1616641279777653 book_ora_61294_EXPDP.trc:PARSE ERROR #139941689848416:len=42 dep=1 uid=83 oct=3 lid=83 tim=1616641253556750 err=942 --//跟踪book_dw00_61298_EXPDP出现2次err=942,也许对应正好是drop操作,也就是这两个对象根本不存在。 5.假设这两个表来之用户呢? SCOTT@book> create table scheduler$_job_arg as select * from emp; Table created. SCOTT@book> create table scheduler$_program_arg as select * from emp; Table created. $ expdp scott/book Export: Release 11.2.0.4.0 - Production on Thu Mar 25 15:10:21 2021 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/a***** Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 2.062 MB Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/POST_DATA_TABLE Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION Processing object type SCHEMA_EXPORT/FUNCTION/GRANT/OWNER_GRANT/OBJECT_GRANT Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/VIEW/VIEW Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/JOB Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA . . exported "SCOTT"."SESSION_WAIT_RECORD" 386.7 KB 8122 rows . . exported "SCOTT"."LOCK_OBJECT_RECORD" 308.4 KB 8122 rows . . exported "SCOTT"."TEST_RID_TAB" 171.2 KB 10000 rows . . exported "SCOTT"."TEST_TAB" 7.156 KB 100 rows . . exported "SCOTT"."TY" 97.67 KB 1000 rows . . exported "SCOTT"."DEMO" 5.007 KB 1 rows . . exported "SCOTT"."DEPT" 5.929 KB 4 rows . . exported "SCOTT"."EMP" 8.562 KB 14 rows . . exported "SCOTT"."EMPX" 8.078 KB 14 rows . . exported "SCOTT"."READ_STATS" 11.64 KB 8 rows . . exported "SCOTT"."SALGRADE" 5.859 KB 5 rows . . exported "SCOTT"."SCHEDULER$_JOB_ARG" 8.578 KB 14 rows ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . . exported "SCOTT"."SCHEDULER$_PROGRAM_ARG" 8.585 KB 14 rows ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . . exported "SCOTT"."TZ" 5.820 KB 1 rows . . exported "SCOTT"."BONUS" 0 KB 0 rows . . exported "SCOTT"."T" 0 KB 0 rows Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is: /u01/app/oracle/admin/book/dpdump/expdat.dmp Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Mar 25 15:10:40 2021 elapsed 0 00:00:18 SCOTT@book> desc scheduler$_job_arg ERROR: ORA-04043: object scheduler$_job_arg does not exist SCOTT@book> desc scheduler$_program_arg ERROR: ORA-04043: object scheduler$_program_arg does not exist SCOTT@book> select * from tab where Tname like 'BIN%'; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BIN$vlgc6Psq9QjgU05kqMAE2Q==$0 TABLE BIN$vlgc6Psr9QjgU05kqMAE2Q==$0 TABLE --//有2个表在回收站里面。 SCOTT@book> select * from "BIN$vlgc6Psq9QjgU05kqMAE2Q==$0" where rownum=1; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 --//很明显就是drop的两张表。
[20210325]SCHEDULER$_PROGRAM_ARG SCHEDULER$_JOB_ARG在哪里.txt
来源:这里教程网
时间:2026-03-03 16:33:01
作者:
编辑推荐:
- [20210325]SCHEDULER$_PROGRAM_ARG SCHEDULER$_JOB_ARG在哪里.txt03-03
- 【SPM】Oracle计划管理器SPM介绍及用例03-03
- 多个百世快递的物流怎么批量查询的,怎样利用快递批量查询03-03
- 【ORACLE】Oracle常用SQL及重点功能说明03-03
- [20210326]Disk file operations IO与文件型数据库.txt03-03
- 【TUNE_ORACLE】索引定期重建的利与弊03-03
- 从定位数据块所在ASM磁盘到ASM stripping03-03
- [20210316]为什么刷新缓存后输出记录顺序发生变化.txt03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 多个百世快递的物流怎么批量查询的,怎样利用快递批量查询
多个百世快递的物流怎么批量查询的,怎样利用快递批量查询
26-03-03 - 从定位数据块所在ASM磁盘到ASM stripping
从定位数据块所在ASM磁盘到ASM stripping
26-03-03 - oracle执行计划------未走索引,隐式转换的坑
oracle执行计划------未走索引,隐式转换的坑
26-03-03 - 利用vmware创建rac共享磁盘
利用vmware创建rac共享磁盘
26-03-03 - awr-----一份经典的负载很高的awr报告
awr-----一份经典的负载很高的awr报告
26-03-03 - ORACLE dbca执行到40%报错之ORA-12154
ORACLE dbca执行到40%报错之ORA-12154
26-03-03 - 【/proc/文件浅析】另类办法恢复数据文件和控制文件
【/proc/文件浅析】另类办法恢复数据文件和控制文件
26-03-03 - 使用sql tuning advisor优化sql
使用sql tuning advisor优化sql
26-03-03 - Oracle监听日志清除
Oracle监听日志清除
26-03-03 - Oracle 19C RAC open_links_per_instance参数问题
