Θερινή/χειμερινή ώρα και εξυπηρετητές ώρας δικτύου

Η θερινή/χειμερινή ώρα και οι εξυπηρετητές ώρας δικτύου επηρεάζουν την τρέχουσα ώρα σε έναν εξυπηρετητή. Στις υπηρεσίες μεταφοράς δεδομένων, χρησιμοποιούνται αποτυπώματα χρόνου για να καθοριστεί το πότε οι εξυπηρετητές θα ελέγχουν για νέα δεδομένα και θα εκτελούν μεταφορά δεδομένων. Αλλαγές στο ρολόι του συστήματος επηρεάζουν τα λειτουργικά τμήματα υπηρεσιών δεδομένων και την απόδοσή τους.

Η μη αυτόματη μετακίνηση του ρολογιού του συστήματος επηρεάζει επίσης το χρόνο. Η συμπεριφορά του συστήματος επηρεάζεται με τον ίδιο τρόπο, ανεξάρτητα της μεθόδου που χρησιμοποιείται για τη μετακίνηση του ρολογιού. Οι ανεπιθύμητες καθυστερήσεις στις υπηρεσίες μεταφοράς δεδομένων προκύπτουν όταν το ρολόι συστήματος μετακινείται χρονικά προς τα πίσω. Οι καθυστερήσεις δεν προκύπτουν όταν το ρολόι συστήματος μετακινείται χρονικά προς τα εμπρός, παρόλο που τα λειτουργικά τμήματα υπηρεσιών μετακίνησης δεδομένων θα φτάσουν συντομότερα στα προγραμματισμένα διαστήματα.

Αποτέλεσμα αλλαγής ώρας στα λειτουργικά τμήματα

Αν το ρολόι συστήματος μετακινηθεί χρονικά προς τα πίσω, τα λειτουργικά τμήματα που επηρεάζονται θα έχουν ρυθμίσει τα εσωτερικά αποτυπώματα χρόνου τους χρονικά προς το μέλλον αλλά το ρολόι συστήματος θα είναι ρυθμισμένο στο παρελθόν. Το ρολόι συστήματος, αυτά τα εσωτερικά αποτυπώματα χρόνου και οι παράμετροι που δηλώνουν τα χρονικά διαστήματα θα επηρεαστούν από την αλλαγή του ρολογιού συστήματος.

Αν το ρολόι συστήματος μετακινηθεί χρονικά προς τα πίσω, τότε τα λειτουργικά τμήματα που επηρεάζονται θα έχουν ρυθμίσει τα εσωτερικά αποτυπώματα χρόνου τους στο παρελθόν και το τρέχον αποτύπωμα χρόνου του ρολογιού συστήματος έχει ρυθμιστεί στο μέλλον. Αυτό είναι παρόμοιο με την κανονική συμπεριφορά του ρολογιού συστήματος. Η διαφορά είναι ότι μερικές μετρήσεις χρόνου που περιλαμβάνουν τον καθορισμό της επόμενης προγραμματισμένης εκτέλεσης ή τον καθορισμό του κύκλου ζωής μιας καταχώρησης στη βάση δεδομένων θα επηρεαστούν. Ο πραγματικός χρόνος που μεσολάβησε θα είναι λιγότερος από τον υπολογισμένο χρόνο που μεσολάβησε.

