Domanda

Ho un database che contiene i dati più recenti e desidero replicare il contenuto del database in alcuni altri server. Per motivi non tecnici, non posso utilizzare direttamente la funzione di replica o la funzione di sincronizzazione per la sincronizzazione con altre istanze di SQL Server.

Ora ho due soluzioni e voglio imparare i pro e i contro di ogni soluzione. Grazie!

Soluzione 1: scollegare il database di origine che contiene i dati più recenti, quindi copiarlo sui server di destinazione che richiedono i dati più recenti e collegare il database ai server di destinazione;

Soluzione 2: eseguire un backup completo del server di origine per l'intero database, quindi copiare i dati sui server di destinazione e eseguire un ripristino completo sul lato server di destinazione.

grazie in anticipo, George

È stato utile?

Soluzione

L'opzione Stacca / Collega è spesso più rapida dell'esecuzione di un backup in quanto non è necessario creare un nuovo file. Pertanto, il tempo dal server A al server B è quasi esclusivamente il tempo di copia del file.

L'opzione Backup / Ripristino consente di eseguire un backup completo, ripristinarlo, quindi eseguire un backup differenziale, il che significa che i tempi di inattività possono essere ridotti tra i due.

Se stai cercando la replica dei dati, significa che vuoi che il database funzioni in entrambe le posizioni? In tal caso, probabilmente si desidera l'opzione di backup / ripristino in quanto ciò lascerà il database corrente perfettamente funzionante.

EDIT: solo per chiarire alcuni punti. Per tempo di inattività intendo che se si sta migrando un database da un server a un altro, in genere si fermerà le persone che lo utilizzano mentre è in transito. Pertanto, da " stop " punto sul server A fino a " start " punto sul Server B questo potrebbe essere considerato tempo di inattività. In caso contrario, qualsiasi azione eseguita sul database sul server A durante il transito non verrà replicata sul server B.

Per quanto riguarda " crea un nuovo file " ;. Se si stacca un database, è possibile copiare immediatamente il file MDF. È già lì pronto per essere copiato. Tuttavia, se si esegue un backup, è necessario attendere la creazione del file .BAK e quindi spostarlo nella nuova posizione per un ripristino. Ancora una volta tutto questo si riduce a questa è una copia di istantanea o una migrazione.

Altri suggerimenti

Il backup e il ripristino ha molto più senso, anche se invece si potrebbe ottenere qualche minuto in più da un'opzione di scollegamento di collegamento. È necessario portare offline il database originale (disconnettere tutti) prima di un distacco, quindi il db non è disponibile fino a quando non si ricollega. Devi anche tenere traccia di tutti i file, mentre con un backup tutti i file sono raggruppati. E con le versioni più recenti di SQL Server i backup sono compressi.

E solo per correggere qualcosa: i backup del DB e i backup differenziali non troncano il registro e non interrompono la catena di registro.

Inoltre, la funzionalità COPY_ONLY è importante solo per la base differenziale, non per LOG. Tutti i backup dei log possono essere applicati in sequenza da qualsiasi backup supponendo che non vi siano interruzioni nella catena dei log. C'è una leggera differenza con il punto di archiviazione, ma non riesco a vedere dove sia importante.

La soluzione 2 sarebbe la mia scelta ... Principalmente perché non creerà tempi di inattività nel database di origine. L'unico svantaggio che riesco a vedere è che, a seconda del modello di recupero del database, il registro delle transazioni verrà troncato, il che significa che se si desidera ripristinare qualsiasi dato dal registro delle transazioni che si desidera inserire, è necessario utilizzare il file di backup.

EDIT: trovato un bel link; http://sql-server-performance.com/Community/ Forum / p / 5838 / 35573.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top