Top Banner
11 11 Verwaltung von Abhängigkeiten
29

11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Apr 06, 2016

Download

Documents

Wendell Ahr
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

1111Verwaltung von Abhängigkeiten

Page 2: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

ZieleAm Ende dieser Lektion verfügen Sie über die Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse:folgenden Kenntnisse:• Überwachen prozeduraler Abhängigkeiten• Effekte von Änderungen eines DB-Objekts auf

gespeicherte Prozeduren und Funktionen• Verwaltung prozeduraler Abhängigkeiten

Page 3: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Verständnis der Abhängigkeiten

View

Procedure

Function

Package Specification

Package Body

Database Trigger

Table

View

Sequence

Synonym

Procedure

Function

Package Specification

Referenzierte ObjekteReferenzierte ObjekteAbhängige ObjekteAbhängige Objekte

Page 4: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Abhängigkeiten

AbhängigesAbhängigesObjektObjekt

xxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

ProzedurProzedurView/View/

ProzedurProzedur

DirekteDirekteAbhängigkeitAbhängigkeit

Abhängiges undAbhängiges undreferenziertesreferenziertes

ObjektObjekt

ReferenziertesReferenziertesObjektObjekt

TabelleTabelle

DirekteDirekteAbhängigkeitAbhängigkeit

IndirekteIndirekteAbhängigkeitAbhängigkeit

Page 5: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Lokale Abhängigkeiten

xxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

ProzedurProzedur ViewView

INVALIDINVALID INVALIDINVALID INVALIDINVALID

Lokale ReferenzLokale ReferenzDefinition geändertDefinition geändert

ProzedurProzedur TabelleTabelle

vvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

Page 6: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

xxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

ProzedurProzedur ViewView

VALIDVALID INVALIDINVALID INVALIDINVALID

Fern-ReferenzFern-Referenz

Definition geändertDefinition geändert

ProzedurProzedur TabelleTabelle

vvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

NetzwerkNetzwerk

Abhängigkeiten von Ferndatenbanken

Page 7: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

xxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvv

xxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvv

ProzedurProzedurADD_EMP ADD_EMP

ProzedurProzedurQUERY_EMPQUERY_EMP

Tabelle EMPTabelle EMP

View NEW_EMPView NEW_EMPEMPNO ENAME 7839 KING 7698 BLAKE 7782 CLARK 7566 JONES

EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER

Szenario lokaler Abhängigkeiten

Page 8: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

SQL> SELECT name, type, referenced_name, referenced_type 2 FROM user_dependencies 3 WHERE referenced_name IN ('EMP' , 'NEW_EMP' );

NAME TYPE REFERENCED_NAME REFERENCED_TYPE--------- ---------- --------------- ---------------QUERY_EMP PROCEDURE EMP TABLEADD_EMP PROCEDURE NEW_EMP VIEWNEW_EMP VIEW EMP TABLE

Anzeige direkter Abhängigkeiten aus USER_DEPENDENCIES

Page 9: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

SQL> @UTLDTREE

Anzeige direkter und indirekter Abhängigkeiten

SQL> EXECUTE deptree_fill (‘TABLE’, ‘SCOTT’, ‘EMP’) PL/SQL procedure successfully completed.PL/SQL procedure successfully completed.

1. Ausführen des Skripts UTLDTREE.SQL1. Ausführen des Skripts UTLDTREE.SQL

2. Ausführen der Prozedur DEPTREE_FILL2. Ausführen der Prozedur DEPTREE_FILL

Page 10: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

SQL> SELECT nested_level, type, name 2 FROM deptree 3 ORDER BY seq#;

NESTED_LEVEL TYPE NAME ------------ --------- ----

0 TABLE EMP1 VIEW NEW_EMP2 PROCEDURE ADD_EMP1 PROCEDURE QUERY_EMP

SQL> SELECT * 2 FROM ideptree;

DEPENDENCIES----------------------------------------------------TABLE SCOTT:EMP VIEW SCOTT.NEW_EMP PROCEDURE SCOTT.ADD_EMP PROCEDURE SCOTT.QUERY_EMP

Views DEPTREE und IDEPTREE

Page 11: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Tabelle EMPTabelle EMP

Prozedur Prozedur REDUCE_SALREDUCE_SAL

Prozedur Prozedur RAISE_SALRAISE_SAL

Ein weiteres Szenario lokaler Abhängigkeiten

EMPNO ENAME HIREDATE JOB 7839 KING 07-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER

xxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvv

xxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvv

Page 12: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

TabelleTabelleEMPEMP

ProzedurProzedurQUERY_EMPQUERY_EMP

Public Synonym EMPPublic Synonym EMP

XX

Ein Szenario lokaler Namensabhängigkeiten

EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER

EMPNO ENAME HIREDATE JOB 7839 KING 17-NOV-81 PRESIDENT 7698 BLAKE 01-MAY-81 MANAGER 7782 CLARK 09-JUN-81 MANAGER 7566 JONES 02-APR-81 MANAGER

xxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvvvvvvvvvvvvvvvvvvvvv

Page 13: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Abhängigkeiten von Ferndatenbanken

Definition geändertDefinition geändertNetzwerkNetzwerk

xxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

ProzedurProzedur ViewView

VALIDVALID INVALIDINVALID INVALIDINVALID

Fern-ReferenzFern-Referenz

ProzedurProzedur TabelleTabelle

vvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

Page 14: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Konzepte der Abhängigkeiten von Ferndatenbanken

Fern-Abhängigkeiten werden durch den Fern-Abhängigkeiten werden durch den vom Benutzer gewählten Modus geregelt:vom Benutzer gewählten Modus geregelt:• TIMESTAMP-Prüfungoderoder• SIGNATURE-Prüfung

