DB2 V8: Mindmap 8.2.06

text 0

title 1

text 1

title 1.1

text 1.1

title 2

text 2

  • converted from infoDb2.doc 4.8.10
  • V8 manuals: http://www-306.ibm.com/software/data/db2/zos/v8books.html
  • Begriffe: Glossary in Admin Guide
  • DB2-supplied Stored Procedure ==> Anhang Utilities guide, Admin Guide ...
  • DB2-Literatur Überblick ==> Utilities Guide Appendix g (auch in anderen)

Einführung / Überblick: DB2 UDB for OS/390 V7 An Introduction to DB2 for OS/390

  • Version 4: 1995,
  • Version 7, 2001: utitlities, performance, availability, and improved usability. The improvements for SQL are substantial, with cursor scrolling and union changes
  • Version 8: 2004: JDBS/SQLJ 3.0, scalability (64 bit), SchemaEvolution (Alter statt Drop und Create), MultiRow Fetch-Update, MQT = MaterializedQueryTable

IBM Software:

  • DB2 Control Center: GUIs für DB Administration
  • DB2 Installer: Installiere / upgrade DB2 und Tools
  • DB2 Warehouse Manager: Warehouses und -markts verwalten
  • DB2 OLAP Server: (OLAP = On-Line Analytical Processing’) mehrdimensional Analysis
  • Data Replication
  • WebSphere: Java Web Server, mit Zugriff auf DB2 Server
  • NetMap: dynamische WebPages durch 'Macros' Zugriff auf DB2, ODBC, Flat Files usw., IMS-Transactions usw.
  • DB2 Stored Procedure Builder helps developers create stored procedures in Java or SQL Procedures language
  • DB2 XML Extender: Datentype um XML zu speichern, Funktionen um sie zu bearbeiten
  • DB2 Performance Expert for z/OS ==> enthält auch Exception Reporting
  • Resource limit facility (governor) ==> verwaltet und beschänkt DB2 Resource benutzt dafür speziell erstellte resource limit specification tables (RLST)

SoftwareHersteller:

  • Compuware: FileAid (for DB2 usw.), AbendAid, Xpediter, Strobe
  • BMC: Control-M Control-D, SqlBackTrack, RecoveryManager, SmartDBA, SqlGuy, intelligentes Recovery (d.h. nicht immer Copy brauchen usw.) : was heisst bmc ==> www.bmc.com, houston texas, 6000 Angestellt 1.46 Mia Jahresumsatz
  • Platinum (heute CA, in der Zurich) Catalog abfragen, binds usw.

