Att uppgradera från Informix 7.31 och kanske lite annat Johan Backlund
Innehållsförteckning Introduktion Uppgradering av ett system från 7.31 till 10 High Performance Loader B-tree Scanner och andra upptäckter Tyvärr inte tid för alla detaljer...
Bästa price/performance! Stort urval presentationer (88 stycken) Umgås med likasinnade från hela världen Träffa experterna bakom Informix Certifiera dig!
Vem är jag? Konsult i eget litet företag 20+ med IT 15+ med RDBMS 10+ som konsult Jobbade på Informix 1994-97 IBM Certified Solutions Expert Migrering, prestanda, felsökning...
The mission Uppgradering av Informix i samband med byte av hårdvara och operativsystem Ett batchintensivt 24/7 system ~24 timmar för migrering av databas Applikationen levererad av tredje part Informix version fastställd Inte helt enkelt att ändra i kod
Förutsättningar Från: Informix 7.31.TDx (Windows 2000) Till: Informix 10.00.TC6 (Windows 2003) Databas cirka 200GB Stort antal (600+) Stored Procedures Egentligen bra för då är det ju Open Source!
Migrering av data Alternativ 1: In-place uppgradering Ej applicerbar Defragmentering av tabeller Flytta tabeller till andra dbspace Alternativ 2: Export/Import av data dbexport/dbimport för långsamt High Performance Loader!
Vad är HPL? Export och import av data I läsbar eller binär format Flexibel Format, filtrering, exekvering,... Snabb både vid export och import Nu ännu enklare Gratis
Hur går det till? Grovjobbet görs av onpload Parallell export/import Utför enligt jobbdefinitioner i databasen onpload ipload används för att definiera jobb i GUI Endast Unix... onpladm definierar jobb via kommandorad Dök upp i Informix 10
Vad är ett jobb? Ett jobb samlar definitioner nödvändiga för att genomföra en export eller import Typiskt mappar ett jobb mot en export eller import av en tabell Definitioner omfattar bl.a. filformat, filtrering, SQL, mappning mellan datakolumner och tabellkolumner Jobb samlas i ett projekt
onpladm Kan användas för att skapa jobb för hel databas eller enstaka tabeller köra enstaka jobb eller alla jobb för en databas hämta objektdefinitioner i databasen onpload uppdatera objektdefinitioner Demo!
Erfarenheter av HPL Viss tröskel att ta sig över dbexport/dbimport är ju så enkelt... Flexibel, men omständig att konfigurera Overhead vid exekvering av jobb Snabb för stora tabeller Långsammare än dbexport/dbimport för små Inte helt krångelfri under Windows
Hur gick migreringen? Rutinen med HPL som sattes upp kunde ha genomfört migreringen på 10 timmar Inklusive indexbygge och UPDATE STATISTICS På grund av en genväg som kortade ner tiden till 6 timmar fick kompletterande migrering göras... Men det fanns ju iallafall tid!
Det tredje alternativet
Det tredje alternativet Det finns ytterligare ett alternativ för att kopiera en databas mellan olika instanser...
Det tredje alternativet Det finns ytterligare ett alternativ för att kopiera en databas mellan olika instanser... Någon som kan gissa?
Det tredje alternativet Det finns ytterligare ett alternativ för att kopiera en databas mellan olika instanser... Någon som kan gissa? Distributed Queries!
Det tredje alternativet Det finns ytterligare ett alternativ för att kopiera en databas mellan olika instanser... Någon som kan gissa? Distributed Queries! Överför data direkt mellan olika Informix servers utan att mellanlagra på fil
Det tredje alternativet Det finns ytterligare ett alternativ för att kopiera en databas mellan olika instanser... Någon som kan gissa? Distributed Queries! Överför data direkt mellan olika Informix servers utan att mellanlagra på fil Allt styrt av SQL!
dbschema Både HPL och varianten med Distributed Queries kräver ett existerande schema Även om HPL kan hantera index och vissa constraints vid laddning så är det bättre att skapa dessa i efterhand dbschema används för att ta ut schema Kunde dock vara lite vassare på att generera olika skript för tabeller, index, constraints, grants etc.
Typiska fel efter uppgradering Förändrat beteende i Stored Procedures: Tidigare buggar som fixats En och annan ny bug (fixade i senare versioner) Workarounds för prestanda Dåliga/felaktiga optimeringsdirektiv Vilda västern med temporära tabeller
Nyheter i driftsmiljön Införande av replikering med HDR Snabb fail-over vid serverkrasch Lastfördelning genom frågor mot sekundär Fungerat bra så här långt! Byte från ontape till onbar Bra, men kräver mer av driftsmiljö!
Efter driftsättning Prestanda för det mesta bättre Mycket god stabilitet efter en tids inkörning En del problem: DNS vid uppkoppling från klienter Fel i SP som orsakade loop i felhantering onbar restore med multi-cpu (fixat i10.00.xc8) B-tree scanner
DNS problem Vid uppkoppling av klient försöker IDS slå upp hostname från IP adress Om detta tar tid så påverkas IDS förmåga att ta emot klienter överhuvudtaget I detta fall gjordes DNS uppslag som ledde till långa uppkopplingstider (> 4 sekunder) Kombinerat med automatisk retry från klienterna så dog IDS till slut...
B-tree Scanner Ersatte B-tree Cleaner för några år sedan Letar efter borttagna element i ett index och städar bort dessa Aktiveras automatiskt när IDS sett ett visst antal sidor med sådana element Sökandet kan ske enligt olika metoder
B-tree Scanner II Standardinställningar kan orsaka problem med prestanda (I/O och CPU)! Lågt tröskelvärde: BTSCANNER aktiveras ofta Leaf Scan är standardmetod och innebär att hela indexet scannas Höj tröskelvärde! Undvik Leaf Scan om möjligt
Och nu då? Nuvarande system väldigt stabilt! Klar förbättring mot tidigare miljö med 7.31 Prestanda är OK, men kan nog bli ännu bättre Förbättringar kan göras för tillgänglighet och administrativa rutiner Features i Informix 11 som lockar...
Features som hägrar Prestandaförbättrade åtgärder Last Committed Read, ALICE,... Förbättrad replikering Connection Manager Uppdateringsbara sekundärer Förbättrade adminstrativa funktioner Open Admin Tool, SQLTRACE,...
Frågor? (om det finns någon tid kvar)
Tack för mig! Johan Backlund
Tester efter migrering Manuell test av användarapplikationer Test av kritiska batchkörningar Prestanda Resultat (jämföra utfiler) Test av driftsrutiner Backup/Restore Replikering
Backup/Restore Innan migrering: ontape till disk Byte till onbar med Tivoli Storage Manager Parallell backup/restore Förenklad distribution av backup till andra miljöer TSM server måste fungera bra!