Очень часто на многих компьютерах в вашей компании используются выпуски Enterprise SQL Server в то время как ни одна из этих корпоративных функций никогда не использовалась. Это сильно повлияет на лицензию cost и должно быть исправлено.
Найти серверы
Если вы уже ведете инвентаризацию SQL servers, то легко идентифицировать машины, на которых установлены корпоративные выпуски SQL server. Следующим шагом является определение того, являются ли приложения hosted на этих машинах требуется корпоративная версия и используются ли корпоративные функции.
Создать .SQL
Скопируйте Script1 и сохраните его как файл .sql. Сценарий 1 предназначен для сбора имен баз данных и поиска корпоративных функций в каждой базе данных. Обновите путь к этому файлу .sql в script2 и запустите его с сервера. Скрипт 2 соберет данные и сохранит их в таблице журнала. Пожалуйста, убедитесь, что вы обновили script2 с правильной учетной записью SQL, с которой будут созданы связанные серверы.
Соберите и просмотрите журнал
Перед запуском script2 убедитесь, что вы указали все серверы в TBL0. Для каждого сервера, указанного в этой таблице, будет создан связанный сервер, а затем для каждой базы данных на связанном сервере сценарий определит используемые корпоративные функции и сохранит их в TBL1.
Проконсультируйтесь с владельцами приложений
С журналом поговорите с заинтересованными владельцами приложений и определите, можно ли удалить перечисленные корпоративные функции из базы данных. Если они подтвердят, что серверу не нужна редакция Enterprise, вы можете переключиться на стандартную редакцию. Это сэкономит несколько долларов для вашей компании. Помимо перехода с Enterprise на Standard, вы также можете использовать SQL Express, если общий размер баз данных приложения меньше 10 ГБ.
Однако вы не сможете найти корпоративные функции, если база данных поврежденный файл mdf. В таком случае не стесняйтесь использовать инструменты восстановления, такие как DataNumen SQL Recovery инструмент.
Скрипт1
CREATE TABLE TBL2 (cservername VARCHAR(200), dbname VARCHAR(200), cfeature VARCHAR(200)) ОБЪЯВИТЬ cur2 КУРСОР ДЛЯ ВЫБОРА ИМЯ ИЗ sysdatabases DECLARE @name VARCHAR(200) OPEN cur2 FETCH NEXT FROM cur2 INTO @name WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @cmd NVARCHAR(200) SET @cmd = 'use [' + @name + '] select @@servername,db_name(),feature_name FROM sys.dm_db_persisted_sku_features' INSERT INTO TBL2 EXEC (@cmd) FETCH NEXT FROM cur2 INTO @name END CLOSE cur2 DEALLOCATE cur2
Скрипт2
SET NOCOUNT ON SET ANSI_NULLS ON CREATE TABLE TBL0 (cservername VARCHAR(200)) INSERT INTO TBL0 VALUES («SERVER1») CREATE TABLE TBL1 (cservername VARCHAR(200), dbname VARCHAR(200), cfeature VARCHAR(200)) SELECT * FROM TBL1 DECLARE @cmd0 NVARCHAR(2000) DECLARE @vsvrname VARCHAR(200) DECLARE @vuser VARCHAR(100) DECLARE @vpwd VARCHAR(100) SET @vuser = 'linkedserveruser' SET @vpwd = 'linkedserveruser' DECLARE cur1 КУРСОР ДЛЯ SELECT cservername ОТ TBL0 OPEN cur1 DECLARE @server VARCHAR(200) FETCH NEXT FROM cur1 INTO @server WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @cmd VARCHAR(2000) SET @cmd = 'SQLCMD -S ' + @server + ' -E -i " полный путь к файлу .sql"' PRINT @cmd EXEC xp_cmdshell @cmd, no_output SET @vsvrname = @server SET @cmd0 = 'EXEC sp_addlinkedserver @server=''' + @vsvrname + '''' PRINT @cmd0 EXEC (@ cmd0) SET @cmd0 = 'EXEC sp_addlinkedsrvlogin ''' + @vsvrname + ''', ''false'', NULL, ''' + @vuser + ''', ''' + @vpwd + '''' PRINT @cmd0 EXEC (@cmd0) SET @cmd0 = 'вставить в TBL1 select * from [' + @vsvrname + '].[master].[dbo].[TBL2]' PRINT @cmd0 EXEC (@cmd0) PRINT ' Completed' SET @cmd0 = 'EXEC [' + @vsvrname + '].master..sp_executesql N''удалить таблицу TBL2''' EXEC (@cmd0) FETCH NEXT FROM cur1 INTO @server END CLOSE cur1 DEALLOCATE cur1 SELECT * FROM TBL1 DROP TABLE TBL1 DROP TABLE TBL0
Об авторе:
Нил Варли — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить проблему с электронной почтой Outlook PST и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com
Оставьте комментарий