{"id":34,"date":"2012-07-09T11:41:20","date_gmt":"2012-07-09T09:41:20","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=34"},"modified":"2016-08-17T18:51:27","modified_gmt":"2016-08-17T16:51:27","slug":"split-files-i-c5","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=34","title":{"rendered":"Selv en Native kan v\u00e6re en Goliat"},"content":{"rendered":"<p><strong>ADVARSEL: Brug af denne udokumenterede funktion er p\u00e5 egen regning og risiko.<\/strong><\/p>\n<p>Har du en meget stor databasefil i en C5 Native installation, s\u00e5 har den som udgangspunkt en maksimale begr\u00e6nsning p\u00e5 4GB.<br \/>\nNB: Gr\u00e6nsen skyldes oprindeligt en filst\u00f8rrelsesgr\u00e6nse i FAT-filsystemet.<\/p>\n<p>Denne begr\u00e6nsning kan du dog komme ud over med Split-file funktionaliteten, ligesom du evt. kan \u00f8ge performance ved at dele databasefilerne ud p\u00e5 flere fysiske-\/netv\u00e6rks-drev.<\/p>\n<p>Split-file funktionaliteten er noget C5 kernen har &#8220;arvet&#8221; fra XAL &#8211; og selv om funktionaliteten er udokumenteret, s\u00e5 virker den tilsyneladende i hvert fald til og med C5 2012 HF2 (i skrivende stund er det ikke testet i nyere udgaver).<\/p>\n<p>Bem\u00e6rk at C5s ODBC Connector IKKE supporterer split-file. S\u00e5 benytter du den er split-file IKKE en mulighed. C5s ODBC Connector har i \u00f8vrigt indtil Klassisk Dynamics C5 version 2012 ServicePack 2 Hotfix 12 haft en bug der g\u00f8r at den kun h\u00e5ndtere 2GB database &#8211; <a href=\"http:\/\/blog.systemconnect.dk\/?p=1010\">l\u00e6s evt. mere ved at klikke her<\/a>.<\/p>\n<p>S\u00e5dan g\u00f8r du:<br \/>\n1. S\u00f8rg for at alle brugere er ude af C5<\/p>\n<p>2. Tag backup af hele C5-installationen &#8211; inkl. datafiler<\/p>\n<p>3. Lav en tekstfil ved navn &#8220;c5data@.dat&#8221; (hvis det er et andet regnskab end DAT-regnskabet du vil splitte, skal du selvf\u00f8lgelig erstatet &#8220;.dat&#8221; med regnskabets extension). Filen er en tekstfil af f\u00f8lgende format: &lt;sti med alm. skr\u00e5streg fremfor backslash&gt; &lt;l\u00f8benummer 0-15&gt; &lt;max st\u00f8rrelse i MB&gt; &lt;prioritet&gt;.<br \/>\nL\u00f8benummer skal v\u00e6re fortl\u00f8bende og starte med 0. Der kan max v\u00e6re 16 filer, dvs. h\u00f8jeste tilladte l\u00f8benummer er 15). Max st\u00f8rrelse overholdes, men hvis der ikke er plads i andre filer, vil data blive tilf\u00f8jet i standardfilen (dvs. filen med l\u00f8benummer 0 &#8211; fx c5data.dat). Prioritet angiver hvilken fil kernen vil v\u00e6lge at tilf\u00f8je i f\u00f8rst (hvis flere har samme prioritet deles data mellem dem = en form for &#8220;load sharing&#8221;). Fx:<\/p>\n<pre style=\"padding-left: 30px;\">;\r\n; Splitfile definition (C5data@.dat)\r\n;\r\n.\/\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 100\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0100\r\n.\/\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 999\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 100\r\n\r\n<\/pre>\n<p style=\"padding-left: 30px;\">Eksemplet laver\u00a0to datafiler: c5data.dat og c5data1.dat. Filerne fyldes j\u00e6vnt fordelt\u00a0&#8211; men n\u00e5r\u00a0c5data.dat er 100MB stor, fyldes alt i\u00a0C5data1.dat\u00a0(indtil den n\u00e5r 999MB, hvorefter kernen falder tilbage til at bruge C5data.dat som sidste udvej).<\/p>\n<p style=\"padding-left: 30px;\">NB: Filer med ens prioritet fyldes p\u00e5 skift &#8211; dvs. man opn\u00e5r en form for &#8220;load sharing&#8221; mellem dem. Og det kan bl.a. udnyttes til \u00f8get performance s\u00e5fremt de placeres p\u00e5 forskellige fysiske drev\/netv\u00e6rksstier.<\/p>\n<p>4. Test og begynd at bruge C5 igen \ud83d\ude42<\/p>\n<p>Bem\u00e6rk: Kernen begynder ikke at flytte data rundt i filerne jf. den nye ops\u00e6tning. Kun nye tilf\u00f8jelser i datafilerne overholder prioriteringen\/ops\u00e6tningen. Vil du have flyttet data, er metoden: Dataeksport, ovenst\u00e5ende ops\u00e6tning\u00a0p\u00e5 en ny datafil efter den er oprettet og s\u00e5 en efterf\u00f8lgende Dataimport.<br \/>\nBem\u00e6rk: Umiddelbart b\u00f8r man kraftigt overveje at skifte til SQL databasen, n\u00e5r ens databaser n\u00e5r til ca 400MB.<br \/>\nBem\u00e6rk: I C5 version 2012 beregnes databaseforbrug ud fra hvad der rent faktisk ligger i databasen (poster t\u00e6lles &#8211; ligesom\u00a0C5 p\u00e5 SQL\u00a0g\u00f8r). I tidligere udgaver blev den fysiske filst\u00f8rrelse brugt (dvs. i\u00a0praksis blev visse\u00a0slettede data medtalt). \u00c6ndringen betyder at din fysiske filst\u00f8rrelse faktisk godt kan overstige 4GB selv om dine data er langt mindre.<\/p>\n<p>Advarsel: Alt efter din\u00a0C5 version og andre applikationsrettelser, kan der v\u00e6re dele af C5-applikationen der har problemer med at h\u00e5ndtere data st\u00f8rre end 2GB eller 4GB mv&#8230;<\/p>\n<p><strong>ADVARSEL: Brug af denne udokumenterede funktion er p\u00e5 egen regning og risiko.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ADVARSEL: Brug af denne udokumenterede funktion er p\u00e5 egen regning og risiko. Har du en meget stor databasefil i en C5 Native installation, s\u00e5 har den som udgangspunkt en maksimale begr\u00e6nsning p\u00e5 4GB. NB: Gr\u00e6nsen skyldes oprindeligt en filst\u00f8rrelsesgr\u00e6nse i &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=34\">L\u00e6s resten <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,4],"tags":[15,43,13,22,11,53,14,21,20],"class_list":["post-34","post","type-post","status-publish","format-standard","hentry","category-klassisk-c5","category-klassisk-c5-teknik","tag-business-solutions","tag-c5","tag-damgaard-data","tag-database","tag-dynamics","tag-klassisk-c5","tag-microsoft","tag-native","tag-udokumenteret"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/34","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=34"}],"version-history":[{"count":13,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/34\/revisions"}],"predecessor-version":[{"id":1015,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/34\/revisions\/1015"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=34"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=34"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}