Comment planifier un Oracle dbms_scheduler Travail fuseau horaire et heure d'été en toute sécurité

J'essaye de configurer un DBMS_SCHEDULER Travail à exécuter exactement à 1 h du matin le 1er janvier de chaque année sur Oracle 11g. Comment le programme d'installation de ses attributs pour être absolument sûr que cela ne exécuté dans la mauvaise heure, en raison des différences de fuseau horaire, ni de l'Heure d'été.

J'ai passé suffisamment de temps va par le biais de la documentation d'Oracle, mais je n'ai toujours pas atteint le niveau de certainity.

Juste btw, voici les règles que j'ai trouvé et jugent pertinentes pour le sujet:

Attributs de tâche

date_debut Cet attribut spécifie la première date à laquelle le présent travail est prévue pour commencer. Si date_debut et repeat_interval sont laissés à null, alors la tâche est planifiée pour s'exécuter dès que le travail est activé.
Pour la répétition de travaux qui utilisent un calendrier expression pour spécifier l'intervalle de répétition, date_debut est utilisée comme date de référence. La première fois que le travail sera planifiée pour s'exécuter est le premier match du calendrier de l'expression ou après la date actuelle.
Le Planificateur ne peut pas garantir que le travail sera exécuter sur l'heure exacte parce que le système est peut-être surchargé et donc des ressources indisponibles.

repeat_interval Cet attribut spécifie la fréquence à laquelle le travail doit se répéter. Vous pouvez spécifier l'intervalle de répétition en utilisant des calendriers ou des expressions PL/SQL.
L'expression spécifiée est évaluée pour déterminer le moment de la prochaine exécution de la tâche. Si repeat_interval n'est pas spécifié, le travail sera exécuté qu'une seule fois à la date de début spécifié. Voir "Calendrier de la Syntaxe" pour de plus amples informations.

Règles dans le Calendrier la syntaxe

  • Le calendrier de la syntaxe ne permet pas de spécifier un fuseau horaire.
    Au lieu de cela le Planificateur récupère le fuseau horaire de la date_debut
    argument. Si l'emploi doit suivre l'avancée des ajustements, vous devez
    assurez-vous que vous spécifiez un nom de région pour le fuseau horaire de l'
    date_debut. Par exemple, la spécification de la date_debut fuseau horaire
    'NOUS/Orientale" dans l'état de New York assurez-vous que l'heure d'été
    des ajustements sont appliqués automatiquement. Si, au contraire, le temps de la zone de
    le date_debut est fixé à un décalage absolu, comme '-5:00',
    l'heure d'été ajustements ne sont pas respectées et votre exécution du travail
    seront décalés d'une heure de la moitié de l'année.
  • Quand date_debut est NULL, le Planificateur permettra de déterminer le fuseau horaire pour l'intervalle de répétition comme suit:
  • Il vérifie si la session de fuseau horaire est un nom de région. La session de fuseau horaire peut être réglé soit:
    L'émission d'un ALTER SESSION énoncé, par exemple: SQL> ALTER SESSION
    SET time_zone = 'Asia/Shanghai"; Réglage de la ORA_SDTZ environnement
    variable.
  • Si la session de fuseau horaire est un décalage absolu au lieu d'un nom de région, le Planificateur va utiliser la valeur de la DEFAULT_TIMEZONE Planificateur attribut. Pour plus d'informations, voir la SET_SCHEDULER_ATTRIBUTE Procédure.
  • Si le DEFAULT_TIMEZONE attribut est NULL, le Planificateur va utiliser le fuseau horaire de systimestamp lorsque le travail ou la fenêtre est activée.
ne serait-il pas d'horaire pour le 01/01/20xx 01:00 dans les locaux de "l'horloge" temps du serveur de base de données? Avez-vous essayer d'exécuter un test?
Pour être honnête, c'est trop vague pour moi. Qu'entendez-vous par l'établissement du programme local de l'horloge? Comment les attributs de l'être ensemble? Et non, je n'ai pas fait beaucoup d'essais pour l'instant, puisque je le trouve un peu trop compliqué pour tester les modifications de fuseau Horaire, les modifications d'heure d'été et toujours pas la certitude que c'est correct.

OriginalL'auteur Javo | 2014-01-15