codememo

DBMS_JOB 대 DBMS_Scheduler

tipmemo 2023. 6. 22. 21:54
반응형

DBMS_JOB 대 DBMS_Scheduler

DBMS_JOB와 DBMS_Scheduler의 차이점은 무엇입니까?

다른 포럼에서:

dbms_job은 여전히 10g 및 11g에 있지만 Oracle은 10g 이상 릴리스에서 dbms_scheduler를 사용할 것을 권장합니다.dbms_job에 추가되는 새 기능이 없으므로 해당 제한 사항에 빠르게 노출될 수 있습니다.

dbms_job보다 dbms_job이 더 강력하고 완벽하게 실행되며 dbms_job에는 없는 다음 기능이 포함되어 있습니다.

  • 작업 실행 기록(작업 기록)
  • 단순하지만 강력한 스케줄링 구문(cron 구문과 비슷하지만 cron 구문보다 더 강력함)
  • 운영 체제의 데이터베이스 외부에서 작업 실행
  • 서로 다른 작업 클래스 간의 리소스 관리
  • 저장 프로시저로 객체 전달을 포함한 작업 인수 사용
  • 작업에 대한 권한 기반 보안 모델
  • 작업 이름 및 작업의 주석 지정 설명
  • 저장된 재사용 가능한 예약

10g 릴리스 1 이후 릴리스의 기능은 다음과 같습니다.

  • 작업 단위 간 종속성(10gR2 이상)
  • 재무 일정 및 회계 분기를 기반으로 한 스케줄링(10gR2 이상)
  • 이벤트를 수신할 때 실행할 이벤트 기반 작업(10gR2 이상)
  • 원격 시스템에서 작업 실행(11gR1 이상)
  • 관심 있는 작업 이벤트에 대한 전자 메일 통지(10gR2 이상)
  • 파일 도착을 기준으로 작업 시작(10gR2 이상)

한 가지 차이점은 DBMS_JOB와 달리 DBMS_Scheduler는 커밋을 수행하므로 일부 용도에 적합하지 않습니다.또한 더 단순한 요구사항에 대해서는 다소 번거롭습니다.DBMS_JOB는 더 이상 향상되지 않지만, DBMS_JOB를 사용하고 있고 호출된 트랜잭션의 암묵적 커밋을 수행하지 않는 등 작동 방식에 의존하는 수천 개의 시스템이 있어야 하기 때문에 결코 지원되지 않을 것입니다.

자세한 내용은 Tom에게 묻기 스레드를 참조하십시오.

다음은 DBMS_Scheduler가 cron에 비해 갖는 몇 가지 이점입니다.

다른 작업의 완료에 따라 작업 실행을 종속시킬 수 있습니다.

강력한 리소스 밸런싱 및 유연한 스케줄링 기능

데이터베이스 이벤트를 기반으로 작업을 실행할 수 있습니다.

DBMS_Scheduler 구문은 운영 체제에 관계없이 동일하게 작동합니다.

데이터 사전을 사용하여 상태 보고서 실행 가능

클러스터 환경에서 작업하는 경우 클러스터의 각 노드에 대해 여러 cron 테이블을 동기화할 필요가 없습니다.

다음은 cron을 사용할 때의 몇 가지 장점입니다.

사용이 간편하고, 간편하며, 사용해보고, 진실함

모든 Linux/Unix 박스에서 거의 보편적으로 사용 가능하며, 대부분의 경우 Linux/Unix 플랫폼에 관계없이 거의 동일하게 실행됩니다(예, 사소한 차이점이 있음).

데이터베이스에 구애받지 않고 데이터베이스와 독립적으로 작동하며 데이터베이스 공급업체 또는 데이터베이스 버전에 관계없이 동일하게 작동합니다.

데이터베이스를 사용할 수 있는지 여부에 관계없이 작동합니다.

이것이 오래된 스레드라는 것을 알지만, 이것은 관련이 있는 것처럼 보입니다.

Oracle Database 19c로 업그레이드하면 이전 DBMS_JOB 인터페이스의 후드 아래에서 작업이 변환됩니다.걱정하지 마세요. 긴장을 푸세요!

어떻게 되는 거지?DBA_JOBS에서 일하는 것은 어떤 의미입니까?

먼저 스케줄러의 제어 하에 마이그레이션을 방지하거나 건너뛸 수 없습니다.하지만 그렇게 할 이유도 없습니다.

During the 19c upgrade for each job in DBMS_JOB a corresponding entry will be created with DBMS_SCHEDULER
The old DBMS_JOB interface still works. But using it will always create a corresponding entry in the scheduler
The check in preupgrade.jar is only checking for inconsistencies or any issues

즉, DBMS_JOB를 계속 사용할 수 있지만, DBMS_Scheduler를 사용한다는 것입니다.내부 절차가 변경되었습니다.호출도 동일한 방식으로 작동하지만 DBMS_JOB는 이제 DBMS_Scheduler에 대한 레거시 인터페이스입니다.

참조: DBMS_JOB 업그레이드Oracle 19c의 동작 변경

언급URL : https://stackoverflow.com/questions/4152111/dbms-job-vs-dbms-scheduler

반응형