Page 15: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Parameter für den Modus der Abhängigkeiten von Ferndatenbanken

• Als init.ora-ParameterREMOTE_DEPENDENCIES_MODE = wert• Auf Systemebene

ALTER SYSTEM SET REMOTE_DEPENDENCIES_MODE = wert• Auf Sitzungsebene

ALTER SESSION SET REMOTE_DEPENDENCIES_MODE = wert

Page 16: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

xxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

ProzedurProzedur ViewView

VALIDVALID INVALIDINVALID INVALIDINVALID

Definition geändertDefinition geändert

ProzedurProzedur TabelleTabelle

vvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvvxxxxxxxxxxxxxxvvvvvvvvvvvvvv

NetzwerkNetzwerk

1 2

Abhängigkeiten von Ferndatenbanken und Timestamp-Modus: Szenario

Page 17: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Fern-Prozedur B kompiliert um 8:00

VALIDVALID

Fern-Prozedur BFern-Prozedur B

kompiliertkompiliert

Page 18: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Lokale Prozedur A kompiliert um 9:00

Lokale Prozedur ALokale Prozedur A

VALIDVALID

Fern-Prozedur BFern-Prozedur B

kompiliertkompiliertVALIDVALID

A kompiliertA kompiliert B kompiliertB kompiliert

Page 19: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Prozedur A wird aufgerufen um 10:00 (Prozedur B wurde nicht rekompiliert seit 8:00)

Lokale Prozedur ALokale Prozedur A

VALIDVALID

Fern-Prozedur BFern-Prozedur B

kompiliertkompiliertVALIDVALID

A kompiliertA kompiliert B kompiliertB kompiliert

Zeitstempel-Zeitstempel-vergleichvergleich

Page 20: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Lokale Prozedur ALokale Prozedur A

VALIDVALID

Fern-Prozedur BFern-Prozedur B

kompiliertkompiliertINVALID zur StartzeitINVALID zur Startzeit

A kompiliertA kompiliert B kompiliertB kompiliert

...paßt ...paßt nichtnicht

Zeitstempel-Zeitstempel-vergleich...vergleich...

Prozedur A wird aufgerufen um 12:00(Prozedur B wurde rekompiliert um 11:00 (Lokalzeit) )

Page 21: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Signature Modus

Die Signatur einer Prozedur beinhaltet:Die Signatur einer Prozedur beinhaltet:• den Namen der Prozedur• die Datentypen der Parameter• die Modi der Parameter

Page 22: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Rekompilieren einer PL/SQL-Programmeinheit

• Implizit durch automatische Rekompilierung zur Laufzeit• Explizit durch Rekompilierung mit der

Anweisung ALTERALTER PROCEDURE [SCHEMA.] prozedur_name COMPILEALTER FUNCTION [SCHEMA.] funktions_name COMPILE

ALTER PACKAGE [SCHEMA.] package_name COMPILE [PACKAGE]ALTER PACKAGE [SCHEMA.] package_name COMPILE SPECIFICATIONALTER PACKAGE [SCHEMA.] package_name COMPILE BODY

ALTER TRIGGER trigger_name [ENABLE|DISABLE|COMPILE]

Page 23: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Rekompilieren von ProzedurenRekompilierung abhängiger Prozeduren rozeduren und Funktionen wird erfolglos sein, wenn: und Funktionen wird erfolglos sein, wenn: • Das referenzierte Objekt gelöscht oder

umbenannt wurde• Der Datentyp der referenzierten Spalte

geändert wurde• Die referenzierte Spalte gelöscht wurde• Ein referenzierter View durch einen mit

unterschiedlichen Spalten ersetzt wurde• Die Parameterliste einer referenzierten

Prozedur modifiziert wurde

Page 24: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Rekompilieren von Prozeduren

Rekompilierung abhängiger Prozeduren rozeduren und Funktionen wird erfolgreich sein, wenn: und Funktionen wird erfolgreich sein, wenn: • Die referenzierte Tabelle neue Spalten hat• Der Datentyp referenzierter Spalten nicht

geändert wurde• Der PL/SQL-Body einer referenzierten

Prozedur modifiziert und erfolgreich rekompiliert wurde

Page 25: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Rekompilieren von Prozeduren

Minimieren von Abhängigkeitsfehlern durch:Minimieren von Abhängigkeitsfehlern durch:• Record-Deklaration mit dem

Attribut %ROWTYPE• Variablen-Deklaration mit dem

Attribut %TYPE• Abfragen mit der Notation SELECT *• Verwendung einer Spaltenliste bei

INSERT-Anweisungen

Page 26: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Packages und Abhängigkeiten

Prozedur AProzedur Adeklarationdeklaration

Package-SpezifikationPackage-Spezifikation

Package-BodyPackage-Body

Prozedur AProzedur Adefinitiondefinition

Standalone-Standalone-

ProzedurProzedur

VALID

VALID

Definition geändertDefinition geändert

Page 27: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Packages und Abhängigkeiten

Prozedur AProzedur Adeklarationdeklaration

Package-SpezifikationPackage-Spezifikation

Package-BodyPackage-Body

Prozedur AProzedur AdefinitiondefinitionStandalone-Standalone-

ProzedurProzedur

INVALID

VALID

Definition Definition geändertgeändert

Page 28: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Zusammenfassung

Vermeidung von Produktionsstörungen durch:Vermeidung von Produktionsstörungen durch:• Überblick über prozedurale Abhängigkeiten• Manuelle Rekompilierung, sobald die

Definition von Datenbankobjekten geändert wurde

Page 29: 11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.

Übungsüberblick

Verwaltung von ObjektabhängigkeitenVerwaltung von Objektabhängigkeiten