DB Definition

  • Tables: base, temporary (created oder declared) und result
  • Tablespace (create table ohne TS erzeugt einen!)
  • 3 Arten:
  • segemented für mehrere Tabellen (mit segSize Clause = Anzahl pages pro Segement. Ein Segment enthält Tuples derselben Tabelle) übernimmt PageSize des Bufferpools
  • partitioned: für eine partitionierte Table
  • LOB TS für LOBs
  • Compress: DB2 komprimiert einzelne rows (aber nur wenn spaceGewinn), nicht für LOB TS
  • FreePage/PCTFRee: freie Seiten beim Laden
  • kann mehrere Datasets je a 4GB anhängen, aber wenn secondary zu klein ist, bekommt er vorher extend failed (bei 250+ extends) ==> TS alter auf grösseren Extend und Reorg
  • Index in IndexSpace (1-1)
  • clustering: versucht table danach zu sortieren
  • partioned (ab v8 nicht kann nicht nur clustering index part. sein)
  • wer hat wann index erstellt: createdBy und createdTs in sysibm.sysindexes
  • pieceSize: wie gross einzelnes Dataset eines Index, Änderung braucht rebuild
  • DB2 – Database
  • Sammlung von Tables, Indexes und Tablespaces. Databases werden einzeln gestartet und gestoppt
  • DSNDB04 = Default Database (für TS ohne DB usw.) ==> sollte bei uns gesperrt sein. Bind mit unavailable DSNDB04 ist wohl temporäres Problem, oder DSNDB04 gestoppt!!!
  • Referential Constraints, Check Constraints und Triggers
  • Catalog: enthält Struktur und SicherheitsInfos
  • active Log bekommt die aktuellen Änderungen, wird archive Log wenn voll
    • Log Records können auf zwei Arten addressiert werden:
      • lrba (Log Relative Byte Address = 48bit Offset)
      • lrsn (Log Record Sequence Nummer) ==> 6 Byte Nummer, von STCK abgeleitet, für Datasharing Env
  • BSDS (bootstrap dataset) enthält RestartInfos, Name der Logs usw.
  • Buffer pools, also known as virtual buffer pools, enthalten Pages im Memory
  • Page Zustände: inuse, updated, available
  • Commands: display/alter bufferpool
  • können auch in Dataspace oder Hiperspace (bis 2 GB continuous Memory in Memoryhierarchie, ab V8 auch in 64bit Memory sein)
  • sequential prefetch ==> read ahead bzw blockweises PageLesen
  • Column
    • Generated ==> Wert wird erzeugt z.B. as Identity, für Rowid brauchts speziellen Index, der automatisch erstellt werden kann. Min/MaxValue und StartWert. in V8 (in new function mode) kann restart wert mit alter table alter column restart geädnert werden. Der Wert sitzt in SYSIBM.SYSSEQUENCES und ist via SYSIBM.SYSSEQUENCESDEP mit der Column verbunden
  • Alias mit Location müssen gleich owner/tablenamen weitergeben (ausser bei privateDb2Protokoll, in DRDA wird sql unverändert auf ZielSystem ausgeführt) ==> table/creator Umbenennung durch zusätzlichen Alias im Zielsystem!
  • Transaction = Unit of work: locking, commit, rollback, backout uncommited changes etc.
  • Package: gebunde Sql-Statements eines Programmes/Modules
    • DBRM enthält ConsistencyToken auf pos 25 (8 Byte), übersetzen mit BMCCAT TIMESTAMP
    • DBRM enthält Version auf Zeile 2, Pos 3, kann im Editor geändert werden
    • DBRM kann auch auf neuen MemberNamen kopiert werden, aber dann muss auch Membername in Zeile 1 angepasst werden
    • Pro Collection muss <Member>.<ConToken> eindeutig sein (sonst Bindfehler)
    • Zur Laufzeit wird Package mit <Member>.<ConToken> gesucht, Version und Collection sind egal!
    • ??? wo ist das dokumentiert, musste selbst experimentieren ???
    • timestampPC = Precompile
    • functionTS = Zeit wenn Functions resolved wurden
  • Plan verbindet Prozess mit lokaler DB2-Instanz, enthält Optionen, (gebundene Sql-Statments und/oder Package Namen)
  • Distribution
  • Client Server: Remote Servers
  • The primary method that DB2 uses to provide connectivity to any number of DBMSs is Distributed Relational Database Architecture (DRDA), which is based on The Open Group technical standard. ==> Packages binden/rebinden/ausführen
  • 2-Phase Commit
  • communications database (CDB) records the location name and the network address of a remote DBMS
  • entweder connect auf remote Server, oder durch Präfix identifzieren (3 Part Names: server.authorization.object, besser via alias!)
  • DB2's internal resource lock manager (IRLM) is both a separate subsystem and an integral component of DB2. IRLM is a component of DB2, and each DB2 subsystem must have its own instance of IRLM.
  • Claims: Absichtserklärung mit einem Objekt zu arbeiten
  • drain: wartet bis alle claims rausgehen, neue claims werden blockiert/verhindert?
  • PageLocks, RowLocks, LOCK TABLE EMP IN SHARE MODE
  • S-Lock (share), U-Lock (before update, kann auf X promoted werden), X-Lock (exklusiv: während update etc.)
  • table, partition etc. Locks: IS (Intend share ==> owner kann acquire page/row Locks), IX (Intend exclusive), SIX: (Share with Indend Exclusive)
  • Isolation Levels: Repeatable Read (RR), ReadStability (RS), CursorStability (CS) und UncommitedRead (UR)
  • Lock Escalation vor v8 partitionsLock nur falls TS LOCKPART = YES, sonst direct auf TableLock, in V8 immer Partitions (falls new Function Mode). Alter … Lockpart nur wenn TS stopped
  • Performance:
  • Explain: Output in 3 (selbst created) Tables:
  • Plan Table: bind time (option EXPLAIN(YES))
  • Statement Table: Optimizer Schätzung zur ExecutionTime (sql statement explain)
  • Function Table: benutzte UserFunktionen
  • RunStats: um Statistik in Catalog nachzuführen
        • runstats index nur für Indexe bzw Felder im Index. Freqval numcols x count y sammelt y Dist-Werte für die ersten x KolonnenKombinationen der Indexe
        • runstats tablespace mit table(all) sammelt Kolonnenstatistik ohne table(all) keine Kolonnenstatistik (obwohl Default!!!)
        • Kolonnenstatistik scheint nicht sehr teuer zu sein ?!:
ts rows pages columns cpu tables(ALL) Cpu index
8M 41secs 24secs
NI02A1T.A201A 358M 6M 21 87min34secs 12min30secs
NI02A1T.A203A 307M 12M 38 50min25secs 8min50secs
  • bind option REOPT(VARS), DB2 determines the access paths at both bind time and run time, falls sie HostVariabeln enthalten
  • Workstation Tools:
  • Visual Explain
  • DB2 PM (Performance Monitor): kombiniert Infos von Db2Catalog und Explain. Plus online Monitor
  • DB2 Estimator for Windows: PerformanceVoraussagen (für System- , Index-Änderungen usw.)
      • nach neuem Idex erstellen: runstats auf ganze Tabelle, damit Statistik konsistent ist, sonst wählt Optimizer vielleicht ganz komischen Index aus (er überlegt sich nicht, dass Statistiken inkonsistent sein könnnen und glaubt inkonsistenten KardinalitätsUnterschieden!)
  • Authorization
  • jeder Prozess hat ein primäre AuthorizationID und 0 -n sekundäre
  • SET CURRENT SQLID = 'ALPHA'; und aktive ID zu setzen
  • Authorization Hierarchie: Systemweit: SYSADM, SYSCTRL, SYSOPR, für eine DB: DBADM, DBCTRL, DBMAINT, für Collections: PackADM
  • Data Sharing: mehrere DB2's (innerhalb Datasharing Group innerhalb parallel Sysplex Cluster)
  • erhöht Availabilty (bei Ausfall eines Systems übernehmen andere), Incremental Growth und Workload Balancing
  • Query Parallelism
  • Schema wird mit dem Schema Prozessor DSNHSP im Batch erstellt (==> Admin Guide), das ist aber nicht nötig, sondern nur ANISI Kompatibilität hier!
  • Alias und Synonyms:
    • Alias kann 3-Level Names umbennennen, Erstellung braucht Berechtigung
    • Synonym benennt nur ein-Level-Namen und muss also normal qualifizirt werden und kann nur von der erstellenden Authorization benutzt werden,

