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 Bookit pro Filiale sequentielles Filesystem CIF-Shares Parrac836x ASM 256 GB RAM 2 x DualCore 8GBit FC Infiniband IC 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,... Bookit pro Filiale sequentielles Filesystem CIF-Shares Zentraler Storage/ San IO-Problem Netapp 6080 Metrocluster 500 Harddisks 2 TB Flash Cache... Netapp 6080 Metrocluster 500 Harddisks 2 TB Flash Cache DB Server 1 TEST...... DB Server 2 PROD... 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 gute Software, zu viele Platten für gute Performance, automatisches Tierung? Guter POC, sehr gute Performance, automatisches Tiering, teurer als Exadata Szenario 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 Skalierbarkeit Applikationen mit vielen FTS 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 Comment ETCD DWDB Monthly hitlist 83_DBH_RennerMonat.c 12h 50min 14 md 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 Oracle Exadata Datenbankserver 2 Datenbankserver 1 Infinibandswitch 2 Adminswitch Infinibandswitch 1 Oracle Support 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" 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 Patchprozesse erarbeiten! Selbstständiges Patchen für den Fall der Fälle! Patching nicht für Bugs, nur im viertel- bzw. halbjährlichen Externer Support! 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 m.griesel@paragon-data.de