Παράδειγμα: Μια καταχώρηση πρόκειται να παραμείνει στο σύστημα για 24 ώρες αφού εγκριθεί για διαγραφή. Έστω ότι μια καταχώρηση εγκρίνεται για διαγραφή την Τρίτη στις 3 μμ. Σε αυτό το σημείο, λόγω της πολιτικής διατήρησης για 24 ώρες, η καταχώρηση ενδέχεται να διαγραφεί ανά πάσα στιγμή μετά τις 3 μμ την Τετάρτη. Επίσης, έστω ότι την Τρίτη στις 3:01 μμ το ρολόι συστήματος ρυθμίζεται χρονικά προς τα εμπρός στις 3:01 μμ την επόμενη Παρασκευή. Αντίστοιχα, ακόμα και αν έχει περάσει μόνο 1 λεπτό σε πραγματικό χρόνο που έχει παρέλθει, ο χρόνος συστήματος που έχει παρέλθει θα είναι τρεις μέρες και 1 λεπτό, οπότε η περίοδος διατήρησης 24 ωρών για αυτή την καταχώρηση θα έχει ικανοποιηθεί. Αυτό σημαίνει ότι λόγω της αλλαγής ώρας η καταχώρηση μπορεί να αφαιρεθεί γρηγορότερα παρά αν το ρολόι συστήματος δεν είχε αλλάξει.

Άλλο παράδειγμα: Ένα συγκεκριμένο λειτουργικό τμήμα ETL εκτελείται κάθε 24 ώρες και αμέσως μετά το ρολόι συστήματος μετακινείται εμπρός 26 ώρες. Αντί να περιμένει 24 ώρες που απαιτούνται σε πραγματικό χρόνο πριν την επόμενη εκτέλεση, το λειτουργικό τμήμα ETL θα εκκινήσει ξανά το συντομότερο δυνατόν. Αυτό συμβαίνει λόγω του υπολογισμού του συστήματος ότι έχουν παρέλθει τουλάχιστον 26 ώρες από την τελευταία εκτέλεση. Στην πραγματικότητα, η μετακίνηση του ρολογιού προς τα εμπρός έχει μειώσει το διάστημα του ETL σε αυτή την περίπτωση. Το λειτουργικό τμήμα ETL θα συνεχίσει κανονικά μετά την εκτέλεση στο καθορισμένο διάστημα εφόσον δεν πραγματοποιηθούν άλλες αλλαγές στο ρολόι συστήματος.

Οι ενότητες που ακολουθούν εστιάζουν μόνο στη μετακίνηση του ρολογιού προς τα πίσω μετά την εκτέλεση των λειτουργικών τμημάτων πριν τη ρύθμιση του ρολογιού προς τα πίσω.

Το λειτουργικό τμήμα συλλογής θα συνεχίσει να συλλέγει αλλαγές σε κάθε πίνακα που παρακολουθεί. Ο υπολογισμός χρόνου χρησιμοποιείται για να καθοριστεί ο χρόνος οριστικοποίησης των αλλαγών αυτών και της διάθεσής τους στο λειτουργικό τμήμα εφαρμογής και το λειτουργικό τμήμα κύκλου ζωής προέλευσης. Το λειτουργικό τμήμα συλλογής κατά πάσα πιθανότητα θα διαθέτει στο μέλλον εσωτερικά επισημασμένο αποτύπωμα χρόνου. Δεν θα οριστικοποιήσει την συναλλαγή μέχρι το εσωτερικό ρολόι να είναι μεγαλύτερο από το εσωτερικό επισημασμένο αποτύπωμα χρόνου και επιπλέον κάποια εσωτερική παράμετρο για το διάστημα μεταξύ των οριστικοποιήσεων. Σε αυτή την περίπτωση, αν το ρολόι συστήματος μετακινηθεί 1 ώρα προς τα πίσω, τότε το χειρότερο αποτέλεσμα είναι ότι οποιαδήποτε συναλλαγή πραγματοποιηθεί τη νέα ώρα δεν θα είναι διαθέσιμη μέχρι να παρέλθει αυτή η ώρα. Αν το ρολόι ήταν ρυθμισμένο ένα έτος πίσω, τότε θα χρειαζόταν ένα έτος για να καλύψει το σύστημα τη διαφορά.
Σημείωση: Το λειτουργικό τμήμα συλλογής πραγματοποιεί οριστικοποίηση μετά από ένα συνιστώμενο αριθμό συναλλαγών του οποίου η προεπιλεγμένη τιμή είναι 120. Είναι δυνατόν να διατίθενται νέα δεδομένα στα λειτουργικά τμήματα εφαρμογής και κύκλου ζωής προέλευσης νωρίτερα από ότι έχει οριστεί.