Programme

  • Attachment Facility muss reingelinkt werden. DSNELi für TSO etc. Bei falschem Attachment z.B.­974 und einem ReasonCode der etwas über Fehler im Connect sagt. SCM linkt YYCAF und somit CAF rein.
  • CAF: mit DD DSNTRACE sysout=* o.ä. bekommt man einen Trace für jeden SQL Call, der ist aber sehr teuer (ca. 50ms pro trace), so stimmen dann die Performance Zahlen überhaupt nicht mehr!
  • RRSAF (Resource Recovery Services Attachement Facility) Attachement Facility mit RRS, wird mit ELPI verwendet
  • Package wird bei COmmit freigegeben, wenn jemand darauf wartet zum Binden/Rebinden, bekommt man beim nächsten SQL Statement ein -904 später vielleicht auch in -805
  • Directory: enthält dynamische Infos, z.B.
    • SKCT: Cursor tables internes Format der SQL-Statement, von Bind Plan (Skeleton Cursor)
    • SKPT: Cursor tables internes Format der SQL-Statement, von Bind Package (Skeleton Package)
  • Locks:
    • Deadlocks werden vom IRLM regelmässigen Intervall getestet (Installation Panel DSNTIPJ, Default 5 secs ==> gehört zu IRLM) ==> nur Deadlocks innerhalb eines Members werden entdeckt!
    • ResourceTimeout (dsnzParm IRLMRWT = resource wait) ==> aufgerundet auf Vielfaches von DeadlockIntervall. Gilt für IMS MPP, CICS, $CAF, TSO usw. Für andere werden sie mit einem OperationsMulitiplier multipliziert, z.B. DSNZPARM BMPTOUT=4 ==> IMS/BMP TIMEOUT FACTOR
  • SPUFI: standart Pläne DSNESPCS, DSNESPRR, and DSNESPUR (für entsprechend Cursor Stability). ==> siehe DB2 Installation
  • eigene Pläne binden und bei den Default Pläne ändern wählen (im Defaults Menü) und dann eingeben (bei CS unterbunden)
  • Cursor Stability = RR bekommt im RZ2 einen Resource Limit Exceeded, das ist Absicht über den Resource Limit Manager. Aber bei mir läuft es meist trotzdem!
  • Wenn man zum ersten mal im RZ2 ins Spufi geht (und Default RR gesetzt) ist bekommt man DSNE345I Meldung: CCSID von SPUFI = ' ' nicht gleich der CCSID vom Terminal (Data Corrupiton may occur). Auf CS zurücksetzen, dann läuft es, beim späteren einsteigen bekommt man auch mit RR das Problem nicht mehr!

SQL

  • V8: Recursive Selects für StücklistenProzessor
  • V8: Sequenzen (Laufnummer Generierung, ohne LockingProbleme)
  • V8: scalar Fullselect
  • V8: insert within Select: from-clause: final table ( insert ...)
  • Delimited Identifiers (mit Quotes): trailing space werden ignoriert, alle anderen sind relevant
  • FixPoint Darstellung mit DEC

Operations

  • hängende threads /-dtb3 dis thd(*) service(wait)
  • Start Databas UT startet DB / TS nur fürUtility (angezeigter Status ist dann nur UT, nicht UTUT wenn Utility drauf ist!) => mit Start RW wird es wieder operationell
  • Db2 Commands: an MVS Konsole eingeben mit Subsystem Prefix, Default -DSN?,
    • in ejes mit /s14-DBA4 dis arc (mit ulog sieht man antwort direkt) oder besser in bcc Catalog Manager (dann geht’s nich ins log)
  • Utilities: ControlStatements schreiben und JCL. Bzw. mit Utitlities im DB2I Menu
  • RUNSTATS: Statistiken in Catalog updaten
  • STOSPACE: Space Statistiken in Catalog nachführen
  • -start database(*) started weder Catalog TS, usw. noch explizit gestoppte TS
  • -display database ... use ==> zeigt aktive UserProgramme
  • -display database ... locks ==> zeigt wer Objekt Lockt ==> LockInformationen sind beschrieben in der entsprechenden Message DSNT397I
    • für claimers (ClaimClass, Duration) mit
      • Claimclass: CS = CursorStability, RR=Repeatable Read, WR=Write
      • Duration: C=until Commit, A=until Deallocation, H=Hold across Commit
    • für locks 'lock status', -'lock state', 'lock type', 'lock duration'
      • lock status: H=hold lock, W=Waiting for Lock, R=Retaining Lock
      • lock state: S=share, IS, U usw.
      • lock typ: S = table space L-lock, T = table L-lock, C = cursor-stability read drain lock, R = repeatable-read drain lock, W = write drain lock, P = partition L-lock, PP = page set or partition P-lock
      • lock duration: wie open plus H=free wenn alle Cursor Closed, M=by system, P=when Plan Complete, I=when Partition or PageSet closes, für Waiting eine Nummer, die die Position in Warteschlange zeigt
  • -display database ... lpl only ==> zeigt pages mit logischen Fehler, z.B. Connection (LogicalPageList = LPL)
  • -display database ... wepr ==> zeigt Seiten mit physischen Fehlern (Write Error PageRanges = WEPR)
  • -start trace enthält beschreibung welche Trace/Performance classes was bedeuten
  • -display bufferpool(..) detail zeigt hit ratios usw. erklärt in adminGuide
  • RTS = RealTimeStatistics: DB2 schreibt Statistik in SYSIBM.TABLESPACESTATS usw. und können dort abgefragt werden, Siehe Admin Guide Appendix g.
  • Resource Types: zuhinderst im Reference Summary oder im 1. Appendix des Message Manuals

Reorg

  • Reorg Pending Status (pro Tablespace)
  • command: DISPLAY DATABASE RESTRICT
  • alter Index und Reorg Job um Partitionen auszubalancieren
  • Fragmentierung:
  • Platz von Dropped tables ( SYSIBM.SYSTABLESPART.PERCDROP) Reorg gibt Platz wieder frei
  • Page Gaps: leere Seite zwischen LeafSeiten in Index: SYSIBM.SYSINDEXPART.LEAFDIST (average number of pages between successive leaf pages in the index, sollte klein sein)
  • IO: verfolge NEARINDREF and FARINDREF
  • Clustering: FAROFFPOSF und NEAROFFPOSF geben Hinweise
  • REORG thresholds: RUNSTATS, REORG, REBUILD INDEX, and LOAD utilities mit threshold laufen lassen, reorganisieren nur wenn erfüllt (oder mir REPORTONLY Option, um es nur herauszufinden)
  • nueu in V8 kann Optimizer Indexes mit RBDP (Rebuild Pending) vermeiden
  • LOAD Daten ab Dataset, anderer DB oder Copy, REROg-Unload usw. laden. nur eine Prozentsatz
  • REBUILD INDEX: Index (Partition) neu erstellen
  • REORG TableSpace: kann auch nur unloaden, oder Daten aus anderer DB holen
  • UNLOAD: erweiterung von Reorg-Unload
  • Standalone Utitility DSNJCNVB: BootstrapDS (BSDS) reorganisieren, für mehr Platz
  • Standalone Utitility DSN1COMP Schätzen wieviel Platz mit Compression gespart werden könnte
  • DB2-supplied Stored Procedure DNSUTILS ==> via Call Utitlities laufen lassen
  • DB2-supplied Stored Procedure DSNACCQC ==> Control Center table space and index information ==> gibt Infos über nötige Runstats, Reorgs usw.
  • DB2-supplied Stored Procedure DSNACCAV ==> Control Center partitition information ==> gibt s über nötige ImageCopies, Runstats, Reorgs usw.
  • DB2-supplied Stored Procedure DSNACCOR ==> analysiert Catalog Real Time Statistics ==> gibt s über nötige ImageCopies, Runstats
  • Sample Programm DSNTIAUL (und andere z.T. PL/1 ==> Appendix d, Utitlities Guide) einfaches Unload
  • Real Time Statistics ==> können periodisch in selbst erstellt Tables geschrieben werden ==> Utitlities Guide, Appendix e
  • mapping table: online reorg braucht vorCreated db2 table um alte auf neue Adressen umzubiegen, 2 gleichzeite Reorgs dürfen nicht selbe mapping table brauche!
  • grosse Jobs:
    • DataWK.. können über 200 genommen werden, nur mit Disk nimmt es immer nur von einem Volume - mit DataClass (NULL30 etc.) überschreiben --> dann gibt es keine B37 mehr, aber Sort nimmt trotzdem immer nur von einem Volume (??)

Backup & Recovery

  • docu in Utitlities guide ist manchmal unvollständig, AdminGuide definiert Begriffe und zeigt Hintergrundinfos
  • Advisory or restrictive states ==> CheckPending, CopyPending usw. ==> Appendix C im Utitlity Guide (wer setzt, braucht usw.)

online Utilities:

  • BACKUP SYSTEM utility provides fast volume-level copies of DB2 databases and logs (neu in V8)
  • CHECK: Konsistenzcheck (data, index oder LOB) => FehlerTupes entweder delete, oder kopieren und in TS in CheckPending Status setzten
  • Copy: mehrere Images von Tablespaces usw. Full image oder Incremental Image. SHRLEVEL REFERENCE Daten dürfen während Copy nur gelesen werden, mit SHRLEVEL Change auch gelesen ==> im Catalog in SYSIBM.SYSCOPY registriert
  • COPYTOCOPY copy kopieren
  • DSNTIAUL: flexibler Copy mit vollständigem Select. Dokumentiert im Anhang Beispielprogramme von Utilities
  • Load lädt Daten von Unload (der im PunchDD Load Statements erzeugt)
  • ListDef erstellt eine Liste von Table- oder IndexSpaces für Verwendung in Utilities, diese Listendef kann entweder im sysin vor dem utitlity statement oder ein ein separates listdef dd statement gestellt werden
  • MergeCopy: vereinigt mehere incremental Copies usw.
  • Modify Recovery: (alte) Einträge aus SysiBM.SYSCOPY putzen
  • Modify Statistics: (alte) Statistik Einträge aus Catalog putzen
  • Quiesce: erstellt einen single point of consitency (Quiesce Point) ==> häufig zwischen Copies lauf lassen, damit Recovery da aufsetzen kann
  • Rebuild Index: Index ab Table bauen
  • Recover: Copy laden und mit LogRecords bis zu einem Zeitpunkt vorwärts fahren
  • REPAIR: testen und reparieren von DatenbankDefinitionen (DBD), Pending Status reset, Daten lesen, ersetzen, löschen usw.. LevelId und Version überschreiben
  • REPORT: zeigt Infos die für Recovery gebraucht werden
  • RESTORE SYSTEM utility recovers a DB2 system to an arbitrary point-in-time. RESTORE SYSTEM automatically handles any creates, drops, and LOG NO events (ohne SET LOG SUSPEND, das updates verhindert!)
  • Unload: kann auch ab images laden
    • unload Format ist im Unload Kapitel im Utilities Manual dokumentiert, Delimited Format im Anhang, Strings werden immer geQuoted, DatenUmformatierungen sind sehr beschränkt (numerisch --> numerisch usw.)

standalone Utilities:

  • Standalone Utitility DSNJLOGF: active Log preFormattieren (damit es schon ist, wenn es benutzt werden soll)
  • Standalone Utitility DSNJU003 BSDS Werte ändern (Logs, Adressen, usw.)
  • Standalone Utitility DSNJU004 BSDS Werte ausdrucken
  • Standalone Utitility DSNCHKR Catalog und Directory Tablespace checken
  • Standalone Utitility DSN1COPY DB2-VSAM Datasets, image Copies, normale Datasets, dumpen, checken, usw. ==> kann einen alten Dump über bestehende Datasets laden, mit dbid, psid und obid übersetzung ==> neue aus Catalog (sql(catId)) alte mühsam aus HexInterpretation des alten Dumps bzw. dsn1copy macht Fehlermeldungen und dann einsetzen ==> jcl(db2d1cop). TS vorherstoppen, nachher repair levelid.
  • Standalone Utitility DSN1LOGP: Log ausdrucken, entweder jeden Record im Detail oder Summary um RestartPunkte usw. zu finden.
  • Standalone Utitility DSN1Print DB2-VSAM-, DSN1COPY- image Copy – Datasets ausdrucken
  • Standalone Utitility DSN1DUMP DB2-Dumps für spezielle Trace Ereignisse

