DSpace oppgradering

From dok

Når en skal oppgradere en DSpace installasjon, så må en huske på en del ting.

Begynn med å lese her:

En antar at en har 2 maskiner. En som er i produksjon, fra nå av kalt: Prod, og en som er satt opp som en testboks, heretter kalt Test.

Pakk ned PG databasen på Prod

På Prod: Kjør vanlig backup script, eller finn aktuell fil fra:

/dspace/pgbackup/

Kopier filen over til Test:

scp YYYYMMDD004001.test.sql brukernavn@test:/opt/sr/

Importer database dataene inn i postgresql databasen

På Test maskinen:

 psql -U dspace-pg-bruker -f /opt/scr/YYYYMMDD004001.dspace.sql dspace

Kjør Postgreql oppgraderingsscriptet

På Test maskinen:

 cd /opt/src/.../dspace/etc/postgres psql -U dspace-pg-bruker -f database_schema_18-3.sql dspace

hvor 18 står for versjon 1.8 og 3 står for versjon 3.

Pakk filer på Prod

På Prod:

 tar -Jcvf dspace.txz bin/ config eksport/ etc/ handle-server lib/ reports/ scripts/ search/ sitemaps/ solr/ uib/ upload/ webapps/

Flytt dspace.txz filen til Test (test maskin)

På Prod:

scp dspace.txz brukernavn@test:/opt/src/

Stopp Tomcat

Husk at det er på Test boksen du skal stoppe Tomcat tjenesten, ikke i Prod :-)

service tomcat6 stop

Klargjøre /dspace katalogen

Om det finnes kataloger fra før under /dspace katalogen, så må disse fjernes. F.eks:

cd /dspace
mkdir OLD-DATA
mv * OLD-DATA/

Deretter pakker en ut dspace.txz ut i /dspace katalogen:

cd /dspace
tar xJvf bora.txz

Git seksjon

I og med at konfigurasjonsfiler endrer seg, kan det være lurt å bruke git for å se hvilke endringer som gjøres.

Lag .gitignore fil

Ikke alle filer skal med. Dette er en mulige kataloger og filtyper som skal være i en .gitignore fil:

bin
assetstore
lib
log
webapps
*.class
*.jar
*.war

Om en lurer på hvilke filtyper (filer med filendelse) som finnes i en gitt katalog, så kan en kjøre:

find . -type f | sed 's/^\.\/.*\///g' | egrep '\.' | sed 's/^.*\.//g' | sort  | uniq | sort

Om har kjørt en test oppgradering, så kan en sjekke hvilke typer filer som er endret ved å kjøre:

find . -type f -name '*.old'

Dermed vet en hvilke filer som blir endret. Nå kan en gjøre følgende:

Finn hvilke filer som ble endret, og som ble kopiert over til en .old fil:

for i in `find . -type f -name '*.old'`; do echo $i|sed 's/\-20131008-103340\.old//g'; done

Lagre listen av filene i en fil

endredefiler.list

Sjekk at filene som ble funnet og hadde .old filendelse faktisk eksisterer:

for j in `cat endredefiler18-32.list`;do ls -al $j;done

Legg filene en og en til git:

for j in `cat endredefiler18-32.list`;do git add -f $j;done
for j in `cat endredefiler18-32.list`;do git commit -m "$j" $j;done

Legg til filer til git

git init
git add -f .
git commit -m "Kommentar: nu legger vi til 1.8 versjonen av konfigurasjonsfilene med mer for klargjøring av DSpace oppgradering til versjon 3.2" .

Klargjøre java

Husk å sjekke at rett java er valgt som default:

alternatives --config java

Om en bruker samme versjon som oss, så må en velge:

/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

can't find tools.jar

Løsning:

yum list installed | grep jdk

om devel pakken ikke er installert så:

yum -y install java-1.7.0-openjdk-devel

Kjør oppgraderingen

cd /opt/src/bora-3.2-src/dspace/target/dspace-3.2-build
ant update

.old filene

Etter oppgraderingen (ant update), så ser en at det er mange .old filer i diverse kataloger. Disse blir laget ved at gamle config filer får nytt navn til .old. Det betyr at de nye cfg filene som lages, ikke innehar de evt. Endringene som en la inn I forrige versjon. Det betyr igjen at en må se på de endringene som er gjort, og diff eller git kan være verktøy som en kan bruke. Dersom en har gjort jobben nevnt over med git, så kan en nå gjøre:

git status
git diff filnavn

for å se hva som er forskjellig i de ulike filene mellom versjon 1.8 og 3.2.

Konfigurasjonsfiler

Filer som kan være lurt å se nærmere på, både før og etter en oppgradering fra 1.8 til 3.2. Det er absolutt anbefalt å tracke endringer både før og etter med et versjonkontroll git. Husk at filer kan endre seg både i /dspace installasjonskatalogen, og i /opt/src/dspace (source katalogen). Mulig at to git repoer kan være nyttig.

config/dspace.cfg
config/modules/authentication-ldap.cfg
config/log4j-handle-plugin.properties
config/log4j.properties
config/modules/authentication.cfg
config/modules/discovery.cfg
config/modules/oai.cfg
config/modules/solr-statistics.cfg
config/item-submission.xml
config/input-forms.xml
config/modules/sword-client.cfg
config/modules/sword-server.cfg
config/modules/swordv2-server.cfg
config/news-xmlui.xml
config/xmlui.xconf
solr/search/conf/solrconfig.xml
solr/statistics/conf/schema.xml

Vedlikeholds scripts (bash)

Vedlikeholdsscript kan være nyttig å ha dersom en må gjenta en del kommandoer ved jevne mellom. IT avdelingen ved UiB har 2 script som vi benytter i våre DSpace installasjoner:

  • redeploy.sh
  • reindex_systemnavn.sh

Når en går over til ny versjon, så er det viktig at en oppdaterer stier m.m i scriptene redeploy.sh og reindex_systemnavn.sh. Les mer om disse scriptene her: DSpace drift

Kategori:DSpace