Les Cmdlets SQL au service de vCenter

Lorsque la taille de la base du vCenter vient à enfler, la première question qui vient à l’esprit est bien évidement “mais qu’est ce qui bouffe toute cette place ?!” Tous les serveurs de DB possèdent un shell ou une console qui permet(e) de recueillir la taille des tables mais si votre base est, probablement comme la majorité, hébergée par un serveur MS SQL, vous allez pouvoir vous amuser avec powershell.

Alan en parlait il y a quelques temps sur son blog mais il existe aussi des cmdlets sql disponibles avec MS SQL 2008 (compatibles MS SQL 2005). Le Snapin est disponible avec Microsoft SQL Server 2008 Management Studio Express en sélectionnant “Management Tools” lors de l’install :

pssnapin

Il suffit ensuite de loader le Snapin  :

Add-PSSnapin SqlServerCmdletSnapin100

Et lancer la commande suivante :

Invoke-Sqlcmd -Query "sp_msForEachTable 'EXEC sp_spaceused ''?'''" -ServerInstance "server\instance" -Database VIM_VCDB |select name,@{N="data size KB";E={[int]($_.data).split(" ")[0]}},@{N="reserved size KB";E={[int]($_.reserved).split(" ")[0]}}|sort "data size KB" -Descending|select -first 10

Vous obtiendrez la liste des 10 tables les plus gourmandes de votre base :

sqlcmd

Il est évidement possible d’obtenir aussi la taille totale de la base :

(Invoke-Sqlcmd -Query “sp_helpdb” -ServerInstance “server\instance” |?{$_.name -eq “VIM_VCDB”}).db_size

dbsize

Tags: , ,

One Response to “Les Cmdlets SQL au service de vCenter”

  1. [...] Ce billet était mentionné sur Twitter par raphael schitz. raphael schitz a dit: Get the 10 biggest tables of vcenter MS SQL with a Powershell oneliner : http://www.hypervisor.fr/?p=1995 [...]

Leave a Reply