web-dev-qa-db-fra.com

Ola Hallengren Sauvegarde Réessayer

Existe-t-il un moyen de faire une sauvegarde automatique à utiliser des scripts de sauvegarde de OLA Hallengren pour une seule base de données en cas de sauvegarde en cas d'échec? Vous recherchez un moyen de compléter la sauvegarde sans réexécuter tout le script.

4
Jessica

Malheureusement, le script lui-même n'a pas de chemin d'accès intégré pour réessayer une seule dB pour une sauvegarde s'il a échoué. Vous pouvez afficher l'ensemble des options de script ici sur le site de OLA .

Ce que je recommanderais (bien que cela puisse être un peu douloureux) est d'avoir une étape de travail distincte pour chaque dB et de spécifier la DB que vous souhaitez sauvegarder. Ensuite, dans chaque étape, vous pouvez ajouter les options de tentative.

Vous pouvez probablement commencer par créer un ou deux, puis appuyez sur le bouton de script de l'agent SQL. De là, vous pouvez copier et coller les sections de SQL qui créent chaque étape de travail ultérieure et apportent quelques altérations plutôt que de modifier manuellement les étapes de la tâche à travers l'interface graphique.

À partir de là, je commencerais à évaluer si les scripts de l'OLA répondent à mes besoins de mes organisations et je peux commencer à consulter d'autres options de sauvegarde telles que dbatools ou Minionware ou scripts de sauvegarde personnalisés. Vous pouvez également modifier les scripts OLA, mais cela sera significativement plus difficile. Il existe également des outils payants pouvant être évalués.

3
Shaulinator

Vous pouvez interroger le dbo.CommandLog table pour une sauvegarde réussie (puisque vous utilisez la solution de sauvegarde de OLA) ou même l'historique de MSDB pour vérifier que la sauvegarde est vraiment réussie ou non.

Sur la base de cela, si la sauvegarde a échoué, vous pouvez réessayer la sauvegarde.

Il y avait un problème déjà déposé (c'était pour la sauvegarde à Azure URL- mais MS a publié A correction hot-correction pour la manipulation des défaillances intermittentes - le problème est donc fermé), mais le problème Avec la manipulation Erreurs côté serveur est-ce à l'aide de la variable d'erreur - il vous donnera uniquement la dernière erreur.

Reportez-vous également à Trois cas où la solution de maintenance de l'OLA Hallengren ne sauvegarder pas une base de données

Maintenant, si vous utilisez dbatools (que je recommande vivement)

  • Continuez toujours à utiliser la solution de OLA. Tu devrais utiliser Invoke-DbaQuery et en requête -Query 'EXECUTE dbo.DatabaseBackup ..' avec -EnableException SomeExceptionErrorMessage changer. Ensuite, vous pouvez simplement utiliser la variable SomeExceptionErrorMessage pour vérifier les erreurs ou les avertissements et implémenter une logique de tentative.
  • Basculer pour utiliser dbatools natif - Backup-DbaDatabase avec -EnableException SomeExceptionErrorMessage changer.

Sinon, vous pouvez simplement ajouter une étape supplémentaire dans votre travail d'agent SQL pour vérifier le commandLog or msdb for successful backup et sur la base de cela, vous pouvez appeler votre travail de sauvegarde à nouveau.

3
Kin Shah