Progettazione del monitoraggio del lavoro del database

2

Ho diversi database Oracle in cui sono in esecuzione le mie applicazioni interne. Queste applicazioni utilizzano sia dba_jobs che dba_scheduler_jobs .

Voglio scrivere la funzione di monitoraggio: check_my_jobs che sarà chiamata periodicamente da Nagios per verificare se tutto è a posto con i miei lavori. (Corrono? È rotto? Il prossimo_run_dato è in ritardo? e così via)

Solutions:

A causa del fatto che devo monitorare i lavori su diversi database, ci sono due modi per implementare la soluzione:

  1. Crea funzioni di monitoraggio e tabelle di configurazione solo su un database che controllerà i lavori su ogni database utilizzando il collegamento Database.

    pros: Funzionalità centralizzata, facile da mantenere.
    contro: Devo fare un controllo usando il link Database.

  2. Crea funzioni di monitoraggio e tabelle di configurazione in ogni database in cui voglio controllare i lavori.

    pros: Non devo usare DB link
    contro: codice di monitoraggio duplicato su ogni database

Quale soluzione è migliore?

    
posta mariami 07.02.2018 - 13:13
fonte

1 risposta

0

Non penso che ci sia una risposta giusta qui - ma ci sono alcune considerazioni che non menzioni sopra:

  • Affidabilità - La soluzione di collegamento DB crea un singolo punto di errore (o più precisamente uno aggiuntivo). Dal momento che questo è il monitoraggio, non sembra ideale.
  • Memoria credenziali: è necessario memorizzare le credenziali per la connessione. Nel caso di collegamento DB questi sono memorizzati nel collegamento DB (che è piuttosto sicuro se lo si crea da un account privilegiato). Assicurati di disporre di una soluzione di archiviazione delle credenziali sicura per l'altro caso. Dovrai anche valutare l'overhead quando le credenziali vengono ruotate.
  • Prestazioni - I collegamenti DB tendono ad essere un po 'chiacchieroni - non ideali per interazioni complesse su reti geografiche estese
  • Incapsulamento - Dal punto di vista della sicurezza, dovresti pensare ai minimi privilegi e all'incapsulamento della funzione come funzioni PL / SQL incapsulate. In 12c è possibile assegnare ruoli a quelle funzioni PL / SQL che non sono generalmente assegnate all'utente. Quel modello di incapsulamento / minimo privilegio richiederebbe il codice su ogni database.

L'argomento sull'affidabilità mi farebbe propendere per il modello distribuito

    
risposta data 17.02.2018 - 20:05
fonte

Leggi altre domande sui tag