2013-01-21 5 views
13

Quando si configura LogShipping per SQL Server, è possibile scegliere che il database secondario sia in modalità Nessun recupero o Standby. Nessun recupero significa che non hai accesso al database mentre la spedizione dei log è attiva. La modalità standby consente l'accesso in sola lettura e, se si seleziona l'opzione per disconnettere gli utenti ogni volta che si verifica un ripristino, sembra che non interferisca con il processo di distribuzione dei registri. Questo mi sembra un ulteriore vantaggio della modalità standby, ma per quanto posso vedere la documentazione non menziona alcun effetto negativo.Log-Shipping: Perché scegliere una modalità di recupero?

Mi chiedo quindi perché qualcuno dovrebbe scegliere di utilizzare la modalità No Recovery? Le uniche ragioni plausibili a cui posso pensare sono se la modalità Standby ha causato una degressazione delle prestazioni significativa (ma non si parla di qualcosa di simile nei documenti), o se c'è qualche requisito di sicurezza per impedire attivamente a chiunque di vedere il contenuto del database secondario (che sembrerebbe raro/improbabile).

Qualcuno può chiarirmi qual è il vantaggio di scegliere la modalità No Recovery?

+7

Non capisco perché questo è considerato fuori tema. La FAQ collegata include i criteri "• strumenti software comunemente usati dai programmatori". Log-Shipping è una parte di SQL Server che è molto comunemente usata dai programmatori, e infatti una ricerca di StackOverflow mostra che le domande su LogShipping vengono poste e risposte qui. – PhantomDrummer

risposta

16

Quando si utilizza la modalità NORECOVERY, non verrà dato alcun accesso al database di destinazione, quindi il database non deve preoccuparsi delle transazioni non vincolate. Il registro può essere ripristinato "così com'è" e lasciato in quello stato.

Quando si utilizza la modalità STANDBY, il database viene ripristinato come NORECOVERY, quindi analizza e ripristina tutte le transazioni non salvate nel registro. Può quindi dare accesso in sola lettura agli utenti. Quando viene ripristinato il registro successivo, il database disconnette tutti gli utenti e ripristina nuovamente le transazioni senza commit dall'ultimo log in avanti prima del ripristino.

Come si può vedere, STANDBY ha un overhead extra potenzialmente elevato al ripristino, a seconda del volume della transazione.

Maggiori dettagli at this article at My World of SQL.