Το λειτουργικό τμήμα εφαρμογής διατηρεί επίσης ένα εσωτερικό αποτύπωμα χρόνου το οποίο καθορίζει το χρόνο αναζήτησης για νέες καταχωρήσεις. Σε αυτό το σενάριο το εσωτερικό αποτύπωμα χρόνου θα είναι μεγαλύτερο από το τρέχον αποτύπωμα χρόνου του συστήματος. Το λειτουργικό τμήμα εφαρμογής αναμένει μέχρι το αποτύπωμα χρόνου του συστήματος να καλύψει τη διαφορά με το εσωτερικό αποτύπωμα χρόνου, ακόμα και αν διατίθενται νέες καταχωρήσεις. Μόλις το τρέχον αποτύπωμα χρόνου καλύψει τη διαφορά, θα ξεκινήσει την αναζήτηση για καταχωρήσεις που διατίθενται για μετακίνηση δεδομένων.

Τα αποτυπώματα χρόνου δεν καθορίζουν ποιες σειρές θα αναπαραχθούν. Αυτό καθορίζεται από μια εσωτερική τιμή η οποία δεν επηρεάζεται από το ρολόι συστήματος. Τα λειτουργικά τμήματα κύκλου ζωής προέλευσης και προορισμού χρησιμοποιούν επίσης αποτυπώματα χρόνου για τον καθορισμό του χρόνου έναρξης και των καταχωρήσεων που πρόκειται να περικοπούν.

Το λειτουργικό τμήμα κύκλου ζωής προέλευσης στην υπηρεσία μετακίνησης δεδομένων κατάστασης σε εκτέλεσης χρησιμοποιεί μόνο αποτυπώματα χρόνου για τον καθορισμό του χρόνου εκκίνησης. Δεν χρησιμοποιεί αποτυπώματα χρόνου για τον καθορισμό των στοιχείων που θα περικοπούν. Αυτό το λειτουργικό τμήμα σε αυτή την υπηρεσία δεν υποστηρίζει τη λειτουργία πολιτικής διατήρησης που επιτρέπει στις επιλεγμένες για περικοπή πληροφορίες να υφίστανται για ορισμένη χρονική περίοδο πολιτικής διατήρησης. Ωστόσο, αυτή η λειτουργία υφίσταται στο λειτουργικό τμήμα κύκλου ζωής προέλευσης για την υπηρεσία μετακίνησης δεδομένων από τη βάση δεδομένων εκτέλεσης στη βάση δεδομένων ιστορικού. Ορισμένες καταχωρήσεις δεν πληρούν τα κριτήρια της πολιτικής διατήρησης μέχρι το τρέχον ρολόι συστήματος καλύψει τη διαφορά. Τα λειτουργικά τμήματα κύκλου ζωής προορισμού και στις δύο υπηρεσίες μετακίνησης δεδομένων υποστηρίζουν τον ορισμό της πολιτικής διατήρησης έτσι ώστε οποιαδήποτε αλλαγή στο χρόνο να επηρεάζει το χρόνο εκτέλεσής τους καθώς και το τι περικόπτουν.

Τα λειτουργικά τμήματα ETL χρησιμοποιούν αποτυπώματα χρόνου ως μέρος του εσωτερικού τους προγραμματισμού. Αφού ξεκινήσουν, αυτά τα λειτουργικά τμήματα αναμένουν αύξηση του χρόνου. Όταν το ρολόι συστήματος μετακινηθεί χρονικά προς το παρελθόν, επηρεάζεται ο προγραμματισμός του ETL και δεν εκτελείται κανένα ETL μέχρι να καλύψει το σύστημα τη διαφορά.

Τα πιθανά σενάρια του ρολογιού συστήματος είναι τα εξής:

