Ulrike Schwinn und Carsten Czarski 5HOHDVH

Werbung
5HOHDVH
2QOLQH$SSOLFDWLRQ 8SJUDGH
Ulrike Schwinn und Carsten Czarski
2QOLQH $SSOLFDWLRQ 8SJUDGH
+RFKYHUIJEDUNHLW
*HSODQWH9HUlQGHUXQJHQ
9HUlQGHUXQJHQDQ
'DWHQEDQNREMHNWHQ
+DUGZDUHDXVIlOOH
2QOLQH2SHUDWLRQHQ
6WDQGJ
• Index Aufbau und REBUILD
•
$/7(5,1'(;21/,1(
• DDL Operationen mit Sperren
•
''/PLW:$,72SWLRQ
• Feingranulares
Abhängigkeitsmodell
•
:HQLJHU5HNRPSLOLHUXQJ
• Änderungen an
Tabellenstrukturen
•
3DFNDJH'%06B5('(),1,7,21
• Paralleles Arbeiten/Zusammenführen
von versionierten Tabellen
•
:RUNVSDFH0DQDJHU
8QGZDVLVWPLW
... Veränderungen an Applikationen
wie PL/SQL Programmen ...
Lösung: Edition Based Redefinition („in-place“)
$QIRUGHUXQJHQ
• Die Änderungen dürfen die LIVE-Applikation NICHT
beeinflussen
• Transaktionen aus der “alten” und “neuen” Umgebung
müssen parallel und online berücksichtigt werden
•
'LH/|VXQJ
•
•
•
durch neue Konzepte:
(GLWLRQHQ
(GLWLRQLQJ 9LHZV
&URVVHGLWLRQ7ULJJHUV
(GLWLRQHQ
• 1RQ6FKHPD basierender Objekttyp
• Eine Datenbank hat PLQGHVWHQVHLQH (GLWLRQ –
ora$base
• Neue Edition ist “Child” einer Edition
• Jede 6HVVLRQ befindet sich automatisch in einer Edition
• Objekte werden eindeutig durch 1DPH, 2ZQHU und
(GLWLRQ identifiziert => Keine neue Syntax notwendig
2%-(&7B1$0(2%-(&7B7<3(2:1(5(',7,21B1$0(
/2*B7$%9,(:+59(56,21
/2*B7$%B)25:$5'B7575,**(5+59(56,21
'2,7352&('85(+59(56,21
2EMHNWHLQ(GLWLRQHQ
3/64/3UR]HGXU
3/64/3UR]HGXU
7(67
7(67
6\QRQ\P
6\QRQ\P
)($785(7$%
)($785(7$%
9LHZ
9LHZ
'(/7$
'(/7$
3/64/3UR]HGXU
3/64/3UR]HGXU
7(67
(GLWLRQ9(56,21
7(67
,V FKLOGRI
(GLWLRQ9(56,21
YHUlQGHUW
JHO|VFKW
YHUHUEW
YHUlQGHUW
$GPLQLVWUDWLRQ
• Privileg CREATE ANY EDITION dient
zum Erzeugen von Editionen
&5($7((',7,21YHUVLRQ$6&+,/'2)YHUVLRQ
• Editionen nutzbar machen
$/7(586(5KU(1$%/((',7,216
*5$1786(21(',7,21YHUVLRQ72KU
• Editionen wechseln und monitoren
$/7(56(66,216(7HGLWLRQ
YHUVLRQ
6(/(&7V\VBFRQWH[W
XVHUHQY
FXUUHQWBHGLWLRQBQDPH
)520GXDO
0RQLWRULQJ
'HPR
•
$OWH (GLWLRQ
• PL/SQL Prozedur TEST
•
1HXH (GLWLRQ
• Veränderte PL/SQL Prozedur TEST
•
$QIRUGHUXQJ
• Applikationen sollen in alten und neuen Edition weiterarbeiten
können
(GLWLRQHQLQ$NWLRQ
• Objekte in Edition erzeugen
$/7(56(66,216(7HGLWLRQ
YHUVLRQ
&5($7(255(3/$&(352&('85(WHVW
• Edition wechseln und Objekt ändern
$/7(56(66,216(7HGLWLRQ
YHUVLRQ
&5($7(255(3/$&(352&('85(WHVW
• Ausführung und Monitoring in verschiedenen Editionen
führt zu unterschiedlichen Ergebnissen
6(/(&7REMHFWBQDPHHGLWLRQBQDPH)520XVHUBREMHFWV
6(/(&7WH[W)520XVHUBVRXUFH:+(5(QDPH
7(67
9HUVLRQLHUEDUH2EMHNWH
• Folgende Datenbank-Objekte sind
versionierbar/editionierbar:
• PL/SQL Objekte
• Synonyme
• Views
• Andere Objekte können nicht versioniert werden!
• Tabellen werden manuell verändert d.h. Spalten werden
hinzugefügt.
• Spezielle Views – die (GLWLRQLQJ 9LHZV – übernehmen
die Rolle der Tabelle für die Applikationen.
(GLWLRQLQJ 9LHZV
• Logische Sichtweise auf Tabellen
• Sind nur sichtbar in der entsprechenden Edition
• Sind Basis der Applikationen und erhalten den Namen
der Tabelle
• Falls keine Änderungen an den Tabellen durchgeführt
werden, sind (GLWLRQLQJ 9LHZV ausreichend!
,G
,G
7DJ
0HHWLQJ]HLW
8KU]HLW
7DJ
8KU]HLW
IODJ
(GLWLRQLQJ 9LHZ
IODJ
%DVLV7DEHOOH
(GLWLRQLQJ 9LHZV
,G
0HHWLQJ]HLW
7DJ
8KU]HLW
9RUJHKHQ
• Basistabellen umbenennen
• Editioning Views definieren
=> Applikationen arbeiten auf Editioning Views
• Änderungen (Spalten, Privilegien, etc.) vornehmen
/2*B7$%B%$6(
$/7(56(66,216(7HGLWLRQ
$/7(57$%/(ORJBWDEBEDVH$''
&5($7(255(3/$&(
(',7,21,1*9,(:
ORJBWDE
6(/(&7LGWDJXKU]HLWIODJ
)520ORJBWDEBEDVH
$6
IODJ
.RQWLQXLHUOLFKH'0/2SHUDWLRQHQ
9RUJHKHQ
• Einsatz von speziellen Triggern – &URVVHGLWLRQ7ULJJHU – in der
“Post-Upgrade” Edition ist erforderlich.
• Ein Crossedition Trigger transformiert die Daten, die in der alten
Edition verändert werden in das neue Format und umgekehrt.
• Zwei Trigger-Typen:
• Ein IRUZDUG Crossedition Trigger wird durch DML gezündet ausgeführt durch die alte Version. Hier wird die Transformation von alt
nach neu durchgeführt.
• Ein UHYHUVH Crossedition Trigger wird durch DML gezündet - ausgeführt
durch die neue Version.
&URVVHGLWLRQ 7ULJJHU
(LQ%HLVSLHO
• Für die Transformation von „alt nach neu“
&5($7(255(3/$&(75,**(5ORJBWDEBIRUZDUGBWU
%()25(,16(572583'$7(21ORJBWDEBEDVH
)25($&+52:
)25:$5'&5266(',7,21
%(*,1
QHZWDJ
VXEVWUQHZPHHWLQJ]HLW
QHZXKU]HLW
VXEVWUQHZPHHWLQJ]HLW
(1'ORJBWDEBIRUZDUGBWU
'HPR
•
$OWH (GLWLRQ
• Tabelle mit Spalten ID und MEETINGZEIT und Prozedur DOIT
•
1HXH (GLWLRQ
• Nutzung der Spalten ID, TAG, UHRZEIT und FLAG und
veränderte Prozedur DOIT
•
$QIRUGHUXQJ
• Applikationen sollen in der alten und neuen Edition
weiterarbeiten können …
2QOLQH $SSOLFDWLRQ 8SJUDGH
$XVJDQJVVLWXDWLRQ
• PL/SQL-Prozedur arbeitet auf einer Tabelle
• Solange Prozedur im Zugriff ...
• Weder Änderung der Tabelle noch der Prozedur möglich (Sperre)
'2,7
,G
0HHWLQJ]HLW
3UR]HGXU
9(56,21
/2*B7$%
2QOLQH $SSOLFDWLRQ 8SJUDGH
(LQHHGLWLRQLHUEDUH$QZHQGXQJ
• PL/SQL-Prozedur arbeitet mit (GLWLRQLQJ 9LHZ
• Basistabelle kann nun geändert (erweitert) werden
/2*B7$%
,G
0HHWLQJ]HLW
9LHZ
'2,7
3UR]HGXU
9(56,21
/2*B7$%B%$6(
2QOLQH $SSOLFDWLRQ 8SJUDGH
1HXH(GLWLRQLQJ 9LHZ QHXH3UR]HGXULQ9(56,21
9(56,21
/2*B7$%
9LHZ
'2,7
3UR]HGXU
/2*B7$%
,G
0HHWLQJ]HLW
7DJ
8KU]HLW
IODJ
9LHZ
'2,7
3UR]HGXU
9(56,21
/2*B7$%B%$6(
(GLWLRQLQJ 9LHZV
• Tabelle umbenennen
$/7(57$%/(ORJBWDE5(1$0(72/2*B7$%B%$6(
• Editioning View in VERSION1
&5($7((',7,21,1*9,(:ORJBWDE$6
6(/(&7XVHULGPHHWLQJ]HLW)520ORJBWDEBEDVH
• Editioning View in VERSION2
&5($7((',7,21,1*9,(:ORJBWDE
$6
6(/(&7XVHULGWDJXKU]HLWIODJ
)520ORJBWDEBEDVH
2QOLQH $SSOLFDWLRQ 8SJUDGH
&URVVHGLWLRQ7ULJJHU VLFKHUQ'DWHQNRQVLVWHQ]
9(56,21
/2*B7$%
9LHZ
'2,7
3UR]HGXU
)RUZDUG7ULJJHU
5HYHUVH7ULJJHU
/2*B7$%
,G
0HHWLQJ]HLW
7DJ
8KU]HLW
IODJ
9LHZ
'2,7
3UR]HGXU
9(56,21
/2*B7$%B%$6(
)RUZDUG &URVVHGLWLRQ 7ULJJHU
%HLVSLHO
• Für die Transformation von „alt nach neu“
&5($7(255(3/$&(75,**(5ORJBWDEBIRUZDUGBWU
%()25(,16(572583'$7(21ORJBWDEBEDVH
)25($&+52:
)25:$5'&5266(',7,21
%(*,1
QHZWDJ
VXEVWUQHZPHHWLQJ]HLW
QHZXKU]HLW
VXEVWUQHZPHHWLQJ]HLW
(1'ORJBWDEBIRUZDUGBWU
5HYHUVH&URVVHGLWLRQ 7ULJJHU
%HLVSLHO
• Für die Transformation von „neu nach alt“
&5($7(255(3/$&(75,**(5ORJBWDEBUHYHUVHBWU
%()25(,16(572583'$7(21ORJBWDEBEDVH
)25($&+52:
5(9(56(&5266(',7,21
'(&/$5(
DQ]DKO180%(5
%(*,1
,)QHZSRVWBIODJLVQRW
QHZPHHWLQJ]HLW
(1',)
(1'ORJBWDEBUHYHUVHBWU
QXOO7+(1
QHZXKU]HLW__
__QHZWDJ
2QOLQH $SSOLFDWLRQ 8SJUDGH
5HWLUHPHQW GHUÄDOWHQ³ (GLWLRQ
9(56,21
/2*B7$%
9LHZ
'2,7
3UR]HGXU
)RUZDUG7ULJJHU
5HYHUVH7ULJJHU
/2*B7$%
,G
0HHWLQJ]HLW
7DJ
8KU]HLW
IODJ
9LHZ
'2,7
3UR]HGXU
9(56,21
/2*B7$%B%$6(
2QOLQH $SSOLFDWLRQ 8SJUDGH
9RUJHKHQVZHLVH
3UH8SJUDGHLVWLQ9HUZHQGXQJ
1HXH(GLWLRQHU]HXJHQ
XQGbQGHUXQJHQ
YRUQHKPHQ
3UH8SJUDGHLVWLQ9HUZHQGXQJ
3RVW8SJUDGHZLUGHU]HXJW
7ULJJHU YHUZHQGHQ
3RVW81'3UH8SJUDGHZLUGJHQXW]W
3UH8SJUDGHVWLOOOHJHQ
3RVW8SJUDGHZLUGYHUZHQGHW
XQG3UH8SJUDGHZLUGVWLOOJHOHJW
7HVWVGXUFKIKUHQXQG
X852//%$&.
2QOLQH $SSOLFDWLRQ 8SJUDGH
=XVDPPHQIDVVXQJ
• Änderungen an PL/SQL-Code, Synonyme und Views
=> Verwendung von (GLWLRQHQ
• Änderungen an PL/SQL-Code, Synonyme und Views
und an Tabellenstruktur
=> Verwendung von (GLWLRQHQ und (GLWLRQLQJ 9LHZV
• Änderungen an PL/SQL-Code, Synonyme und Views,
an Tabellenstruktur und an den Daten
=> Verwendung von (GLWLRQHQ, (GLWLRQLQJ 9LHZV
und &URVVHGLWLRQ7ULJJHU
2QOLQH $SSOLFDWLRQ 8SJUDGH$XIZDQG
• Umfang der Implementierung hängt vom Umfang der
Änderungen an Tabellen und Prozeduren ab
• Reine PL/SQL-Änderungen oder ...
• Tabellenerweiterungen ...
• Änderungen am Datenmodell
WH
Objekte in
VERSION1
Die meisten Objekte
der VERSION1
sind unverändert
und
ZHQLJHYHUlQGHUWH
2EMHNWHPLW
9(56,21
'XUFKIKUXQJ
• Normalerweise entscheiden DBAs über die
Hochverfügbarkeit und implementieren diese ...
• ... anders bei Online Application Upgrade
• Entwickler bereiten das Upgrade vor und implementieren die
Transformationen
• Editioning Views, Crossedition Trigger
• DBAs müssen die Migration begleiten und vorbereiten
• Setzen der Default-Edition
• Zugriffssrechte auf Editionen ein- und abschalten
• Monitoring
,QIRUPDWLRQHQ
• Deutschsprachige Communities
• http://www.oracle.com/global/de/community/dbadmin
• http://www.oracle.com/global/de/community
• Handbücher
• Oracle® Database PL/SQL Packages and Types Reference
11J Release 1 (11.2)
• Oracle® Database Advanced Application Developer's Guide
11JRelease 2 (11.2)
)UDJHQ
$QWZRUWHQ
Herunterladen