Is there an easy way to get all the server meta data (memory, security, sp_configure, etC) from an instance that you can use to compare with a second instance, or use to set another instance to have the same configuration?
Answer by Rob Farley ·
I'd work on a set of PowerShell scripts that collect the info you want. For example:
(get-item SQLSERVER:\SQL\ROB-PC\SQL2008).Information gives me lots of useful information. I can also get lots of other information, easily dump it to files, and compare them as required. Being PowerShell, I can easily do this across many servers.
Answer by ThomasRushton ·
Answer by Grant Fritchey ·
I'd prefer Rob's approach and wouldn't mind seeing a good PowerShell script that does exactly what he described, there is an approach you could take in TSQL.
sp_configure is a built in system function that will allow you to display, or change, system settings. To see the basic listing you can run a query like this:
That will show most of what you're interested in on a day to day basis. However, to get a complete listing, you need to show all the advanced settings. From the books online, run the script this way:
USE master; GO EXEC sp_configure 'show advanced option', '1'; RECONFIGURE; EXEC sp_configure;
That will show you everything. You can then output to a file or load it to a table in order to run comparisons on other data sets from other servers.
Answer by dillinzser ·
Another way is to use System Catalog Views. However these views are present in every database, they provide metadata information not just about the database but the server core. These views are organized into several categories (server-wide configuration, security, objects, ..).
More information about these views can be found in Books Online on MSDN
Answer by Ronald Dameron ·
Check out Allen White's article on inventorying SQL Servers with PowerShell. http://www.simple-talk.com/sql/database-administration/let-powershell-do-an-inventory-of-your-servers/
Answer by sturner ·