Je veľmi bežné, že mnoho počítačov vo vašej spoločnosti používa Enterprise vydania SQL Server zatiaľ čo žiadna z týchto podnikových funkcií nebola nikdy použitá. Toto bude mať výrazný dopad na licenciu cost a mal by byť opravený.
Nájdite servery
Ak už vediete inventár SQL servers, potom je ľahká úloha identifikovať stroje, na ktorých sú spustené Enterprise vydania SQL server. Ďalším krokom je zistiť, či aplikácie hostedície na týchto počítačoch vyžadujú podnikovú edíciu a ak sa používajú podnikové funkcie.
Vytvorte .SQL
Skopírujte skript 1 a uložte ho ako súbor .sql. Skript 1 má zhromaždiť názvy databáz a nájsť podnikové funkcie v každej databáze. Aktualizujte cestu k tomuto súboru .sql v skripte 2 a spustite ho zo servera. Skript 2 zozbiera údaje a uloží ich do tabuľky denníka. Uistite sa, že ste aktualizovali skript 2 pomocou správneho účtu SQL, s ktorým by sa vytvorili prepojené servery.
Zhromaždite a skontrolujte denník
Pred spustením skriptu2 sa uistite, že ste uviedli všetky servery v TBL0. Pre každý server uvedený v tejto tabuľke sa vytvorí prepojený server a potom pre každú databázu v prepojenom serveri skript identifikuje používané podnikové funkcie a uloží ich do TBL1.
Poraďte sa s vlastníkmi aplikácie
S protokolom sa porozprávajte s príslušnými vlastníkmi aplikácií a zistite, či je v poriadku odstrániť tieto uvedené podnikové funkcie z databázy. Ak schvália, že server nepotrebuje vydanie Enterprise, môžete prejsť na štandardné vydanie. Vaša spoločnosť tak ušetrí niekoľko dolárov. Okrem prechodu z Enterprise na Standard môžete použiť aj SQL Express, ak je celková veľkosť databáz aplikácie menšia ako 10 GB.
Ak by ich však databáza obsahovala, nemohli by ste nájsť podnikové funkcie poškodený súbor mdf. V takom prípade neváhajte použiť nástroje obnovy ako napr DataNumen SQL Recovery nástroj.
Skript 1
CREATE TABLE TBL2 ( cservername VARCHAR(200) ,dbname VARCHAR(200) ,cfeature VARCHAR(200) ) DECLARE cur2 CURSOR FOR SELECT NAME from sysdatabases DECLARE @name VARCHAR(200) OPEN cur2 FROMFETCH_INHILETCH = 2 ZAČAŤ DECLARE @cmd NVARCHAR(0) SET @cmd = 'použite [' + @name + '] vybrať @@servername,db_name(),feature_name FROM sys.dm_db_persisted_sku_features' INSERT INTO TBL200 EXEC (@cmd) NAČÍTAŤ ĎALEJ FROM cur2 INTO @name KONIEC ZATVORIŤ cur2 DEALOCATE cur2
Skript 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)atureSELECT) *FCHAR200featureSELECT) ,cfection TBL1 DECLARE @cmd0 NVARCHAR(2000) DECLARE @vsvrname VARCHAR(200) DECLARE @vuser VARCHAR(100) DECLARE @vpwd VARCHAR(100) SET @vuser = 'linkedserveruser' SET @vpwduserus FROMER DECLARE 'servernames DECLARE' TBL1 OPEN cur0 DECLARE @server VARCHAR(1) FETCH NEXT Z cur200 DO @server WHILE @@FETCH_STATUS = 1 ZAČAŤ DECLARE @cmd VARCHAR(0) SET @cmd = 'SQLCMD -S ' + @server + ' -E -i " úplná cesta k súboru .sql"' PRINT @cmd EXEC xp_cmdshell @cmd ,no_output SET @vsvrname = @server SET @cmd2000 = '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 = 'vložiť do TBL0 vybrať * z [' + @vsvrname + '].[master].[dbo].[TBL1]' PRINT @cmd2 EXEC (@cmd0) PRINT ' Completed' SET @cmd0 = 'EXEC [' + @vsvrname + '].master..sp_executesql N''drop table TBL0''' EXEC (@cmd2) FETCH NEXT FROM cur0 INTO @server END CLOSE cur1 DEALLOCATE cur1 SELECT * FROM TBL1 DROP TABLE TBL1 DROP TABLE TBL1
Úvod autora:
Neil Varley je odborníkom na obnovu dát v odbore DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť problém s e-mailom Outlook pst a vynikajúce softvérové produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S
Nechaj odpoveď