BMC Catalog Manager

  • auf einstiegs menu sql *.* zeigt SQL mit dieser Maske an
  • Einstieg via db2 Menu
  • 5 ==> DB2 Commands
  • combines list: Objekt von mehreren SourcObjekten, Primary Command <ObjectType> all ==> sucht alle entsprechen Objekttypen und zeigt sie als Liste an.
  • primary <cmd> all: führt Command für all Zeilen aus, ausser für mit X excluded
  • selben Command vor mehrere Zeilen, oder mit =, Command wird auf mehrereren Objekten ausgeführt
  • primary Command auf Grundmenü
    • see (nur auf primary Menü) zeigt aktuelle BMCCat Optionen
    • con: connection panel, dort mit reset wieder raus
    • set drop is off =>> switch off : drops werden nicht wirklich durchgeführt
    • dropr TS ==> Liste der TS mit DropRecovery. 2sql ==> sql. Recovern mit s ==> zuers nur DDL. Dann Stop vor rec Data eingeben ==> besser vorher IC ziehen, damit bis dahin recovert werden kann. LRBA Recovery funktioniert nur falls selbe Strukturnummer
    • maint: anschauen/maintenance der Logs vom BMC für Session, DDL, DropRecovery
  • allgemeine primary Commands:
    • cmd utility: alle Utitlites anzeigen
    • envi (primary command) zeigt aktuelle Konfig
    • fastpath: rekursives Product Swichen mit primary Command bmccat, bmcalter, bmcchg, bmcdasd
    • bmcmsg <msgId> Erklärung zu msg
    • search: kann man suchen nach mehr Attributen
    • primary commanmd mit all: wendet Command auf alle Zeilen an
    • get statementNr auf Package describe ==> gibt menu für explain (Option für PlanTable usw. muss vorher in SQL Explore 0. richtig gesetzt werden)
    • sql gibt Liste aller in bmc ausgeührten SQL's. können editiert, explain't usw. werden ==> SQLEDIT, SQL2WL (um in Worklist zu transferieren und im Batch auszuführen)
    • extended sql: kann HostVariabeln enthalten, bmc promptet dafür
    • edit tb …. oder edit als ZeilenCommand erlaubten Table Edit (oder browse) ==> mit row to row Mode (mit pf3 zurück in colomn mode
    • profile save bzw. saveas <profileId> speichert aktuelle Utility Settings unter dem angegebenen Namen
    • timestamps <16 hexdigiits> : übersetzt consitency token in Timestamp
    • STCK <12 Hexdigits> übersetzt LRSN in Timestamp
    • REFRESH +n ( z.B. n = 100 ) kann die Liste um 100 vergrössern, nachdem die Warnung List TOO LONG erschienen ist
  • allgemeine Zeilen Commands
    • select erzeugt ein sql kann, beliebig geändert und ausgeführt werden
    • NamenEinerUtitlity: erzeugt Jcl für dieses Utitlity auf dieser Struktur
    • util pdr (prepare drop): Utitlity zum Catalog putzen, copy usw. vor drop tablespace (wegen einträgen für Copies usw.)
    • Drop erzeugt drop
    • ddl erzeugt DDL, kann geändert und ausgeführt werden
    • dis: display database der Struktur
    • d (describe) zeigt Details aus Catalog (inkl. createdby usw.)
    • co: columns (für TB Constraint etc. können auch geändert werden)
    • pk: primary keys (können geändert werden)
    • l = Like = duplicate a column ==> ändern die Kolonnen mit dem L, sonst gibt es einen rename (steht im Users Guide gerade verkehrt!)
    • DDL syntax z.B. für Default Werte wird nicht überprüft, sondern Execute fällt dann auf die Nase
    • CR gibt Menüs für Create eines ähnlichen Objektes
    • point in time Recovery generieren: zuerst quiesce etc. selektieren und Details anschauen, nachher funktion ZeilenKommand recover wie erwartet
  • Kolonne mit neuem Wert laden: in Worklist UNLD statement anpassen: neue Sequenznummmer (nicht null) und entsprechenden Ausdruck in select Statement einfügen
  • Optionen
    • POF = Production Option FIlesfür InstatllationsOptionen
    • General Options
      • Default SQLID . . . . . . . . S100447
      • Max Lines per List . . . . . 0
      • Lines per Page . . . . . . . 0
      • HDESCRIBE and HDDL . . . . Y Y Y Y Y Y N N (Y/N)
    • CATALOG MANAGER Data Sets
      • User Utilities Profile Dsn 'DSN.BMC.RZ1.P0.ADMIN.USERPROF(f540769)'
    • JCL Generation Options
      • Object limit . . . . 0
    • SQL Select Options
      • Maximum number of select lines . . 0
      • Maximum output line length . . . 4092
    • Panel Highlight and Color Options
      • Selection . . . . . 1
    • Catalog Manager Switches
      • LST USD PRF ON

BMC Change Manager

  • VDPS2 Viewse ==> workId VDPS2* und Profile S100447.VDPS2_PROTOTY_DBAF
  • Anleitung ==> [../X:/KRMD3/DB2/DB2%20Anleitungen/reni-BMC-Change-Manager.doc X:\KRMD3\DB2\DB2 Anleitungen\reni-BMC-Change-Manager.doc]
  • im UserManual in Altering Datastructures ==> Accomplishing your Goals: gibt es Anleitungen für verschiedene Strukturänderungen
  • c/m Pilot für Scripting etc. im Hauptmenu von Change
  • neue Objekte dürfen immer eingespielt werden, Änderungen aber nur mit Zügelschüben
  • Aufträge nur mit Bestellformular über krdm 3 homepage
  • regen Identify Optione, wo ausser jcl ändern? ==> im worklist Member!
  • migrate mit Data: macht einen Stop, JCL dann restarten gibt neuen JCL der Rest macht, damit man es auch in einem anderen System ausführen kann.
  • Bufferpool bp32k1 in DBAF müsste auf BP32k umgesetzt werden (für alle anderen) dafür gibt es ein rexx (fehler in bcc ausbaden)….
  • DBTF ==> Execute JCL anpassen: Package in XML einfügen
  • workid alter: alter bestehender Strukturen, Migrate: zügeln neuer Strukturen
  • Auf Mixlist in specify db2 Components:
    • cuc create unique constraint
  • cdl (change definition Languate) in worklistC-Member kann editiert werden, drop's müssen manuell eingefügt werden: -CDL muss auf Position 1 anfangen, es gibt eine Warnung wegen Hash-Fehler, wird aber trotzdem bentutzt, wenn das Objekt im Catalog nicht existiert gibt es allerdings einen schweren Fehler! drop muss in der CDL eingetragen werden, in der Spezifikation kann nur etwas unverändertes (also existierendes) eingetragen werden und dann wird es nicht in die CDL mitgenommen!
  • Neue Felder mit not null bmc legt space hinein (ins unload File) und bekommt beim Laden dann allenfalls Constraint Errors, das gibt aber nur einen RC=4, Job läuft damit durch, hat aber nichts geladen! Konsequenz:
    • not null with default benutzen ==> bmc lädt dann nichts ins Feld und DB2 bentutzt den Default Wert
    • Wenns schon passiert ist manuelles nachbesseren:
      • unload File manuell editieren und Werte reinsetzen
      • Worklist alles rausnehmen ausser Load
      • worklist ==> 6.execute ==> 5restartOver und überprüfen, dass dd für LoadDataset richtig ist!
  • space estimation: in den edit Feldern von TS und IX geht auch mit space cmd auf TS in CatalogManager!
  • worklists: pds mit den Infos in div. Membern zu einer workid. Membernamen in worklist Dataset DSN.DB%F.CHG.WKL sind WorkId plus suffix Character:
    • A AnalyseJcl
    • M Migrate Worklist
    • C COMPARE CDL
    • I Import JCL
    • W Alter Worklist
  • interne Tabellen
    • CD tables, which store change and migration specifications for each Work ID
    • CM tables, which store Work ID, migrate rule, security, and sync data
  • Optionen
    • CHANGE MANAGER Panel Attribute Options
      • Select your preference
      • 1 1. Underscore(USCORE)
    • CHANGE MANAGER Analysis Options
      • s Submit/Run
    • CHANGE MANAGER Import Options
      • s Edit CDL
    • CHANGE MANAGER Import Options
      • s Submit/Run
    • CHANGE MANAGER Execution Options
      • s Edit Worklist

BMC SQL Explorer

  • sqlx: Editmacro für explain für einen Teil eines documents ==> mit qq Text selektieren. DbSubsystem als Parameter mitgeben (nur das erste Mal)

DB2 Administration Tool

Docu: Db2 Tools ==> DB2 Administration Tool

Libraries

  • DSN.TOOLS.RZ1.P1.SGOCPLIB: panels
  • DSN.TOOLS.RZ1.P1.SADBPLIB: panels
  • DSN.TOOLS.RZ1.P1.SADBSLIB: Skeletons
  • usw.

DS = DatabaseAndStruktur: hierarchische Liste, DSP mit Packages

Primary Commands

  • sort ohne Arguments zeigt Panel, wo default Sort bestimmt werden kann (wird in ISPF table named ADBSORT gespeichert)
  • sort mit Argumenten sortiert jetzt um
  • search um innerhalb panel zu selektieren (was nicht in den headern geht, z.B. numerisch)
  • save on/off um SearchKriterias zu speichern
  • like on/off oder =… um zwischen like und = Suche zu wechseln

LineCommands

  • / : alle Felder anzeigen
  • UTL gibt Auswahl für Utilities
  • SEL sql Prototyping
  • DDL:nichthierarchische DDL für dieses Objekt erzeugen
  • GEN Generate (via Job oder TSO) hierarchishce DDL ==> zusätliche Selektionen Können in Job reingeschrieben werden,
    • Masking ==> MaskFile ==> Namensübersetzungen für GEN
    • für Rebind DB2-Commands File angeben

Catalog Menue:

  • In D/L/H" (database, collection, or schema) um entsprechenden Präfix auszuwählen
  • TT = Tables only, T - Tables, views, and aliases

OmegaMon for DB2

  • im MAI l od2nn (logon, nn Systemnr, 11 für s11 im RZ1 usw). User eingeben (dann erstes Mal f11 und Db2 Subsystem wählen) und Password
  • goTo kann immer mit erstem Buchstaben selektieren, FastPathing: diese Buchstaben konkatinieren (oder Ziffern)

Glossary

  • CAF Call Attachment Facility: Alternative zu TSO DB2-Attachement
  • Castout: schreiben von veränderten Pages auf Disk, läuft im Hintergrund ohne Interferenz mit Transaktionen
  • CCSID = Coded CharacterSet Identifier: eine eindeutige 16-Bit Nummer für ein Coded CharSet
  • checkpoint. A point at which DB2 records internal status information on the DB2 log;
  • DB2 Directory: dynamische, interne Infos in in system database DSNDB01. Kann nicht direkt mit SQL abgefragt werden, aber viele Infos sind auch im Catalog
  • DSNDB06: the system database DSNDB06 contains the DB2 catalog
  • DRDA: Distributed Relational Database Architecture : IBM Modell für Zugriff auf verteilte DBs
  • DSC: dynamic statement cache (zwischenspeichern von dynamischen Statements und wieder verwenden)
  • EDM pool. A pool of main storage that is used for database descriptors, application plans, authorization cache, application packages.
  • latch. A DB2 internal mechanism for controlling concurrent events or the use of system resources. „short duration lock“
  • LOB: Large Objects, sitzen in eigenem TS
  • LUW-ID logical-unit-of-work identifier
  • Parallel Sysplex: Cluster von z/OS mit Coupling Facility und Sysplex Timer
  • RBA; Relative Byte Address
  • LRBA; Log - Relative Byte Address
  • RID: record Identifier ist DB2-intern
  • RowID: unveänderbare Identität einer Row, mit ihr zusammen abgespeichert
  • thread (db2 ..) = Struktur die AnwendungsConnection abbildet / verwaltet
  • work file database (called DSNDB07) ==> temporärer Space z.B. für join oder sort

Introduction to the New Mainframe: z/OS Basics: ibm redbook, 2006

23.3.2007

KeyFaktoren:

  • RAS: Reliabilty, Avalability, Servicebility
  • Security
  • Scalability
  • Continued Compatibility

Workloads: Batch and OLTP = OnLineTransactionProcessing

Rollen: SystemProgrammer, SystemAdministrator, Application Designer+Programmer, SystemOperator, ProductionControlAnalyst

befreundete Betriebssysteme:

  • z/VM = VirtualMachine. CP (ControlProgramm) stellt virtuelle Maschinen für ander z/ Systeme zur Verfügung. CMS = Conversational Monitor System Operator usw. Interface usw. läuft in einer virtual machine
  • z/VSE = z/Virtual Storage Extended. Kleiner einfacher Mainframe, DOS Abkömmling
  • Linux for zSeries (verschiedene Distributions)
  • zTPF = z/Transaction Processing Facility für hohe TransaktionsWorkloads

History

  • 1964 S/360
  • 1970: S/370 mit virtuellem Memory und MehrProzessoren
  • 1982 S/370XA (31 Bit)
  • 1988: multiple Adressspaces, LPAR (Logical Partition)
  • 199*: System/390 Parallel Sysplex,
  • 2000 zSeries (64bit)

Design

  • klassisch: storageControl --- parallele Channels --- Controll unit --- device
  • LPAR (LogicalPARtiton) eine Hardwareaufteilung für ein OS
  • z/OS System (ein OS mit mehreren Prozessoren entspricht LPAR?)
  • verschiedene Clustering Stufen (mehrererimages)
    • Basic Shared DASD: Kommunikation über DASD Control Units
    • CTC-Ring (ChannelToChannel) Ring ergänzt BasicShared DASD
    • Parallel Sysplex: mehre z/OS die über Coupling Facility koordiniert sind
  • Coupling Facility: LPAR mit Memory und Channels zu anderen

Addressspace

  • MemoryAdressen eines Programmes, isoliert + common Bereich
  • Communication zwischen Adressspaces
    • asynchron: SRB (Service Request Block) Scheduling
    • synchron: Cross Memory Services und AccessRegisters$
    • DAT DynamichAddressTranslation: virtueal Address --> real
    • storage ist in 4KB Blöcke geteilt: in realMeory frames, auf secondary slots im Virtual Adressspace page
    • page stealing eine aktive Page in available Pool stellen: mit einem least recently used Algo, gefüttert von Unreference Interval Count
    • swapping: alle Pages eines Adressspace nach auxilary oder real
    • storage protection: jeder frame und jeder request haben einen key. Falls = (oder requestKey = 0) ist update erlaubt. Lesen wird analog geprüft, falls FetchProtectBit gesetzt
    • 16 ProtectionKeys, wird in bit 8..11 des PSW gespeichert. 0-7 für z/OS BCP (BaseControlProgram) und verschiedene Subsystem und Middleware, 8=Virtual = normale User die nur Virtual AdressSpace brauchen, 9-F Real mit Zugriff auf Real Memory (ohne DAT)
    • 3 Storage Manager RSM (für Real Memory), ASM (f¨ür Auxilary) und VSM (für Virtual)
    • the line = 16MB Grenze (drüber ab 1983 mit MVS/XA, 31 Bit Adressierung höchstes Bit sagte 1==> 31Bit Adresse, 0 ==>24 Bit Adresse
    • the Bar = 2GB Grenze (drüber ab 2000 mit z/OS)
    • Virtual Memory Layout
      • 0-16 MB: user private area, common area
      • 2GB-2**41: user extended private
      • 2**41 - 2**50: shared area
      • 2**50 - 2**64: user extended private
  • MASTER Addressspace: erste AdressSpace der gestartet wird, mit MasterScheduler
  • WLM: WorkLoadManager
  • SRM SystemResourceManager
  • Interrupts
    • SVC SuperVisorCall
    • IO
    • External
    • restart
    • program
    • machine check
  • dispatchable Unit of work
    • TCB (TaskControlBlock) für Userprogramm, erzeugt durch ATTACH Macro
      • RCT (RegionControlTask) ist TCB mit höchster Prio in jedem AddressSpace
    • SRB (ServiceRequestBlock) nur in Supervisor state erlaubt,e keine eigenen frames (das darf nur TCB), werden in SRB-Mode durchgeführt, mit höchster Prio
  • Serialisierung
    • enqueue: mit ENQ und DEQ Macros bzw.l RESERVE und DEQ für MulitSystems mit Suspend für waren
    • Lock: Spin oder Suspend Lock
    • Deadlock Avoidance durch Lock Hierarchie

SMP/E =SystemModificationProgramm/Extended

  • CSI = ConsolidatedSoftwareInventory: Code und Modifications versorgt in VSAMs
  • SYSMOD = SystemModification: alle notwendigen Infos um eine Modifikation zu installieren und zu tracken, 4 Arten von SysMods:
    • FUNCTION: neues Produdukt, neuer Release oder geänderte Funktion
    • PTF = ProgrammTemporaryFix, sollten alle installiert werden
    • APAR = AuthorizeProgramAnalysisReport
    • USERMOD eigene Modifikation
  • 3 Zonen: Global, Target und Distribution und zugehörige Libraries