Verwaltung von Oracle-Datenbanken mit der PowerShell

Oracle Datenbanken per PowerShell ansprechen

| Autor: Thomas Joos

Automatisierung im Datencenter (Bild von kewl auf Pixabay )
Automatisierung im Datencenter (Bild von kewl auf Pixabay ) (Automatisierung im Datencenter (Bild von kewl auf Pixabay ))

Mit der PowerShell lassen sich auch Produkte von Drittherstellern verwalten. Da die PowerShell nicht nur auf Windows begrenzt ist, sondern über PowerShell Core auch für macOS und Linux genutzt werden kann, spielt die Shell eine immer wichtigere Rolle. Mit der PowerShell lassen sich zahlreiche Produkte verwalten, was oft eine ideale Ergänzung zu den Bordmitteln der entsprechenden Lösung ist.

Für den Zugriff auf Oracle-Datenbanken mit der PowerShell, sind die Oracle Developer Tools für Visual Studio sinnvoll, genauer gesagt „ODP.Net“ aus diesen Tools. Dabei handelt es sich um den Oracle Data Provider (ODP). Mit dieser Variante benötigen Sie keinen Oracle-Client und können problemlos mit der PowerShell auf Oracle-Server und Oracle-Datenbanken zugreifen.

Oracle stellt ODP.NET kostenlos zum Download bereit. Auf Basis dieser Erweiterung können Oracle-Datenbanken auch von Dritthersteller-Tools angesprochen werden, auch von der PowerShell.

Bestandteil von ODP.Net ist die DLL „Oracle.ManagementDataAccess.dll“. Diese befindet sich im Installationsverzeichnis der Developer Tools. Die DLL-Datei wird auf den Rechnern benötigt, mit denen Sie per PowerShell auf Oracle-Datenbanken zugreifen wollen. Zuerst muss also die Installation von ODP.NET erfolgen. Danach kann in der PowerShell eine Verbindung aufgebaut werden. Dazu wird die DLL zunächst in der PowerShell geladen:

Add-Type -Path "C:\ODP\Oracle.ManagedDataAccess.dll"

Sie können ein PowerShell-Skript schreiben, die Befehle einzeln angeben und auch die Anmeldedaten auf verschiedenen Wegen nutzen. Ein Beispiel für die Anbindung ist:

$Str = "Data Source=dbs1:1521;User Id=admin;Password=geheim"

$Cn = [Oracle.ManagedDataAccess.Client.OracleConnection]::new()

$Cn.ConnectionString = $Str

$Cn.Open()