SQL Server 2008 yhteensopivuudesta

 

SQL Server 2000:n mainstream -tuki päättyi viime viikolla lähes kahdeksan vuoden jälkeen. Extended -tuki 2000 -versiolle jatkuu vielä vuoteen 2013, jonka jälkeen tuotteeseen ei tule enää edes tietoturvapäivityksiä, joten nyt on korkea aika varmistaa sovellusten yhteensopivuus uudempien SQL Servereiden kanssa. Uudemmissa SQL Servereissä (2005 ja 2008) on asennusvaiheeseen sisäänrakennettuna yhteensopivuuden tarkistustyökaluja, jotka tarkastavat tietokannat ja tallennetut proseduurit yhteensopivuuden varmistamiseksi. Tämän lisäksi voidaan sovelluksen yhteensopivuuden tarkistamiseksi tehdä vielä trace -logien ajovertailu uuden ja vanhan tietokantapalvelimen välillä, jotta saadaan hyvä varmuus ja luottamus myös sovelluskoodin yhteensopivuuden osalta. Tätä vaihetta varten on työkalu: SQL Server Upgrade Assistant, jolla vertailu voidaan automatisoida.

Upgrade Assistant -työkalua on käytetty menestyksekkäästi jo aikaisemmissa yhteensopivuustestauksissa ja nyt siitä on käytettävissä myös 2008 -versio, jolla voidaan varmistaa sovellusten yhteensopivuus 2000 ja 2005 -palvelimista. Vanhempi 2005 -versio työkalusta on myös saatavilla.

Työkalun käyttö on hyvin suoraviivaista:

1) Tallennetaan lähdejärjestelmässä SQL Trace testattavasta kannasta suorittamalla mahdollisimman kattava testi sovelluksen toiminnoista (Code Coverage -tyyppinen testi) yhdellä käyttäjäprosessilla, jotta toistovaiheessa ei synny tarpeettomia lukituksia kantaan, jotka heikentävät testin läpimenomahdollisuuksia. Trace ja kantojen varmuuskopiot ennen testin ajoa ovat testauksen lähtötilanne. Testiympäristöt kannattaa virtualisoida, jotta testien uusiminen on nopeaa ja vaivatonta.

2) Tämän jälkeen testattavat kannat + Trace -tiedosto palautetaan kahteen SQL Server ympäristöön, joista toinen päivitetään uudempaan testattavaan versioon. Tässä vaiheessa ajetaan myös SQL Serverin mukana toimitettava Upgrade Advisor, joka tarkastaa tilanteen tietokantapalvelimen päivityksen osalta, ja varoittaa mahdollisista yhteensopivuusongelmista.

3) Nyt meillä on kaksi erillistä ympäristöä valmiina varsinaista toistotestausta varten. Alkuperäinen tietokanta + Trace -tiedosto, sekä päivitetty tietokantapalvelin + Trace. Tämän jälkeen järjestelmissä ajetaan Trace -tiedostot kantoja vasten ja siirrytään tarkastelemaan suoritusten eroja. Jos mitään merkittäviä eroja suorituksessa ei havaita, voidaan olla melko varmoja siitä, että sovellus on yhteensopiva myös uudemman SQL Serverin kanssa ja voidaan lähteä tekemään palvelinmigraatiota.

Testi sopii hyvin osaksi ohjelmiston elinkaarenhallintaa ja helpottaa päätöstä siirtyä tukemaan uusia palvelinversioita. Tämä työkalu kannattaa ottaa mukaan osaksi sovelluksen elinkaarenhallintaa ja näin pienentää sovellusten testauskustannuksia.

 

Juhani Vuorio