- Paragon Data GmbH

Werbung
DOAG Konferenz 2013
Exadata Database Maschine –
Die Konsolidierungsplattform
Malthe Griesel
Agenda
1. Kurzprofil Paragon Data
2. Systemlandschaft vor Exadata
3. Probleme – Zusammenfassung
4. Wie es zur Exadata kam - Auswahlprozess
5. Ergebnisse Exadata V1 POC
6. Exadata Anlieferungsprozess und Aufbau
7. Exadata Datenbankmigration/ Umzug
8. Monitoring
9. Betrieb Exadata
10. Persöhnliche Erfahrung mit der Exadata
11. Resume
12. Q&A
1. Kurzprofil Paragon Data
•  Schwerpunkt Buchhandel:
DBH, Hugendubel, Weltbild, Weiland etc.
•  IT-Dienstleister
•  Hosting und Betrieb von Oracle-Datenbanken
•  Hochsicherheitsrechenzentrum
•  Oracle-Partner
1. Kurzprofil: Unsere Kunden
2. Systemlandschaft vor Exadata
Parrac8361 – Parrac8368
Parrac836x
ASM
256 GB RAM
2 x DualCore
8GBit FC
Infiniband IC
Bookit pro
Filiale
sequentielles
Filesystem
CIF-Shares
Bookit pro
Filiale
sequentielles
Filesystem
CIF-Shares
8 Knoten RAC
8 Datenbanken, darunter DWDB (6 TB), WWS (2 TB), ...
rund 13 TB Datenbanken, sehr starkes Wachstum
Parttitioning, RAC, PQ, Oracle Text, ...
DB Server 1
TEST
...
...
DB Server 2
PROD
...
Zentraler
Storage/
San
Netapp 6080
Metrocluster
IO-Problem
500 Harddisks
2 TB Flash Cache
Netapp 6080
Metrocluster
500 Harddisks
2 TB Flash Cache
Bookit pro
Filiale
sequentielles
Filesystem
CIF-Shares
...
Single-Threaded Performance 30 MB/s
Lange Backuplaufzeiten
Abstürzende Knoten – Probleme CRS
3. Probleme - Zusammenfassung
• 
Instabiles RAC
• 
• 
• 
• 
• 
Problematische Antwortzeiten im WWS und DWDB
Viel Aufwand für Diagnose und Tuning
Backuplaufzeiten
• 
• 
• 
• 
unerwartete Reboots ausgelöst durch CRS
instabile Treiber für Infiniband bzw. RDS
Netapp Snapdrive gänzlich ungeeignet für Oracle ASM
Inkrementelle RMAN Backups dauern teilweise sehr lange Schwierigkeiten mit zugesicherten SLA‘s
Schwierigkeiten mit dem Support
• 
Netapp à Oracle und Oracle à OS und OS à Netapp und Oracle (OS = Oracle Unbreakable
Linux)
4. Ausschreibungsprozess SAN – Wie es zur
Exadata kam
Ausschreibung großer Sanhersteller:
•  Netapp
gute Software, zu viele Platten für gute Performance,
automatisches Tierung?
•  EMC
Guter POC, sehr gute Performance, automatisches Tiering, teurer als Exadata Szenario
•  Fujitsu✔
guter POC, einfache Software
•  Oracle Exadata + vorhandene Netappinfrastruktur
✔
4. Gründe für die Entscheidung für Oracle Exadata
Ein Großteil des Sanspeichers ist für die Oracle Datenbanken
Lizenzkonsolidierung
Performance/ Offloading
Applikationen mit vielen
FTS
Skalierbarkeit
Besserer Oracle Support/ Alles aus einer Hand – HW, SW, OS
Oracle Platinum Support, 24 x 7 Überwachung, Patching durch
Oracle
•  Einsparung an Zeit, da kein Tuning mehr notwendig
•  Super Ergebnisse POC Exadata V1
• 
• 
• 
• 
• 
• 
5. Ergebnisse Exadata V1 POC (1)
Machine /
DB
Test
Script
Result
actual
cluster
Result
Exadata
Performance
gain factor
ETCD
DWDB
Monthly hitlist
83_DBH_RennerMonat.c
md
12h
50min 14
ETCA
DB3
Weekly hitlist
84_DBH_RennerWoche.
cmd
2h
9min
13
Comment
2 nodes
3 cells
5. Ergebnisse Exadata V1 POC (2)
Machine /
DB
Test
Script
Result
actual
cluster
Result
Exadata
Performance
gain factor
ETCD
CASH
Small
throughput
select
min(DBP_SEQUENZ)
from
cash.DATA_BON_POS
8min
4sec
120
ETCD
CASH
OLTP Test
test_poc_oltp.cmd
1 Instance: 10Users
1 Instance: 50Users
1 Inst., 100Users
All Instances: 10Users
All Instances: 50Users
All Instances: 100Users
All Instances: 1000Users
1:17min
2:10min
Max.
50
4:05min
Users 1:36min
1:27min
able
1:40min
to run 5:36min
1000+
Users able
to run on
DBM with
excellent
response
times
Comment
No further
tests could be
conducted on
the existing
customer
cluster,
because the
system is not
able to run a
high load.
6. Exadata Anlieferungsprozess
Exadata kauf man nicht wie normale Hardware:
• 
• 
• 
• 
• 
Viele Telefonkonferenzen vorher
Site Survey
Besichtigung der Spedition
Kein Neigen des Exadata Schrankes um mehr als 7°!
Der Reracking Prozess kostet Geld!
à Derjenige, der Exadata betreiben und kaufen will,
muss Zeit für den Anlieferungsprozess mitbringen
6. Platinum Support
•  24 x 7 Monitoring
•  Fehleranlyse und
Lösungsvorschlag
•  Patching durch Oracle
Ingineure
Oracle Exadata
Datenbankserver 2
Datenbankserver 1
Oracle Support
Infinibandswitch 2
Adminswitch
Infinibandswitch 1
VPN-Tunnel
Cellserver 1
Cellserver 2
Cellserver 3
Oracle Platinum
Gateway
6. Exadata Erstinstallation durch die Firma Oracle
Drei Tage:
1.  Hardwareaufbau und Hardwaretests
2.  Softwareinstallation
3.  Konfiguration und Installation Platinum Gateway
Server, Dokumentation
7. Exadata Datenbankmigration/ Umzug
Verschiedene Szenarien werden von Oracle angeboten:
•  Export/ Import via Datapump
•  Dataguard
•  Create table as select ... mit DB-Link
7. Exadata Datenbankmigration/ Umzug
•  12 Datenbanken waren von Unterschiedlichen
System auf die Exadata umzuziehen
•  Immer der selbe Weg, gut getestet:
•  Export via Datapump auf NFS-Device
•  Import via Datapump vom NFS-Device
•  Egal ob große DB (Datawarehouse 6 TB oder kleine
DB Zeiterfassung 2 GB)
Export Datawarehouse 6TB: ca. 4,5 Std
Import Exadata ca. 2,75 Std
7. Exadata Datenbankmigration/ Umzug
import_dwdb.sh:
export LOGFILE=import_dwdb_exadata.log!
export LOGFILE_WITH_PATH=/export/export_dwdb/${LOGFILE}!
export ANFANG="`date '+%Y.%m.%d %H:%M:%S'`"!
!
impdp system/password \!
JOB_NAME=IMPORT_DWDB_EXADATA
\!
SCHEMAS=\
(BI4_AUDIT,BI4_CMS,BODB,BODB2,BOXI,BOXI4CMS,BOXI4_AUDIT,BOXI4_CMS,BO_AUDIT,BO_
LESER_DBH,BO_LESER_FS,BO_LESER_GAN,BO_LESER_HAB,BO_LESER_HUG,BO_LESER_KAR,BO_L
ESER_KONZ,BO_LESER_PART,BO_LESER_SUS,BO_LESER_VERLAG,BO_LESER_VGW,BO_LESER_WBP
,BO_LESER_WEI,BO_LESER_WT,BUCH,BUCH2,CASHWB_LESE,CASH_ARCHIV_USER,HAB,HELP,HUD
U_INFO,JWWS,MONITOR,MONITORING,TOAD,WBP,WBP2\) \!
DUMPFILE=DMPDIR1:expdp_dwdb_2013.03.20_21-41-01-Wednesday-Wk.11_01.dmp \!
…!
DMPDIR1:expdp_dwdb_2013.03.20_21-41-01-Wednesday-Wk.11_32.dmp \!
remap_tablespace=DAT4\:DATA,
\!
IDX_VERD\:IDX4,
\!
HUDU_WEB\:USR
\!
LOGFILE=DMPDIR1:${LOGFILE}
\!
parallel=32!
export ERRORCODE=$?!
export ENDE="`date '+%Y.%m.%d %H:%M:%S'`"!
!
echo " -------------------------------------- " >> $LOGFILE_WITH_PATH!
echo " Instanz
: $ORACLE_SID
" >> $LOGFILE_WITH_PATH!
echo " Beginn
: $ANFANG
" >> $LOGFILE_WITH_PATH!
echo " Ende
: $ENDE
" >> $LOGFILE_WITH_PATH!
echo " Errorcode
: $ERRORCODE
" >> $LOGFILE_WITH_PATH!
echo " -------------------------------------- " >> $LOGFILE_WITH_PATH!
!
mail -s "IMPORT DWDB EXADATA - $ANFANG bis $ENDE / Errorcode = $ERRORCODE"
[email protected] < $LOGFILE_WITH_PATH!
Wichtig:
Statistiken hinterher
analysieren
ggf. Indizes nachträglich
aufbauen
sort_area_size!
Erste Inb
etriebnah
me einer
(WWS 2 T
produktiv
B) nach 1
en DB
0 Tagen n
ach Ausli
eferung!
8. Monitoring
Gridcontrol 12c
•  Für den Betrieb von Exadata sind das Performance- und
Changemanagementpack der DB Pflicht/ ein Muss!
•  Lizenzkosten!
Paragon setzt bei der Überwachung auf Nagios
à sehr viel einfacher, weil viel Wissen vorhanden ist
8. Monitoring – Grid Control Exadata Plugin
9. Betrieb Exadata
Komplexität der Exadata ist nicht zu unterschätzen
•  Oracle Enterprise Linux UEK Kernel
•  Virtual Memory Management, Hugepages
•  Infiniband
•  Cellserver, Funktion und Betrieb
•  Wie tausche ich oder der Oracle Support eine
Festplatte?
•  cellcli/ dcli
10. Persöhnliche Erfahrung mit der Exadata
Super Resonanz seit der Einführung
•  Super Performance, gutes Antwortzeitverhalten
Aber die Performance des Datawarehouses ist gleich
geblieben bzw. hat sich verschlechtert
•  Ein Verdichtungsprozess (PL/SQL) lief vorher 10
Minuten auf der Exadata 34 Stunden!
10. Persöhnliche Erfahrung mit der Exadata
INSERT INTO TMP_VERDICHTUNG_VERKAUF_HUG (FILIALE_NR, WG, K1, K2, K3, K4, K5, PRAEFIX, STICHTAG, MWST_SCHL) SELECT FILIALE_NR, WG, SUM(ANZAHL_MIT_BESTAND),
SUM(BESTAND), SUM(BESTANDSWERT), SUM(ZL_BESTAND), SUM(ZL_WERT), PRAEFIX, :B1 , MWST_SCHL FROM ( SELECT FILIALE_NR, NVL(LPAD(TRIM(WG),3,'0'),'000') WG ,
SUM(ZAEHLER) AS ANZAHL_MIT_BESTAND, SUM(BESTAND) AS BESTAND, SUM(WERT) AS BESTANDSWERT, DECODE(MIN(ART_ZL_KZ),'ZL',SUM(BESTAND),0) ZL_BESTAND,
DECODE(MIN(ART_ZL_KZ),'ZL',SUM(WERT),0) ZL_WERT, PRAEFIX, MWST_SCHL FROM ( SELECT /*+ INDEX(a DIM_ARTIKEL_K20) */ B.FILIALE_NR AS FILIALE_NR, A.HUG_WG_NR WG,
DECODE(A.MWST, 7, 1, 2) MWST_SCHL, MIN(Z.ART_ZL_KZ) ART_ZL_KZ, CASE WHEN DECODE (SUBSTR(AENDERUNG_KZ, 1, 8), 'Inventur', BESTAND_AENDERUNG, 'unterjäh',
NVL(BESTAND_AENDERUNG,0), 'Bestands', NVL(BESTAND_AENDERUNG,0), 'Umbuchun', DECODE(SUBSTR(AENDERUNG_KZ,1,13), 'Umbuchung auf',NVL(BESTAND_AENDERUNG,0),
DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0)), 'manuelle', NVL(BESTAND_AENDERUNG,0),
DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0)) > 0 THEN 1 ELSE 0 END ZAEHLER,
FORMAT_EAN_ISBN( A.ART_EAN_NR, A.ART_ISBN_NR1)AS PRAEFIX, DECODE (SUBSTR(AENDERUNG_KZ, 1, 8), 'Inventur', BESTAND_AENDERUNG, 'unterjäh',
NVL(BESTAND_AENDERUNG,0), 'Bestands', NVL(BESTAND_AENDERUNG,0), 'Umbuchun', DECODE(SUBSTR(AENDERUNG_KZ,1,13), 'Umbuchung auf',NVL(BESTAND_AENDERUNG,0),
DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0)), 'manuelle', NVL(BESTAND_AENDERUNG,0),
DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0) ) AS BESTAND, DECODE (SUBSTR(AENDERUNG_KZ, 1, 8),
'Inventur', BESTAND_AENDERUNG, 'unterjäh', NVL(BESTAND_AENDERUNG,0), 'Bestands', NVL(BESTAND_AENDERUNG,0), 'Umbuchun', DECODE(SUBSTR(AENDERUNG_KZ,1,13),
'Umbuchung auf', NVL(BESTAND_AENDERUNG,0), DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0)),
'manuelle', NVL(BESTAND_AENDERUNG,0), DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0) ) * ( (SELECT
NVL (TO_NUMBER(SUBSTR(MAX(TO_CHAR (ART_DATWE,'yyyymmdd')|| TO_CHAR (VK_PREIS_SOLL)),9)), 0) FROM DIM_ARTIKEL WHERE NVL (DUMMY_CHAR1, 'null') != 'R' AND
ART_REF_NR = B.ART_REF_NR AND ART_DATWE < :B3 AND MANDANT = 'HUG' )) AS WERT FROM DIM_ARTIKEL_BESTAND_HUG B, DIM_ARTIKEL A,
V_HISTORY_ZL_OO_DET_RELEVANT Z WHERE 1 = 1 AND B.FILIALE_NR = :B2 AND NVL (A.DUMMY_CHAR1(+), 'null') != 'R' AND B.ART_REF_NR = A.ART_REF_NR (+) AND
B.ART_DATWE = A.ART_DATWE (+) AND A.MANDANT (+)= 'HUG' AND (B.FILIALE_NR, TO_CHAR(NVL(B.DATUM,TO_DATE('01.01.2011','dd.mm.yyyy')),'yyyymmddhh24miss')||
TO_CHAR(INSTR(AENDERUNG_KZ,'CH_',1))||LPAD(TO_CHAR(B.LFDNR),20,'0')) = (SELECT FILIALE_NR,
MAX(TO_CHAR(NVL(C.DATUM,TO_DATE('01.01.2011','dd.mm.yyyy')),'yyyymmddhh24miss')||TO_CHAR(INSTR(C.AENDERUNG_KZ,'CH_',1))||LPAD(TO_CHAR(C.LFDNR),20,'0')) FROM
DIM_ARTIKEL_BESTAND_HUG C WHERE 1=1 AND C.ART_REF_NR = B.ART_REF_NR AND C.FILIALE_NR = B.FILIALE_NR AND C.DATUM >= (SELECT MAX(I.DATUM) FROM
SD_INVENTURDATUM_DBH I WHERE I.FILIALE_NR (+) = C.FILIALE_NR AND I.FIRMA_NR (+) = '11' AND I.DATUM < :B1 ) AND C.DATUM < :B3 GROUP BY C.FILIALE_NR, C.ART_REF_NR )
AND B.ART_REF_NR = Z.ART_REF_NR (+) AND Z.STICHTAG (+) = :B1 GROUP BY B.FILIALE_NR, A.HUG_WG_NR, DECODE(A.MWST, 7, 1, 2), FORMAT_EAN_ISBN( A.ART_EAN_NR,
A.ART_ISBN_NR1), DECODE (SUBSTR(AENDERUNG_KZ, 1, 8), 'Inventur', BESTAND_AENDERUNG, 'unterjäh', NVL(BESTAND_AENDERUNG,0), 'Bestands', NVL(BESTAND_AENDERUNG,0),
'Umbuchun', DECODE(SUBSTR(AENDERUNG_KZ,1,13), 'Umbuchung auf',NVL(BESTAND_AENDERUNG,0), DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),
1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0) ), 'manuelle', NVL(BESTAND_AENDERUNG,0), DECODE(SIGN(NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0)),
1,NVL(BESTAND_AENDERUNG,0) + NVL(B.BESTAND,0),0) ), B.ART_REF_NR ) GROUP BY FILIALE_NR, NVL(LPAD(TRIM(WG),3,'0'),'000'), MWST_SCHL, PRAEFIX) GROUP BY FILIALE_NR,
WG, PRAEFIX, MWST_SCHL;
10. Persöhnliche Erfahrung mit der Exadata
Vor dem Tuning lief das Statement rund 34 Stunden
•  Schlechte IO-Performance des Altsystems hat zu massiver Index-Benutzung im DW geführt
•  8 Knoten RAC hatte bessere PQ-Performance
Nach dem Tuning des Statements läuft das Statement nur
noch 9 Sekunden
•  Funktionen verhindern das Offloading
•  PQ einstellen, auto dop, DBMS_RESOURCE_MANAGER.CALIBRATE_IO,
DBA_RSRC_IO_CALIBRATE
•  SQL Statement für Optimizer umschreiben, Subselects eliminieren
10. Persöhnliche Erfahrung mit der Exadata
Bug 16809426 EXADATA ABSOLUTE SERVICE TIME
VIOLATION DETECTED ON ONE DISK AFFECTING OTHERS
Patch: Quarterly Patch for Exadata (OCT 2013 - 11.2.0.3.21)
Eine der ersten beiden Platten der Cellserver fallen aus und bringen
das System zu stehen, schließlich und letztlich rebooten die
Computenodes
10. Persöhnliche Erfahrung mit der Exadata
Platinum Support – Patchen
!
e
•  Schwer ein geeignetes Zeitfenster zu finden
er Fäll
d
!
l
l
n
a
e
F
t
i
n
e
e
b
r
d
a
r
r
ü
e
f
e
n
s
e
s
h
•  Patchen
am
Wochenende
–
kurzfristig
unmöglich
e
c
z
t
o
a
r
P
p
h
s
c
e
t
g
i
d
Pa
n
ä
!
t
t
s
r
t
s
o
b
p
l
p
e
u
S
• SPatching
nicht
für
Bugs,
nur
im
viertelbzw.
halbjährlichen
r
e
n
r
e
t
x
E
Rhythmus
11. Resume
Positiv
•  Performance!
•  Exadata ist eine gute Konsolidierungsplattform!
Nicht zu vergessen
•  Exadata ist sehr komplex!
•  Erfahrungen müssen gesammelt werden!
•  Arbeitsersparnis, sicherlich nicht sofort!
Negativ
•  Platinum Support ist sehr verbesserungsfähig, Idee ist sehr gut
•  Exadata Support ist anders, Qualität ist nicht immer gut
11. Resume
11. Resume
Fragen und Antworten
Q & A
Vielen Dank
Malthe Griesel
[email protected]
Herunterladen