Avatar billede hacked Nybegynder
15. december 2005 - 02:49 Der er 5 kommentarer og
1 løsning

Splitte en database op flere

Mit spørgsmål er udelukkende teoritisk da databasen ikke eksistere endnu.

Databasen der vil blive benyttet er enten Oracle 9i eller 10g.

Såfremt man har en database der er for stor til at ligge på en harddisk hvilke muligheder har man så?
Kan man fordele en samlet database ud på flere maskiner/databaser og fordele tupler imellem dem (se eksempel 1)?
Der må gerne henvises til eksempler der benytter clustering.


Eksempel 1:

DB1 - tabel 'antal' tupler : 1-100

--------------------- split af DB1

DB2 - tabel 'antal' tupler : 1-50

DB3 - tabel 'antal' tupler : 51-100

Såfremt du/I kender nogle gode bøger/sites der berøre dette emne
så paste/nævn dem venligst :)
På forhånd tak
Avatar billede hacked Nybegynder
15. december 2005 - 04:28 #1
Glem eksempel 1!

Nyt eksempel

DB1 - tabel 'ord' tupler: ord med begyndelsesbogstav fra a - d fx and ...... danse

--------------------- split af DB1

DB2 - tabel 'ord' tupler: ord med begyndelsesbogstav fra a - b fx and ..... bil

DB3 - tabel 'ord' tupler: ord med begyndelsesbogstav fra c - d fx cykel ..... danse

Ville clustret så kunne finde ud af at søge i DB3 og ikke i både db2 og db3 når man forespørger på ord med begyndelsesbogstav c? Eller vil dette kræve noget middleware?
Avatar billede Slettet bruger
15. december 2005 - 05:42 #2
Avatar billede pnielsen Nybegynder
15. december 2005 - 09:45 #3
Hej Malkor,

Velkommen i Oracle verdenen.
Har du en Oracle database - har du også mulighed for at fordele data over flere diske. Det gøres ved at sprede dine datafiler (der ligger under det enkelte tablespace), over flere diske. Du kan default kun styre at data skal ligge i et bestemt tablespace - databasen finder selv ud af at sprede data over datafilerne.
Så den del er nem nok.
Du kan så vælge at lave partitionerede tabeller - hvor du kan styre hvor de enkelte dele af tabellen skal ligge(Fordele partitionerne i flere tablespaces) Dvs. at du f.eks. kan ligge a-d data i et tablespace osv. Det styres ved når du opretter databasen.

Clustering foregår ved at du ligger databasen på et cluster og sætter flere instancer foran databasen -> f.eks. 4 maskiner til 1 cluster.
Her kan du optimere ved at sørge for brugerne bruger den enkelte instance til det arbejde den er optimeret til. Feks. kan sørge for at memory på instance 1 altid cacher a-d etc.
Avatar billede pnielsen Nybegynder
15. december 2005 - 09:47 #4
Rettelse:

Du kan så vælge at lave partitionerede tabeller - hvor du kan styre hvor de enkelte dele af tabellen skal ligge(Fordele partitionerne i flere tablespaces) Dvs. at du f.eks. kan ligge a-d data i et tablespace osv. Det styres ved parameter når du opretter TABELLEN. ;-) (havde du nok selv gennemskuet)
Avatar billede hacked Nybegynder
15. december 2005 - 14:32 #5
Hm - kryptos læg et svar så prøver jeg at fordele point ligeligt såfremt det stadig er muligt. Eller skal man oprette et nyt spørgsmål med reference til det gamle?

Kunne bruge artiklen fra kryptos og pnielsen's korte og præcise gennemgang.
Super svar begge to - mange tak :)
Avatar billede hacked Nybegynder
15. december 2005 - 17:49 #6
Har accepteret pnielsen's svar - kryptos hvis du også vil have point så smid en kommentar - så fixer vi det ved et nyt spørgsmål.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester