www.wikidata.de-de.nina.az
Dieser Artikel beschreibt ein Datenbankmanagementsystem von IBM Zum Sportwagen siehe Aston Martin DB2 Db2 ist ein kommerzielles relationales Datenbankmanagementsystem RDBMS des Unternehmens IBM dessen Ursprunge auf das System R und die Grundlagen von Edgar F Codd vom IBM Research aus dem Jahr 1970 zuruckgehen Db2BasisdatenEntwickler IBMErscheinungsjahr 1983 1 Aktuelle Version 12 z OS 25 Oktober 2013 LUW 12 April 2016 Betriebssystem IBM Mainframe z OS Linux Unix WindowsProgrammiersprache C C AssemblerspracheKategorie DatenbankmanagementsystemLizenz proprietardeutschsprachig jaDb2 Seite bei ibm com Inhaltsverzeichnis 1 Eigenschaften 1 1 Eigenschaften Db2 z OS 1 2 Eigenschaften Db2 LUW 2 Komponenten 2 1 Komponenten Db2 z OS 2 2 Komponenten Db2 LUW 3 Tools 3 1 Tools Db2 z OS 3 2 Tools Db2 LUW 4 Skalierbarkeit Db2 LUW 5 Partitionierung 5 1 Datenbankpartitionierung 5 2 Tabellenpartitionierung 5 3 Indexpartitionierung 6 Index Typen 7 SQL PL 8 Utilities 8 1 Statistiken 8 2 Reorganisation 8 3 Indexuberprufung 8 4 Indexneubau 8 5 Integritatstest 8 6 Monitoring von Utilities Db2 z OS 9 Extensions 9 1 Net Search Extender 9 2 Spatial Extender 9 3 Object Relational Extender 9 4 XML Extender 9 5 OLAP Extender 10 Geschichte 10 1 Geschichte Db2 z OS 11 Sonstiges 12 Siehe auch 13 Weblinks 14 EinzelnachweiseEigenschaften BearbeitenDas Datenbankmanagementsystem DataBase 2 Db2 wird von IBM fur verschiedene Plattformen vertrieben Seit der neuen Organisationsstruktur der rund 17 000 IBM Softwareprodukte welche nach dem Verkauf der Social Produkte IBM Notes IBM Sametime BigFix etc im Jahr 2019 an HCL eingefuhrt wurde besteht die DB2 Produktfamilie aus 466 Artikeln Diese gliedern sich in die Produktgruppen IBM Database 2 IBM Database Management IBM Information Integration und PureData Sys Op Analytics Die klassischen IBM DB2 Produkte gehoren zur IBM Database 2 Familie IBM Information Integration sind uberwiegend Analysesoftware unter dem IBM InfoSphere Warehouse die IBM Information Integration ist eine Einbindung in IBM InfoSphere Die letzte Gruppe IBM PureData ist ebenfalls eine Datenanalyselosung allerdings in Real time fur komplexe Abfragen auf grosse Datenvolumen und mit uber 4 3 Mio EUR auch das teuerste Produkt der IBM DB2 Produktfamilie Ein Standard IBM DB2 Enterprise Server wird nach PVU Processor Value Units Prozessorkernen lizenziert und ist ab 872 00 EUR erhaltlich 2 Produktfamilie Produktuntergruppe ProduktnameDb2 IBM Database 2 Data Mgt Busn Intelligence OfferDb2 IBM Database 2 Data StudioDb2 IBM Database 2 DB2Db2 IBM Database 2 DB2 ConnectDb2 IBM Database 2 DB2 Enterprise Server EditionDb2 IBM Database 2 DB2 ToolsDb2 IBM Database 2 DB2 Universal DatabaseDb2 IBM Database Management Other InfoSphere WarehouseDb2 IBM Information Integrator IBM Information IntegratorDb2 PureData Sys Op Analytics PureData Sys Op AnalyticsEs gibt die Produktlinie fur IBM Mainframes auf denen sich aus dem Betriebssystem VSE uber MVS und OS 390 das System fur z OS entwickelt hat Eine andere Linie entstand ursprunglich fur das Betriebssystem OS 2 Diese Software ist in der Programmiersprache C geschrieben und bildete die Basis fur die Varianten in den Betriebssystemen Linux Unix und Windows LUW Eine Variation ist eine in das Betriebssystem IBM i integrierte Losung fur IBM Midrangesysteme heutige Maschinenbezeichnung System i Die vierte Produktlinie betrifft die Betriebssysteme VSE und VM Fur diese gibt es zwar noch Support aber keine neuen Versionen mehr IBM rat den Kunden zu einem Wechsel auf andere Plattformen Aktuell sind die Versionen Db2 for z OS Version 12 3 fruhere Bezeichnungen Db2 UDB for z OS fur Version 8 bzw Db2 UDB for z OS and OS 390 fur Version 7 Db2 UDB for Linux UNIX and Windows Version 11 1 Db2 Data Warehouse Edition fur AIX Linux Windows Db2 Everyplace IBM hat die IBM DB2 Everyplace Produkte vom Vertrieb zuruckgezogen Ausserdem wurde das Ende der Unterstutzung fur den 30 April 2013 angekundigt Db2 for i Version 7 Release 1 fruhere Bezeichnung DB2 400 Db2 Server for VSE amp VM Version 7 4Db2 verwaltet Daten in Tables und speichert sie in Tablespaces Db2 unterstutzt neben den Standard SQL Datentypen auch binare Datentypen Text Tone Bilder Videos XML Daten Seit Februar 2006 gibt es eine kostenlose Community Edition 4 fur Windows und Linux mit den folgenden Einschrankungen gegenuber den kommerziellen Versionen Benutzung von max 2 Kernen einer CPU bzw 4 Kerne mit zusatzlichem Wartungsvertrag Benutzung von max 4 GB Hauptspeicher bzw 8 GB mit zusatzlichem Wartungsvertrag Diese Version hat keine Einschrankungen hinsichtlich der Grosse der Datenbank und der Anzahl der Benutzer ohne zusatzlichen Wartungsvertrag gibt es jedoch keine Replikation 24 7 Support und komfortable Updates Um bei der Ausfuhrung von DB Zugriffen optimale Performance zu erzielen wird ein sog Optimizer eingesetzt ein kostenbasierter Anfrageoptimierer 5 welches bei der Programmvorbereitung den Zugriff auf die betreffenden Tabellen festlegt Dies beruht unter anderem auf den sogenannten Tabellenstatistiken die mit dem Tool RUNSTATS periodisch aktualisiert werden konnen berucksichtigt aber auch andere Kennwerte wie z B die Anzahl der CPUs und Hilfs CPUs den Systemzustand die verfugbare Speichermenge und die physische Verteilung der Daten Der Datenzugriff der Anwendungsschicht erfolgt mit SQL das weitgehend dem ANSI SQL entspricht Zugriffe auf gespeicherte Daten konnen daher aus vielen Programmiersprachen heraus mit eingebettetem SQL erfolgen Db2 kann auch als eingebettetes Datenbanksystem eingesetzt werden Im April 2007 hat IBM eine Kooperation mit MySQL AB angekundigt um das Db2 UDB for iSeries als Database Engine fur MySQL verfugbar zu machen 6 Dadurch kann die Open Source Datenbank MySQL auch auf dem System i5 eingesetzt werden IBM erhofft sich davon neue Einsatzbereiche des Systems i5 fur MySQL und PHP Anwendungen zu eroffnen Eigenschaften Db2 z OS Bearbeiten Das System erlaubt derzeit Tablespaces mit einer maximalen Grosse von 128 Terabyte Die Administration auf Mainframes erfolgt in der Regel mittels Batchjobs wobei zwischen Db2 Utilities RUNSTATS COPY REORG usw und DBA Jobs unterschieden wird SQL wird mittels DSNTIAD in einem TSO Backgroundjob durchgefuhrt Kleinere Arbeiten werden oft auch am TSO Terminal mittels SPUFI oder QMF Query Management Facility unter ISPF durchgefuhrt Grossere Mainframeumgebungen verwenden Db2 Data Sharing wobei die Funktionalitat des Parallel Sysplex der zSeries Rechner voll genutzt wird Eigenschaften Db2 LUW Bearbeiten Das Db2 UDB fur Linux Unix und Windows wird oft als Db2 LUW abgekurzt Es wird mit CLI Befehlen in der Kommandozeile administriert oder graphisch uber die Steuerzentrale Control Center Db2cc Die graphische Oberflache wurde ab der Version 10 1 abgelost Stattdessen kann der IBM Data Server Manager benutzt werden Das sogenannte Db2 EEE sprich triple E oder trippel Ih ab der Version 8 DPF distributed partitioning feature genannt ist fur grossere Umgebungen wobei die Datenbankpartitionen uber mehrere Rechner Nodes verteilt werden konnen Komponenten BearbeitenKomponenten Db2 z OS Bearbeiten Liste der Systemkomponenten eines Db2 Systems fur z OS und OS 390 Die Unterschiede zwischen OS 390 und z OS sind relativ gering daher muss bezuglich der Db2 Komponenten und Funktionen nicht naher unterschieden werden auf welchem dieser beiden Betriebssysteme Db2 installiert ist Im Folgenden soll z OS als Synonym fur z OS oder OS 390 verwendet werden Das Db2 fur z OS ist fur eine optimale Nutzung der Betriebssystem und Hardware Komponenten ausgerichtet Um die Zusammenhange zu verdeutlichen wurden in dieser Liste auch einige Begriffsdefinitionen von Hardware Komponenten aufgefuhrt die nicht Bestandteil des Db2 Systems im engeren Sinne sind BM Buffer Manager Er ist ein Teil des Db2 Subsystems und hat die Aufgabe den BP zu verwalten und die Kommunikation mit dem GBP auszufuhren BP Buffer Pool Bezeichnet einen Bereich im Arbeitsspeicher der von einem Db2 Subsystem verwaltet wird In einem Db2 Subsystem werden meistens mehrere BP eingerichtet die den einzelnen Databases oder genauer den Tablespaces zugeordnet werden wobei ein Bufferpool mehreren Tablespaces zugeordnet sein kann BSDS Bootstrap Data Set Dateien die Recovery Informationen und Kommunikationsinformationen fur DDF bzw Sysplex speichern Data Sharing Function Eine Data Sharing Gruppe schliesst mehrere Db2 Subsysteme und mehrere Datenbanken zusammen Jedes Db2 Subsystem kann auf jede in der Data Sharing Gruppe enthaltene Datenbank zugreifen Shared Everything Architecture Die einzelnen Db2 Subsysteme konnen auf denselben oder auf unterschiedlichen Rechnerknoten laufen Eine Anwendung hat keinen unmittelbaren Einfluss darauf von welchem der Db2 Subsysteme sie bedient wird Einer Data Sharing Gruppe konnen wahrend des laufenden Betriebs weitere Db2 Subsysteme hinzugefugt oder entzogen werden Dadurch wird eine leicht zu administrierende Skalierbarkeit erreicht Data Sharing Gruppe Eine Data Sharing Gruppe fasst mehrere Data Sharing Member zusammen Eine Data Sharing Gruppe hat einen GBP und einen Db2 Katalog Dabei konnen sowohl mehrere Data Sharing Member die auf demselben Rechnerknoten liegen zusammengeschlossen werden als auch Data Sharing Member eingebunden werden die auf einem bis zu 40 km entfernten Rechnerknoten liegen Data Sharing Member Ein in einer Data Sharing Gruppe enthaltenes Db2 Subsystem Datenbank Ein logisches Ordnungskriterium von Db2 Objekten Wenn Data Sharing verwendet wird dann ist jede Datenbank genau einer Data Sharing Gruppe zugeordnet Zu jeder Datenbank wird meistens eine RACF Gruppe und ein gleichnamiges Schema eingerichtet Ein Tablespace ist genau einer Datenbank zugeordnet Db2 Subsystem Synonym fur Db2 Instanz und fur Db2 Exemplar Bezeichnet wird damit ein Programm das vom Betriebssystem gestartet wurde und im Arbeitsspeicher aktiv ist Auf einem Rechnerknoten konnen mehrere Db2 Subsysteme installiert werden Wenn die Data Sharing Funktion genutzt wird dann hat ein Db2 Subsystem auf alle Datenbanken Zugriff die der gesamten Data Sharing Gruppe zugeordnet sind Shared Everything Architecture Ein Db2 Subsystem kann auch so installiert werden dass es in keiner Data Sharing Gruppe eingebunden ist Dann kann jedes Db2 Subsystem nur auf seine eigenen Datenbanken zugreifen Shared Nothing Architecture Ein Db2 Subsystem besteht aus dem RDS dem DM mit dem IRLM und dem BM Es verwaltet mehrere BP und einen SQL Statement Cache Jedes Db2 Subsystem hat seine eigenen Log Dateien Daher ist auch jedes Db2 Subsystem fur sein eigenes Recovery verantwortlich Db2 Katalog Verzeichnis aller DB Objekte In einer Data Sharing Umgebung gibt es einen einzigen Db2 Katalog in dem alle Objekte auf die die Db2 Subsysteme zugreifen konnen verzeichnet sind Objekte die in dem Db2 Katalog verzeichnet sind sind unter anderem die Databases Bufferpools Tablespaces Tables Views Indizes und die Zugriffsberechtigungen DDF Distributed Data Facility Komponente fur den Zugriff auf ein RDBMS auf einem entfernten System Dadurch sind sowohl Zugriffe auf andere Db2 Systeme als auch auf RDBMS anderer Datenbank Hersteller wie z B Oracle oder Microsoft SQL Server moglich DM Data Manager Komponente eines Db2 Subsystems die den Zugriff auf den Bufferpool ausfuhrt und die Stage 1 Pradikate der SQL Queries ausfuhrt Die Liste der Stage 1 und der Stage 2 Pradikate findet man im Kapitel 6 3 3 2 Summary of predicate processing 7 vom Application Programming and SQL Guide 8 Der DM wird vom RDS aufgerufen um eine SQL Query zu evaluieren Der DM fordert vom BM die erforderlichen Daten an DSNZPARM Systemparameter Hier werden Konfigurationsparameter des Db2 Subsystems gespeichert GBP Group Buffer Pool Der GBP steht allen Db2 Subsystemen einer Data Sharing Gruppe zur Verfugung Der GBP ist die logische Bezeichnung des vom Coupling Facility verwalteten Speicherbereichs GLM Global Lock Manager Bei einem Parallel Sysplex nimmt die Coupling Facility die Aufgabe des GLM wahr Er ubernimmt die Koharenzkontrolle fur die gemeinsame Nutzung von Daten durch die einzelnen Rechnerknoten Der GLM kommuniziert mit den LLM der Rechnerknoten Hiper Pool Stellt eine optionale Erweiterung des Virtual Pools dar und kann bei der Db2 z OS Version 7 bis zu 8 GB gross definiert werden Der Hiper Pool befindet sich im Expanded Storage Seit der Db2 z OS Version 8 sind Hiper Pools nicht mehr erforderlich da durch die 64 Bit Adressierung der gesamte Arbeitsspeicher direkt adressiert werden kann Eine 64 Bit Adresse kann 16 Exabyte direkt adressieren Instanz Synonym fur Db2 Subsystem und fur Db2 Exemplar IRLM Internal Resource Lock Manager Das ist der Lock Manager eines Db2 Subsystems Er kommuniziert mit dem LLM des Rechnerknotens LLM Local Lock Manager Das ist der Lock Manager der das Locking innerhalb eines Rechnerknotens steuert Wenn Ressourcen vom Festplattenspeicher angefordert werden die sich bereits vom LLM anderer Rechnerknoten im Zugriff befinden dann koordiniert der GLM die Locks zwischen den einzelnen LLM Partitionierung ist bei Db2 z OS eine Eigenschaft von Tablespaces Tabellen und Indizes Alle Partitionen werden im selben Katalog verzeichnet und konnen von denselben Db2 Subsystemen zugegriffen werden Partitionierung wird fur die Speicherung und Verwaltung von grossen Datenbestanden eingesetzt Eine partitionierte Tabelle bietet die Moglichkeit dass einzelne Partitionen administriert werden REORG RECOVER COPY wahrend die Anwendungsprogramme auf den anderen Partitionen aktiv sind Die Partitionierung ist ein wesentlicher Beitrag zur Gewahrleistung einer hohen Verfugbarkeit von grossen Datenbestanden RDS Relational Data System Komponente eines Db2 Subsystems das unter anderem die Stage 2 Pradikate ausfuhrt Die Liste der Stage 1 und der Stage 2 Pradikate findet man im Kapitel 6 3 3 2 Summary of predicate processing 7 vom Application Programming and SQL Guide 8 Wahrend der DM alle einfachen Pradikate evaluiert fuhrt das RDS die komplexen Verknupfungen zur Ermittlung der Ergebnisse einer SQL Query aus SPAS Stored Procedure Address Spaces Wurde in fruheren Versionen verwendet um einen Adressraum fur Stored Procedures zu definieren In neueren Versionen werden Stored Procedures in WLM managed Adressraumen ausgefuhrt Komponenten Db2 LUW Bearbeiten Das Db2 UDB fur Linux Unix und Windows wird oft als Db2 LUW abgekurzt Im Gegensatz zum Db2 z OS bietet IBM die wichtigsten Manuals fur Db2 V9 LUW in deutscher Sprache 9 an Auch die Fehler und Hilfetexte werden eine Installation mit Sprachauswahl deutsch vorausgesetzt in deutsch ausgegeben Dabei werden auch die Namen der Db2 Systemkomponenten in deutschen Begriffen angegeben Das mag den ersten Einstieg erleichtern da man sich nur die deutschen Begriffe merken muss Wenn man jedoch die weiteren Details des Systems verstehen will dann ist man auf die ubrigen nicht ins Deutsche ubersetzen Manuals und die sonstige englischsprachige Literatur z B die Redbooks 10 angewiesen Zum anderen werden verstandlicherweise im Db2 Katalog nur die originalsprachlichen Begriffe verwendet Folglich fuhrt kein Weg daran vorbei sich auch die englischen Begriffe zu merken In der nachfolgenden Begriffsdefinition werden zuerst die englischen Begriffe danach die von der IBM verwendeten deutschen Ubersetzung angegeben gefolgt von ihrer Erlauterung Connect Verbindung einer Instanz zu einer Datenbank Ein Connect ist die Voraussetzung um SQL Befehle auszufuhren Es gibt den Connect Typ 1 bei dem ein Client immer nur zu einer Datenbank eine Verbindung haben kann Bei dem Connect Typ 2 kann ein Client innerhalb einer Transaktion zu mehreren Datenbanken eine Verbindung aufbauen Im 2 Fall wird der Two Phase Commit verwendet DAS Database Administration Server Auf Deutsch Db2 Verwaltungsserver DAS ist ein Verwaltungsservice der die Db2 Verwaltungstools bei der Lokal und Fernverwaltung bei der Jobverwaltung und bei Benachrichtigungen unterstutzt Auf einem Computer darf nur ein DAS vorhanden sein Der DAS wird bei einer Standardinstallation so konfiguriert dass er startet wenn das Betriebssystem gestartet wird Der DAS speichert ab der Version 8 seine Parameter nicht mehr in Konfigurationsdateien sondern in der Tools DB Database Auf Deutsch Datenbank Eine Datenbank kann man sich als einen Daten Container vorstellen Er wird auf einer oder mehreren bestimmten Festplatten gespeichert Eine Datenbank hat einen eigenen Db2 Katalog und wird von einer lokalen Instanz verwaltet Auf eine Datenbank konnen nur die Instanzen zugreifen die diese Datenbank in ihrem Datenbankverzeichnis katalogisiert haben Wenn auf einem Rechner eine Datenbank installiert ist dann muss dort auch eine Instanz vorhanden sein die diese Datenbank verwaltet Database Directory Auf Deutsch Datenbankverzeichnis Jede Instanz hat ihr eigenes Datenbankverzeichnis in der alle Datenbanken verzeichnet sind zu denen die Instanz einen Connect aufbauen kann In dem Verzeichnis sind alle lokalen Datenbanken katalogisiert Wenn eine Instanz eine neue Datenbank erstellt dann tragt sie diese auch gleich in ihr Datenbankverzeichnis ein Es konnen auch entfernte Datenbanken eingetragen werden wenn sie auf einem Knoten liegen der im Knotenverzeichnis katalogisiert ist Das Datenbankverzeichnis und das Knotenverzeichnis sind das Aquivalent zu der Datei tnsnames ora bei Oracle Db2 CAE Db2 Client Application Enabler Wird auch Db2 Connect genannt Db2 CAE kann auf einem Client Computer installiert werden um einen Zugriff uber das Netzwerk zu einem Db2 Server zu ermoglichen Im CAE sind ein CLP und die DCS enthalten Db2 Connect siehe Db2 CAE Db2 Registry Db2 Profil Registrierdatenbank zum Speichern von Umgebungsvariablen Alle Systemparameter die zum Hochfahren der Instanz erforderlich sind werden vom Betriebssystem verwaltet Die anderen Systemparameter werden von der Datenbank selber verwaltet In der Db2 Registry werden vier Ebenen unterschieden Db2 Profilregistrier Datenbank auf Exemplarebene Hier werden Parameter gespeichert die nur fur die Instanz gelten Globale Db2 Profil Registrierdatenbank Parameter betreffen alle Instanzen Db2 Profil Registrierdatenbank auf Exemplarknotenebene Parameter die nur fur einen Knoten Gultigkeit haben Db2 Exemplarliste Liste aller auf dem System verfugbaren Exemplar Namen DCS Database Connection Service Das DCS Verzeichnis wird vom Db2 Connect verwendet Eintrage im DCS kann man mit dem Befehl CATALOG DCS DATABASE vornehmen DDCS Distributed Database Connection Service Gateway Komponente fur den Zugriff auf andere DRDA Systeme Erforderlich ist dafur die Installation von Db2 Connect Enterprise Zur DDCS Komponente gehoren verschiedene BND und LST Dateien die das Binden der vom CLP benotigten Packages gegen das entfernte RDBMS erlauben DPF Data Partitioning Feature Systemfunktion fur die Administration von partitionierten Db2 Objekten DMS Database Managed Space Parameter eines Tablespace Dadurch wird festgelegt dass die Verwaltung des Tablespace von der Db2 Instanz ausgefuhrt wird Exemplar Synonym fur Instanz Siehe Begriffsdefinition dort Federated Server Eine Instanz kann als Federated Server eingerichtet werden Dadurch kann zusammen mit der Installation eines Wrappers auf DBMS anderer Hersteller wie z B Oracle oder Microsoft SQL Server sowie auf ODBC Datenquellen zugegriffen werden Siehe auch Foderiertes Informationssystem Instance Auf Deutsch Instanz Synonym fur Exemplar und dem Begriff eines Db2 Subsystems in der Mainframe Welt Aus Sicht des Betriebssystems ist eine Instanz ein Programm mit einer Konfigurationsumgebung Environment das vom Betriebssystem gestartet werden kann Auf einem Rechner konnen mehrere Instanzen installiert werden Die Instanz wird vom Betriebssystem unter einem bestimmten User gestartet Dieser User muss im Betriebssystem registriert sein Er ist der Eigentumer der Instanz Eine Instanz kann mehrere lokale Datenbanken verwalten Sie kann uber das Database Directory auch auf Datenbanken anderer Instanzen zugreifen Node Auf Deutsch Knoten oder Rechnerknoten Bezeichnet wird damit ein Computer auf dem eine Db2 Installation vorhanden ist Node Directory Auf Deutsch Knotenverzeichnis Liste von Knoten auf denen weitere Db2 Systeme vorhanden sind die vom lokalen Db2 System zugegriffen werden sollen Wenn keine Verbindungen zu fernen Datenbanken eingerichtet sind dann gibt es auch kein Knotenverzeichnis bzw das Knotenverzeichnis ist leer LDAP Lightweight Directory Access Protokoll Es ist eine Standard Zugriffsmethode fur einen Verzeichnisdienst Fur Db2 bedeutet das dass das Datenbankverzeichnis und das Knotenverzeichnis nicht mehr lokal auf jeder Maschine gespeichert werden mussen sondern auf einem zentralen LDAP Server abgelegt sein konnen Um einen LDAP Server zu verwenden mussen alle beteiligten Server beim LDAP Server registriert sein Zum Einrichten gibt es im Db2 die CATALOG LDAP Befehle SMS System Managed Space Parameter eines Tablespaces der angibt dass die Verwaltung des Tablespaces vom Betriebssystem durchgefuhrt wird Wrapper Ein Wrapper ermoglicht eine Verbindung zu einer entfernten Datenquelle Voraussetzung ist dass der Server als Federated Server parametrisiert ist In der Version 8 konnen Wrapper fur die folgenden Datenquellen eingerichtet werden BioRS BLAST CTLIB SYBASE DRDA Db2 Entrez Excel HMMER Informix NET8 ORACLE ODBC OLE DB Table structured files Teradata Web services WebSphere Business Integration XML Tools BearbeitenTools Db2 z OS Bearbeiten Tools die unter der ISPF Benutzeroberflache laufen Workload Manager Komponente die fur die Arbeit auf einem z OS den Zugang zu den Betriebsmitteln steuert SPUFI Programm zur Ausfuhrung von SQL Statements QMF Programm zur Ausfuhrung von SQL Statements QMF besitzt zusatzlich einige Formatierungsbefehle Es ist ein komplettes Re Design fur die QMF Software angekundigt Die Software soll zukunftig ein Client Tool mit einer graphischen Benutzeroberflache sein InSync for Db2 Werkzeug der Macro 4 womit Db2 Daten interaktiv verarbeitet und verandert werden konnen File AID for Db2 Tool zum Anlegen Loschen Sichern Laden von Tabellen Tablespaces und Daten Tools die auf einem Client z B unter Windows laufen und uber Db2 Connect auf den Db2 Datenbankserver zugreifen Visual Explain Tool zur Anzeige des Zugriffspfades einzelner SQL Statements Visual Explain lauft unter Windows und wird von der IBM als kostenloser Download angeboten Voraussetzung fur die Nutzung ist allerdings die Installation von Db2 Connect Performance Estimator Werkzeug zur Abschatzung der Leistung von SQL Statements Control Center Tool zur Administration der Datenbank uber eine grafische Oberflache Development Center Entwicklungsumgebung zur Erstellung von PL SQL und Java Prozeduren Warehouse Manager Tool zur Konfiguration von ETL Komponenten wie z B Materialized Views Replication Center Tool zur Konfiguration und Administration von Datenreplikationen zu anderen relationalen oder auch nicht relationalen Datenbanken QMF Programm zur Ausfuhrung von SQL Statements QMF ist unter ISPF und Windows verfugbar Tools Db2 LUW Bearbeiten CLP Command Line Prozessor Auf Deutsch Befehlszeilenprozessor Umgebung zur Ausfuhrung von SQL Statements und Db2 Commands zur Administration der Datenbank Der CLP wird aufgerufen mit dem Befehl Db2 Man kann jederzeit ohne den Connect zur Datenbank zu verlieren wieder auf die Kommando Ebene des Betriebssystems wechseln mit dem Befehl quit Db2 Connect Datenbank Programmierschnittstelle die einem Client den Zugriff auf einen Datenbank Server ermoglicht Jede Installation braucht ein eigenes Knotenverzeichnis und ein eigenes Datenbank Verzeichnis Daruber wird festgelegt zu welchen DB Servern und den dort verwalteten Datenbanken ein Connect ausgefuhrt werden kann Steuerzentrale Werkzeug zur Administration der Datenbank Visual Explain kann auch bei Db2 LUW eingesetzt werden Skalierbarkeit Db2 LUW BearbeitenDas DBMS kann auf unterschiedlichen Hardware Konfigurationen installiert werden Wenn ein kleines Datenvolumen verwaltet werden soll und nur wenige Transaktionen ihre Anforderungen an das DBMS stellen dann ist eine Installation auf einer Einzelprozessormaschine eine kostengunstige Losung Bei einer grosseren Anzahl von zu bearbeitenden Transaktionen ware eine Mehrprozessormaschine die nachstgrossere Einheit zur Leistungssteigerung Das System kann die Evaluierung einer einzigen Abfrage auf mehreren Prozessoren parallel bearbeiten Dadurch wird sowohl die Bewaltigung des gesamten Transaktionsvolumens als auch die Ausfuhrung einzelner verarbeitungsintensiver Abfragen beschleunigt Es sind jedoch nicht alle Abfragen fur eine Parallelisierung geeignet Das DBMS verwaltet die Verteilung der Arbeitsschritte auf die einzelnen Prozessoren Symmetrisches Multiprozessorsystem Diese Hardware Konfiguration wird auch als Shared everything Architecture bezeichnet denn die einzelnen Prozessoren mussen sich alle anderen Hardware Komponenten miteinander teilen Wenn sich die Nutzung der anderen Hardware Komponenten Plattenspeicher Controller Arbeitsspeicher als Engpass herausstellt dann kann die Leistung weiter gesteigert werden durch eine Verteilung des DBMS auf mehrere Einzelprozessormaschinen Diese Hardware Konfiguration wird auch als Shared Nothing Architecture bezeichnet da jeder Prozessor seinen eigenen Hauptspeicher Controller und Plattenspeicher besitzt Wenn das DBMS auf mehreren Rechnerknoten installiert wird dann muss eine Datenbankpartitionierung eingesetzt werden Das bedeutet dass auf jedem Rechnerknoten eine oder auch mehrere Datenbankpartition eingerichtet wird Ein einzelnes DBMS kann auf maximal 512 Rechnerknoten installiert werden Um die maximale Hardware Leistung fur ein DBMS zur Verfugung zu stellen konnen fur die einzelnen Rechnerknoten Mehrprozessormaschinen gewahlt werden Eine solche Hardware Architektur wird auch als SMP Cluster bezeichnet Partitionierung BearbeitenDb2 bietet verschiedene Konzepte um die Administration grosser Datenmengen zu erleichtern und die Zugriffsperformance durch Parallelverarbeitung zu erhohen Eines dieser Konzepte ist die Partitionierung 11 Datenbankpartitionierung Bearbeiten Datenbankpartitionierung gibt es nur fur Db2 LUW Es muss eingesetzt werden wenn eine Db2 Instanz auf mehreren Rechnerknoten installiert wird Auf jedem Rechnerknoten muss mindestens eine Datenbankpartition eingerichtet werden Es kann auch eingesetzt werden wenn die Db2 Instanz auf nur einem Rechnerknoten installiert ist Bei einer Installation auf einem Rechnerknoten lohnt sich die Datenbankpartitionierung vor allem dann wenn auf diesem mehrere Festplatten installiert sind Auf jeder Festplatte kann eine eigene Datenbankpartition eingerichtet werden Auf diese Weise kann eine gleichmassige Verteilung der Daten auf mehrere Festplatten erreicht werden Durch die Parallelisierung der Plattenzugriffe kann schneller auf die Daten zugegriffen werden Nachdem die Datenbankpartitionen definiert sind mussen diese zu Partitionsgruppen zusammengefasst werden Eine Partitionsgruppe kann aus einer oder aus mehreren Datenbankpartitionen bestehen Eine Datenbankpartition kann mehreren Partitionsgruppen angehoren Die Partitionsgruppen durfen sich uberschneiden Beispiel Es gibt die Datenbankpartitionen p1 bis p9Es werden die Partitionsgruppen g1 bis g6 eingerichtet g1 p1 g2 p2 g3 p3 p4 p5 g4 p3 p4 p5 p6 p7 g5 p6 p7 p8 p9 g6 p9 Beim Erstellen eines Tabellenbereichs Tablespace muss in dieser Umgebung immer mit angegeben werden in welcher Partitionsgruppe der Tabellenbereich erstellt werden soll Im Beispiel konnen Tabellenbereiche fur kleinere Tabellen in den Partitionsgruppen g1 und g2 angelegt werden Tabellenbereiche fur grossere Tabellen konnen z B in der Partitionsgruppe g4 erstellt werden Alle Tabellen die in diesem Tabellenbereich erstellt werden werden automatisch in allen Datenbankpartitionen der benannten Gruppe erstellt So konnen die Daten einer Tabelle auf mehrere Rechnerknoten verteilt werden Die Verteilung erfolgt implizit durch Generierung eines Partitionsschlussels mittels eines Hash Algorithmus Das System wahlt selbst die Spalten aus die zur Generierung des Hash Schlussels herangezogen werden In den meisten Fallen wird der Primarschlussel oder ein Teil davon genommen Wenn die Tabelle ohne Primarschlussel definiert wird dann wird die erste Tabellenspalte genommen Mit dem Administrationswerkzeuge SQLUGTPI kann die Verteilungszuordnung uberpruft und ggf geandert werden Tabellenpartitionierung Bearbeiten Tabellenpartitionierung ist eine Funktion die im Db2 z OS ab der Version 8 genutzt werden kann Beim Db2 LUW steht sie ebenfalls ab der Version 8 zur Verfugung In der englischen Literatur werden dafur die Begriffe table controlled partitioned table partitioned oder auch data partitioned verwendet Bei der Tabellenpartitionierung wird beim Erstellen einer Tabelle festgelegt wie viele Partitionen diese Tabelle haben soll und nach welchem Verteilungskriterium die Daten auf die einzelnen Partitionen aufgeteilt werden Dabei kann fur jede Tabellenpartition ein anderer Tabellenbereich Tablespaces angegeben werden Wenn die Tabellenbereiche auf unterschiedlichen Speicherplatten angelegt wurden dann kann damit eine Parallelisierung und damit Beschleunigung der Plattenzugriffe erreicht werden Die Zuordnung der Daten zu den einzelnen Partitionen muss bei der Tabellendefinition explizit angegeben werden Beispiel 1 create table t1 verkaufsdatum date umsatz decimal 10 2 in ts1 ts2 ts3 ts4 ts5 partition by range verkaufsdatum starting from 01 01 2007 ending at 31 12 2007 every 3 month ts1 bis ts5 sind die bereits vorhandenen Tabellenbereiche Beispiel 2 create table t1 verkaufsdatum date umsatz decimal 10 2 partition by range verkaufsdatum starting from 01 01 2007 ending at 31 01 2007 in ts1 ending at 31 05 2007 in ts2 ending at 01 06 2007 in ts3 ending at 10 07 2007 in ts4 ending at 31 12 2007 in ts5 Bei der zweiten Variante kann eine Ungleichverteilung der Daten explizit berucksichtigt werden Die Partitionierungsgrenzen konnen nachtraglich geandert werden Es konnen weitere Partitionen hinzugefugt werden und einzelne Partitionen geloscht werden Bei Db2 z OS konnen ab der Version 8 alle Indices die zu dieser Tabelle definiert werden ebenfalls partitioniert werden Wenn ein Index auch partitioniert wird dann wird er nach denselben Kriterien partitioniert wie die Tabelle Es kann der Primarschlussel die Partitionierung und die Sortierreihenfolge der Satze im Tabellenbereich CLUSTER Order unabhangig voneinander gewahlt werden Wenn alle Indices einer partitionierten Tabelle ebenfalls partitioniert sind dann wird dadurch eine vollige Unabhangigkeit der einzelnen Tabellenpartitionen hergestellt Eindeutige UNIQUE Indices konnen allerdings nur dann partitioniert werden wenn sie alle partitionierenden Spalten enthalten dies muss bei der Wahl des primary key berucksichtigt werden Es kann dann eine Partition administriert werden z B LOAD REPLACE RECOVER REORG COPY wahrend auf den anderen Partitionen gleichzeitig Programme aktiv sind Voraussetzung ist allerdings dass die Programme so parametrisiert werden konnen dass die nur auf die Daten bestimmter Partitionen zugreifen Im Beispiel oben kann die Partition in ts1 mit LOAD REPLACE geladen werden wahrend ein Programm die Daten vom Dezember in ts5 verarbeitet Bei Db2 LUW Version 9 kann ein Index nicht partitioniert werden Er kann lediglich in einem eigenen Tabellenbereich angelegt werden Eine vollige Isolierung der einzelnen Tabellenpartitionen aus Sicht der Administration wie bei Db2 z OS ist daher in der Db2 LUW Version 9 nicht moglich Indexpartitionierung Bearbeiten Dieses Konzept war bei Db2 z OS bis zur Version 7 die einzige Moglichkeit der Partitionierung von Daten Dieses Konzept ist aus Kompatibilitatsgrunden noch in der aktuellen Version enthalten doch wird vom Hersteller empfohlen auf die Tabellenpartitionierung zu wechseln In der englischen Literatur werden dafur die Begriffe index partitioned oder um es noch deutlicher auszudrucken index controlled partitioned verwendet Bei der Indexpartitionierung wird bei der Definition eines Tabellenbereiches die Anzahl der Partitionen festgelegt In diesem Tabellenbereich kann nur eine einzige Tabelle angelegt werden Bei der Indexdefinition wird der Verteilschlussel festgelegt nach dem die Daten auf die einzelnen Partitionen aufgeteilt werden Dieser Index bestimmt gleichzeitig die Sortierreihenfolge Cluster Order der Daten und er wird selbst nach dem gleichen Verteilschlussel partitioniert gespeichert Beispiel create tablespace ts1 numparts 5 in db01 create table t1 ID integer not null verkaufsdatum date not null umsatz decimal 11 2 primary key ID in db01 ts1 create index i1 on t1 verkaufsdatum cluster part 1 values 31 01 2007 part 2 values 31 05 2007 part 3 values 01 06 2007 part 4 values 10 07 2007 part 5 values 31 12 2007 In dem Beispiel ist db01 der Name der Datenbank ts1 der Name des Tabellenbereichs t1 der Name der Tabelle und i1 der Name des Index Der Tabellenbereich wird fur 5 Partitionen definiert Die Partitionsobergrenzen werden bei der Indexdefinition festgelegt Der Nachteil bei der Indexpartitionierung ist dass alle weiteren Indizes nicht partitioniert werden konnen Dadurch ist eine separate Administration einzelner Partitionen stark eingeschrankt Ausserdem sind der Partitionierungsschlussel und die Cluster Reihenfolge untrennbar miteinander verbunden Bei der Tabellenpartitionierung konnen diese Elemente unabhangig voneinander bestimmt werden Index Typen BearbeitenIndices konnen in Db2 z OS sowie in Db2 LUW ab Version 9 7 partitioniert werden In Db2 LUW bis und mit V9 5 ist die Partitionierung von Indices nicht moglich Die nachfolgenden Ausfuhrungen uber Indexpartitionierung beziehen sich also auf Db2 z OS und Db2 LUW ab 9 7 Durch die Einfuhrung der Tabellenpartitionierung der Db2 z OS V8 sind vielfaltige Gestaltungsmoglichkeiten fur das Index Design entstanden Die in der Literatur verwendeten englischen Begriffe sollen den deutschen Begriffen falls vorhanden zugeordnet werden und kurz beschrieben werden Eigenschaften von Indices die zu partitionierten Tabellen erstellt werden partitioned partitioniert nonpartitioned nicht partitioniert partitioning partitionierend 1 2nonpartitioning nicht partitionierend DPSI 3Bei der in fruheren Db2 Versionen verwendeten Indexpartitionierung einer Tabelle konnte nur der Cluster Index partitioniert werden Das ist der Typ 1 Indices vom Typ 1 konnen naturlich in der aktuellen Version auch erstellt werden Wenn zu einer partitionierten Tabelle weitere Secondary Indices erstellt werden sollten dann konnten diese bis zur Version 7 nur ohne Partitionierung also als 2 oder 3 erstellt werden Ab der Version 8 konnen alle Indices zu einer partitionierten Tabelle ebenfalls partitioniert werden Zu einer partitionierten Tabelle konnen nach wie vor auch unpartitionierte Indices angelegt werden Die Partitionsunabhangigkeit ist dann allerdings eingeschrankt Partitioned Nonpartitioned Auf Deutsch partitioniert nicht partitioniert Die Abkurzung NPI steht fur non partitioned index Damit wird unterschieden ob der Index selbst in mehreren Partitionen gespeichert wird oder ob er als eine einzige zusammenhangende Struktur gespeichert wird Ein nicht partitionierter Index kann in einem einzigen Dataset gespeichert werden Wenn ein Index partitioniert ist dann existiert fur jede Partition eine eigene Indexstruktur Ein Index kann nur nach denselben Kriterien partitioniert werden wie die Tabelle auf die er sich bezieht Das bedeutet wenn eine Tabelle nicht partitioniert ist dann konnen zu dieser Tabelle auch keine partitionierten Indices angelegt werden Partitioning Nonpartitioning Auf Deutsch Partitionierend nicht partitionierend Ein Index ist partitionierend wenn er die Spalten der Tabelle die zur Partitionierung der Tabelle verwendet werden als vorderste Indexspalten enthalt Beispiel eine Tabelle ist partitioniert anhand der Spalten S1 S2 Ein Index I1 uber die Spalten S1 S2 S5 ist partitionierend ein Index I2 uber die Spalten S1 S3 S2 ist nicht partitionierend und I3 uber die Spalten S7 S8 S9 ist auch nicht partitionierend Diese Bezeichnung sagt nichts daruber aus ob der Index partitioniert gespeichert wird oder nicht Secondary Index Auf Deutsch Sekundarindex Ist eine andere Bezeichnung fur Nonpartitioning also nicht partitionierend Index Typen DPSI und 3 DPSI Data partitioned secondary index Der Index ist partitioniert aber nicht partitionierend Er wird also in n Partitionen gespeichert obwohl seine vordersten Indexspalten nicht mit den Spalten ubereinstimmen die die Partitionierung der Tabelle ausmachen Ein DPSI kann nicht UNIQUE definiert werden Das liegt daran dass ein bestimmter Indexschlussel in jeder Partition vorkommen kann also in jeder Indexstruktur vorkommen kann Die Eindeutigkeit eines Schlussels konnte nur durch einen Zugriff auf die Indexstrukturen aller anderen Partitionen uberpruft werden Wenn Eindeutigkeit erforderlich ist dann sollte ein nonpartitioning Index als nonpartitioned definiert werden Index Typ 3 logische physische Indexpartition Beide Begriffe bezeichnen die Menge aller Schlussel die der Index speichert die auf dieselbe Tabellenpartition verweisen Wenn der Index selbst partitioniert ist dann handelt es sich um physische Indexpartitionen da jede Indexpartition auch tatsachlich in einer oder mehreren separaten Datei en gespeichert wird Es handelt sich um logische Indexpartitionen wenn der Index nicht partitioniert ist Die Schlussel aus den einzelnen logischen Indexpartitionen werden gemischt gespeichert in einer einzigen Indexstruktur Weitere Eigenschaften von Indices betrifft Indices zu partitionierten Tabellen und auch Indices zu nicht partitionierten Tabellen clustering Wenn mehrere Indices zu einer Tabelle erstellt werden dann kann einer davon als Cluster Index definiert werden Das bedeutet dass bei einer Reorganisierung der Tabelle die Datensatze in der Reihenfolge abgelegt werden wie es dieser Index vorgibt Da ab der Version 8 die Cluster Reihenfolge nicht mehr zwangslaufig mit dem Primarschlussel und den Partitionierungskriterien ubereinstimmen muss kann auch ein nicht partitionierender Index als Cluster Index gewahlt werden Die Sortierreihenfolge bezieht sich immer auf die Satze innerhalb einer Partition Ein Clusterindex kann unique oder auch nonunique sein unique nonunique Auf Deutsch Eindeutiger nicht eindeutiger Index In einem eindeutigen Index kann ein Schlussel nur einmal vorkommen Bei einem nicht eindeutigen Index kann ein Schlussel mehrfach vorkommen padded non padded Gibt an wie VARCHAR Datenfelder in Index gespeichert werden Bei einem Padded Index werden VARCHAR Daten auf ihre volle Lange expandiert indem sie mit Leerzeichen aufgefullt werden Dafur muss die Langeninformation nicht mitgespeichert werden Ein Non Padded Index speichert VARCHAR Daten nur in der Lange in der sie auch tatsachlich vorliegen Hier wird die Langeninformation mitgespeichert Bis zur Db2 z OS V7 konnten VARCHAR Datenfelder im Index nur padded gespeichert werden Ab der Version 8 gibt es diese Wahlmoglichkeit ascending descending Auf Deutsch aufsteigende absteigende Sortierreihenfolge Die Sortierreihenfolge war in fruheren Db2 Versionen ein wichtiger Parameter da die Leaf Pages nur in der definierten Sortierreihenfolge sequentiell durchgelesen werden konnten Seit der Db2 z OS V8 konnen die Leaf Pages eines Index in beiden Richtungen sequenziell gelesen werden SQL PL BearbeitenDie Stored Procedure Engine in Db2 implementiert eine Teilmenge von ISO standardisiertem SQLPM SQL Persistent Modules Sie ist ahnlich zu Oracle PL SQL und PostgreSQL PL pgSQL allerdings werden beispielsweise ROWTYPES einfach strukturierte Tabellen nicht unterstutzt Wie Oracle und PostgreSQL bietet auch Db2 die Moglichkeit weitere Sprachen datenbankseitig in gespeicherten Prozeduren stored procedures zu nutzen Db2 bietet hier C und Java an Utilities BearbeitenStatistiken Bearbeiten RUNSTATS ist ein Utility zur Erzeugung von statistischen Daten uber die Inhalte von Db2 Tabellen und deren Indices Zum Beispiel werden die minimalen und maximalen Werte einer Spalte und die Kardinalitat der Spalten und der Tabelle ermittelt Abgelegt werden diese Daten im Db2 Systemkatalog einer Sammlung von Tabellen in denen Db2 Informationen uber alle Objekte wie Tabellen Indices Spalten usw ablegt self descriptive also selbstbeschreibend Das Datenbankverwaltungssystem nutzt diese statistischen Daten um fur die vom Anwender realisierten Zugriffe auf die Db2 Tabellen einen moglichst optimalen Zugriffspfad zu verwenden Z B sind Indexzugriffe in der Regel sinnlos wenn die gesamte Tabelle nur wenige Zeilen enthalt ein einfaches Lesen aller Daten ist dann schneller Neben den Daten fur den Zugriffspfad Optimizer werden aber auch Daten fur die Administration ermittelt z B der Quotient der genutzten Speicherseiten oder der Komprimierungsgrad RUNSTATS sollte immer dann ausgefuhrt werden wenn sich die Inhalte von Tabellen wesentlich geandert haben oder wenn neue Indices angelegt wurden Danach mussen bei statischem SQL auch die verweisenden Db2 Packages neu gebunden werden da darin die Zugriffswege abgelegt sind Das Werkzeug kann fur Tabellenbereiche Tablespace oder Indices ausgefuhrt werden und kann auch im Rahmen anderer administrativer Utilities eingebettet laufen REORG LOAD JCL Beispiel fur Db2 z OS RSTAT EXEC DSNUPROC UID JCA RUNSTA TIME 1440 UTPROC SYSTEM V71A UTPRINT DD SYSOUT SYSIN DD RUNSTATS TABLESPACE DSNXXX DSNABCDE TABLE ALL SAMPLE 25 INDEX ALL SHRLEVEL CHANGE Hier werden im Tablespace DSNXXX DSNABCDE in allen Tabellen und Indices 25 der Zeilen untersucht SAMPLE 25 Ein paralleler Update durch andere Prozesse ist erlaubt SHRLEVEL CHANGE Unter Unix konnte ein Kommando so aussehen RUNSTATS ON TABLE beispielschema beispieltabelle WITH DISTRIBUTION AND DETAILED INDEX Reorganisation Bearbeiten Mit dem Utility REORGCHK kann ermittelt werden ob eine Reorganisation von Tabellen oder Indizes moglich ist Zudem konnen in vereinfachter Form auch die Statistikdaten einer Tabelle in Analogie zum Utility RUNSTATS aktualisiert werden REORG ist ein Utility zur Reorganisation von Db2 Tabellen bzw Indices Unix und Windows Version oder Tablespaces Mainframe Dabei werden die Daten in einer optimalen Art und Weise auf dem permanenten Speicher abgelegt Die optimale Weise wird uber den Cluster Index bestimmt Die Speicherseiten werden optimal aufgefullt und Zeilen die nicht auf ihrer ursprunglichen Seite stehen Far Of Page Near Of Page werden wieder an die bestmogliche Position verschoben Das Utility kann offline oder online arbeiten Bei der Offline Variante werden die Daten dem Clustering Index entsprechend sortiert und in temporare Dateien gespeichert Der Tablespace wird dann neu angelegt und die Daten werden nun sortiert wieder in den Tabellenbereich eingetragen Anschliessend werden alle Indices neu aufgebaut Bei der Online Variante wird ein neuer Tablespace Schattenkopie angelegt und die Daten werden sukzessive in den neuen Bereich sortiert ubertragen Zwischenzeitliche Anderungen werden anschliessend aus dem Recovery Log eingearbeitet wobei eine Arbeitstabelle Mappingtable der Zuordnung von alten zu neuen internen Satzschlusseln Record Identifiers dient Sind alle Anderungen berucksichtigt findet ein Switch statt nach dem Db2 fortan auf den neuen Tabellenbereich zugreift Der alte Bereich wird verworfen Zusatzlich zum Reorganisieren konnen Sicherungskopien COPY und statistische Daten RUNSTATS ermittelt werden JCL Beispiel fur Db2 z OS REORG EXEC DSNUPROC UID JCA REORG TIME 1440 UTPROC SYSTEM V71A UTPRINT DD SYSOUT SYSIN DD REORG TABLESPACE DSNXXX DSNABCDE Hier wird der Tablespace DSNXXX DSNABCDE reorganisiert Zur Feststellung der Notwendigkeit kann ein weiteres Utility herangezogen werden REORGCHK Indexuberprufung Bearbeiten Das Db2 Utility uberpruft ob der Datenbankindex auf dem zu prufenden Tablespace konsistent zu den Daten ist auf die der Index angewendet wird Das Utility protokolliert allerdings nur inkonsistente Zustande beseitigt sie aber nicht und setzt auch keinen pending status JCL Beispiel fur Db2 z OS STEP1 EXEC DSNUPROC UID IUIQU1UQ CHK1 UTPROC SYSTEM DSN SYSUT1 DD DSN IUIQU1UQ CHK3 STEP1 SYSUT1 DISP MOD DELETE CATLG UNIT SYSDA SPACE 8000 200 20 ROUND SYSIN DD CHECK INDEX ALL TABLESPACE DSN8D81A DSN8S81E Indexneubau Bearbeiten REBUILD INDEX muss nach einem Point in time Recovery fur alle Tablespaces ausgefuhrt werden sofern der Index nicht ebenfalls mit Imagecopy gesichert wird In diesem Fall konnte stattdessen auch ein RECOVER INDEX auf den gleichen Zeitpunkt stattfinden JCL Beispiel fur Db2 z OS STEP1 EXEC DSNUPROC UID IUIQU1UQ RBLD UTPROC SYSTEM DSN SYSUT1 DD DSN amp SYSUT1 DISP DELETE UNIT SYSDA SPACE 8000 200 20 ROUND SYSIN DD REBUILD INDEX ALL TABLESPACE DSN8D81A DSN8S81E Hier werden vom Tablespace DSN8S81E der Database DSN8D81A alle Indices neu aufgebaut Integritatstest Bearbeiten Das Utility CHECK DATA uberpruft die Verletzung von referentiellen Integritaten und Constraints Wird eine solche Verletzung ermittelt wird der entsprechende Tablespace in den CHECK pending Status versetzt Optional konnen fehlerhafte Daten aus den Tablespaces geloscht und in Fehlertabellen exception tables ubertragen werden Bevor ein CHECK DATA ausgefuhrt wird sollte vorher ein CHECK INDEX auf diesen Tablespace laufen damit sichergestellt ist dass der Index korrekt ist auf den sich das Utility bezieht Verschlusselte Tabellen konnen mit diesem Utility nicht gepruft werden weil die Daten vor dem CHECK nicht entschlusselt werden CHECK DATA sollte nach einem conditional Restart oder einem Point in time Recovery fur alle Tablespaces ausgefuhrt werden bei denen sich voneinander abhangige Tabellen eventuell nicht synchronisiert haben JCL Beispiel fur Db2 z OS STEP11 EXEC DSNUPROC UID IUIQU1UQ CHK2 UTPROC SYSTEM SSTR SYSUT1 DD DSN IUIQU1UQ CHK2 STEP5 SYSUT1 DISP MOD DELETE CATLG UNIT SYSDA SPACE 4000 20 20 ROUND SORTOUT DD DSN IUIQU1UQ CHK2 STEP5 SORTOUT DISP MOD DELETE CATLG UNIT SYSDA SPACE 4000 20 20 ROUND SYSERR DD DSN IUIQU1UQ CHK2 SYSERR DISP MOD DELETE CATLG UNIT SYSDA SPACE 4000 20 20 ROUND SYSIN DD CHECK DATA TABLESPACE DBIQUQ01 TPIQUQ01 SCOPE ALL AUXERROR INVALIDATE Monitoring von Utilities Db2 z OS Bearbeiten Um den derzeitigen Status eines gestarteten Db2 Utilitys zu uberwachen gibt es das Kommando Db2 DISPLAY UTILITY UTILID Ein Ergebnis ist dann folgendermassen aufgebaut JCL Beispiel fur Db2 z OS DSNU100I DSNUGDIS USERID SAMPID MEMBER DB1G UTILID RUNTS PROCESSING UTILITY STATEMENT 1 UTILITY RUNSTATS PHASE RUNSTATS COUNT 0 NUMBER OF OBJECTS IN LIST n LAST OBJECT STARTED m STATUS STOPPED DSN9022I DSNUGCC DISPLAY UTILITY NORMAL COMPLETION Erklarung des Feldes STATUS STOPPED Das Utility ist nicht normal beendet worden und die Objekte die im Zugriff waren Tablespace und Index sind noch im Zugriff des abgebrochenen Utilitys Um diese Objekte wieder zuganglich zu machen muss entweder das Utility neu gestartet werden oder das Utility uber das Db2 Kommando TERM UTILITY UTILID terminiert werden TERMINATED Ein Terminierungsrequest wird abgearbeitet ACTIVE Das Utility befindet sich im aktiven Status und wird derzeit ausgefuhrt Extensions BearbeitenDie Funktionalitat von Db2 kann mit sog Extendern erweitert werden die erweiterte Funktionalitat fur spezialisierte Datentypen anbieten Net Search Extender Bearbeiten Fur effiziente Volltextsuche auf Spalten mit Textinhalten Spatial Extender Bearbeiten Fur geografische Probleme Flutzonenanalyse etc Object Relational Extender Bearbeiten Erweiterung zum Arbeiten mit Objekten auf RDBMS Basis XML Extender Bearbeiten Mit der Db2 LUW V9 wurde die Verarbeitung von XML strukturierten Daten grundlegend geandert Auch die Db2 z OS V8 wurde um etliche Funktionen fur die Verarbeitung von XML Daten erweitert Der XML Support in der SQL Sprache wird inzwischen auch von der ISO beschrieben 12 Funktionen zur Abfrage von XML Dokumenten und zur Extraktion der Information fur die Speicherung in relationalen Tabellen XMLPARSE XMLQUERY XPath XQueryFunktionen zur Generierung von XML Dokumenten aus Datensatzen die in relationalen Tabellen gespeichert sind Beispiele XMLELEMENT XMLFOREST XMLAGGFur das Update von einzelnen Elementen eines XML Dokuments liegt Ende 2008 weiterhin keine Standarddefinition vor weshalb auch Db2 nur das Update von ganzen XML Dokumenten erlaubt 13 OLAP Extender Bearbeiten Unterstutzung der SQL Erweiterungen fur OLAP Anwendungen Beispiele RANK DENSE RANK ROW NUMBERGeschichte Bearbeiten 14 Im Zuge der Entwicklung der relationalen Benutzerschnittstelle Structured Query Language SQL wurde IBM intern der erste Prototyp das sogenannte System R entwickelt 1975 1979 das 1977 erstmals bei einem IBM Kunden installiert wurde Aus diesen Erfahrungen wurde SQL DS fur DOS VSE heute z VSE und VM heute z VM entwickelt Parallel hierzu wurde die eigenstandige Produktlinie des Mainframe MVS heute z OS vorangetrieben Db2 wurde 1983 als Datenbanksystem fur MVS herausgebracht und war damit nach Oracle Markteinfuhrung bereits im Jahr 1979 das zweite verfugbare relationale DBMS am Markt 1987 kundigte IBM ein Datenbankmanagementsystem fur das Betriebssystem OS 2 an 1991 wurde das DBMS OS 2 Database fur OS 2 in die Produktpalette aufgenommen Dieses DBMS ist der Vorlaufer fur die heutige Db2 UDB 1993 wurde das DBMS unter dem Namen Db2 V1 fur die Betriebssysteme OS 2 und AIX angeboten Seit 1995 kann das DBMS auch unter Windows installiert werden Zwischenzeitlich existieren Db2 Produkte auf unterschiedlichen Systemplattformen wie Db2 Universal Database UDB for z OS Db2 VM VSE Db2 Universal Database UDB fur LUW AIX HP UX Linux Sun Solaris Windows XP 2000 2003 und Db2 Universal Database UDB for iSeries System i ehemals AS 400 Im Grossrechnerbereich hat Db2 zu einem grossen Teil das hierarchische Datenbanksystem IMS DB von IBM abgelost Im April 2009 schlossen EnterpriseDB und IBM einen Vertrag um Oracle Kompatibilitat fur die Db2 auf Basis einer EnterpriseDB Technologie verfugbar zu machen 15 Geschichte Db2 z OS Bearbeiten 1983 wurde Db2 als Datenbanksystem fur das Mainframe Betriebssystem MVS herausgebracht 16 Version 3 verfugbar seit Dezember 1993 Support bis Marz 2001 Index Typ 2 Die Partitionierung gibt es zwar schon ab der Version 1 doch die Bearbeitung der Partitionen war nicht unabhangig voneinander Das lag an den Index Locks die bei INSERT UPDATE und DELETE verursacht wurden Dadurch wurden auch die Daten aus anderen Partitionen mitgesperrt Wenn ein Programm viele Schreiboperationen in einer Partition vornahm wurden Programme die auf andere Partitionen zugriffen in Mitleidenschaft gezogen Erst in der Version 4 wurde dieses Problem behoben durch die Einfuhrung des Indextyps 2 Version 4 verfugbar seit November 1995 Support bis Dezember 2001 Stored Procedures und User Defined Functions konnen verwendet werden Die Programme mussen in einer Programmiersprache z B COBOL oder C geschrieben werden mit embedded SQL In diesen Programmen kann auch auf DBMS fremde Ressourcen z B VSAM Dateien zugegriffen werden Parallelverarbeitung bei der Evaluierung einer einzelnen Abfrage moglich der Isolationslevel kann bei einem einzelnen SQL Statement festgelegt werden abweichend von dem Isolationslevel den das ganze Programm Package hat der Isolationslevel Dirty Read wird unterstutzt Sperren einzelner Datenzeilen moglich Bisher war nur ein Sperren von Datenpages mindestens 4 kB moglich Sperren von Indexeintragen nicht mehr erforderlich bei INSERT UPDATE DELETE Dadurch wird die Zeit die auf gesperrte Daten gewartet werden muss verringert Programme die auf unterschiedlichen Partitionen aktiv sind behindern einander nicht mehr Maximale Grosse einer Tabelle 64 GB Maximale Anzahl von Partitionen fur einen Tabellenraum 64Version 5 verfugbar seit Juni 1997 Support bis Dezember 2002 Speicherung von Daten im ASCII Format moglich Bisher konnten Daten nur im EBCDIC Format gespeichert werden Das bringt eine Performance Verbesserung fur alle Client Programme die die Daten im ASCII Format verarbeiten der SQL Sprachumfang wird erweitert um das CASE Statement der Online Reorg ermoglicht ein Reorganisieren der Tabellendaten wahrend Programme auf diese Daten zugreifen lesend und schreibend Dadurch wird die Downtime fur die Anwendungen deutlich reduziert Maximale Grosse einer Tabelle 1 TB Maximale Anzahl von Partitionen fur einen Tabellenraum 254Version 6 verfugbar seit Juni 1999 Support bis Juni 2005 Trigger konnen verwendet werden LOB Datentypen Large Objects konnen gespeichert werden Damit konnen Pixel Audio Video Daten und Textdokumente in Tabellen gespeichert werden Maximale Grosse einer Tabelle 16 TB Maximale Anzahl von Partitionen fur einen Tabellenraum 254Version 7 verfugbar seit Marz 2001 Support bis Juni 2008 Speicherung von Daten im Unicode Format moglich SQL PL die SQL3 Erweiterungen der SQL Sprache um prozedurale Elemente Stored Procedures konnen dadurch in der Programmiersprache SQL geschrieben werden Temporare Tabellen konnen deklariert werden Jede Connection erhalt eine eigene Instanz sobald sie Zugriffe auf die Tabelle ausfuhrt Am Ende der Transaktion wird die Instanz automatisch wieder entfernt Static Scroll Cursor Vorwarts und ruckwarts lesen moglich Anderungen anderer Transaktionen aktualisieren die Datenmenge die durch den Cursor gelesen wird Ausnahme neu eingefugte Satze anderer Transaktionen sind nicht sichtbar Maximale Grosse einer Tabelle 16 TB Maximale Anzahl von Partitionen fur einen Tabellenraum 254Version 8 verfugbar seit Marz 2004 Tabellenpartitionierung Details siehe Abschnitt Partitionierung Die Administration grosser Datenbestande wird dadurch erleichtert und die Downtime der Anwendungen weiter reduziert Interne 64 Bit Adressierung Dadurch ist ein Swappen der Arbeitsspeicherbereiche nicht mehr erforderlich Die fruhere direkte Adressierbarkeit von maximal 2 GB ist aufgehoben Viele Strukturanderungen sind im laufenden Betrieb moglich die bisher ein Loschen und Neuerstellen erforderten Beispiele Tabelle oder Index um zusatzliche Spalten erweitern Datentyp von Tabellenspalten andern auch wenn Indices dafur existieren Hinzufugen Loschen oder Andern von Partitionen Die maximale Grosse eines einzelnen SQL Statements wurde von bisher 32 kB auf 2 MB heraufgesetzt Nutzung des neuen Assist Processors Co Prozessor zIIP Dynamic Scroll Cursor Erweiterung des Static Scroll Cursors aus V7 mit dem nun auch neu eingefugte Satze anderer Transaktionen gelesen werden konnen Visual Explain wird als kostenloser Download angeboten Es kann unter Windows installiert werden und kann die Zugriffspfade der Packages anzeigen Maximale Grosse einer Tabelle 128 TB Maximale Anzahl von Partitionen fur einen Tabellenraum 4096Version 9 verfugbar seit Marz 2007 Erweiterte Datentypen 64 Bit BIGINT DECFLOAT VARBINARY Neue SQL Funktionen OLAP Unterstutzung RANK DENSE RANK ROW NUMBER Mengenoperationen INTERSECT Schnittmenge und EXCEPT Differenzmenge MERGE Statement als eine Kombination aus INSERT oder UPDATE TRUNCATE Table fur schnelles Loschen aller Datensatze einer Tabelle ohne Zerstoren der Datenstrukturen der Indexstrukturen und der Trigger Versteckter Last Change Timestamp erleichtert die Realisierung des Optimistic Locking INSTEAD OF Trigger Maximale Grosse einer Tabelle 128 TB Maximale Anzahl von Partitionen fur einen Tabellenraum 4096Version 10 verfugbar seit Oktober 2010 XML Funktionen mit denen einzelne Knoten innerhalb eines XML Datenfeldes geandert werden konnen INSERT REPLACE DELETE verbesserte Zugriffsperformance unter anderem durch verbesserte Parallel Verarbeitung verschiedene administrative Arbeiten konnen nun wahrend des laufenden Betriebes ausgefuhrt werden die bisher eine Downtime erforderten Version 11 verfugbar seit Juni 2016 AI Funktionen fur verbesserte Leistung 4K Sektor Support Unterstutzung von physikalische Laufwerke mit einer nativen Sektorgrosse von 4 KB Erweiterte Sicherheit durch eine hostbasierte Firewall Optimierte SQL Befehle INSERT UPDATE fur sehr grosse Datenmengen Neue Uberwachungsfunktionen fur SQL Abfragefehler Automatische Kompression fur Spaltentabellen Optimierung der Kompressionsdaten beim Einfugen von neuen Daten Verbesserter Treiber fur das CLI Call Level Interface Sonstiges BearbeitenNeben Db2 bietet IBM mit Informix eine weitere kommerzielle Datenbank an Nach dem Erwerb von Informix im Jahr 2001 gab es kurzzeitig den Plan Informix mit Db2 zusammenzufuhren was eine gewisse Verunsicherung der Informix Kunden ausloste Dieser Plan wurde jedoch bald verworfen Seitdem werden Informix und Db2 parallel weiterentwickelt und fur unterschiedliche Einsatzbereiche positioniert Allerdings wurden neue Technologien haufig in das jeweils andere System ubernommen Siehe auch Bearbeitenrelationale Datenbank Datenbanksystem Datenbankmodell Liste der Datenbankmanagementsysteme Distributed Relational Database Architecture DRDA Weblinks BearbeitenOffizielle Startseite von IBM zu Db2 Db2 Comunity Edition fruher Express C kostenlose Version von Db2 fur Linux und Windows Registrierung erforderlich DB2 11 5 DB2 11 1 DB2 for linux UNIX and Windows 10 5 0 DB2 for linux UNIX and Windows 10 1 0 DB2 for linux UNIX and Windows 9 7 0 DB2 Version 9 1 for Linux UNIX and Windows manuals Memento vom 26 Mai 2016 im Internet Archive In ibm com 19 November 2008 englisch Dokumentation Dokumentation zu Db2 V8 LUW Memento vom 25 August 2013 im Internet Archive FREE Book Getting Started with DB2 Express C Memento vom 17 Januar 2008 im Internet Archive In ibm com englisch Einstieg in Db2 Express C 9 5 Startseite von IBM zu Db2 z OS DB2 for z OS 12 0 DB2 for z OS 11 0 Graeme Birchall Db2 SQL Cookbook Berni Schiefer Manager bei IBM im Interview zur Weiterentwicklung von Db2 Vortrag zu Weiterentwicklung von Db2 DatenbanktageEinzelnachweise Bearbeiten IBM Db2 Systemeigenschaften Abgerufen am 13 April 2019 IBM DB2 Produktubersicht IBM Business Partner 8 Dezember 2020 abgerufen am 2 Januar 2021 IBM Db2 12 for z OS Overview United States 30 September 2019 abgerufen am 30 September 2019 amerikanisches Englisch Express C kostenlose Version Graig S Mullins DB2 Developer s Guide 2004 S 722 Kooperation mit MySQL AB Memento vom 14 Oktober 2007 im Internet Archive In ibm com a b 6 3 3 2 DB2 UDB for z OS V8 Application Programming and SQL Guide IBM Library Server a b DB2 for z OS DB2 for z OS Version 8 books Memento vom 27 Januar 2007 im Internet Archive In ibm com ibm com IBM Redbooks IBM DB2 Administration Guide Planning SQL amp XML Working Together DB2 goes hybrid Integrating native XML and XQuery with relational data and SQL Memento vom 16 Februar 2008 im Internet Archive In research ibm com The Big Picture IBM DB2 Information Management Software and DB2 Universal Database Collaborate to Integrate Technology in New Version of DB2 Abgerufen am 27 September 2011 englisch Quellen 1 Reference Manuals fur DB2 z OS von IBM zu den jeweiligen Versionen 2 What s new Dokumente von der IBM zu den einzelnen Versionen 3 Redbooks What s new in DB2 z OS V8 Abgerufen von https de wikipedia org w index php title Db2 amp oldid 237188243