Domanda

Attualmente ho un sito Web asp.net ospitato su due server Web che si trovano dietro un bilanciamento del carico Cisco. I due server Web fanno riferimento a un singolo server di database MSSQL.

Poiché questo server database è un singolo punto di errore, sto aggiungendo un server MSSQL aggiuntivo per il backup. Vorrei impostare i miei file web.config per scrivere tutto su entrambi i server MSSQL, ma solo leggere dal "primario" server di database a meno che non sia irraggiungibile per qualche motivo, a quel punto verrebbe utilizzato il server MSSQL di backup.

È possibile tramite un'impostazione del file web.config o deve essere fatto nel codice? Grazie in anticipo per qualsiasi aiuto.

Nuove informazioni: Volevo solo aggiungere ulteriori informazioni su questo argomento dopo averlo cercato negli ultimi giorni: Microsoft TechNet ha un buon titolo articolo "Implementazione del failover dell'applicazione con il mirroring del database" ( http://www.microsoft.com/technet/prodtechnol /sql/bestpractice/implappfailover.mspx#EMD ).

Questo riguarda in modo specifico la funzionalità di mirroring del database in Microsoft SQL Server 2005 e il nuovo nuovo "Partner di failover" parola chiave della stringa di connessione che consente di specificare due istanze server / db in una singola stringa di connessione.

Vale la pena leggere l'articolo se sei interessato a implementare questo tipo di funzionalità.

È stato utile?

Soluzione

Quello che vuoi viene chiamato " failover " ;, dove se un database fallisce le tue query vengono automaticamente reindirizzate all'altra. Questo è raggiunto a livello di database, non dell'applicazione. Esistono molte procedure dettagliate, ecc. Per la creazione di cluster di failover: eccone uno per SQL 2000 e un altro per SQL 2005 . Fondamentalmente, una volta impostato, il database primario comunica tutte le attività a quello secondario. Se il primario fallisce, il secondario è (quasi) aggiornato e prende il sopravvento.

I server formano un cluster e sembrano una singola unità, simile al modo in cui i server Web con bilanciamento del carico guardano al mondo esterno. Il backup controlla il primario e se il primario smette di rispondere, il backup assume la ricezione delle query. Se stai cercando su Google, prova anche ad aggiungere le parole chiave " mirroring del database " e "quorum".

Altri suggerimenti

È un po 'più complesso di così. La tua pagina web scrive nei database? O semplicemente leggere?

Se scrivono, dovrai preoccuparti di mantenere sincronizzati i 2 database, probabilmente usando il mirroring o il log shipping.

Ma di cosa stai parlando (in sostanza) è impostare un cluster SQL.

Ho scritto un post sul blog che mostra come impostare il mirroring del database MSSQL e come utilizzarlo effettivamente dal punto di vista del codice gestito: http: //www.improve. dk / blog / 2008/03/23 / sql-server-mirroring-a-pratico-approccio

Bella risposta di " Rick " ma volevo solo aggiungere i miei 2 centesimi di informazione. Normalmente per una configurazione con failover senza molte apparecchiature costose, la configurerei così:

Puoi avere la tua casella di 2 SQL Server in attesa di richiesta e avere un sistema di fascia bassa di terza scatola con SQL Server 2005 Express come "monitoraggio dello stato". Ciò che ti fa risparmiare è di 10K $ per la scatola e una licenza di SQL Server. SQL Server Express (come in Free) può eseguire il monitoraggio dell'integrità tra i 2 server di database senza problemi.

Questa è la mia configurazione :)

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