MS PowerShell und Oracle interaktiv intuitiv - inspirativ. Holger Bär



Ähnliche Dokumente
Windows PowerShell. CmdLets. PipeLine / Filter. Variablen / Operatoren. Schleifen / Prüfmethoden. Funktionen / Skripte. Allgegenwärtige Parameter

3. Auflage. O Reillys Taschenbibliothek. Windows PowerShell 3.0. kurz & gut. Lee Holmes. Deutsche Adaption von Rolf Masuch O REILLY

Inhaltsverzeichnis. Vorwort. Basiswissen

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Microsoft Windows PowerShell v3.0/4.0

Erwin Grüner

Titel SCSM 2012 VORFALL (INCIDENT) BENACHRICHTIGUNG NACH 30 MINUTEN OHNE ZUWEISUNG

SQL-Server mit Powershell verwalten

Objektorientierte Programmierung

OP-LOG

1 Vom Problem zum Programm

Linux Prinzipien und Programmierung

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Prozedurale Datenbank- Anwendungsprogrammierung

Multimedia im Netz Wintersemester 2011/12

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Einführung in die Scriptsprache PHP

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Kontrollstrukturen und Funktionen in C

P CALC Die Präferenzkalkulation

Einführung in die Programmierung

teamsync Kurzanleitung

Enigmail Konfiguration

ISA Server 2004 Erstellen einer Webverkettung (Proxy-Chain) - Von Marc Grote

GEOPROCESSING UND MODELBUILDER

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Übung - Datenmigration in Windows Vista

Übersicht Programmablaufsteuerung

2. Installation unter Windows 10 mit Internetexplorer 11.0

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Datenbanken Microsoft Access 2010

Modul 122 VBA Scribt.docx

Datenmanagement in Android-Apps. 16. Mai 2013

Studentische Lösung zum Übungsblatt Nr. 7

Modellierung und Programmierung 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

ecaros2 - Accountmanager

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Gesicherte Prozeduren

Unsere Webapplikation erweitern

Browsereinstellungen für moneycheck24 in Explorer unter Windows

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Import des Out of Office Status von Exchange in LANDESK Service Desk

KMS-Aktivierung von MS Software

Der zweite all unsere Datenbanken. Dieser Befehl ist etwas komplexer, aber bis auf das Passwort (kursiv fett) so zu übernehmen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Visendo Fax Web Client Troubleshooting

Ich liebe Java && Ich liebe C# Rolf Borst

Import und Export von Übergängern

IT-Basics 2. DI Gerhard Fließ

2.1 Sicherheits-Zonen ActiveX-Steuerelemente Skripting Verschiedenes Erweitert... 9

Zentrale Informatik. Fernzugriff über Basic Access

Java Kurs für Anfänger Einheit 5 Methoden

E-PRIME TUTORIUM Die Programmiersprache BASIC

Einführung in PHP. (mit Aufgaben)

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Anleitung. Lesezugriff auf die App CHARLY Termine unter Android Stand:

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Schritt für Schritt Installationsanleitung -> CAS genesisworld SwissEdition

Graphic Coding. Klausur. 9. Februar Kurs A

Installation DataExpert Paynet-Adapter (SIX)

Einführung in LINUX Der Editor vi

Hyperlink-Erstellung in InDesign für

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Lokales Netzwerk Probleme beim Verbinden eines Linux-Clients mit einem Windows 2003 Server Frage:

Dokumentation zur Versendung der Statistik Daten

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Bitte unbedingt lesen! Update-Dokumentation

Voraussetzungen für die Nutzung der Format Rechenzentrumslösung (Hosting)

HOSTED EXCHANGE EINRICHTUNG AUF SMARTPHONES & TABLETS

Summenbildung in Bauteiltabellen mit If Then Abfrage

KMS-Aktivierung von MS Office

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

