Citation Envoyé par Bluedeep Voir le message
Tous les services (a fortiori Sql Server) ont une méthode de terminaison "propre".
Je ne suis pas convaincu. Lorsqu'il reçoit un SERVICE_CONTROL_STOP, SQL Server effectue un checkpoint dans chaque base et termine les connexions en cours. Au redémarrage, un recovery sera effectué. S'il y avait une grosse transaction en cours, la mise en ligne de la base sera d'autant rallongée (sauf fast recovery en édition Enterprise, encore que... de toutes façons les pages impliquées dans le rollback seront verrouillées donc pas accessibles à la fin du REDO):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
(...)
Analysis of database 'CAPDATA' (5) is 75% complete (approximately 0 seconds remain). This is an informational message only. No user action is required.
Analysis of database 'CAPDATA' (5) is 100% complete (approximately 0 seconds remain). This is an informational message only. No user action is required.
Recovery of database 'CAPDATA' (5) is 0% complete (approximately 83 seconds remain). Phase 2 of 3. This is an informational message only. No user action is required.
Using 'xpstar90.dll' version '2005.90.4035' to execute extended stored procedure 'xp_readerrorlog'. This is an informational message only; no user action is required.
Recovery of database 'CAPDATA' (5) is 2% complete (approximately 44 seconds remain). Phase 2 of 3. This is an informational message only. No user action is required.
Recovery of database 'CAPDATA' (5) is 2% complete (approximately 44 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
(...)
Recovery of database 'CAPDATA' (5) is 100% complete (approximately 0 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
1 transactions rolled back in database 'CAPDATA' (5). This is an informational message only. No user action is required.
Recovery is writing a checkpoint in database 'CAPDATA' (5). This is an informational message only. No user action is required.
Recovery is complete. This is an informational message only. No user action is required.
(...)
Si ça fait suite à un arrêt électrique par exemple, et qu'au redémarrage un des disques du journal de transaction grille, le recovery ne pourra pas se faire sur la base et elle passera en suspect. C'est pour ça que je ne mettrai pas 10/10 à la méthode d'arrêt de SQL Server.

Sachant que contrairement à Sybase ASE qui attend la fermeture des connexions sur un 'shutdown' classique, le 'shudown' SQL Server termine lui aussi les transactions en cours comme un gros sagouin.