Зеркально ли отображаются библиотеки CLR при использовании зеркального отображения SQL Server? - PullRequest
3 голосов
/ 13 июля 2009

У меня есть база данных SQL Server (2008), в которой у меня есть некоторые библиотеки CLR, которые SQL использует для различных целей.

Отражаются ли эти библиотеки DLL при использовании зеркального отображения SQL? Наш DBA говорит, что нет, но я нахожу это сумасшедшим и не могу найти много информации об этом в Интернете.

Можно ли отразить библиотеки CLR?

Ответы [ 2 ]

4 голосов
/ 13 июля 2009

CLR Сборки хранятся в базе данных и отражаются как часть базы данных. Каждая база данных имеет свое собственное представление sys.assemblies, и если вы запросите DMV master.sys.assemblies, вы не найдете сборки для других баз данных в DMV. Существуют проблемы, с которыми вы можете столкнуться при наличии базы данных с зеркалами в сборках. Во-первых, если у вас есть сборка External Access или UNSAFE, и вы использовали бит TRUSTWORTY, чтобы разрешить сборку в вашей базе данных, она отключается во время процесса восстановления при восстановлении после сбоя, поэтому вам необходимо повторно включить его. Если вы подписали сборку сертификатом, вы должны создать сертификат и логин, связанный со сборкой, на зеркальном сервере вручную, поскольку он хранится в master, а не в базе данных. Там будет сборка и ваши объекты базы данных SQL, но она может не работать. Вам также может понадобиться изменить имя владельца базы данных как часть аварийного переключения.

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

Если вы хотите проверить то, что я сказал выше, сделайте резервную копию базы данных пользователей со сборкой на ней и восстановите ее на другом сервере. Ваша сборка будет частью базы данных.

1 голос
/ 13 июля 2009

Просто добавим очевидное замечание к тому, что сказал Джонатан: ваши сборки должны быть развернуты в зеркальной базе данных приложения, а не в msdb или какой-либо другой базе данных.

...