Powershell + SQL + SMO

Le
n1n1
bonjour @ tous,

voilà, j'ai un souci, je débute avec powershell. Je dois remonter des
informations SQL à partir de cet outil.

En fait j'ai trois serveur SQL, je dois remonter des informations comme par
exemple la volumétrie, le nom de l'instance, les databases, la taille des
bases, ect

mais je sais pas par ou commencer :-(

j'ai besoin d'aide !!!

Merci d'avance

Cordialement
--
n1n1
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques Barathon [MS]
Le #658053
"n1n1" news:
bonjour @ tous,

voilà, j'ai un souci, je débute avec powershell. Je dois remonter des
informations SQL à partir de cet outil.

En fait j'ai trois serveur SQL, je dois remonter des informations comme
par
exemple la volumétrie, le nom de l'instance, les databases, la taille des
bases, ect ...


Il existe plusieurs techniques d'accès à SQL Server, selon ce qu'on veut
faire et quelle version de SQL on utilise. L'intérêt de PowerShell est de
pouvoir s'adapter à ces différentes techniques.

Parmi les techniques les plus répandues, on peut citer:

- ADO (ou son évolution ADO.NET), surtout orienté accès aux données
- SMO, apparu avec SQL Server 2005, surtout orienté gestion du serveur
- WMI, interface standard d'accès aux composants d'un système Windows

Toutes ces techniques sont basées sur le principe de chargement d'une série
d'objets, et d'utilisation de ces objets via leurs propriétés (informations)
et leurs méthodes (actions). L'avantage d'ADO et de WMI sur SMO est que ces
solutions sont beaucoup plus répandues (notamment au-delà de SQL) et
qu'elles permettent un accès à distance aux serveurs sans avoir à installer
quoi que ce soit de particulier sur le poste d'administration. Pour SMO il
faut vraisemblablement installer les outils d'administration de SQL pour
pouvoir charger dans ton application ou dans ton script les classes qui vont
bien.

Malheureusement je n'ai pas de serveur SQL sous la main pour te fournir un
premier script à partir duquel tu pourrais élaborer ta propre solution, mais
voici quelques pistes pour alimenter ta recherche sur le sujet. Les
ressources ci-dessous sont en anglais, mais les nombreux exemples devraient
être assez clairs à comprendre.

Références MS - SQL Server Programming Overview:
http://msdn2.microsoft.com/fr-fr/library/ms166342.aspx
... et notamment la documentation des API pour administrer SQL Server:
http://msdn2.microsoft.com/fr-fr/library/ms130271.aspx

Un tutoriel assez détaillé sur l'utilisation de SMO:
http://www.sqldbatips.com/showarticle.asp?ID4

Deux versions d'un même script en PowerShell permettant d'énumérer toutes
les bases de données d'un serveur, une version avec ADO et l'autre avec SMO:
http://mspowershell.blogspot.com/2006/11/powershell-sql-ado.html
http://mspowershell.blogspot.com/2006/12/powershell-sql-smo.html

Un autre script PowerShell, réalisant la sauvegarde d'une base de données
avec SMO:
http://monadblog.blogspot.com/2006/07/back-up-sql-server-database-with-sql.html

N'hésite pas à revenir vers nous pour plus d'informations.

Jacques

n1n1
Le #657808
salut jacques,

merci pour tes conseils, j'ai trouvé un script pour faire du PowerSMO, j'ai
réussi à récupérer mes données et que j'exporte sous un format XML. Par
contre je suis entrain de regarder comment récupérer ces valeurs pour les
insérer dans une base de données SQL Server.

d'ailleurs si tu as des informations ou des conseils à me donner je suis
preneur.

Merci encore pour tous
--
n1n1


"Jacques Barathon [MS]" wrote:

"n1n1" news:
bonjour @ tous,

voilà, j'ai un souci, je débute avec powershell. Je dois remonter des
informations SQL à partir de cet outil.

En fait j'ai trois serveur SQL, je dois remonter des informations comme
par
exemple la volumétrie, le nom de l'instance, les databases, la taille des
bases, ect ...


Il existe plusieurs techniques d'accès à SQL Server, selon ce qu'on veut
faire et quelle version de SQL on utilise. L'intérêt de PowerShell est de
pouvoir s'adapter à ces différentes techniques.

Parmi les techniques les plus répandues, on peut citer:

- ADO (ou son évolution ADO.NET), surtout orienté accès aux données
- SMO, apparu avec SQL Server 2005, surtout orienté gestion du serveur
- WMI, interface standard d'accès aux composants d'un système Windows

Toutes ces techniques sont basées sur le principe de chargement d'une série
d'objets, et d'utilisation de ces objets via leurs propriétés (informations)
et leurs méthodes (actions). L'avantage d'ADO et de WMI sur SMO est que ces
solutions sont beaucoup plus répandues (notamment au-delà de SQL) et
qu'elles permettent un accès à distance aux serveurs sans avoir à installer
quoi que ce soit de particulier sur le poste d'administration. Pour SMO il
faut vraisemblablement installer les outils d'administration de SQL pour
pouvoir charger dans ton application ou dans ton script les classes qui vont
bien.

Malheureusement je n'ai pas de serveur SQL sous la main pour te fournir un
premier script à partir duquel tu pourrais élaborer ta propre solution, mais
voici quelques pistes pour alimenter ta recherche sur le sujet. Les
ressources ci-dessous sont en anglais, mais les nombreux exemples devraient
être assez clairs à comprendre.

Références MS - SQL Server Programming Overview:
http://msdn2.microsoft.com/fr-fr/library/ms166342.aspx
.... et notamment la documentation des API pour administrer SQL Server:
http://msdn2.microsoft.com/fr-fr/library/ms130271.aspx

Un tutoriel assez détaillé sur l'utilisation de SMO:
http://www.sqldbatips.com/showarticle.asp?ID4

Deux versions d'un même script en PowerShell permettant d'énumérer toutes
les bases de données d'un serveur, une version avec ADO et l'autre avec SMO:
http://mspowershell.blogspot.com/2006/11/powershell-sql-ado.html
http://mspowershell.blogspot.com/2006/12/powershell-sql-smo.html

Un autre script PowerShell, réalisant la sauvegarde d'une base de données
avec SMO:
http://monadblog.blogspot.com/2006/07/back-up-sql-server-database-with-sql.html

N'hésite pas à revenir vers nous pour plus d'informations.

Jacques





Publicité
Poster une réponse
Anonyme