Domanda

Ho un database di SQL Server (2008) entro il quale ho alcune DLL CLR che utilizza SQL per varie cose.

Sono queste DLL mirroring quando uso SQL Mirroring? Il nostro DBA non dice, ma trovo questo pazzo e non riesce a trovare molte informazioni su di esso in linea.

E 'possibile rispecchiare le DLL CLR?

È stato utile?

Soluzione

Gruppi di CLR sono memorizzati nel database, e si specchiano come parte del database. Ogni database ha la propria visione sys.assemblies, e se si esegue una query i master.sys.assemblies DMV, non troverete le assemblee per altri database del DMV. Ci sono problemi che si possono verificare con avere un database con assemblee in essa rispecchiato. Il primo è, se si dispone di un accesso esterno o un assieme pericoloso e si è utilizzato il bit trustworty per permettere il montaggio del database, questo è disattivato durante il processo di recupero quando si failover, in modo da avere per riattivarlo. Se avete firmato il montaggio con un certificato è necessario creare il certificato e accesso associato con il gruppo sul server di mirroring manualmente dal momento che questo viene memorizzato in master, non nel database. L'Assemblea sarà lì, e così sarà il vostro database SQL oggetti, ma non può funzionare. Potrebbe anche essere necessario per cambiare il nome del proprietario del database come parte del failover.

http://sqlblog.com/blogs/jonathan_kehayias/archive/2008/03/06/clr-safety-issues-after-database-restore-to-new-server.aspx

Se si desidera convalidare quello che dico sopra, il backup del database degli utenti con un assemblaggio su di esso, e il ripristino a un altro server. La vostra assemblea sarà una parte del database.

Altri suggerimenti

Giusto per aggiungere il punto ovvio per quello che ha detto Jonathan: gli assembly devono essere distribuito nel database dell'applicazione di mirroring e non in msdb o qualche altro database

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