personalmente ti sconsiglio di "reinventare la ruota".
ci sono strumenti che esistono già, e sono affidabili? usali.
nel caso di backup di database non ha molto senso, a mio parere, usare metodi "applicativi", invece degli strumenti a corredo.
Ha senso nel caso in cui devi "paciugare" PRIMA i dati (es. storicizzarne alcuni per toglierli dai backup).
---
Nello stesso modo non ha un grandissimo senso usare una libreria per comprimere i dump: ci sono millemila programmi già fatti, robustissimi, e che funzionano benissimo.
E che, per inciso, usano anche più thread.
Tra questi non c'è bisogno di citare pbzip2, freearc e 7z (tra quelli utilizzabili, sennò c'è l'inossidabile rar)
----
Parimenti non ha un grandissimo senso (a mio parere) scrivere un servizio per una cosa del genere: fai una banalissima applicazione e buonanotte.
Per eseguirla... falla lanciare da un servizio (=> cobian) come finto task.
Fine degli sbattimenti, tempo massimo massimo 5 minuti, rischio errori praticamente zero.
----
L'elemento invece fondamentale è il reporting, ossia inventati un meccanismo che ti invii per posta elettronica il risultato dei backup verificati.
Qui entrano in gioco eventuali "paranoie" varie.
----
Per i file la cosa migliore (almeno per me) è quello di calcolare tutti gli hash dei file, compattare tutte le cartelle e sottocartelle in un singolo archivio, "salvarlo" da qualche parte (NAS etc), estrarre tutto il contenuto in cartella temporanea.
Verificare tutti gli hash della cartella temporanea.
Inviare per e-mail il risultato del confronto
----
Per i db la cosa è più complessa, anche qui dipende dal livello di "paranoicità".
Puoi fare il restore (in un db diverso) di tutto quanto, poi contare le righe di tutte le tabelle (originali e restorate) e farti spedire il risultato.
Se sei paranoico all'inverosimile (tipo me) puoi anche usare funzioni aggregate (somma tutti gli imponibili di tutte le righe del magazzino, del db originale e del restore, e verifica che siano uguali...)