質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

5024閲覧

oracleジョブについて、過去履歴削除方法について

raccoondog

総合スコア77

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/12/04 00:21

Oracleのジョブを使って、業務処理が流れたらBigQueryへバルクインサートする仕組みを検証しています。

何度か検証していて、stop状態で滞留してしまったジョブ?があって業務処理を流すと既にジョブがあると警告が出て失敗します。

ジョブをdropしてもジョブは無いと警告が出ます。

過去に実行したジョブでstopになってしまった履歴を削除してから業務処理を流したいです。

出来ればDDLやDMLで実行したいです。

環境:Oracle12c、Windows7

SQL> select OWNER,JOB_NAME,STATUS,LOG_DATE from dba_scheduler_job_run_details where OWNER = 'SYSTEM' and JOB_NAME = 'EMBULK_TEST' and LOG_DATE like '18-11-30%' or LOG_DATE like '18-12-03%' order by LOG_DATE; OWNER JOB_NAME STATUS LOG_DATE --------------- --------------- -------------------- -------------------------------------------------- SYSTEM EMBULK_TEST FAILED 18-11-30 13:59:08.142000 +09:00 SYSTEM EMBULK_TEST FAILED 18-11-30 14:10:56.929000 +09:00 SYSTEM EMBULK_TEST FAILED 18-11-30 14:19:46.739000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-11-30 14:25:31.078000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-11-30 14:27:19.067000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-11-30 14:31:05.175000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-11-30 14:39:52.969000 +09:00 SYSTEM EMBULK_TEST FAILED 18-11-30 14:47:08.360000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-11-30 14:57:52.402000 +09:00 SYSTEM EMBULK_TEST FAILED 18-11-30 15:43:30.205000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 15:56:52.915000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 15:57:00.290000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 15:57:05.297000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 16:04:09.378000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 16:28:28.928000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 16:28:41.326000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-11-30 16:53:08.780000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-12-03 10:43:58.680000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-12-03 10:44:09.055000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-12-03 10:47:31.641000 +09:00 SYSTEM EMBULK_TEST STOPPED 18-12-03 10:58:18.357000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-12-03 11:20:35.262000 +09:00 SYSTEM EMBULK_TEST SUCCEEDED 18-12-03 11:25:08.811000 +09:00 SQL> exec dbms_scheduler.drop_job('EMBULK_TEST'); BEGIN dbms_scheduler.drop_job('EMBULK_TEST'); END; * 行1でエラーが発生しました。: ORA-27475: 不明なjob "SYSTEM"."EMBULK_TEST" ORA-06512: "SYS.DBMS_ISCHED", 行274 ORA-06512: "SYS.DBMS_SCHEDULER", 行753 ORA-06512: 行1 SQL> select owner,job_name,state,JOB_ACTION,enabled from dba_scheduler_jobs where job_name = 'EMBULK_TEST'; レコードが選択されませんでした。 SQL> exec CRE_SAMPLE_DATA; ------------------------- OracleDB to BigQuery Bulk Insert Start BEGIN CRE_SAMPLE_DATA; END; * 行1でエラーが発生しました。: ORA-27477: "SYSTEM"."EMBULK_TEST"はすでに存在します ORA-06512: "SYS.DBMS_ISCHED", 行175 ORA-06512: "SYS.DBMS_SCHEDULER", 行288 ORA-06512: "SYSTEM.EMBULK_TR", 行9 ORA-04088: トリガー'SYSTEM.EMBULK_TR'の実行中にエラーが発生しました ORA-06512: "SYSTEM.CRE_SAMPLE_DATA", 行23 ORA-06512: 行1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2018/12/04 01:54

JOBが無い状態で手動で追加してもエラーになりますか?exec CRE_SAMPLE_DATAで複数回登録状態になっているのではないでしょうか?
raccoondog

2018/12/04 02:50

ご指摘有難うございます。JOBがない状態でもエラーになるので別名のジョブで検証を続けることにしました。CRE_SAMPLE_DATAで複数回登録されていると思われます。3分に一回インサート処理が走る処理で、その度にトリガーからジョブが実行される仕組みになります。
guest

回答2

0

dbms_scheduler.drop_jobをforceで実行したらどうなりますか?
サポート契約が有効でしたら、オラクル・カスタマ・サポート・センターにパッチがないか問合せては?

投稿2018/12/04 00:30

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccoondog

2018/12/04 02:48

forceオプションを指定しても削除はされませんでした。 一旦、別名のジョブで検証を続けます。
Orlofsky

2018/12/04 09:47

オラクル・サポートを使っては? 上長には、サポート料金はライセンスを買った時点にさかのぼって請求されますから、サポート契約を遅くしても費用が安くなることはありません。サポートに問合せができない分仕事が遅れるだけです、とお伝えください。
raccoondog

2018/12/05 07:23

ご指摘ありがとうございます。今後検討させて頂きます。
Orlofsky

2018/12/06 15:00

Oracleを購入時にいっしょにサポート契約してくれる会社に転職しなさい。
guest

0

自己解決

スケジュールジョブの過去履歴はそのままにしておいて
シーケンスを使用して、スケジュールジョブ名をシーケンシャルにさせることにより、問題回避できました。

投稿2018/12/05 07:25

raccoondog

総合スコア77

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2018/12/05 07:45

jobが残ったままでメモリをどんどん消費することになりませんか?
raccoondog

2018/12/06 09:21

ご指摘有難うございます。 Oracleジョブ履歴のテーブルをクリアできるコマンドがあれば教えて頂きたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問