exadata database maschine - paragon data · agenda 1. kurzprofil paragon data 2. systemlandschaft...

Post on 04-Jun-2018

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Parrac836x ASM 256 GB RAM 2 x DualCore 8GBit FC Infiniband IC

Netapp 6080 Metrocluster 500 Harddisks 2 TB Flash Cache Netapp 6080

Metrocluster 500 Harddisks 2 TB Flash Cache

Bookit pro Filiale sequentielles Filesystem CIF-Shares

Bookit pro Filiale sequentielles Filesystem CIF-Shares

Bookit pro Filiale sequentielles Filesystem CIF-Shares

Parrac8361 – Parrac8368 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 IO-Problem

Single-Threaded Performance 30 MB/s Lange Backuplaufzeiten Abstürzende Knoten – Probleme CRS

3. Probleme - Zusammenfassung

•  Instabiles RAC •  unerwartete Reboots ausgelöst durch CRS •  instabile Treiber für Infiniband bzw. RDS

•  Problematische Antwortzeiten im WWS und DWDB •  Viel Aufwand für Diagnose und Tuning •  Backuplaufzeiten

•  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

•  EMC

•  Fujitsu✔

•  Oracle Exadata + vorhandene Netappinfrastruktur

guter POC, einfache Software

gute Software, zu viele Platten für gute Performance, automatisches Tierung?

Guter POC, sehr gute Performance, automatisches Tiering, teurer als Exadata Szenario

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 •  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

Applikationen mit vielen FTS

5. Ergebnisse Exadata V1 POC (1)

Machine / DB

Test Script Result actual cluster

Result Exadata

Performance gain factor

Comment

ETCD DWDB

Monthly hitlist 83_DBH_RennerMonat.cmd 12h 50min 14

ETCA DB3

Weekly hitlist

84_DBH_RennerWoche.cmd 2h 9min 13 2 nodes

3 cells

5. Ergebnisse Exadata V1 POC (2)

Machine / DB

Test Script Result actual cluster

Result Exadata

Performance gain factor

Comment

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

Max. 50 Users able to run

1:17min 2:10min

4:05min 1:36min 1:27min 1:40min 5:36min

1000+ Users able to run on DBM with excellent response times

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

Cellserver 3

Cellserver 2

Cellserver 1

Oracle Exadata

Infinibandswitch 1

Adminswitch

Infinibandswitch 2

Datenbankserver 1

Datenbankserver 2

Oracle Platinum Gateway

Oracle Support

VPN-Tunnel

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_LESER_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,HUDU_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" m.griesel@paragon-data.de < $LOGFILE_WITH_PATH!

Wichtig: Statistiken hinterher analysieren ggf. Indizes nachträglich aufbauen sort_area_size!

Erste Inbetriebnahme einer produktiven DB (WWS 2 TB) nach 10 Tagen nach Auslieferung!

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 •  Schwer ein geeignetes Zeitfenster zu finden

•  Patchen am Wochenende – kurzfristig unmöglich

•  Patching nicht für Bugs, nur im viertel- bzw. halbjährlichen Rhythmus

Patchprozesse erarbeiten!

Selbstständiges Patchen für den Fall der Fälle!

Externer Support!

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 m.griesel@paragon-data.de

top related