Disabling dbms_scheduler gather_stats_job
Hi,
I'm hitting this error on GATHER_STATS_JOB of DBMS_SCHEDULER
ORA-12012: error on auto execute of job 2113476
ORA-25191: cannot reference overflow table of an index-organized tableHow does GATHER_STATS_JOB gets enabled?
Does it get enabled automatically when I create the first DBMS_SCHEDULER job?
Is it OK if it disable this? I've not tried disabling it yet, Not sure if I'll even be able to disable it with the privileges that I've got, but I just wanted to know if that is OK.
Thanks in advance,
CJM
>
How does GATHER_STATS_JOB gets enabled?
Does it get enabled automatically when I create the first DBMS_SCHEDULER job?
Is it OK if it disable this? I've not tried disabling it yet, Not sure if I'll even be able to disable it with the privileges that I've got, but I just wanted to know if that is OK.Gather_stats_job gathers statistics only fo rthe tables with stale statistics. If you decided to do it manually at schema level if you specify "option=gather stale" will be sufficient, otherwise you can gather for "estimate_percent=>10" percent of rows .
You can stop GATHER_STATS_JOB as given sql.
Similar Messages
-
How to disable dbms_scheduler globally?
Hi all,
Is there any way to disable it using some parameter or command? The DB was cloned and it has tons of DB_LINKS that point to production DB (the links are created using connect string). When we start the database, dbms_scheduler starts running it's job, connecting to PROD using those links. There is absolutely no way for us to bring DB and create a dynamic sql to disable those jobs one by one. We need to be able to disable dbms_scheduler ideally without bringing the DB up or at least within the first seconds of it being up.
Please, let me know if you are aware of such an easy way
Thanks,
M31cf6fd1-7de6-498a-a881-3181d896aa77 wrote:
Hi all,
Is there any way to disable it using some parameter or command? The DB was cloned and it has tons of DB_LINKS that point to production DB (the links are created using connect string). When we start the database, dbms_scheduler starts running it's job, connecting to PROD using those links. There is absolutely no way for us to bring DB and create a dynamic sql to disable those jobs one by one. We need to be able to disable dbms_scheduler ideally without bringing the DB up or at least within the first seconds of it being up.
Please, let me know if you are aware of such an easy way
Thanks,
M
job_queue_processes = 0 -
Disable the GATHER_STATS_JOB
I am unable to disable the Automatic Stats gathering job : GATHER_STATS_JOB
I get the following error:
SQL> sho user
USER is "SYSTEM"
SQL> exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
BEGIN DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB'); END;
ERROR at line 1:
ORA-27476: "SYSTEM.GATHER_STATS_JOB" does not exist
ORA-06512: at "SYS.DBMS_ISCHED", line 743
ORA-06512: at "SYS.DBMS_SCHEDULER", line 1117
ORA-06512: at line 1Hi,
You need to login with SYSDBA privilege:
SQL> conn sys/******** as sysdba
Connected.
SQL> exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
PL/SQL procedure successfully completed. -
Disableing DBMS_SCHEDULER queues when cloning
I am creating a clone of my production database using RMAN and don't want the jobs in the DBMS_SCHEDULER to start once the clone is done. This was easy to do with DBA_JOBS by just setting JOB_QUEUE_PROCESSES=0, but I can't seam find a way to keep the jobs in DBMS_SCHEDULER from starting. I have tried using DBMS_SCHEDULER.DISABLE immediately upon completing the clone, but jobs have already started running.
Any ideas??
--BruceThank you; What I did not know was that the RMAN duplicate command has an "OPEN RESTRICTED" clause. That should solve my problem.
--Bruce -
please anyone give me the command to gather stats for whole database
HI,
You can check this part of Oracle document http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm#PFGRF30102 also note. and ORACLE - DBA Tips Corner
Enabling Automatic Statistics Gathering Automatic statistics gathering is enabled by default when a database is created, or when a database is upgraded from an earlier database release. You can verify that the job exists by viewing the DBA_SCHEDULER_JOBS view:
SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'GATHER_STATS_JOB';
In situations when you want to disable automatic statistics gathering, the most direct approach is to disable the GATHER_STATS_JOB as follows:
BEGIN DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB'); END; /
How to run Gather Stats For Whole Database. - General Questions
Thank you -
How to disable automatic statistics collections on tables
Hi
I am using Oracle 10g and we have few tables which are frequently truncated and news rows added to it. Oracle automatically analyzes the table by some means which collects statistics of the table but at the wrong time(when the table is empty). This makes my query to do a full table scan rather using indexes since the statistics was collected when the table was empty.Could any one please let me know how to disable the automatic statistics collection feature of Oracle?
Cheers
Anantha PVHi
I am using Oracle 10g and we have few tables which
are frequently truncated and news rows added to it.
Oracle automatically analyzes the table by some means
which collects statistics of the table but at the
wrong time(when the table is empty). This makes my
query to do a full table scan rather using indexes
since the statistics was collected when the table was
empty.Could any one please let me know how to disable
the automatic statistics collection feature of
Oracle?
First of all I think it's important that you understand why Oracle collects statistics on these tables: Because it considers the statistics of the object to be missing or stale. So if you just disable the statistics gathering on these tables then you won't have statistics at all or outdated statistics.
So as said by the previous posts you should gather the statistics manually yourself anyway. If you do so right after loading the data into the truncated table, you don't need to disable the automatic statistics gathering as it only processes objects that are stale or don't have statistics at all.
If you still think that you need to disable it there are several ways to accomplish it:
As already mentioned, for particular objects you can lock the statistics using DBMS_STATS.LOCK_TABLE_STATS, or for a complete schema using DBMS_STATS.LOCK_SCHEMA_STATS. Then these statistics won't be touched by the automatic gathering job. You still can gather statistics using the FORCE=>true option of the GATHER__STATS procedures.
If you want to change the automatic gathering job that it only gathers statistics on objects owned by Oracle (data dictionary, AWR etc.), then you can do so by calling DBMS_STATS.SET_PARAM('AUTOSTATS_TARGET', 'ORACLE'). This is the recommended method.
If you disable the schedule job as mentioned in the documentation by calling DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB') then no statistics at all will be gathered automatically, causing your data dictionary statistics to be become stale over time, which could lead to suboptimal performance of queries on the data dictionary.
All this applies to Oracle 10.2, some of the features mentioned might not be available in Oracle 10.1 (as you haven't mentioned your version of 10g).
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle:
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
SQL> conn / as sysdba
Connected.
SQL> exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
BEGIN DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB'); END;
ERROR at line 1:
ORA-27476: "SYS.GATHER_STATS_JOB" does not exist
ORA-06512: at "SYS.DBMS_ISCHED", line 3429
ORA-06512: at "SYS.DBMS_SCHEDULER", line 2395
ORA-06512: at line 1
SQL> select * from v$version;
BANNER
Oracle Database 11g Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - ProductionSQL> col LOG_USER format a10
SQL> col WHAT format a50
SQL> select JOB,LOG_USER,LAST_DATE,BROKEN,FAILURES,WHAT,NEXT_DATE from dba_jobs;
JOB LOG_USER LAST_DATE B FAILURES
WHAT NEXT_DATE
27 SYS 15-FEB-10 N 0
wksys.wk_job.invoke(22,44); 22-FEB-10
26 SYS 18-FEB-10 N 0
wksys.wk_job.invoke(22,24); 18-FEB-10
1 SYSMAN 18-FEB-10 N 0
EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS(); 18-FEB-10
JOB LOG_USER LAST_DATE B FAILURES
WHAT NEXT_DATE
4001 SYS 18-FEB-10 N 0
wwv_flow_cache.purge_sessions(p_purge_sess_older_t 18-FEB-10
hen_hrs => 24);
4002 SYS 18-FEB-10 N 0
wwv_flow_mail.push_queue(wwv_flow_platform.get_pre 18-FEB-10
ference('SMTP_HOST_ADDRESS'),wwv_flow_platform.get
_preference('SMTP_HOST_PORT'));
JOB LOG_USER LAST_DATE B FAILURES
WHAT NEXT_DATE
46 SYSMAN 18-FEB-10 N 0
EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS(); 18-FEB-10 -
Could not enable GATHER_STATS_JOB
When I am selecting the job state it shows that it has disabled.
SQL> select job_name, state from dba_scheduler_jobs;
JOB_NAME STATE
============ ============
GATHER_STATS_JOB DISABLED
When trying to enable it shows error:
SQL> Exec dbms_scheduler.enable(GATHER_STATS_JOB);
BEGIN dbms_scheduler.enable(GATHER_STATS_JOB); END;
ERROR at line 1:
ORA-06550: line 1, column 29:
PLS-00103: Encountered the symbol "" when expecting one of the following:
( ) - + case mod new not null others <an identifier>
table avg count current exists max min prior sql stddev sum
variance execute multiset the both leading trailing forall
merge year month DAY_ hour minute second timezone_hour
timezone_minute timezone_region timezone_abbr time timestamp
interval date
My db is oracle 10.2.0it does not shows any timing schedule when I check now.
SQL> select job_name,NEXT_RUN_DATE,LAST_START_DATE,ENABLED from dba_scheduler_jobs;
JOB_NAME NEXT_RUN_DATE LAST_START_DATE ENABL
GATHER_STATS_JOB TRUE
PURGE_LOG 24-FEB-10 03.00.00.000000 AM 23-FEB-10 03.00.00.151551 AM ASIA/KUALA_LUMPUR TRUE -
DBMS_SCHEDULER.STOP_JOB
Hi,
I have created a external job to execute exe's in unix box. The steps followed are as follows:
DBMS_SCHEDULER.CREATE_JOB (
job_name=>v_job_name,
Job_Type => 'EXECUTABLE',
Job_Action => exe_name,
Enabled=>FALSE,
credential_name=>u_name,
number_of_arguments=>3);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(v_job_name,1,file_name);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(v_job_name,2,job_name);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(v_job_name,3,job_request_id);
DBMS_SCHEDULER.RUN_JOB(v_job_name, TRUE);
The job is created and in unix box the exe is invoked successfully,,,
During this particular time when the unix box exe is still running, if I issue
BEGIN
DBMS_SCHEDULER.STOP_JOB ( job_name=>kill_job_name , force=> true );
END;
The job is not stopped and the below error message is shown...
ORA-27366: job "140225_4202261012171102" is not running
ORA-06512: at "SYS.DBMS_ISCHED", line 199
ORA-06512: at "SYS.DBMS_SCHEDULER", line 557
ORA-06512: at line 2
27366. 00000 - "job \"%s.%s\" is not running"
*Cause: An attempt was made to stop a job that was not running.
*Action: Verify the status of the job. If the job is running but this
message is still being returned, contact Oracle support.
Also after sometime the unix box exe completes successfully. This is visible in dba_scheduler_job_run_details - SUCCEEDED..
Please provide your valuable inputs.
Regards,
VMDo you stop the job with the same user as the owner's?
YES - the owner of the job remains the same.
(You said "DBA_SCHEDULER_RUNNING_JOBS is not showing any entry till the unix box exe completes.")
--> Yes dba_scheduler_jobs has entries available - STATE column value in DISABLED and no entry were available in dba _Scheduler_running_jobs : Also when checked in unix box it is in running status.
recap of the code and error reported
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name=>v_job_name,
Job_Type => 'EXECUTABLE',
Job_Action => exe_name,
Enabled=>FALSE,
credential_name=>u_name,
number_of_arguments=>3);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(v_job_name,1,file_name);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(v_job_name,2,job_name);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(v_job_name,3,job_request_id);
DBMS_SCHEDULER.RUN_JOB(v_job_name, TRUE);
END;
BEGIN
DBMS_SCHEDULER.STOP_JOB ( job_name=>'140226_5002261313171138' , force=> true );
END;
Error report -
ORA-27366: job "140226_5102261421171151" is not running
ORA-06512: at "SYS.DBMS_ISCHED", line 199
ORA-06512: at "SYS.DBMS_SCHEDULER", line 557
ORA-06512: at line 2
27366. 00000 - "job \"%s.%s\" is not running"
*Cause: An attempt was made to stop a job that was not running.
*Action: Verify the status of the job. If the job is running but this
message is still being returned, contact Oracle support.
Also I have come across one thread which is not exactly same as mine but has something in it
ORA-27366: job is not running.
Has anyone come across this thread.
Your help and suggestion is very much appreciated. -
Disable scheduler jobs during the database refresh
Chaps,
I have a strange issue. We have certain jobs scheduled which monitor other jobs and when they aren't running, they send emails using utl_smtp to the whole DBA group. All is working fine on Production but the moment we restore the database to QA, and soon after the database is recovered, it sends an email saying the those jobs aren't running..
How do I disable the scheduler jobs ? Can it be done while the database is in mount state ? Or, is there any parameters to do so ?Hi,
Although you can't disable the entire scheduler, you can disable individual jobs or all jobs in a job class using dbms_scheduler.disable which will prevent the jobs from running (but not stop already running jobs).
It should be straightforward to have a table of jobs that should be disabled and have procedures which run over the table either disabling or enabling them.
-Ravi -
Dbms_scheduler - ORA-27301: system cannot find the file specified
Hi,
I'm having problems running an executable job via dbms_scheduler. The invoking code reads:
begin
dbms_scheduler.create_job(job_name => "fred",
job_type => "EXECUTABLE",
job_action => 'convert c:\wowtemp\test.jpg -thumbnail 155 c:\wowtemp\test.png',
enabled => TRUE
dbms_scheduler.run_job(job_name => "fred");
end;and running this in SQL*plus gives me:
ERROR at line 1:
ORA-27370: job slave failed to launch a job of type EXECUTABLE
ORA-27300: OS system dependent operation:accessing execution agent failed with status: 2
ORA-27301: OS failure message: The system cannot find the file specified.
ORA-27302: failure occurred at: sjsec 6a
ORA-27303: additional information: The system cannot find the file specified.
ORA-06512: at "SYS.DBMS_ISCHED", line 150
ORA-06512: at "SYS.DBMS_SCHEDULER", line 441
ORA-06512: at line 7This happens no matter what I put in the job_action, and despite the fact that if I paste the jpb_action into a command prompt window it executes successfully. The user has CREATE ANY JOB privilege.
Any ideas?
BTW, this is using XE on WinXP. (I'd post in the XP forum but it seems to have disappeared).
Thanks,
johnOK, problem #1 solved:
By default, XE on Windows sets up the scheduler service to disabled. Enable and start it, then we can move on to problem #2:
ORA-27369: job of type EXECUTABLE failed with exit code: Incorrect function.
See http://www.adp-gmbh.ch/blog/2005/may/27.html for a workaround using a .bat file which sadly doesn't help me. How do I pass runtime switches and parameters?
DBMS_SCHEDULER is wonderfully powerful, but NOWHERE in the copious documentation can I find help on how to do something really SIMPLE.
I just want to run an unscheduled, ad hoc executable job which runs an OS command with parameters, as in:
'c:\mydir\convert.exe c:\mydir\test.jpg -thumbnail 155 c:\mydir\test.png'
Can the job_action parameter include command-line switches and parameters or not?
In the documentation for CREATE_JOB, 'For an executable, the action is the name of the external executable, including the full path name and any command-line arguments.', but this doesn't work for me.
Elsewhere (Error running executable job I read:
If the job_type is executable then the scheduler expects only the executable name and path as job_action (no command line arguments) e.g. ("c:\win32\cmd.exe")
For commandline arguments you should be setting number_of_arguments to the required value and then doing set_job_argument_value for each argument. (e.g. 3, "/q", "/c", "script.bat").
What's the real story?
Any and all assistance much appreciated
Thanks -
Automatically enable disabled jobs again
Hi, in our company some jobs are executed during night which should be finish by next morning due to DB performance during daytime.
But sometimes they didn't run during night and the job status is DISABLED next morning.
Next morning all jobs cann be enabled manually without an error message.
Questions:
1) why do they get status DISABLED?
2) is there a possibility to change the status of a job back to SCHEDULED automatically to force executing the jobs during night?
Thank you very much for helpling!Hi, thank you very much for your very quick answer!
- yes, we are talking about DBMS_SCHEDULER jobs created with exec DBMS_SCHEDULER.create_job ...
- we do not get status BROKEN - the status is DISABLED, and ALL jobs didn't run during nighttime at all
- there are no error messages reported selecting * from ALL_SCHEDULER_JOB_RUN_DETAILS where JOB_NAME = '<jobname>' and LOG_DATE > trunc ( sysdate - 1 ) order by LOG_DATE desc;
- also no error messages selecting * from ALL_SCHEDULER_JOB_LOG ...
You propose to execute following code all day and nigtht to 'wake up' jobs with status DISABLED:
Begin
For i in (select job_name from dba_scheduler_jobs where state='DISABLED')
Loop
dbms_scheduler.enable(name=>i.job_name);
End Loop;
End;
We tried this solution already - using this code in a new job.
But it didn't work as I wrote already that ALL jobs have status DISABLED next morning - also this new job.
Therefore this new job didn't 'wake up' the other jobs with status DISABLED.
How do you think it is possible to execute this code as well?
Starting it in a SqlPlus session?
That means that this session may not be closed - if closed, the code isn't executed anymore!
And what about DB shutdown and startup? Then the SqlPlus session with this code has to be started manually again -> this is not a good solution.
Is there another opportunity to execute this code in a better way than using a SqlPlus session?
Thank you! -
How to disable autostart of Oracle?
Hi
I've just installed Oracle 10 Enterpirse Server on Windows XP Prof. When I am starting Windows, Oracle starts also. Is it possible to disable autostart of Oracle?Which services you need really depends on what you are doing with Oracle. OracleService<<SID>> is the actual database instance, so you pretty much need that if anything else is going to work. That is also going to account for 99% of the memory and CPU utilization of the services. If you want to connect to the database from another machine, you will have to start the TNS listener. If you are using MTS (Microsoft's Transaction Server), Enterprise Manager, or dbms_scheduler, iSQL*Plus you may need to start other services as well.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
DBMS_SCHEDULER.CREATE_SCHEDULE Error
Please let me know what are the system priviledges needed to run the "DBMS_SCHEDULER.CREATE_SCHEDULE" pkg?
Early response highly appreciated!!
SQL> exec DBMS_SCHEDULER.CREATE_SCHEDULE ('Test1', sysdate ,'FREQ=HOURLY', sysdate+1 ,'test');
BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE ('Test1', sysdate ,'FREQ=HOURLY', sysdate+1 ,'test'); END;
ERROR at line 1:
ORA-27486: insufficient privileges
ORA-06512: at "SYS.DBMS_ISCHED", line 679
ORA-06512: at "SYS.DBMS_SCHEDULER", line 1130
ORA-06512: at line 1Here is the tablehttp://dba-services.berkeley.edu/docs/oracle/manual-10gR2/server.102/b14231/schedadmin.htm#i1011204
[pre]
Task Procedure Privilege Needed
Create a program CREATE_PROGRAM CREATE JOB or CREATE ANY JOB
Alter a program SET_ATTRIBUTE ALTER or CREATE ANY JOB or be the owner
Drop a program DROP_PROGRAM ALTER or CREATE ANY JOB or be the owner
Disable a program DISABLE ALTER or CREATE ANY JOB or be the owner
Enable a program ENABLE ALTER or CREATE ANY JOB or be the owner -
Dbms_scheduler.add_job_email_notification
Hi,
With our latest upgrade to Oracle 11g R2 Database, I tried to generate job email notification using the new feature dbms_sheduler.add_job_email_notification for the JOB_STARTED,JOB_STOPPED,JOB_FAILED,JOB_BROKEN,JOB_COMPLETED and JOB_DISABLED events. This does work fine for all but JOB_DISABLED event. I am not sure why it is not generating for JOB_DISABLED event. When looking at the job details, the raise_events attribute has the value "JOB_STARTED,JOB_FAILED,JOB_BROKEN,JOB_STOPPED,JOB_SCH_LIM_REACHED,JOB_DISABLED" for that scheduler job, this means it raises the JOB_DISABLED event, but it does not generate the notification if we try disabling the job with DBMS_SCHEDULER.disable_job procedure. We need to send this notification to the programmers if one of the programmers disables a job for a maintenance reason. Can anybody please help on this?
Regards,
NatarajanHi,
Request the experts to please reply.
Maybe you are looking for
-
Posting period with negative stocks
Dear Experts, While i try to close previous period and open current period in MMPV, it is showing that i have negative stocks in previous period. The negative stocks are in stock provided to vendor. How could i clear this. kindly help me. Regards, Pr
-
I cannot make a simple purchase of a $.99 of Beethoven's 9 symphony 4th Movement. When I click on the orchestra, a pop-up states "connecting - loading" and nothing happens. When I click on "View iTunes" for this selection, nothing happens.
-
The new ios7 is blocking my call
Anybody else having issues with your phone blocking calls after first call?
-
Hello, we have one customer created for company code/credit control area A with payment history we now created the customer for company code/credit control area B, when looking at the payment history, we see the same payment history as for area A (no
-
I prefer viewing thumbnails against a "dark" background. When the background is darkened the black type info below the "thumb" begins to blend with the darkened background, and becomes difficult to see. The file/title isn't too bad, but the selected