Αποκατάσταση

Η αποκατάσταση κατά τη διάρκεια αλλαγής που πραγματοποιήθηκε από εξυπηρετητή χρόνου δεν είναι απαραίτητη επειδή οι διαφορές ώρας είναι πολύ μικρές της τάξης των λίγων λεπτών. Το αποτέλεσμα θα είναι ένα μικρό πλαίσιο χρόνου όπου τίποτα δεν συμβαίνει ενώ τα λειτουργικά τμήματα καλύπτουν τη διαφορά. Κατά τη διάρκεια μιας αλλαγής χρόνου, λόγω της αλλαγής σε θερινή ώρα, η χρονική επαναφορά προς τα πίσω έχει ως αποτέλεσμα τα λειτουργικά τμήματα να διακόψουν την αναπαραγωγή για μια ώρα και με την πάροδό της τα λειτουργικά τμήματα θα χρειαστεί να καλύψουν τη διαφορά με το σύστημα. Αν αυτό αποτελεί πρόβλημα, εξαρτάται από το σύστημα.

Ένα σενάριο κατά το οποίο αυτή η αναμονή θα μπορούσε να είναι σημαντική είναι όταν λαμβάνει χώρα κάποιο σφάλμα και ο χρόνος του συστήματος ρυθμίζεται κατά πολύ προς τα εμπρός, ενώ εκτελούνται οι εξυπηρετητές λειτουργικών τμημάτων. Τότε (ανεξαρτήτως εάν εκτελούνται οι εξυπηρετητές) ο χρόνος επαναφέρεται στον τρέχοντα χρόνο. Σε αυτή την περίπτωση, τα λειτουργικά τμήματα θα έχουν ρυθμίσει τα εσωτερικά αποτυπώματα χρόνου τους στο μέλλον αλλά θα εκτελούνται στο τρέχον χρονικό πλαίσιο. θα υπάρχει μια μακρόχρονη καθυστέρηση πριν η υπηρεσία μετακίνησης δεδομένων επεξεργαστεί οποιαδήποτε άλλη σειρά ξανά. Αυτή η καθυστέρηση θα μπορούσε να προκαλέσει μια είδους συσσώρευση στο σύστημα η οποία θα επηρέαζε το χρόνο αποκατάστασης. Ο διαχειριστής ενδέχεται να χρειαστεί να πραγματοποιήσει διορθωτική ενέργεια.

Διορθωτική ενέργεια

