Puteți finaliza un audit rapid al SQL Serverconfigurația lui pe toate serverele din Compania dvs. Scriptul va fi util pentru a repara automat configurațiile care nu sunt conforme
Creați trei tabele:
Vom crea 3 tabele. În primul tabel, vom salva SQL Server Numele configurației și valoarea sa recomandată. Acest tabel va acționa ca tabel sursă pentru comparație. Dacă utilizați SQL 2014, nu ratați să aveți grijă de elementul de configurare și anume „backup checksum default”. În mod implicit, valoarea este setată la zero, dar valoarea recomandată este 1 și o puteți seta cu ușurință folosind comanda EXEC sp_configure. Dacă acesta este setat la 1, oricând SQL Server citește pagini pentru copie de rezervă, va verifica, de asemenea, toate sumele de verificare existente ale paginii.
În al doilea tabel, vom salva numele serverelor din mediul nostru SQL. Ultimul tabel va fi folosit ca tabel de jurnal și acesta va stoca datele de configurare de la serverele la distanță și va compara cu tabelul nostru sursă, adică primul tabel.
Remediere automată
Printr-un cursor, scriptul va citi numele fiecărui server din cel de-al doilea tabel și creează un server legat pentru fiecare server. Cu ajutorul serverului legat, datele de configurare sunt citite de pe fiecare server și încărcate în tabelul de jurnal, adică al treilea tabel. Configurația și valoarea acesteia din fiecare rând al tabelului de jurnal sunt comparate cu tabelul sursă. Dacă valoarea nu este conformă, configurația este remediată automat cu valoarea recomandată prin sqlcmd. În acest script, remedierea automată este setată numai pentru memoria maximă a serverului. Aceeași regulă poate fi aplicată și pentru alte configurații.
Totuși în cazul stricat SQL Server db nu ai putea audita automat SQL Server configuratii. Într-un astfel de caz puteți utiliza SQL server instrumente de recuperare precum Datanumen SQL recovery instrument.
CREATE TABLE TBL0 (cname VARCHAR(200) ,cvalue BIGINT ) INSERT INTO TBL0 SELECT NAME ,cast(value AS BIGINT) FROM sys.configurations CREATE TABLE TBL1 (cservername VARCHAR(200)) --Insert into TBL1 values ('SRVR1') CREATE TABLE TBL2 ( csvrname VARCHAR(200) ,cname VARCHAR(200) ,cvalue BIGINT ,cminvalue BIGINT ,cmaxvalue BIGINT ,cvalinuse BIGINT ,cstatus VARCHAR(200) ) DECLARE @cmd NVARCHAR(2000) ) DECLARE @cmd NVARCHAR(200vr) DECLARE @VARCLARE(100) vuser VARCHAR(100) DECLARE @vpwd VARCHAR(1) SET @vsvrname = 'SRVR2' SET @vuser = 'linkedserverser' SET @vpwd = 'linkedserveruserpassword' SET @cmd = 'EXEC sp_addlinkedserver @server=''' + @vsvrname '''' PRINT @cmd EXEC (@cmd) SET @cmd = 'EXEC sp_addlinkedsrvlogin ''' + @vsvrname + ''', ''false'', NULL, ''' + @vuser + ''', ' '' + @vpwd + '''' PRINT @cmd EXEC (@cmd) INSERT INTO TBL07 ( csvrname ,cname ,cvalue ,cminvalue ,cmaxvalue ,cvalinuse ) SELECT @@servername AS 'Servername' ,NAME ,cast(value AS BIGINT) ) ,cast(minimum AS BIGINT) ,cast(maximum AS BIGINT) ,cast(value_in_use AS BIGINT) FROM [CPH-MSSQL2-T].master.sys.configurations SELECT * FROM TBL1 DECLARE @cur200svrname VARCHAR(1) DECLARE @cur500name VARCHAR(1) DECLARE @cur1value BIGINT DECLARE CUR2 CURSOR FOR SELECT csvrname ,cname ,cvalue FROM TBL1 OPEN CUR1 FETCH NEXT FROM CUR1 INTO @cur1svrname ,@cur1name ,@cur0value WHILE @@FETCHARE @FETCHARE DECLARE_500(DECLARE_0) @svalue BIGINT SET @svalue = ( SELECTAȚI cvalue FROM TBL1 WHERE cname = @cur1name ) IF @cur2value <> @svalue BEGIN DECLARE @cmd1000 VARCHAR(2) SET @cmd1 = 'SQLCMD -S ' + @cur100svrname + ' -E - Q "EXEC sp_configure ''max server memory (MB)'',' + cast(@svalue AS VARCHAR(2)) + '"' -- Print @cmd2 EXEC xp_cmdshell @cmd2 UPDATE TBL1 SET cstatus = 'NU ERA CONFORM. ACUM FIXAT' WHERE csvrname = @cur1svrname ȘI cname = @cur1name ÎNCHEIAȚI ÎNCHIDEREA CUR1 ÎNTRE CUR1 ÎN @cur1svrname ,@cur1name ,@cur1value END CLOSE CURXNUMX DEALLOCATE CURXNUMX
Introducerea autorului:
Neil Varley este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv reparați corupția e-mailului Outlook pst și produse software de recuperare Excel. Pentru mai multe informații vizitați www.datanumen.com
Bună tuturor, este prima mea vizită pe acest site, iar paragraful este cu adevărat fructuos în favoarea mea, ține pasul postla aceste tipuri de conținut.