Ch¬ng II CSDL ph©n t¸n theo m« h×nh Client - Server cña Oracle A. Kh¸i niÖm vÒ CSDL ph©n t¸n
Mét CSDL ph©n t¸n lµ mét tËp hîp d÷ liÖu mµ vÒ mÆt logic tËp d÷ liÖu nµy thuéc vÒ mét hÖ thèng, nhng ®îc tr¶i trªn c¸c vÞ trÝ (kh¸c nhau) cña mét m¹ng m¸y tÝnh.
Chó ý r»ng ph©n t¸n cã nghÜa lµ d÷ liÖu kh«ng c tró trªn mét vÞ trÝ (kh¸c víi CSDL tËp trung, ®¬n lÎ) vµ ph¶i cã t¬ng quan logic víi nhau (d÷ liÖu cã mét sè c¸c thuéc tÝnh rµng buéc chóng víi nhau) chø kh«ng ph¶i lµ mét tËp hîp CSDL côc bé hoÆc c¸c tÖp c tró t¹i c¸c vÞ trÝ kh¸c nhau trong mét m¹ng m¸y tÝnh.
Tuy viÖc qu¶n trÞ mét hÖ thèng CSDL ph©n t¸n sÏ gÆp nhiÒu khã kh¨n h¬n so víi hÖ CSDL tËp trung nhng xu híng x©y dùng c¸c hÖ CSDL ph©n t¸n ngµy cµng ph¸t triÓn vµ cã nhiÒu øng dông trong thùc tÕ v× c¸c nguyªn nh©n sau:
XuÊt ph¸t tõ chÝnh yªu cÇu thùc tÕ vÒ tæ chøc vµ kinh tÕ: Trªn thùc tÕ nhiÒu tæ chøc lµ kh«ng tËp trung, d÷ liÖu ngµy cµng lín vµ phôc vô cho ®a ngêi dïng n»m ph©n t¸n v× vËy CSDL ph©n t¸n lµ thÝch hîp víi cÊu tróc tù nhiªn cña c¸c tæ chøc ®ã. §©y lµ mét trong c¸c yÕu tè quan träng thóc ®Èy viÖc ph¸t triÓn CSDL ph©n t¸n.
Mét vÝ dô minh ho¹ cho vÊn ®Ò nµy lµ hÖ thèng b¸n vÐ m¸y bay thèng nhÊt trªn toµn thÕ giíi. Mçi h·ng hµng kh«ng cã mét hÖ CSDL riªng, cã sù qu¶n lý riªng vµ kh«ng thÓ cã lý do nµo ®Ó CSDL nµy tËp trung ë mét chç. MÆt kh¸c c¸c h·ng hµng kh«ng l¹i cã hîp t¸c víi nhau trong viÖc b¸n vÐ phôc vô hµnh kh¸ch cho nh÷ng tuyÕn ®êng thuéc ph¹m vi qu¶n lý cña nhiÒu h·ng. Do vËy hÖ thèng d÷ liÖu vÒ chuyÕn bay cña c¸c h·ng hµng kh«ng chÝnh lµ mét hÖ CSDL ph©n t¸n ®îc qu¶n lý thèng nhÊt t¹i trung t©m ®iÒu khiÓn bay ®Æt t¹i Mü.
Sù liªn kÕt c¸c CSDL ®ang tån t¹i: CSDL ph©n t¸n lµ gi¶i ph¸p tù nhiªn khi cã c¸c CSDL ®ang tån t¹i vµ sù cÇn thiÕt thùc hiÖn x©y dùng mét øng dông toµn côc. Trong trêng hîp nµy CSDL ph©n t¸n ®îc t¹o tõ díi lªn (Bottom-up) tõ c¸c CSDL ®· tån t¹i tríc ®ã. Qu¸ tr×nh nµy cã thÓ ®ßi hái CSDL ph¶i cÊu tróc l¹i côc bé ë mét møc ®é nhÊt ®Þnh. Dï sao, nh÷ng söa ®æi nµy lµ nhá h¬n rÊt nhiÒu so víi viÖc t¹o lËp mét CSDL tËp trung hoµn toµn míi.
Sù ph¸t triÓn më réng: C¸c tæ chøc cã thÓ më réng b»ng c¸ch thªm c¸c ®¬n vÞ míi, võa cã tÝnh tù trÞ võa cã quan hÖ t¬ng ®èi víi c¸c tæ chøc kh¸c. Khi ®ã CSDL ph©n t¸n hç trî sù më réng tæ chøc mét c¸ch uyÓn chuyÓn víi mét møc ®é ¶nh hëng tèi thiÓu tíi c¸c ®¬n vÞ ®ang tån t¹i. Víi CSDL tËp trung, còng cã thÓ khëi t¹o kÝch thíc lín cho viÖc më réng tæ chøc trong t¬ng lai. §iÒu ®ã rÊt khã ®¸nh gi¸ vµ chi phÝ thùc hiÖn sÏ lín, hoÆc viÖc më réng tæ chøc sÏ cã ¶nh hëng lín kh«ng chØ trªn c¸c øng dông míi mµ cßn trªn c¸c øng dông cò ®ang tån t¹i.
Lµm gi¶m tæng chi phÝ t×m kiÕm: Trªn thùc tÕ nhiÒu øng dông côc bé râ rµng lµm gi¶m tæng chi phÝ truyÒn th«ng trªn ph¬ng diÖn mét CSDL tËp trung. Bëi vËy mét trong c¸c môc ®Ých chÝnh trong thiÕt kÕ CSDL ph©n t¸n lµ t¹o tèi ®a c¸c vÞ trÝ øng dông.
Sù quan t©m hiÖu suÊt (Performance Considerations): S tån t¹i mét vµi bé xö lý tù trÞ ®a ®Õn kÕt qu¶ t¨ng hiÖu suÊt th«ng qua mét møc ®é song song cao. Sù quan t©m nµy chØ cã thÓ ®îc øng dông cho mét hÖ thèng ®a xö lý kh«ng nhÊt thiÕt ph¶i lµ mét hÖ CSDL ph©n t¸n. Dï sao, CSDL ph©n t¸n cã lîi trong sù ph©n t¸n d÷ liÖu ph¶n ¸nh c¸c tiªu chuÈn phô thuéc øng dông vµ sè tèi ®a vÞ trÝ c¸c øng dông. B»ng ph¬ng ph¸p nµy sÏ gi¶m tèi thÓu sù g©y trë ng¹i lÉn nhau gi÷a c¸c bé xö lý. Träng t¶i ®îc chia sÎ gi÷a c¸c bé xö lý, vµ c¸c t¾c nghÏn nguy kÞch, nh t¾c nghÏn m¹ng truyÒn th«ng, t¾c nghÏn dÞch vô chung cho toµn bé hÖ thèng sÏ ®îc tr¸nh. KÕt qu¶ nµy lµ mét hÖ qu¶ cña ®ßi hái kh¶ n¨ng xö lý tù trÞ cho c¸c øng dông côc bé ®· ®îc ph¸t biÓu trong ®Þnh nghÜa CSDL ph©n t¸n.
TÝnh tin cËy vµ tÝnh s½n sµng: CSDL ph©n t¸n, ®Æc biÖt víi d÷ liÖu d thõa, còng ®îc sö dông ®Ó ®¹t ®îc mét sù tin cËy vµ tÝnh s½n sµng cao h¬n. §Ó ®¹t ®îc môc ®Ých nµy còng gÆp mét sè trë ng¹i vµ ph¶i gi¶i quyÕt b»ng viÖc sö dông c¸c kü thuËt vÉn cha ®îc hoµn thiÖn. B¶n th©n kh¶ n¨ng xö lý tù trÞ cña c¸c vÞ trÝ kh¸c nhau trong CSDL ph©n t¸n còng kh«ng b¶o ®¶m tÝnh tin cËy cao cña hÖ thèng, nhng nã ®¶m b¶o h¹n chÕ sù ®æ vì toµn bé hÖ thèng. C¸c sù cè trong CSDL ph©n t¸n cã thÓ thêng xuyªn h¬n mét CSDL tËp trung v× cã sè lîng thµnh phÇn lín h¬n, nhng hËu qu¶ chØ ¶nh hëng tíi c¸c øng dông sö dông d÷ liÖu cña vÞ trÝ cã sù cè vµ viÖc ®æ vì toµn bé hÖ thèng lµ hiÕm x¶y ra.
M« h×nh xö lý Client-Server lµ mét m« h×nh liªn quan ®Õn viÖc xö lý hîp t¸c ®èi víi c¸c yªu cÇu tõ Client (hoÆc ngêi yªu cÇu) ®îc m¸y Server tiÕn hµnh xö lý vµ göi tr¶ kÕt qu¶ vÒ cho Client.
Trong khi c¸c hÖ ph©n t¸n lµ hiÖn tîng t¬ng ®èi míi th× ph©n t¸n ë møc hÖ ®iÒu hµnh ®· ®îc hiÓu kh¸ têng tËn vµ ®îc dïng réng r·i. VÝ dô ph©n t¸n c¸c chøc n¨ng sè häc vµ vµo/ra, ph©n t¸n c¸c chøc n¨ng hÖ ®iÒu hµnh cho nhiÒu CPU trong bé ®a xö lý cña IBM 3090/600 (s¸u bé xö lý).
HÖ ph©n t¸n ®· tiÕn ho¸ tõ m«i trêng nguyªn thuû nhÊt ®Ó hç trî cho xö lý øng dông. ChÝnh m«i trêng xö lý dùa trªn Server cha cã kh¶ n¨ng xö lý øng dông ph©n t¸n. ViÖc xö lý øng dông trªn Server ®îc thùc hiÖn trªn mét hÖ thèng m¸y tÝnh cã g¾n c¸c thiÕt bÞ “c©m” kh«ng th«ng minh. Mét m¸y PC ®¬n lÎ hay m¸y lín IBM víi c¸c thiÕt bÞ cuèi dùa trªn hiÓn thÞ kÝ tù lµ mét thÝ dô vÒ m«i trêng xö lý dùa trªn Server. Theo quan ®iÓm øng dông th× xö lý trªn Server hoµn toµn kh«ng ph©n t¸n.
ViÖc xö lý hîp t¸c Client-Server thùc tÕ lµ mét d¹ng riªng cña xö lý ph©n t¸n víi tµi nguyªn (vµ nhiÖm vô ¶nh hëng tíi tµi nguyªn) ®îc tr¶i qua hai hay nhiÒu hÖ thèng tÝnh to¸n rêi r¹c.
M« h×nh xö lý Client-Server ®· næi lªn nh mét møc cao h¬n cña viÖc xö lý dïng chung thiÕt bÞ ®· cã trong m¹ng côc bé (LAN). ThÝ dô trong m«i trêng xö lý dïng chung thiÕt bÞ, c¸c m¸y tÝnh c¸ nh©n (PC) ®îc g¾n víi thiÕt bÞ hÖ thèng víi môc ®Ých cho phÐp c¸c PC nµy dïng chung tµi nguyªn tÖp trªn ®Üa cøng vµ m¸y in. Theo thuËt ng÷ LAN, c¸c thiÕt bÞ dïng chung nh vËy ®îc gäi lµ c¸c phôc vô (Server). Tªn phôc vô lµ thÝch hîp h¬n c¶ v× c¸c thiÕt bÞ dïng chung nµy dïng ®Ó nhËn c¸c yªu cÇu cÇn phôc vô tõ c¸c PC cho c¸c chøc n¨ng thÊp, tæng qu¸t. Trong xö lý dïng chung thiÕt bÞ trªn LAN, c¸c yªu cÇu cña PC nµy thêng bÞ giíi h¹n vÒ c¸c dÞch vô liªn quan tíi tÖp dïng chung hay tÖp xö lý in. Nhîc ®iÓm hiÓn nhiªn cña c¸ch tiÕp cËn nh vËy lµ ë chç mäi xö lý øng dông ®Òu ®îc thùc hiÖn trªn c¸c PC ®¬n lÎ, vµ chØ mét sè chøc n¨ng nµo ®ã (in, vµo ra tÖp) míi lµ ph©n t¸n. Do ®ã, toµn bé tÖp ph¶i ®îc göi cho mét PC ®· ban ra yªu cÇu READ tÖp ®ã. NÕu tÖp ®îc cËp nhËt th× toµn bé tÖp ®ã bÞ kho¸ bëi PC ®· ban ra yªu cÇu cËp nhËt tÖp ®ã.
ChÝnh v× c¸c lý do trªn mµ m« h×nh xö lý Client-Server lµ viÖc më réng tù nhiªn cña viÖc dïng chung thiÕt bÞ vµ c¸c tr¹m lµm viÖc ®ãng vai trß kh¸ch cña m¸y chñ. PhÇn cã ý nghÜa nhÊt cña m« h×nh nµy lµ xö lý øng dông ®îc ph©n chia (kh«ng nhÊt thiÕt ph¶i chia ®Òu) gi÷a Client vµ Server. Xö lý thùc tÕ ®îc khëi ®Çu vµ kiÓm so¸t mét phÇn bëi n¬i yªu cÇu dÞch vô lµ Client nhng kh«ng ph¶i theo kiÓu chñ-tí. Thay v× vËy, c¶ Client vµ Server ®Òu hîp t¸c ®Ó thùc hiÖn thµnh c«ng øng dông. Ch¼ng h¹n nÕu PC ch¹y ch¬ng tr×nh cÇn mét b¶n ghi ®Æc biÖt nµo ®ã tõ mét tÖp dïng chung th× nã sÏ chuyÓn yªu cÇu cho Server CSDL tiÕn hµnh xö lý côc bé råi nhËn nhËn l¹i ®óng b¶n ghi ®· yªu cÇu.
VÒ mÆt kiÕn tróc xö lý Client-Server cã c¸c ®Æc tÝnh:
§êng liªn l¹c tin cËy, ch¾c ch¾n gi÷a Client vµ Server.
C¸c Client khëi xíng t¬ng t¸c Client-Server.
Ph©n t¸n xö lý øng dông gi÷a Client vµ Server.
Server kiÓm so¸t c¸c dÞch vô do Client yªu cÇu.
Server lµm träng tµi cho c¸c yªu cÇu tranh chÊp.
C¸c u ®iÓm cña m« h×nh Client-Server:
Ph¸t huy ®îc søc m¹nh n¨ng lùc c«ng nghÖ tÝnh to¸n cña PC. C¸c PC ngµy nay víi gi¸ thµnh nhá ®· cung cÊp mét n¨ng lùc tÝnh to¸n ®¸ng kÓ mµ tríc ®©y c¸c m¸y tÝnh lín míi cã ®îc.
Cho phÐp xö lý ®îc thùc hiÖn t¹i gÇn nguån d÷ liÖu cÇn xö lý (c¸c CSDL trªn Server). Do ®ã lu lîng (vµ thêi gian ®¸p øng) cña m¹ng gi¶m ®i rÊt nhiÒu, hiÖu n¨ng vµ kh¶ n¨ng chuyÓn t¶i cña m¹ng ®îc t¨ng lªn.
T¹o ®iÒu kiÖn cho viÖc dïng giao diÖn ®å ho¹ (GUI) cã s½n trªn c¸c tr¹m lµm viÖc hiÖn cã.
Cho phÐp vµ cæ vò hÖ thèng më. Thùc tÕ lµ Client vµ Server cã thÓ ch¹y trªn c¸c nÒn phÇn cøng vµ phÇn mÒm kh¸c nhau.
Tuy nhiªn kh«ng ph¶i lµ m« h×nh Client-Server ®· hoµn chØnh, m« h×nh nµy vÉn cßn c¸c nhîc ®iÓm sau ®©y:
NÕu cã nhiÒu thµnh phÇn logic cña øng dông ®îc chuyÓn vÒ Server th× Server sÏ n¶y sinh hiÖn tîng cæ chai nh m¸y tÝnh lín (main frame) trong m« h×nh thiÕt bÞ cuèi. C¸c tµi nguyªn cña Server sÏ ë tr¹ng th¸i bÞ ®ßi hái lµm viÖc ë møc cao h¬n do viÖc t¨ng sè ngêi tiªu thô tµi nguyªn (End User).
C¸c øng dông ph©n t¸n, ®Æc biÖt lµ nh÷ng øng dông ®îc thiÕt kÕ cho xö lý hîp t¸c thêng phøc t¹p h¬n c¸c øng dông kh«ng ph©n t¸n. Tuy nhiªn mét vµi sù phøc t¹p nµy cã thÓ ®îc gi¶m bít b»ng c¸ch thu nhá vÊn ®Ò lín thµnh mét tËp hîp vÊn ®Ò nhá h¬n, cã thÓ cã ®îc tÝnh ®éc lËp lÉn nhau, t¬ng tù nh trong hÖ thiÕt kÕ ®¬n thÓ.
§èi víi mét hÖ CSDL ph©n t¸n th× hÖ qu¶n trÞ CSDL cã ý nghÜa rÊt quan träng v× ph¶i ®¶m b¶o tÝnh thèng nhÊt vµ toµn vÑn cña d÷ liÖu, ®¶m b¶o cho c¸c ch¬ng tr×nh ngêi dïng truy xuÊt ®Õn CSDL ph©n t¸n nh lµ mét CSDL tËp trung duy nhÊt. Ngoµi ra hÖ qu¶n trÞ CSDL cßn ph¶i ®¶m b¶o chøc n¨ng ph©n quyÒn truy nhËp vµ b¶o mËt trªn ®êng truyÒn.
Trong c¸c hÖ qu¶n trÞ CSDL ph©n t¸n hiÖn nay th× hÖ qu¶n trÞ CSDL Oracle ®îc ®¸nh gi¸ lµ u viÖt nhÊt víi c¸c chøc n¨ng tiªn tiÕn: ph©n t¸n, sao b¶n (replication), b¶o mËt cao, tÝnh nhÊt qu¸n d÷ liÖu, thñ tôc ch¹y ngÇm (Procedure Storge), ®o¹n m· xö lý sù kiÖn kÝch ho¹t (Triggers), kho¸ d÷ liÖu ®Õn tõng hµng, ch¹y th«ng suèt trªn 120 lo¹i phÇn cøng tõ m¸y lín ®Õn m¸y nhá vµ 19 hÖ ®iÒu hµnh, hç trî hÇu hÕt c¸c nghi thøc m¹ng, lµ CSDL ®Çu tiªn trªn thÕ giíi tÝch hîp Web.
Oracle Server cung cÊp viÖc qu¶n lý d÷ liÖu b¶o mËt, tin cËy, hiÖu qu¶ cho c¸c hÖ thèng øng dông tõ c¸c hÖ thèng giao dÞch trùc tuyÕn (OLTP) cì lín ®Õn c¸c øng dông sö dông c¸c kho d÷ liÖu (Data Warehouse) cã nhiÒu giao dÞch. Oracle kh«ng chØ hç trî cho c¸c nhu cÇu qu¶n lý nghiÖp vô phøc t¹p mµ cßn cung cÊp c¸c c«ng cô mÒm dÎo cho ph©n t¸n d÷ liÖu tíi ngêi dïng mét c¸ch thùc sù, hiÖu qu¶ vµ phï hîp mäi qui m« ®Ó ®¹t ®îc hiÖu n¨ng tèi u tõ mäi tµi nguyªn ®· cã.
HÖ qu¶n trÞ CSDL Oracle bao gåm CSDL Oracle, c¸c m«i trêng ph¸t triÓn, c¸c c«ng cô vµ c¸c tr×nh øng dông ®îc viÕt trªn ®ã ®îc ho¹t ®éng theo m« h×nh xö lý Client-Server.
VÒ mÆt logic th× CSDL Oracle ®îc cÊu t¹o nªn tõ c¸c thµnh phÇn nhá gäi lµ Tablespace. Mçi Tablespace cã mét chøc n¨ng riªng nh Tablespace System dµnh cho sù ho¹t ®éng cña hÖ thèng, Table User dµnh cho c¸c ho¹t ®éng cña ngêi dïng ...v.v. C¸c Tablespace cã thÓ më réng còng nh thu hÑp l¹i vµ ®¬n vÞ cÊp ph¸t bé nhí cho c¸c Tablespace lµ c¸c Extent. Mçi Extent l¹i bao gåm c¸c Segment (®o¹n) nh Segment Index, Segment d÷ liÖu.
VÒ mÆt vËt lý th× mçi Tablespace ®îc t¹o nªn tõ c¸c file cña hÖ ®iÒu hµnh n»m ph©n t¸n. C¸c file cña hÖ ®iÒu hµnh sÏ ®îc chia thµnh nhiÒu Block. Mçi Block sÏ chøa mét hoÆc nhiÒu hµng d÷ liÖu.
KiÕn tróc Server d÷ liÖu cña Oracle:
M« h×nh kiÕn tróc cña Oracle Server cã thÓ chia ra lµm ba khèi c¬ b¶n nh sau :
Oracle data base : Bao gåm Database Files, Redolog Files, Control Files vµ Parameter Files.
-Database File : lu tr÷ tÊt c¶ d÷ liÖu cña c¬ së d÷ liÖu.
-Redo log File : dïng ®Ó kh«i phôc, ghi l¹i nh÷ng thay ®æi th«ng tin trªn database.
-Control File : ghi l¹i cÊu tróc vËt lý cña Database.
-Parameter File hay cßn gäi lµ Init File chøa c¸c tham sè thiÕt lËp m«i trêng lµm viÖc nh ®êng dÉn tíi CSDL, kÝch thíc thµnh phÇn trong SGA, t¹o kh¶ n¨ng theo dâi c¸c c©u lÖnh SQL vµ dùng l¹i c©y ph©n tÝch c©u lÖnh. File nµy n»m ë th môc DATABSE trong th môc ®· cµi Oracle vµ cã tªn lµ ‘INIT’ + +’.ORA’.
ThÓ hiÖn cña Oracle Server :
Lµ sù kÕt hîp gi÷a bé nhí ®Öm vµ c¸c tiÕn tr×nh nÒn. BÊt cø khi nµo Oracle Server b¾t ®Çu, mét vïng nhí hÖ thèng toµn côc (System Global Area : SGA) ®îc cÊp ph¸t, ®ång thêi c¸c tiÕn tr×nh nÒn còng ®îc khëi ®éng. ThÓ hiÖn cña Oracle lµ mét ph¬ng tiÖn ®Ó truy cËp d÷ liÖu trong Data File.
- SGA: mét nhãm bé ®Öm dïng chung mµ Oracle Server cÊp ph¸t cho mét thÓ hiÖn.
- Background Process: lµ c¸c tiÕn tr×nh ch¹y ngÇm bªn díi phôc vô cho tÊt c¶ c¸c User.
- User Process & Server Process :
User Process ®îc t¹o khi User ch¹y mét ch¬ng tr×nh øng dông. Khi ®ã Oracle Server còng t¹o ra c¸c Server Process ®Ó ®¸p øng c¸c yªu cÇu tõ phÝa User Process. Gi÷a User Process vµ Server Process lu«n cã sù liªn hÖ víi nhau.
Qu¸ tr×nh thùc hiÖn cña Server Process theo mét sè bíc sau :
+ Ph©n tÝch có ph¸p c¸c c©u lÖnh SQL (Parse).
+ Thi hµnh c¸c c©u lÖnh SQL (Excute).
+ Tr¶ l¹i kÕt qu¶ thùc hiÖn c¸c c©u lÖnh SQL cho User Process (Fetch).
Tríc khi d÷ liÖu cã thÓ truy cËp ®îc th× Server Process ph¶i ®îc thùc hiÖn ®Ó ®a d÷ liÖu lªn vïng nhí ®Öm dïng chung. C¸c khèi d÷ liÖu sau khi ®îc thao t¸c, söa ®æi sÏ ®îc viÕt trë l¹i bé nhí ngoµi nhê mét tiÕn tr×nh nÒn gäi lµ Database Writer (DBWR). Do viÖc cËp nhËt l¹i d÷ liÖu tõ vïng nhí dïng chung (SGA) ra ®Üa lµ rÊt tèn thêi gian cho nªn tiÕn tr×nh CKPT (Check Point) sÏ ®¶m b¶o viÖc cËp nhËt d÷ liÖu sÏ thùc hiÖn vµo thêi ®iÓm cÇn thiÕt. Còng do viÖc cËp nhËt x¶y ra kh«ng liªn tôc cho nªn tiÕn tr×nh LGWR (Log Writer) sÏ cËp nhËt l¹i c¸c thay ®æi cña Redo Buffer ra c¸c Redo Log File. NÕu sö dông lu tr÷ trùc tuyÕn th× c¸c Redo Log File sÏ ®îc cËp nhËt trùc tuyÕn sang mét vïng lu tr÷ kh¸c (Offline Storage) ®Ó ®Ò phßng sù cè x¶y ra ®èi víi hÖ thèng.
Chia sẻ với bạn bè của bạn: |