Selv en Native kan være en Goliat

ADVARSEL: Brug af denne udokumenterede funktion er på egen regning og risiko.

Har du en meget stor databasefil i en C5 Native installation, så har den som udgangspunkt en maksimale begrænsning på 4GB.
NB: Grænsen skyldes oprindeligt en filstørrelsesgrænse i FAT-filsystemet.

Denne begrænsning kan du dog komme ud over med Split-file funktionaliteten, ligesom du evt. kan øge performance ved at dele databasefilerne ud på flere fysiske-/netværks-drev.

Split-file funktionaliteten er noget C5 kernen har “arvet” fra XAL – og selv om funktionaliteten er udokumenteret, så virker den tilsyneladende i hvert fald til og med C5 2012 HF2 (i skrivende stund er det ikke testet i nyere udgaver).

Bemærk at C5s ODBC Connector IKKE supporterer split-file. Så benytter du den er split-file IKKE en mulighed. C5s ODBC Connector har i øvrigt indtil Klassisk Dynamics C5 version 2012 ServicePack 2 Hotfix 12 haft en bug der gør at den kun håndtere 2GB database – læs evt. mere ved at klikke her.

Sådan gør du:
1. Sørg for at alle brugere er ude af C5

2. Tag backup af hele C5-installationen – inkl. datafiler

3. Lav en tekstfil ved navn “c5data@.dat” (hvis det er et andet regnskab end DAT-regnskabet du vil splitte, skal du selvfølgelig erstatet “.dat” med regnskabets extension). Filen er en tekstfil af følgende format: <sti med alm. skråstreg fremfor backslash> <løbenummer 0-15> <max størrelse i MB> <prioritet>.
Løbenummer skal være fortløbende og starte med 0. Der kan max være 16 filer, dvs. højeste tilladte løbenummer er 15). Max størrelse overholdes, men hvis der ikke er plads i andre filer, vil data blive tilføjet i standardfilen (dvs. filen med løbenummer 0 – fx c5data.dat). Prioritet angiver hvilken fil kernen vil vælge at tilføje i først (hvis flere har samme prioritet deles data mellem dem = en form for “load sharing”). Fx:

;
; Splitfile definition (C5data@.dat)
;
./      0       100           100
./      1       999           100

Eksemplet laver to datafiler: c5data.dat og c5data1.dat. Filerne fyldes jævnt fordelt – men når c5data.dat er 100MB stor, fyldes alt i C5data1.dat (indtil den når 999MB, hvorefter kernen falder tilbage til at bruge C5data.dat som sidste udvej).

NB: Filer med ens prioritet fyldes på skift – dvs. man opnår en form for “load sharing” mellem dem. Og det kan bl.a. udnyttes til øget performance såfremt de placeres på forskellige fysiske drev/netværksstier.

4. Test og begynd at bruge C5 igen 🙂

Bemærk: Kernen begynder ikke at flytte data rundt i filerne jf. den nye opsætning. Kun nye tilføjelser i datafilerne overholder prioriteringen/opsætningen. Vil du have flyttet data, er metoden: Dataeksport, ovenstående opsætning på en ny datafil efter den er oprettet og så en efterfølgende Dataimport.
Bemærk: Umiddelbart bør man kraftigt overveje at skifte til SQL databasen, når ens databaser når til ca 400MB.
Bemærk: I C5 version 2012 beregnes databaseforbrug ud fra hvad der rent faktisk ligger i databasen (poster tælles – ligesom C5 på SQL gør). I tidligere udgaver blev den fysiske filstørrelse brugt (dvs. i praksis blev visse slettede data medtalt). Ændringen betyder at din fysiske filstørrelse faktisk godt kan overstige 4GB selv om dine data er langt mindre.

Advarsel: Alt efter din C5 version og andre applikationsrettelser, kan der være dele af C5-applikationen der har problemer med at håndtere data større end 2GB eller 4GB mv…

ADVARSEL: Brug af denne udokumenterede funktion er på egen regning og risiko.

En tanke om “Selv en Native kan være en Goliat

  1. Pingback: Pas på grænsekontrollen! | Systemconnects Teknikblog

Skriv et svar