web-dev-qa-db-fra.com

Message de sauvegarde du serveur SQL

Pourriez-vous s'il vous plaît donner quelques précisions sur le message de sauvegarde du serveur SQL

Par exemple :

LA BASE DE DONNÉES DE SAUVEGARDE a traité avec succès 19696388 pages en 1945,648 secondes (79,088 Mo/sec).

Par exemple, nous avons un disque avec une base de données et nous avons un disque séparé pour la sauvegarde, cela signifie-t-il que 79 Mo/s est qu'un disque lit les données pour la sauvegarde à une vitesse de 40 Mo/sec et un autre disque écrit des données à la vitesse de 40 Mo et en somme cela nous donne une vitesse de 79 Mo/sec, est-ce correct?

5
Alexandr

Permet d'abord d'éliminer le concept de fils de lecture/écriture

Lors d'une sauvegarde, SQL Server crée un thread de lecture pour chaque volume sur lequel résident les fichiers de base de données. Le fil de lecture lit simplement le contenu des fichiers. Chaque fois qu'il lit une partie du fichier, il les stocke dans un tampon. Il y a plusieurs tampons en cours d'utilisation, donc le thread de lecture continuera à lire tant qu'il y aura des tampons libres pour écrire. SQL Server crée également un thread d'écriture pour chaque périphérique de sauvegarde pour écrire le contenu des tampons sur le disque ou la bande. Le thread d'écriture écrit les données du tampon sur le disque ou la bande. Une fois les données écrites, le tampon peut être réutilisé par le thread lecteur.

Source

Réponse

Alors oui, pendant que les threads de lecture lisent les pages et que les threads d'écriture écrivent les pages sur le disque séparé, le temps de traitement des pages sera affecté par les deux.

Mais , cela ne signifie pas que le79.088 MB/sec sera divisible par 2.

Cela signifie que l'opération de lecture s'exécutait à ~79.088MB/sec et l'opération d'écriture s'exécutait également à ~79.088MB/sec. La vitesse est déterminée par la plus lente de ces deux opérations car les deux opérations lisent et écrivent à partir de plusieurs tampons ( tant que BUFFERCOUNT est correctement défini/n'est pas ajouté à la commande) .

En conséquence, ces tampons se remplissant trop lentement/ne sont pas effacés assez rapidement est le goulot d'étranglement en action.

Une autre façon de valider cela est de calculer le MB/sec * durée de la sauvegarde. Cela correspondra à la taille de votre base de données moins l'espace disponible.


Test de la vitesse à laquelle vous pouvez lire

Si vous voulez connaître la quantité de données et la vitesse à laquelle elles peuvent être lues à partir du disque, vous pouvez effectuer une sauvegarde sur "NUL"

BACKUP DATABASE DBName TO DISK = 'NUL' WITH COPY_ONLY;

Dans mon cas, je me suis retrouvé avec 122.406 MB/sec


Test de la vitesse à laquelle vous pouvez écrire

Pour savoir à quelle vitesse vous pouvez écrire, vous pouvez utiliser Crystaldiskmark .

Utilisez Seq Q32T1 pour imiter les écritures de l'opération de sauvegarde.

Source

C'est ce qui apparaît sur mon lecteur cible lent, où je veux sauvegarder.

enter image description here


Mettre deux et deux ensemble

Si j'exécute ensuite une commande de sauvegarde de ma base de données qui réside sur le [~ # ~] d [~ # ~] (data) & [~ # ~] l [~ # ~] (log) lecteur sur le disque que j'ai précédemment vérifié avec CrystalDiskMark ( [~ # ~] e [~ # ~] ).

BACKUP DATABASE DBName TO DISK = 'E:\Folder\DbName.BAK';


Processed 703088 pages for database 'DbName', file 'Database' on file 1.
Processed 2 pages for database 'DbName', file 'Database' on file 1.
BACKUP DATABASE successfully processed 703090 pages in 50.198 seconds (109.424 MB/sec).

Nous voyons que la partie lecture de l'opération de sauvegarde est le goulot d'étranglement sur mon système.

12
Randi Vertongen

LA BASE DE DONNÉES DE SAUVEGARDE a réussi à traiter 19696388 pages en 1945,648 secondes (79,088 Mo/sec).

La vitesse que vous voyez ici est le résultat de division simple de l'ensemble backup durée par volume de données traitées.

Dans votre cas, la durée de la sauvegarde est 1945.648 s, le volume de données traité est 19696388 pages * 8Kb / 1024 = 153.878,03125 Mb

Le speed = 153.878,03125 Mb / 1945.648 s = 79,08831980399332 Mb/s et c'est ce dont parle le message.

Dans l'exemple de Randi Vertongen:

LA BASE DE DONNÉES DE SAUVEGARDE a traité avec succès 703090 pages en 50,198 secondes (109,424 Mo/sec).

Data volume = 703090 pages * 8Kb / 1024 = 5.492,890625 Mb

Le speed = 5.492,890625 Mb / 50.198 s = 109,4244915136061 Mb/s

Cela signifie seulement que votre backup speed est 79,088 et rien d'autre, il pourrait y avoir 19 secondes pour lire + 60 pour écrire, mais vous ne pouvez pas le déduire de la durée totale de l'opération et du volume traité.

5
sepupic