A.4 Beispiel zum -Versand über Smart Forms

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Handbuch für Nutzer von Zertifikaten der Zertifizierungsstellen (CAs) des Bayerischen Behördennetzes (BYBN) zur Sicherung von s Teil C3:

AutoTexte und AutoKorrektur unter Outlook verwenden

1 Installation QTrans V2.0 unter Windows NT4

Übung - Arbeiten mit CLI-Befehlen in Windows

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

5. Tutorium zu Programmieren

ObjectBridge Java Edition

3. Stored Procedures und PL/SQL

Einführung in die Java- Programmierung

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Simon die linke Hand des Handwerks

Dateien und Verzeichnisse

Scala kann auch faul sein

PDF-Dateien erstellen mit edocprinter PDF Pro

Mit ApEx 3.1 eine Website mit integriertem CMS entwickeln. Enrico Mischorr merlin.zwo InfoDesign GmbH & Co. KG

Allgemeine Anforderungen zum Einsatz von (gültig ab Version 45.xx.xx)

Transkript:

MS PowerShell und Oracle interaktiv intuitiv - inspirativ Holger Bär

1 Einführung in die PowerShell 2 Powershell und Oracle 3 Einsatz in der Praxis

EINFÜHRUNG IN DIE POWERSHELL

Herunterladen kann sie jeder,doch richtig kennen und schätzen zu lernen werden sie, gerade am Anfang, nur wenige. Nehmen Sie sich am besten die nächsten drei Wochen frei, um alle Details kennen zu lernen. Sie werden die nächsten 30 Jahre davon profitieren. Peter Monadjemi Windows PowerShell Crashkurs

Common Model for Admin Interfaces Common Model for developing administrative Interfaces Altes Modell Neues Modell Scripts MMC Snap-IN Application Misc. Grafisches Adminstratives Tool (z.b. MMC) Windows PowerShell Commandlets Windows oder Server Produkt Funktionalität Microsoft.NET Framework Command LineTool Component Object Model (COM) WMI Klassen Windows oder Server Produkt Funktionalität

Einflußfaktoren

Commandlets (Cmdlet) PowerShell-Befehle heißen Commandlets bzw. Cmdlets - 129 Befehle eingebaut Allgemeine Syntax: - Verb-Substantiv [-Parameterliste] Beispiele: - get-help, get-location, get-command - get-childitem c:\daten, set-location c:\windows, remove-item Ausserdem: - Berechnungen: 10* (8 + 6) - Aufruf DOS-/Windows-EXEs: c:\windows\notepad.exe - Aufruf WSH-Skriptdateien:.vbs,.js,.vbe,.wsf, etc. - Aufruf Windows-Dokumente:.pdf,.doc,.xls, etc.

Secure by default Sicherheit ist ein zentraler Aspekt der PowerShell Standardmäßig ist nur der interaktiver Gebrauch erlaubt Sollen Scripte ausgeführt werden, so muß die Ausführungsrichtlinie (ExecutionPolicy) geändert werden Scriptfiles (.ps1) werden standardmäßig mit Notepad geöffnet Aber: PowerShell ist durch "Secure by Default" keine Alternative für Login-Scripte

