The Oracle scheduler allows jobs to be linked
with job classes, which in turn can be linked to
services to allow jobs to run on specific nodes
in a RAC
environment.
To support the requirements for the job,
two job classes might have to be created as
follows:
-
These job classes can then be assigned to
existing jobs or during job creation.
-
The use of services is not restricted to
scheduled jobs.
These services can be used in the
tnsnames.ora file to influence
which nodes are used for each application.
An example of the
tnsnames.ora file entries are
displayed below.
-
As long as applications use the appropriate
connection identifier, they should only
connect to the nodes associated to the
service.
Although not directly related to services, it is
sensible to discuss the concept of instance
stickiness at this point.
It has been shown that services can be
used to associate jobs to one or more RAC
instances in the cluster, but having a job run
on a different instance each time can result in
performance issues.
For example, a job on the first node of
the cluster may be executed, during which time
all the data necessary to perform the job is
read from the disk into the buffer cache.
On the second execution, the job runs on
the second node.
As most of the data necessary to perform the job
is already in the cache of the first node, the
data must be passed across the clusters
interconnect before the second job can proceed.
If the job had executed on the first node
again, this network transfer would not have been
necessary.
This is the reason for instance
stickiness.
The
instance_stickiness
parameter for an individual job defaults to
TRUE, meaning that the job will run repeatedly
on the same node, assuming it is available and
not severely overloaded.
The default value can be modified using
the
set_attribute
procedure:
With the
instance_stickiness
parameter set to FALSE, the job can run on any
available node in the cluster.
Conclusion
This chapter covered the fundamentals of job
scheduling including both external schedulers
like ones availables in Unix, Linux and Windows
as well as Oracle’s internal scheduler. Various
tools such as the crontab command,
dbms_scheduler and
dbms_jobs packages, and Scheduled
Tasks Wizard in Windows were introducted with
more emphasis put on the preferred scheduling
method for scheduling jobs in Oracle,
dbms_scheduler.
Another area of job scheduling that was covered
concerned time-based scheduling. Such components
as intervals, which is
a way of storing a specific period of time that
separates two datetime values, calendar syntax
and Oracle job chains were explained in detail.
This chapter also showed how to identify
and correct errors, how to email notifications
of errors and how jobs can be monitored via
using both database views and Oracle Enterprise
Manager
(OEM).
The chapter concluded with information regarding
scheduler attributes, job priorities, scheduler
logging, and details about the Job Resource
Manager.
 |
Fo r more details on Oracle utilities, see the book "Advanced
Oracle Utilities" by Bert Scalzo, Donald K. Burleson, and Steve Callan.
You can buy it direct from the publisher for 30% off directly from
Rampant TechPress.
|