Definizione del problema
Il nostro server di database deve essere trasferito su un altro datacenter. Funziona su Microsoft SQL Server 2012 Enterprise (64 bit) e contiene due database di circa 2 TB e 1 TB.
Avere poco o nessun tempo morto per questo sarebbe l'ideale.
Carico di lavoro
Tali database vengono utilizzati per un sito Web .NET e vengono costantemente aggiornati.
Avere non disponibile durante il fine settimana sarebbe accettabile però. Il DB attualmente in uso rimarrà l'unico in uso fino al passaggio al nuovo.
Idealmente, questo passaggio verrebbe effettuato semplicemente modificando le voci DNS in modo che puntino al nuovo server DB assicurandosi che il DB non venga aggiornato.
Inoltre, il tempo impiegato da questa operazione non ha importanza fino a quando il passaggio da un server all'altro (downtime) è ridotto.
Approcci considerati
Backup e ripristino
Ciò è stato fatto in passato ma ha comportato tempi di inattività elevati anche se è stato effettuato attraverso una rete interna, in modo più efficiente rispetto a Internet
Log shipping
Per quanto ho capito, questo approccio minimizzerebbe i tempi di inattività configurando un master / slave e trasferendo una copia esatta del DB master al suo slave in sola lettura. Come accennato in precedenza, non sarebbe necessario l'accesso allo slave e abbiamo solo bisogno di un modo per avere una replica del DB master senza corruzione dei dati.
Sembra anche essere abbastanza efficiente in termini di utilizzo delle risorse e non influirebbe molto sulle prestazioni principali.
Potrei sbagliarmi su questo approccio, quindi sentiti libero di correggermi.
Mirroring del database
Non sono troppo consapevole di questo approccio ma sembra un'opzione valida. Non è necessario avere la sincronizzazione in tempo reale e le prestazioni del master sono piuttosto importanti, quindi sarebbe asincrono la strada da percorrere se si dovesse scegliere questo approccio.
Altre opzioni?
Quel server funziona direttamente su hardware bare metal, quindi le soluzioni di livello inferiore non sono purtroppo un'opzione. Forse c'è un modo migliore per farlo?
vincoli
Come descritto, quei database sono abbastanza grandi al punto che sono difficili da mantenere ma questo è un altro problema.
Le versioni di SQL Server saranno le stesse (Microsoft SQL Server 2012 Enterprise 64-bit).
Dovrà essere trasferito in rete tra due datacenter, quindi molto probabilmente su Internet. Sfortunatamente avere dischi inviati da un sito all'altro per una sincronizzazione iniziale non è purtroppo un'opzione. Avere una sorta di sicurezza per il trasferimento sarebbe l'ideale ma faremo il meglio di questa situazione.
Ciò dovrebbe fornire una panoramica abbastanza buona delle nostre esigenze per questo compito e spero che alcuni di voi abbiano dovuto affrontare quella situazione prima.