Μια επιλογή είναι απλά να υποχρεωθεί τα λειτουργικά τμήματα συλλογής και εφαρμογής να εκτελέσουν μια πλήρη ανανέωση και στη συνέχεια να ενημερώσουν τα εσωτερικά αποτυπώματα χρόνου για τον κύκλο ζωής προέλευσης, τον κύκλο ζωής προορισμού και τα λειτουργικά τμήματα του ETL.
  1. Αναγνωρίστε όλες τις βάσεις δεδομένων που εκτελούνται στον εξυπηρετητή όπου μετακινήθηκε ο χρόνος προς τα εμπρός και στη συνέχεια επέστρεψε πίσω στο παρελθόν. Υπάρχουν δύο δυνατότητες: Βάσεις δεδομένων κατάστασης και εκτέλεσης ή βάσεις δεδομένων εκτέλεσης και ιστορικού.
  2. Διακόψτε τη λειτουργία όλων των εξυπηρετητών που υποστηρίζουν τις υπηρεσίες μετακίνησης δεδομένων στο σύστημα που επηρεάζεται. Κατά τη διάρκεια αυτής της διαδικασίας, θα τροποποιήσετε εσωτερικές παραμέτρους και ορισμένα λειτουργικά τμήματα ενδέχεται να αποσυγχρονιστούν αν επιτραπεί η εκτέλεσή τους. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Έναρξη και διακοπή υπηρεσίας μετακίνησης δεδομένων.
  3. Τροποποιήστε τα εσωτερικά αποτυπώματα χρόνου των λειτουργικών τμημάτων κύκλου ζωής προέλευσης και των λειτουργικών τμημάτων κύκλου ζωής προορισμού.
    Σημείωση: Αυτή η ενέργεια ενδέχεται να αλλάξει από έκδοση σε έκδοση.
    1. Ενημέρωση αποτυπωμάτων χρόνου περικοπής του κύκλου ζωής προέλευσης. Με αυτόν τον τρόπο τροποποιούνται οι ρυθμίσεις για όλα τα λειτουργικά τμήματα κύκλου ζωής προέλευσης που εξυπηρετούν όλα τα μοντέλα επιχειρησιακών μέτρων στο σύστημα.
      Επιβεβαιώστε τις τρέχουσες ρυθμίσεις:
      connect to <source_database>
      SELECT PC.TABLE_NAME, PC.RETENTION_IN_MINUTES, PC.LAST_PRUNED, PC.PRUNE_INTERVAL, CURRENT TIMESTAMP as "CURRENT TIMESTAMP"
      FROM WBIRMADM.RMPRUNECTRL PC
      WHERE PC.TABLE_NAME LIKE 'APP%'
      Σημείωση: Αναθεωρήστε τις τιμές για τα LAST_PRUNED, PRUNE_INTERVAL και CURRENT TIMESTAMP. Αποφασίστε αν θέλετε να εκτελέσετε περικοπή άμεσα ή κατά το επόμενο διάστημα.
      -- Για τιμή TO RUN το συντομότερο δυνατόν.
      UPDATE WBIRMADM.RMPRUNECTRL SET (LAST_PRUNED)=(CURRENT TIMESTAMP - PRUNE_INTERVAL MINUTES)
      WHERE TABLE_NAME LIKE 'APP%';
      -- Για τιμή TO RUN κατά το επόμενο διάστημα
      UPDATE WBIRMADM.RMPRUNECTRL SET (LAST_PRUNED)=(current timestamp)
      WHERE TABLE_NAME LIKE 'APP%';
      connect reset;
    2. Ενημέρωση αποτυπωμάτων χρόνου περικοπής του κύκλου ζωής προορισμού.
      CONNECT TO <target_database>
      SELECT PC.TABLE_NAME, PC.RETENTION_IN_MINUTES, PC.LAST_PRUNED, PC.PRUNE_INTERVAL,
      CURRENT TIMESTAMP as "CURRENT TIMESTAMP"
      FROM WBIRMADM.RMPRUNECTRL PC
      WHERE PC.TABLE_NAME NOT LIKE 'APP%';
      Σημείωση: Αναθεωρήστε τις τιμές για τα LAST_PRUNED, PRUNE_INTERVAL και CURRENT TIMESTAMP. Αποφασίστε αν επιθυμείτε την άμεση εκτέλεση περικοπής ή κατά το επόμενο διάστημα.
      -- Για τιμή TO RUN το συντομότερο δυνατόν.
      UPDATE WBIRMADM.RMPRUNECTRL SET (LAST_PRUNED)=(CURRENT TIMESTAMP - PRUNE_INTERVAL MINUTES)
      WHERE TABLE_NAME NOT LIKE 'APP%';
      -- Για τιμή TO RUN κατά το επόμενο διάστημα
      UPDATE WBIRMADM.RMPRUNECTRL SET (LAST_PRUNED)=(current timestamp)
      WHERE TABLE_NAME NOT LIKE 'APP%';
    3. Ενημέρωση προγράμματος ETL.
      Σημείωση: Με αυτόν τον τρόπο επηρεάζονται όλες οι δραστηριότητες ETL σε όλα τα μοντέλα.
      CONNECT TO <TARGET>
      -- Αυτό το ερώτημα εμφανίζει
      SELECT TARGETTABLE, TGT_RM_SPETL_NAME, ETL_0_MINUTES, NEXTSTARTTIME, LASTUPDATED,
      CURRENT TIMESTAMP as "CURRENT TIMESTAMP" FROM WBIRMADM.RMCONTROL;
      Σημείωση: Οι τιμές για τα ETL_0_MINUTES, NEXTSTARTTIME και LASTUPDATED σε σύγκριση με το CURRENT TIMESTAMP.
      --  Για τιμή TO Run κατά το επόμενο διάστημα
      UPDATE WBIRMADM.RMCONTROL SET (NEXTSTARTTIME, LASTUPDATED)=
      (CURRENT TIMESTAMP + ETL_0_MINUTES MINUTES, CURRENT TIMESTAMP);
      -- Για τιμή To Run το συντομότερο δυνατόν.
      UPDATE WBIRMADM.RMCONTROL SET (NEXTSTARTTIME, LASTUPDATED)=
      (CURRENT TIMESTAMP,CURRENT TIMESTAMP-ETL_0_MINUTES MINUTES);
      CONNECT RESET
    4. Επιβολή πλήρους ανανέωσης. Ο απλούστερος τρόπος να επιβάλλετε μια πλήρη ανανέωση των εξυπηρετητών αναπαραγωγής συλλογής και εφαρμογής είναι να αντιγράψετε και να τροποποιήσετε τα σενάρια StartCapture για κάθε μοντέλο επιχειρησιακών μέτρων. Βρείτε κάθε σενάριο έναρξης συλλογής για κάθε μοντέλο που υλοποιείται στο σύστημα (αν έχετε ακολουθήσει τις οδηγίες που βρίσκονται στην βασική ενότητα σεναρίων εκκίνησης και τερματισμού και στη συνέχεια βρείτε κάθε εντολή asncap ) και προσθέστε την παράμετρο: STARTMODE=COLD στο τέλος της γραμμής εντολών.
      Σημείωση: Μια πλήρη ανανέωση αποτελεί ακραία περίπτωση και ενδέχεται να οδηγήσει σε χαμηλή απόδοση μέχρι να ολοκληρωθεί η πλήρης ανανέωση. Αυτό οφείλεται στο γεγονός ότι η πλήρης ανανέωση προσθέτει επιπλέον επιβάρυνση η οποία υπό κανονικές συνθήκες δεν υφίσταται κατά τις κανονικές λειτουργίες υπηρεσιών δεδομένων. Συνεπώς είναι σημαντικό να πραγματοποιείται πλήρης ανανέωση όταν δεν χρησιμοποιείται υπερβολικά το σύστημα. Η απόδοση της πλήρους ανανέωσης εξαρτάται σε μεγάλο βαθμό από το μέγεθος των δεδομένων στη βάση δεδομένων προέλευσης μιας υπηρεσίας μετακίνησης δεδομένων.

      Παράδειγμα:

      Πριν:
      db2cmd asncap CAPTURE_SERVER=STATE CAPTURE_SCHEMA=CAPTURE_1 CAPTURE_PATH="."
      Μετά:
      db2cmd asncap CAPTURE_SERVER=STATE CAPTURE_SCHEMA=CAPTURE_1 CAPTURE_PATH="." STARTMODE=COLD
      Στη συνέχεια εκκινήστε όλα τα σενάρια. Αυτή η πλήρης ανανέωση θα έχει ως αποτέλεσμα την επαναφορά όλων των εσωτερικών αποτυπωμάτων χρόνου για τα λειτουργικά τμήματα συλλογής και εφαρμογής αλλά θα συμπεριλάβει το επιπλέον κόστος για τη μετακίνηση και την επανεπεξεργασία των δεδομένων. Είναι σημαντικό να αναμένετε πιθανή μείωση της απόδοσης ενώ το σύστημα καλύπτει τη διαφορά.

Copyright IBM Corporation 2005, 2006. Με την επιφύλαξη παντός δικαιώματος.