Variablen Variablen beginnen mit vorangestellten $ Dollarzeichen. $a=42 $a="hello World" $a=[int] 42 $a=[datetime] "12/24/2007" Das Voranstellen des Typnamens [int] $a =5 bewirkt, daß die Variable nur Daten diese Typs aufnehmen kann. (Strenge Typisierung wie Java, C++ oder C#)

Arrays Einfache Arrays über kommaseparierte Liste oder @(, ) $a = "a", "b", "c" oder $a = @("a", "b", "c") $n = 1, 2, 3 oder $n=@(1,2,3) Leerer Array $leer=@() Mehrdimensionaler Array $ma = @( ("a", 1),("b", 2), ("c",3) ) Zugriff auf Elemente (Beginn bei Null) $a[0] $n[2] $ma[0][1]

Navigationsbefehle Cmdlet Alias Beschreibung Set-Location cd, chdir Festlegen des Standorts (Providerwechsel mit Doppelpunkt) Get-Location pwd Abruf des aktuellen Standorts Get-ChildItem dir, ls Auflisten der Elemente Get-Contents type, cat Abruf des Elementinhalts New-Item md, mkdir Erstellen eines Elements (Ast oder Blatt)

Vergleichsoperatoren Vergleichs -operator Groß/Kleinschreibung ignorieren Vergleichsoperator Groß/Kleinschreibung beachten Bedeutung -eq -ceq Gleich -ne -cne Ungleich -gt -cgt Größer als -ge -cge Größer oder Gleich als -lt -clt Kleiner als -le -cle Kleiner oder Gleich als -match -cmatch entspricht (nicht so streng wie gleich) (Regular Expression) -notmatch -cnotmatch entspricht nicht (Regular Expression) -like -clike wie (wildcards) -notlike -cnotlike nicht wie (Wildcards)

Vergleichsoperatoren Vergleichsoperator -contains -notcontains Bedeutung enthält (für Collections) enthält nicht (für Collections) -replace ersetze (Suche mit Regular Expression möglich) -is -isnot Ist vom Typ Ist nicht vom Typ

Objektpipeline Weitergabe von.net Objekten und nicht von unstrukturierten Daten (Strings) Pipelineoperator (Verkettungszeichen): Das aktuelle Pipelineobjekt: $_ Get-Process Where-Object { $_.cpu gt 5 } Sort-Object cpu Format-Table Cmdlet #4 Format Class Cmdlet #3 Sort Class Cmdlet #2 Where Class Cmdlet #1 Get-Process Class Windows PowerShell Pipeline Processor

Kontrollstrukturen if (Bedingung) { } elseif { } else { } for ([Initialisierer]; [Bedingung]; [Iterator]) { } switch ($var) { Wert: { } } while(bedingung) { } do { } while (Bedingung) do { } until (Bedingung) foreach ($var in $menge) { } function name { } return throw "Fehlertext" trap Fehlerklasse { } else { } throw Fehlerklasse exit continue break

Kommentare und Zeilenaufteilung Kommentare: # Pipeline Befehlstrenner ; Befehl ; Befehl ; Befehl

Websites zur PowerShell PowerShell Team blog: http://blogs.msdn.com/powershell/ Newsgroup: Microsoft.Public.Windows.PowerShell Microsoft PowerShell Script Center www.microsoft.com/technet/scriptcenter/hubs/msh.mspx PowerShell Community: http://www.powershellcommunity.org Karl Prosser/Tobias Weltner powershelllive.com Holger Schwichtenberg www.it-visions.de Marc van Orsouw s blog http://mow001.blogspot.com Lee Holmes http://www.leeholmes.com/blog/ Powershell Beispiele http://www.scriptinganswers.com PowerGui http://www.powergui.org

POWERSHELL UND ORACLE

PowerShell und Oracle Voraussetzungen Zugriff auf Oracle DB über ODP.Net Öffnen einer Connection Verwendung des OracleCommand Objekts Einsatz von Parametern Verwendung des DataReaders Performance Betrachtungen

PowerShell und Oracle Installation.Net 2.0 oder höher Oracle Client / Instant Client ODP.Net für Oracle 9i, 10g oder 11g für.net 2.0 Verwendung Aufruf im Skript: [Reflection.Assembly]::LoadWithPartialName("Oracle.D ataaccess")

Verbindungsaufbau PowerShell und Oracle Erzeugen eines ConnectionObjects $constr = "User Id=hb;Password=hb;Data Source=localhost:/isen" $conn= New-Object \ Oracle.DataAccess.Client.OracleConnection($constr) $conn.open()

Datenzugriff PowerShell und Oracle Erzeugen eines CommandObjects (egal ob Stored Procedure, DML/DDL) $command = New-Object Oracle.DataAccess.Client.OracleCommand( DOAG.DEMO, $dbconnection) ODER $command = $conn.createcommand() $command.commandtext = DOAG.DEMO

Datenzugriff - Fortsetzung Setzen des CommandTyps $command.commandtype= PowerShell und Oracle [Text StoredProcedure TableDirect] Ausführen des Commandos $command.executenonquery() $command.executereader() $command.executescalar() $command.executestream() demo0.ps1, demo1.ps1

PowerShell und Oracle Parameter Platzhalter im SQL-Text lassen $command.commandtext= insert into emp (empno, ename) values (:1, :2) Automatisch bei Stored Procedures $command.commandtext= doag.one_param

Parameter - Fortsetzung Parameter erzeugen Typ und Richtung angeben Binden Wert setzen PowerShell und Oracle $param = New-Object Oracle.DataAccess.Client.OracleParameter() $param.dbtype = Int32 $command.parameters.add($param) $param.value=8911 demo2.ps1

Parameter - Fortsetzung PowerShell und Oracle RefCursor Ein Parameter wie (fast) jeder andere kann als Eingabe für weitere Prozedur verwendet werden kann direkt ausgelesen werden über einen DataReader $param = NewParam 'RefCursor' 'Output' $doag_demo.parameters.add($param) $reader = $doag_demo.executereader() while ($reader.read()) { $reader.getstring(1) } demo5

Performance Betrachtungen PowerShell und Oracle Automatische Optimierungen Connection Pooling Cursor Caching / Statement Cache ab 11g: Result Cache demo2,demo3

Performance Betrachtungen PowerShell und Oracle Manuelle Optimierungen Autocommit vermeiden FetchSize anpassen Bulk Operationen demo3/demo4,demo5, demo6/demo7

PowerShell und Oracle Metalink Note 848177.1 http://guyharrison.typepad.com/oracleguy/2008/01/accessingoracl.html

POWERSHELL IM PRAXISEINSATZ

Powershell im Praxiseinsatz Datenmanagementsystem - Anbindung eines Archivsystems 80TB - Skripting mit Powershell - Auslagern/Rücklagern von Daten über Applikation steuern

Aufgaben Aus-/Rücklagerung Auslagern - Auslesen der betroffenen Daten aus der Datenbank - Zusammenpacken der Datenverzeichnisse in ZIP-Datei - Verlagern in Auslagerungsdatenbereich - Statusmeldung an DB Rücklagern - Auslesen der angeforderten Daten aus der Datenbank - Entpacken der ZIPDatei - Verlagern in Online Bereich - Statusmeldung an DB

Probleme Zeitgesteuerter Skriptablauf mit Cron! Beim Ausloggen: Abbruch des Skripts! Synchronisation über Lock-Dateien Lösung: PowerShell als Service PowerShell als Service - Aufruf mit vollständigem Pfad (Leerzeichen)

Powershell als Service Service einrichten mit srvany - HKLM\LocalMachine\System\Services\CurrentControlSet\Ps Service\Parameters : Application C:\WINDOWS\system32\WindowsPowerShell\v1.0\powe rshell.exe -noninteractive -nologo -noprofile -command "cd 'C:\Program Files\PowershellSkripte'; &./Auslagern_service.ps1" - AppDirectory setzen reicht leider nicht! Einbetten in eigene Anwendung http://www.codeproject.com/kb/cs/howtorunpowershell.aspx

Fazit Kombination aus.net und Skripting ergibt starkes Duo Interaktives Arbeiten durch Objekt-Inspektion verkürzt Entwicklungszeit Administratoren und Entwickler benutzen die gleichen Tools Effiziente Datenverarbeitung in Skripten sehr einfach

Vielen Dank für Ihre Aufmerksamkeit Holger Bär science + computing AG Telefon: 07071 9457-559 www.science-computing.de E-Mail: h.baer@science-computing.de