Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Melakukan tugas penjadwalan umum untuk instans DB Oracle
Beberapa pekerjaan penjadwal yang dimiliki SYS
dapat mengganggu operasi basis data normal. Dalam kasus seperti itu, Oracle Support merekomendasikan agar Anda mengubah jadwal. Jika Anda perlu mengaktifkan atau menonaktifkan SYS
pekerjaan, uji operasi pada pekerjaan terjadwal di lingkungan pengujian sebelum menerapkannya di lingkungan produksi. Untuk melakukan tugas untuk pekerjaan Oracle Scheduler yang dimiliki olehSYS
, gunakan paket AmazonRDS. rdsadmin.rdsadmin_dbms_scheduler
rdsadmin.rdsadmin_dbms_scheduler
Prosedur ini didukung untuk Amazon RDS untuk versi mesin Oracle DB yang ditunjukkan pada tabel berikut. Saat menggunakan paket ini, Anda dapat menentukan SYS
pekerjaan yang tercantum dalam tabel.
Rilis basis data | Pekerjaan diaktifkan secara default | Pekerjaan dinonaktifkan secara default |
---|---|---|
Oracle Database 19c |
|
|
Oracle Database 21c |
|
|
Parameter umum untuk prosedur Oracle Scheduler
Untuk melakukan tugas dengan Oracle Scheduler, gunakan prosedur dalam paket AmazonRDS. rdsadmin.rdsadmin_dbms_scheduler
Beberapa parameter umum untuk prosedur dalam paket. Paket memiliki parameter umum berikut.
Nama parameter | Tipe data | Nilai valid | Default | Wajib | Deskripsi |
---|---|---|---|---|---|
|
varchar2 |
Prosedur yang tercantum dalam tabel di Melakukan tugas penjadwalan umum untuk instans DB Oracle |
— |
Ya |
Nama pekerjaan yang akan dimodifikasi. |
|
varchar2 |
|
– |
Ya |
Atribut untuk diubah. Untuk memodifikasi interval pengulangan untuk pekerjaan, tentukan Untuk memodifikasi nama jadwal untuk pekerjaan, tentukan |
|
varchar2 |
Interval jadwal atau nama jadwal yang valid, tergantung atribut yang digunakan. |
– |
Ya |
Nilai baru dari atribut. |
Memodifikasi DBMS _ pekerjaan SCHEDULER
Untuk memodifikasi komponen tertentu dari Oracle Scheduler, gunakan prosedur dbms_scheduler.set_attribute
Oracle. Untuk informasi selengkapnya, lihat DBMS_ SCHEDULER
Saat bekerja dengan instans Amazon RDS DB, masukkan nama skema SYS
ke nama objek. Contoh berikut mengatur atribut rencana sumber daya untuk objek periode hari Senin.
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE( name => '
SYS.MONDAY_WINDOW
', attribute => 'RESOURCE_PLAN
', value => 'resource_plan_1
'); END; /
Memodifikasi AutoTask jendela pemeliharaan
Amazon RDS untuk instans Oracle dibuat dengan pengaturan default untuk jendela pemeliharaan. Tugas pemeliharaan otomatis seperti pengumpulan statistik pengoptimal berjalan selama periode ini. Secara default, masa pemeliharaan mengaktifkan Oracle Database Resource Manager.
Untuk memodifikasi periode, gunakan paket DBMS_SCHEDULER
. Anda mungkin perlu memodifikasi pengaturan masa pemeliharaan karena alasan berikut ini:
-
Anda ingin pekerjaan pemeliharaan berjalan pada waktu yang berbeda, dengan pengaturan yang berbeda, atau tidak sama sekali. Misalnya, Anda mungkin ingin mengubah durasi periode atau mengubah waktu dan interval pengulangan.
-
Anda ingin menghindari dampak performa dari mengaktifkan Resource Manager selama pemeliharaan. Misalnya, jika rencana pemeliharaan default ditentukan dan jika masa pemeliharaan terbuka saat basis data sedang dimuat, Anda mungkin melihat peristiwa tunggu seperti
resmgr:cpu quantum
. Peristiwa tunggu ini terkait dengan Database Resource Manager. Anda memiliki opsi berikut:-
Pastikan masa pemeliharaan aktif selama waktu tidak sibuk untuk instans DB Anda.
-
Nonaktifkan rencana pemeliharaan default dengan mengatur atribut
resource_plan
ke string kosong. -
Tetapkan parameter
resource_manager_plan
keFORCE:
dalam grup parameter Anda. Jika instans Anda menggunakan Enterprise Edition, pengaturan ini mencegah paket Database Resource Manager diaktifkan.
-
Untuk memodifikasi pengaturan masa pemeliharaan
-
Connect ke database Anda menggunakan SQL klien Oracle.
-
Kueri konfigurasi saat ini untuk periode penjadwal.
Contoh berikut mengueri konfigurasi untuk
MONDAY_WINDOW
.SELECT ENABLED, RESOURCE_PLAN, DURATION, REPEAT_INTERVAL FROM DBA_SCHEDULER_WINDOWS WHERE WINDOW_NAME='MONDAY_WINDOW';
Output berikut menunjukkan bahwa periode menggunakan nilai default.
ENABLED RESOURCE_PLAN DURATION REPEAT_INTERVAL --------------- ------------------------------ ---------------- ------------------------------ TRUE DEFAULT_MAINTENANCE_PLAN +000 04:00:00 freq=daily;byday=MON;byhour=22 ;byminute=0; bysecond=0
-
Modifikasi periode menggunakan paket
DBMS_SCHEDULER
.Contoh berikut menetapkan rencana sumber daya ke null sehingga Resource Manager tidak akan berjalan selama masa pemeliharaan.
BEGIN -- disable the window to make changes DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE); -- specify the empty string to use no plan DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'RESOURCE_PLAN', value=>''); -- re-enable the window DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"'); END; /
Contoh berikut mengatur durasi maksimum periode menjadi 2 jam.
BEGIN DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE); DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'DURATION', value=>'0 2:00:00'); DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"'); END; /
Contoh berikut menetapkan interval pengulangan untuk setiap hari Senin pukul 10 pagi.
BEGIN DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE); DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'REPEAT_INTERVAL', value=>'freq=daily;byday=MON;byhour=10;byminute=0;bysecond=0'); DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"'); END; /
Mengatur zona waktu untuk pekerjaan Oracle Scheduler
Untuk memodifikasi zona waktu Oracle Scheduler, Anda dapat menggunakan prosedur dbms_scheduler.set_scheduler_attribute
Oracle. Untuk informasi selengkapnya tentang dbms_scheduler
paket, lihat DBMS_ SCHEDULER
Untuk memodifikasi pengaturan zona waktu saat ini
-
Connect ke database menggunakan klien seperti SQL Developer. Untuk informasi selengkapnya, lihat Menghubungkan ke instans DB menggunakan pengembang Oracle SQL.
-
Atur zona waktu default sebagai berikut, menggantikan zona waktu untuk
.time_zone_name
BEGIN DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE( attribute => 'default_timezone', value => '
time_zone_name
' ); END; /
Dalam contoh berikut, Anda mengubah zona waktu ke Asia/Shanghai.
Mulai dengan melakukan kueri zona waktu saat ini, seperti yang ditunjukkan berikut.
SELECT VALUE FROM DBA_SCHEDULER_GLOBAL_ATTRIBUTE WHERE ATTRIBUTE_NAME='DEFAULT_TIMEZONE';
Output menunjukkan bahwa zona waktu saat ini adalahETC/UTC.
VALUE ------- Etc/UTC
Kemudian Anda mengubah zona waktu ke Asia/Shanghai.
BEGIN DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE( attribute => 'default_timezone', value => 'Asia/Shanghai' ); END; /
Untuk informasi selengkapnya tentang perubahan zona waktu sistem, lihat Zona waktu Oracle.
Mematikan pekerjaan Oracle Scheduler yang dimiliki oleh SYS
Untuk menonaktifkan pekerjaan Oracle Scheduler yang dimiliki oleh SYS pengguna, gunakan prosedur. rdsadmin.rdsadmin_dbms_scheduler.disable
Prosedur ini menggunakan parameter umum name
untuk tugas Oracle Scheduler. Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur Oracle Scheduler.
Contoh berikut menonaktifkan pekerjaan SYS.CLEANUP_ONLINE_IND_BUILD
Oracle Scheduler.
BEGIN rdsadmin.rdsadmin_dbms_scheduler.disable('SYS.CLEANUP_ONLINE_IND_BUILD'); END; /
Mengaktifkan pekerjaan Oracle Scheduler yang dimiliki oleh SYS
Untuk mengaktifkan pekerjaan Oracle Scheduler yang dimiliki olehSYS, gunakan prosedur. rdsadmin.rdsadmin_dbms_scheduler.enable
Prosedur ini menggunakan parameter umum name
untuk tugas Oracle Scheduler. Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur Oracle Scheduler.
Contoh berikut memungkinkan pekerjaan SYS.CLEANUP_ONLINE_IND_BUILD
Oracle Scheduler.
BEGIN rdsadmin.rdsadmin_dbms_scheduler.enable('SYS.CLEANUP_ONLINE_IND_BUILD'); END; /
Memodifikasi interval pengulangan Oracle Scheduler untuk jenis pekerjaan CALENDAR
Untuk memodifikasi interval pengulangan untuk memodifikasi CALENDAR
jenis pekerjaan Oracle Scheduler SYS milik, gunakan prosedur. rdsadmin.rdsadmin_dbms_scheduler.disable
Prosedur ini menggunakan parameter umum berikut untuk tugas Oracle Scheduler:
-
name
-
attribute
-
value
Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur Oracle Scheduler.
Contoh berikut memodifikasi interval pengulangan dari pekerjaan SYS.CLEANUP_ONLINE_IND_BUILD
Oracle Scheduler.
BEGIN rdsadmin.rdsadmin_dbms_scheduler.set_attribute( name => 'SYS.CLEANUP_ONLINE_IND_BUILD', attribute => 'repeat_interval', value => 'freq=daily;byday=FRI,SAT;byhour=20;byminute=0;bysecond=0'); END; /
Memodifikasi interval pengulangan Oracle Scheduler untuk jenis pekerjaan NAMED
Beberapa pekerjaan Oracle Scheduler menggunakan nama jadwal, bukan interval. Untuk jenis pekerjaan ini, Anda harus membuat jadwal baru yang sudah dinamai di skema pengguna master. Gunakan standar prosedur sys.dbms_scheduler.create_schedule
Oracle untuk melakukan tindakan ini. Selain itu, gunakan rdsadmin.rdsadmin_dbms_scheduler.set_attribute
procedure
untuk menetapkan jadwal baru yang dinamai pada pekerjaan.
Prosedur ini menggunakan parameter umum berikut untuk tugas Oracle Scheduler:
-
name
-
attribute
-
value
Untuk informasi selengkapnya, lihat Parameter umum untuk prosedur Oracle Scheduler.
Contoh berikut memodifikasi interval pengulangan dari pekerjaan SYS.BSLN_MAINTAIN_STATS_JOB
Oracle Scheduler.
BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE ( schedule_name => 'rds_master_user.new_schedule', start_date => SYSTIMESTAMP, repeat_interval => 'freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=0;byminute=0;bysecond=0', end_date => NULL, comments => 'Repeats daily forever'); END; / BEGIN rdsadmin.rdsadmin_dbms_scheduler.set_attribute ( name => 'SYS.BSLN_MAINTAIN_STATS_JOB', attribute => 'schedule_name', value => 'rds_master_user.new_schedule'); END; /
Menonaktifkan autocommit untuk pembuatan pekerjaan Oracle Scheduler
Ketika DBMS_SCHEDULER.CREATE_JOB
membuat pekerjaan Oracle Scheduler, tindakan ini langsung menciptakan pekerjaan dan melakukan perubahan. Anda mungkin perlu memasukkan pembuatan pekerjaan Oracle Scheduler dalam transaksi pengguna untuk melakukan hal berikut:
-
Lakukan roll-back pada pekerjaan Oracle Schedule saat roll-back diterapkan pada transaksi pengguna.
-
Buat pekerjaan Oracle Scheduler saat transaksi pengguna utama dilakukan.
Anda dapat menggunakan prosedur rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag
untuk mengaktifkan perilaku ini. Prosedur ini tidak menggunakan parameter. Anda dapat menggunakan prosedur ini sebagai berikut RDS untuk rilis Oracle:
-
21.0.0.0.ru-2022-07.rur-2022-07.r1 dan yang lebih baru
-
19.0.0.0.ru-2022-07.rur-2022-07.r1 dan yang lebih baru
Contoh berikut menonaktifkan autocommit untuk Oracle Scheduler, membuat pekerjaan Oracle Scheduler, dan kemudian melakukan roll-back pada transaksi. Karena autocommit dinonaktifkan, basis data juga melakukan roll-back pada pembuatan pekerjaan Oracle Scheduler.
BEGIN rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag; DBMS_SCHEDULER.CREATE_JOB(job_name => 'EMPTY_JOB', job_type => 'PLSQL_BLOCK', job_action => 'begin null; end;', auto_drop => false); ROLLBACK; END; / PL/SQL procedure successfully completed. SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME='EMPTY_JOB'; no rows selected