-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

PostgreSQL°ª¥i¥Î¹ê¾Ô

( ²Åé ¦r)
§@ªÌ¡G­J½÷ µ¥Ãþ§O¡G1. -> ¸ê®Æ®w -> PostgreSQL
ĶªÌ¡G
¥Xª©ªÀ¡G¹q¤l¤u·~¥Xª©ªÀPostgreSQL°ª¥i¥Î¹ê¾Ô 3dWoo®Ñ¸¹¡G 55700
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¦³®w¦s¡j
NT°â»ù¡G 510 ¤¸

¥Xª©¤é¡G3/1/2022
­¶¼Æ¡G230
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787121430381
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

±ÀÂ˧Ǥ@
ÀHµÛ²£·~¼Æ¦r¤Æ¡B¼Æ¦r²£·~¤Æªº¤£Â_²`¤J©M±À¶i¡A§@¬°¼Æ¾Ú¦sÀx»P³B²z®Ö¤ß²Õ¥óªº¼Æ¾Ú®w·í«e¥¿³B¤_§Ö³tÅÜ­²´Á¡C­±¹ï·s§Þ³N¡B·s¥ø·~©M·s²£«~ªº¤£Â_¯F²{¡A±q·~ªÌ»Ý­n±K¤ÁÃöª`¦U¤è°ÊºA¡A¤~¯à«OÃÒ¦¨¬°¦æ·~±ÆÀY§L¡C
PostgreSQL§@¬°¶}·½¼Æ¾Ú®w¤¤ªºË³Ë³ªÌ¡AÀ³¥Î­S³ò©M²`«×¥¿¦b¤£Â_ÂX¤j¡A³ò¶PostgreSQLªº¥ÍºA¥¿¦b§Ö³t§¹µ½¡C
½L¥j¤ª½Ò°ó§@¬°¤@®a±Mª`¤_PostgreSQL§Þ³Nªº°ö°V¾÷ºc¡A­P¤O¤_°ê¤º¶}·½¼Æ¾Ú®wªº¤H¤~°ö¾i¡A¥Ø«e¤w¸g°ö¾i¤F¦Ê¦WÀu¨qªºPostgreSQL»{ÃÒ¤uµ{®v¡C¦b±Mª`¤_¤H¤~°ö¾iªº¦P®É¡A½L¥j¤ª½Ò°ó¨ÌµMªÃ©Ó¡§¶Ç¹D¡B±Â·~¡B¸Ñ´b¡¨ªº­ì«h¡A¦³®Ä§Q¥Î©M¾ã¦X¦Û¨­¥­»OÂ×´Iªº¤H¤~¸ê·½¡A¬°PostgreSQL¥ÍºAµo®i°^Äm¤FÂ×´Iªº±M·~ª¾ÃÑ©M¹ê½î¸gÅç¡C
³Ìªñ±oª¾¡A½L¥j¤ª½Ò°óªº²Ä¤@¥»®Ñ¡mPostgreSQL°ª¥i¥Î¹ê¾Ô¡n§Y±N§¹½Z¥Xª©¡A²`ª¾¥»®Ñ½s¼gªºÁ}¨¯»P¤£©ö¡A¾ã­Ó³Ð§@¹Lµ{»Ý­n§@ªÌ¨ã³Æ±j¤jªºùڤߩM¼Ý¤O¡A¥I¥X«Ü¦hªº¨¯¶Ô»P¦½¤ô¡A«D±`·q¨Ø³o¼Ëªº³Ð§@¹Î¶¤¡C
ªìŪ¥»®Ñ¤º®e¡AÃٹĤ_§@ªÌ¹Î¶¤±Ó¾Uªºµø¨¤¡A¤×¨ä°w¹ï¥Ø«ePostgreSQL°ª¥i¥Î¸Ñ¨M¤è®×¡A¥»®Ñµ¹¥X¤F²M´·¡B²Ó­Pªº²z½×Á¿¸Ñ»P¹ê½î«ü¾É¡CŪªÌ¾\Ū¥»®Ñ¦Z¡A¥i¥H§ó¥[²M´·¦a²z¸Ñ©M´x´¤°ª¥i¥Îªº¬ÛÃöª¾ÃÑÂI¡A¾Ç¥H­P¥Î¡C
½L¥j¤ª½Ò°ó§@¬°¼Æ¾Ú®w²£·~¤¤ªº­«­n¤O¶q¡A¤@ª½¤j¤O¤ä«ù©M¨ó§U§Ú­Ì¤u§@¡A¦b¦¹¤]²`ªí·PÁ¡C
¤¤°ê«H³q°|¤j¼Æ¾Ú»P°Ï¶ôÃ쳡°ª¯Å·~°È¥DºÞ
°¨ÄPÞ³

±ÀÂ˧ǤG
PostgreSQL¬O¥@¬É¤W»â¥ýªº¶}·½¼Æ¾Ú®w¡A°_·½¤_20¥@¬ö70¦~¥N¬ü°ê¥[§QºÖ¥§¨È¤j¾Ç§B§J§Q¤À®Õ¡A³Ð©l¤H¬OºaÀò¹ÏÆF¼úªºMichael Stonebraker¡CPostgreSQL¿í´`BSD¶}·½¨óij¡A¶}µoªÌ¥i¥HµLÀvÀò±o·½¥N½X¡A¦}¯à®Ú¾Ú¦Û¤vªº»Ý­n©w¨î­×§ï¡A¦Û¥D¿ï¾Ü¬O§_¶}©ñ­×§ï¦Zªºµ{§Ç¥N½X¡CPostgreSQL¥þ²y¶}µo¤p²Õ©Ò­Ò¾Éªº¦Û¥Ñ¡B¥Á¥D¡Bªx²³ªº¶}·½ºë¯«¡A¾®»E¤F¥@¬É¦U¦aªº¤º®Ö¶}µo¤H¤~¡A«P¶i¤FPostgreSQL¥\¯àªºÃ­©w­¡¥N¡CºI¦Ü¥Ø«e¡APostgreSQL¤w­¡¥N¨ì13ª©¥»¡A¦Ó¥B±o¨ì¤F°ê¤º¥~²³¦h¥ø·~¥Î¤áªº»{¥i©M¨Ï¥Î¡A¨ä¤¤¤£¥F¦³¹ïí©w©Ê¡B¥\¯à©Ê­n¨D«D±`°ªªºª÷¿Ä»È¦æ¨t²Î¡C
¥Ø«e¡A¨È°¨»¹¡B·L³n¡BµØ¬°©Mªü¨½¤Ú¤Úµ¥¥@¬É500±jªº¤j«¬¥ø·~³£¦b¨Ï¥ÎPostgreSQL§Þ³N¡F¥ø·~¥Î¤á²[»\ª÷¿Ä¡B¯à·½¡B¹s°â¡B¤¬Ápºôµ¥¦U­Ó¦æ·~¡CPostgreSQL¬O¤j«¬¥ø·~©M¤¬Ápºô¡§¥hOracle¡¨ªºÀu¿ï¤è®×¡A¯à°÷À°§U¥ø·~¦³®Ä¦aºÞ²z¼Æ¾Ú©M­°§C¦¨¥»¡F¤]¬O¤j¼Æ¾Ú¡B¤ª­pºâ»â°ì¬[ºc¤¤Ãö¨t¼Æ¾Ú®w¦sÀxºÞ²zªº³Ì¨Î¿ï¾Ü¡C¦P®É¡A¦b°ê¤º¤]¦³¥]¬Aªü¨½¤Ú¤Ú¡BÄË°T¡BµØ¬°©MÃv°ª¦b¤ºªº³\¦h¥ø·~°ò¤_PostgreSQL¬ãµo¤ª²£«~¤Î¦Û¥D¥i±±¼Æ¾Ú®w²£«~¡C
¤u«H³¡¤¤°ê¶}·½³n¥ó±À¶iÁp·ùPostgreSQL¤À·|¬O¤u«H³¡¤UÄÝ¡B°ê¤º°ß¤@©x¤è»{¥iªºPostgreSQL¦æ·~¨ó·|²Õ´¡A©Ó¾á¦b°ê¤ºµo®i©M±À¼sPostgreSQL§Þ³NªºÂ¾¯à¡C°ò¤_PostgreSQL¦b¤¤°êµo®iªº¨}¦nºA¶Õ¡A¤¤°êPostgreSQL¤À·|Áp¦XÅv«Â»{ÃÒ¾÷ºc¡Bª¾¦W°ö°V¾÷ºc¦@¦P¥´³y¤F¤¤°êPostgreSQL°ö°V»{ÃÒ¡]²ºÙ¡§¤¤°êPG°ö°V»{ÃÒ¡¨¡^Åé¨t¡C¤¤°êPG°ö°V»{ÃÒÅé¨t¦®¦b¬°PostgreSQL¥ÍºA¥ø·~µo®i´£¨Ñ±M·~§Þ³N¤H¤~¡F¬°¦³§Ó¤_±q¨Æ¬ÛÃö¤u§@ªº¤H­û´£¨Ñ°ª®Äªº°ö°V«ü¾É¡BÅv«Âªºµ¥¯Å»{ÃÒ¡C¤¤°êPG°ö°V»{ÃÒ¬O¥Ø«e°ê¤º°ß¤@ªºPostgreSQL§Þ³Nµ¥¯Å»{ÃÒ¡A¶ñ¸É¤F°ê¤ºPostgreSQL§Þ³N»â°ì¬ÛÃöªÅ¥Õ¡A³o¹ïPostgreSQL°ö°V¤D¦Ü§Þ³Nªºµo®i¡B±À¼s³£·|°_¨ì¥¨¤jªº¤ä«ù©M±À°Ê§@¥Î¡C
½L¥j¤ª½Ò°ó¬O¤¤°êPostgreSQL¤À·|ªº¥D­n¦X§@°ö°V¾÷ºc¤§¤@¡A¨ä¾Ö¦³¦h¦ì¦bPostgreSQLÀ³¥Î»â°ì¨ã¦³Â×´I¸gÅ窺Á¿®v©M±M·~ªº¦b½u±Ð¨|¥­»O¡C¥Ñ±M·~Á¿®v¤O¶q°ò¤_¤¤°êPG¤À·|»{ÃÒÅé¨t½Òµ{²Õ´½s¼gªºPostgreSQL¾Ç²ß¨t¦C±Ð§÷¡A¬°¤j®a§ó¦³®Ä¦a¾Ç²ß¡B´£¤ÉPostgreSQL¼Æ¾Ú®w§Þ¯à´£¨Ñ¤F§ó¬°Â×´I¡B¥þ­±ªº¾Ç²ß¸ê·½¡A±N¬°°ö¨|§ó¦h¼Æ¾Ú®w»â°ì¤H¤~´£¨Ñ§ó¤jªºÀ°§U¡C
¥»¨t¦C±Ð§÷»P¤¤°êPG°ö°V»{ÃÒÅé¨tªºªì¡B¤¤¡B°ª¯Å§Þ¯à»{ÃÒ«O«ù¤@­P¡A¬O¤¤°êPG°ö°V»{ÃÒÅé¨tªº¦³®Ä¸É¥R¤º®e¡A«K¤_¤j®a§ó¨t²Î¡B¦Û¥D¦a¾Ç²ß¶}·½PostgreSQL§Þ³N¡A¾A¦X±q¨Æ¼Æ¾Ú®w¬ÛÃö¤u§@ªº¦b¾¤uµ{®v©M·Ç³Æ±q¨Æ¼Æ¾Ú®w»â°ì¤u§@ªº¤H­û¾\Ū¡C»P¼Æ¾Ú®w¬ÛÃöªº¤u§@±^¦ì¦³«Ü¦h¡A¦p¼Æ¾Ú®wºÞ²z¤uµ{®v¡]DBA¡^¡B¼Æ¾Ú®wÀ³¥Î¶}µo¤uµ{®v¡B¼Æ¾Ú®w¤º®Ö¶}µo¤uµ{®v¡B¼Æ¾Ú¤ÀªR®v¡B¼Æ¾Ú¬[ºc®vµ¥¡A´N·~«e´º¼sÁï¡C±M·~ªº°ö°V»{ÃÒ¯àÀ°§U±q·~ªÌ§ó¦³®Ä¦a´£¤É§Þ¯à¡A³Ó¥ô±^¦ì¡C
¥»®Ñ¥D­n³ò¶¼Æ¾Ú®wªº¤@­Ó¸g¨å¥DÃD¡X¡X°ª¥i¥Î¡X¡X²Õ´¤º®e¡A¯à°÷«ü¾É¤j®a¬°¥ø·~³¡¸pí°·ªºPostgreSQL°ª¥i¥Î¬[ºc¡A±q¦Ó«OÃÒ·~°Èªº³sÄò©Ê¡C¤@¥»®Ñªº»ù­È¦p¦ó¡A¥D­n¦b¤_À°ÅªªÌ¸Ñµª¤F¦h¤Ö§x´b¡A¦pªG§A¤ß¦s§x´b¡A¤£§«Åª¤@Ū¡B½m¤@½m¡C¬Û«H½L¥j¤ª½Ò°ó¸gÅçÂ×´IªºÁ¿®v­Ì©w·|±N¥L­Ìªº¹ê¾Ô¸gÅç¶×»E¤_®Ñ¡A¬°¤j®a¾Ç²ß©M³¡¸pPostgreSQL°ª¥i¥Î¬[ºc¾Q¥­¹D¸ô¡C
PostgreSQLªº®Ö¤ß»ù­È¬O¯à°÷À°§U¥ø·~¥Î§C¦¨¥»ºÞ²z¼Æ¾Ú¸ê²£¡C³Ì¦Z¡A§Æ±æ¦b¤j®aªº¦@¦P°Ñ»P¤U¡A¥\¯à±j¤jªº¶}·½PostgreSQL¼Æ¾Ú®w¶V¨Ó¶V¦n¥Î¡A³Q¶V¨Ó¶V¦hªº¥ø·~¨Ï¥Î¡C

¤¤°ê¶}·½³n¥ó±À¶iÁp·ùPostgreSQL¤À·|

±ÀÂ˧ǤT
2020¦~¡A¥þ²y¼Æ¾Ú®w¥«³õ³W¼Ò¬ù¬°665»õ¬ü¤¸¡A¦}¥B¨C¦~«O«ù15%¥H¤Wªº¼W³t¡C¦b±Æ¦W«e¤Qªº¼Æ¾Ú®w¤¤¡APostgreSQL¬O°ß¤@ªº¯ÂªÀ°Ï¡B«D°Ó·~¶}·½¼Æ¾Ú®w¡A¦}¥B³Ìªñ4¦~ªº¼W³t±Æ¦W²Ä¤@¡C¨ä¤¤ªº­ì¦]¬O¤°¤\?
²Ä¤@¡A¼Æ¾Ú®w¦æ·~¨Ì¬O´Â¶§²£·~¡A¥«³õªÅ¶¡¨¬°÷¤j¡CÀHµÛ³q«H¡B¤¬Ápºô¡Bª«Ápºôªºµo®i¡A¼Æ¾Ú»Ý­n¦sÀx¡B­pºâ¡B¤¬Áp¤¬³q¡A¼Æ¾Ú®w¬O¨ü¯q³Ì¤jªº²£«~¤§¤@¡C
²Ä¤G¡APostgreSQL¾Ö¦³¤j®v¯Å§Oªº³»¼h³]­p¡CªÀ°Ï²£«~³»¼h³]­p¡G½Ö¦³»Ý¨D¡]¥Ø¼Ð«È¤á¡^¡÷¥Ø¼Ð«È¤á¦p¦ó¦^õXPostgreSQLªÀ°Ï¡]¥N½X¡^¡F°Ó·~²£«~³»¼h³]­p¡G¥Ø¼Ð«È¤á¡÷¥Ø¼Ð«È¤á¦p¦ó¦^õX°Ó·~¤½¥q¡]¥I¶O¡^¡C
1¡D¹ï¤_³Ì²×¥Î¤á
? ¤½¥q¤£¥H°â½æPostgreSQL²£«~¬°®Ö¤ß¡A¥D·~°È»PPostgreSQL¤£¬ÛÃö¡A¥u¬O¨Ï¥ÎPostgreSQL¡C
? ¤j«È¤á¶R°Ó·~¼Æ¾Ú®w¤ñ¦Û¤v°ö¾iPostgreSQL¥N½X°^ÄmªÌ¦¨¥»°ª¡A¦Ó¥B³Q°Ó·~¼Æ¾Ú®w¸j©w«Ü¦MÀI¡C
? ¥H¤p³Õ¤j¡A¥|¨â¼·¤d¤ç¡C¦pªG¥þ²y¦³«Ü¦hPostgreSQL¤j«È¤á³£¬°PostgreSQL°^Äm¥N½X¡A¨º¤\PostgreSQLªºµo®i·|»·»·¤ñ°Ó·~¼Æ¾Ú®w§Ö¡C
? ¦Û¤v»¡¤Fºâ¡Aµ¹PostgreSQLªÀ°Ï°^Äm¥N½X¡A·íµM¯¸¦b¦Û¤vªº¨¤«×¡A»Ý­n¤°¤\¯S©Ê´N°^Äm¤°¤\¯S©Ê¡C
? ¦Û¤v´x´¤®Ö¤ß¬ì§Þ¡C
? ³q¹LPostgreSQL¥N½Xªº¬[ºc§ó¯àÃÒ©ú³o¤@ÂI¡APostgreSQL¥N½Xªº¬[ºc«D±`¶}©ñ¡A¥iŪ©Ê«D±`¦n¡AÂX®i¯à¤O·¥±j¡C¦]¬°³Ì²×¥Î¤á§Æ±æ§ó¦hªº¥ø·~°Ñ»P°^Äm¡A©Ò¥H¥N½X¥iŪ©Ê¡B¥iÂX®i©Ê©MÆF¬¡©Ê¬O­º­nªº¡C
2¡D¹ï¤_¤ª¼Æ¾Ú®wªA°È°Ó©M¼Æ¾Ú®w¼t°Ó
? ¨S¦³DBA¡A¨S¦³¨ã³Æ¤º®Ö¬ãµo¯à¤Oªº¼Æ¾Ú®w¨Ï¥ÎªÌ¡C
? PostgreSQLªº¶}·½¨óij¤¹³\¥ô¦ó¼t°Ó¥]¸ËPostgreSQL¥N½X¦}®³¥X¥h°â½æ¡AµL½×¬O§_±N¥]¸Ë¦Zªº¥N½X¶}·½¡A³£¨S¦³ªk«ß­·ÀI¡C
? ¬°¤°¤\¿ï¾Ü§A¡H«~µP¼vÅT¤O¨¬°÷¤j¡A¤ñ¦Û«Ø§ó¬Ù¤ß¡C
? «ç¤\Åé²{¼vÅT¤O¡H¦³¯à¤O³B²zPostgreSQL¤º®Ö¡A¦³«È¤á­I®Ñ¡A°^Äm«×°ª¡C
3¡D¹ï¤_§Þ³N¤ä«ùªA°È°Ó
? ¥Ø¼Ð«È¤á¬O¶Ç²Î«È¤á¡C
? ³oºØ«È¤á«ç¤\¿ï¾ÜªA°È°Ó©O? °Ó·~¼Æ¾Ú®w¦³©x¤è±ÂÅvªA°È°Ó¡A¦ý¬OPostgreSQL³oºØ¯ÂªÀ°Ïªº¶}·½¼Æ¾Ú®w¨S¦³©x¤è±ÂÅv¡C
? °Ó·~¼Æ¾Ú®w§Þ³N¤ä«ùªº¼vÅT¤O¡A¥i¥H³q¹L¬°PostgreSQL°^Äm¥N½X¨ÓÃÒ©ú¡C
4¡D¹ï¤_°ª®Õ
? ¥Øªº¬O°ö¾i¼Æ¾Ú®w¤H¤~¡A­º¿ï¸g¤[¤£°IªºªÀ°Ï¡B¤¤¥ß«¬¶}·½¼Æ¾Ú®w¡APostgreSQL¬O«Ü¦nªº¿ï¾Ü¡C
? ±Ð¾Ç¦¨ªG¦p¦ó®i¥Ü¡H¾Ç¥Í¯à¤O¦p¦óÅé²{¡H°^Äm¥N½X¡C
PostgreSQLªÀ°Ï§Î¦¨¤F¨}¦nªº¥ÍºA³¬Àô¡A¥þ²y¤Æ¶}·½¬ãµo¨ó§@¤w¾ú¸g23¦~¡AºÞ²z²Õ´¡B³W³¹¨î«×«D±`§¹µ½¡C
¶i¤J¼Æ¦r¤Æ¡B«H®§¤Æ®É¥N¡A¼Æ¾Ú¬O­«­nªº¥Í²£¸ê®Æ¡A¼Æ¾Úªº¦sÀx©M­pºâ³£»P¼Æ¾Ú®w¦³Ãö¡C¦b«°¥«¤Æ¡B¼Æ¦r¤Æ©M«H®§¤Æ®É¥N¡A¼Æ¾Ú®wÄݤ_²£·~Ãì¤W´åªº¯à¤O¡A¦P®É¤]¬O°ê®aÄvª§¤OªºÅé²{¡CµM¦Ó¡A¥Ø«e°ê¤º¼Æ¾Ú®w¦b¥«³õ¥e¦³²v¡B®Ö¤ß§Þ³N©M¤H¤~µ¥¤è­±³£ÁÙ¦³«Ü¤jªº´£¤ÉªÅ¶¡¡C
2020¦~¤¤¥¡¸gÀÙ¤u§@·|ij«ü¥X¤F´X¶µ­«ÂI¥ô°È¡C¤@¬O±j¤Æ°ê®a¾Ô²¤¬ì§Þ¤O¶q¡C­n¥R¤Àµo´§°ê®a§@¬°­«¤j¬ì§Þ³Ð·s²Õ´ªÌªº§@¥Î¡A°í«ù¾Ô²¤©Ê»Ý¨D¾É¦V¡A½T©w¬ì§Þ³Ð·s¤è¦V©M­«ÂI¡AµÛ¤O¸Ñ¨M¨î¬ù°ê®aµo®i©M¦w¥þªº­«¤jÃøÃD¡C¤G¬O¼W±j²£·~Ãì¨ÑÀ³Ãì¦Û¥D¥i±±¯à¤O¡C²£·~Ãì¨ÑÀ³Ãì¦w¥þí©w¬Oºc«Ø·sµo®i®æ§½ªº°ò¦¡C­n²ÎÄw±À¶i¸É»ôµuªO©MÁë³yªøªO¡A°w¹ï²£·~Á¡®zÀô¸`¡A¹ê¬I¦nÃöÁä®Ö¤ß§Þ³N§ðÃö¤uµ{¡AºÉ§Ö¸Ñ¨M¤@§å¡§¥d²ä¤l¡¨°ÝÃD¡A¦b²£·~Àu¶Õ»â°ìºë¯Ñ²Ó§@¡A°µ¥X§ó¦h¿Wªùµ´§Þ¡C¼Æ¾Ú®w§@¬°²£·~Ãì¤W´åªº°ò¦¥\¯à¡A¥[¤j§ë¤J¶Õ¦b¥²¦æ¡C
PostgreSQL¤£¨ü¥ô¦ó¥ø·~©Î°ê®aªº±±¨î¡A¶}·½¨óij¤Í¦n¡A¥i¥H¦Û¥Ñ¨Ï¥Î¡B¤Àµo¡B­×§ï·½½X¡C¦P®É¡A°ò¤_PostgreSQL¬ãµo¦Û¦³¤À¤ä¡A¾Ö¦³¿ï¾Ü¶}·½©Î³¬·½ªºÅv§Q¡A³o¨Ï±oPostgreSQL¦¨¬°³Ì¨Îªº°Ó·~¼Æ¾Ú®w°ò®y¤§¤@¡C¥þ²y¦³²³¦h°ò¤_PostgreSQLªº°Ó·~¼Æ¾Ú®w©Î¶}·½¼Æ¾Ú®w¡A¥]¬A¤j¼Æ¾Ú¤ÀªR¡B®É§Ç¼Æ¾Ú®w¡B¹Ï¼Æ¾Ú®w¡BÃö¨t¼Æ¾Ú®w¡B­Ý®eOracle«¬µ¥°Ó·~©Î¶}·½¼Æ¾Ú®w²£«~¡C
¦b¥ø·~¤¤¨Ï¥ÎPostgreSQL´N¬O¡§ÂôI¤_¥Á¡¨ªº°µªk¡A¥u¦³±N¼Æ¾Ú®w¤H¤~´²¸¨¦b¥ø·~¤¤¡A³o­Ó¦æ·~¤~·|¥Í¥Í¤£®§¡A­É§UPostgreSQLªº¤H¤~Àx³Æ¡A±À°Ê°ò¤_PostgreSQLªº°Ó·~¤À¤äªºµo®i¡A§Î¦¨¼Wªø­¸½ü¡C
·PÁ½L¥j¤ª½Ò°óµ¦¹ºªº¡mPostgreSQL °ª¥i¥Î¹ê¾Ô¡n¤@®Ñ¡A·PÁ§@ªÌ­Ìªº¨¯¶Ô¥I¥X¡C¥»®Ñªº¥Xª©¤j¤j­°§C¤FPostgreSQL ¥Î¤áªººÞ²zªùÂe¡A±À°Ê¤FPostgreSQL§Þ³Nªº´¶¤Î¡A´Á«Ý¤W¥«¤j½æ¡I

PostgreSQL¤¤¤åªÀ°Ï±`©e
©P¥¿¤¤¡]¼w­ô¡^
¤º®e²¤¶¡G

¥»®Ñ¥H¹ê½î¬°¾É¦V¡A¥D­nÁ¿¸Ñ¦b¯u¹êÀô¹Ò¤U¦p¦ó¨Ï¥ÎPostgreSQL¶°¸s¤Îrepmgr¡BPatroni¡BBDR¦h¥D´_¨îµ¥PostgreSQL¥D¬y°ª¥i¥Î§Þ³N¡A´¦¥ÜPostgreSQL¥i¾a©Ê©M°ª¥i¥Î©Êªº§Þ³N¯SÂI¡C¦P®É¤¶²Ðpg_probackup¡BpgBackReset¡Bpg_rman¡BPgBouncer¡BOdysseyµ¥³Æ¥÷©M³s±µ¦À¤u¨ãªº¹B¥Î¤èªk¡C¥»®ÑªÃ©Ó§Þ³N¥Ñ¹ê¾Ô¤¤¨Ó¡B¨ì¹ê¾Ô¤¤¥hªº­ì«h¡A¥H¹ê¾Ô¬°¥D½u¡A±NPostgreSQL¦UºØ¥D¬yªº°ª¥i¥Î§Þ³N³e¬ï°_¨Ó¡A¦}»²¥H­ì²z¶i¦æÁ¿¸Ñ¡C ¥»®Ñ¾A¦X±q¨Æ¼Æ¾Ú®w¤u§@ªº§Þ³NºÞ²zªÌ¡B¬[ºc®v¡B¼Æ¾Ú®wºÞ²z¤uµ{®v©M§Þ³N·R¦nªÌ¾\Ū¡C
¥Ø¿ý¡G

²Ä1³¹ °ª¥i¥Î·§­z / 1
1.1 ¤°¤\¬O°ª¥i¥Î / 1
1.1.1 ·§­z / 1
1.1.2 ¬ÛÃö«ü¼Ð / 2
1.2 °ª¥i¥Î³]­p·§­z / 3
1.2.1 ®e¨a¤¾§E³]­p·§­z / 3
1.2.2 °ª¥i¥Î§Þ³N·§Äý / 5
²Ä2³¹ ¥N²z©M³s±µ¦À / 7
2.1 ¥N²z©M³s±µ¦À¬[ºc / 7
2.2 ³q¹LHAProxy¹ê²{¥N²z / 8
2.2.1 HAProxy·§©À / 8
2.2.2 ¦w¸ËHAProxy / 9
2.2.3 ±Ò°ÊHAProxy / 12
2.3 PgBouncer / 12
2.3.1 ¦w¸ËPgBouncer / 13
2.3.2 PgBouncer°ò¥»°t¸m / 14
2.3.3 ¨Ï¥ÎPgBouncer / 16
2.3.4 ºÊ±±PgBouncer / 19
2.3.5 ¦b½u°t¸mPgBouncer / 21
2.3.6 ¼W±jPgBouncer¥Î¤á³X°Ý / 21
2.4 Odyssey / 24
2.4.1 Odysseyªº§@¥Î / 24
2.4.2 ¦w¸ËOdyssey / 25
2.4.3 °t¸mOdyssey / 25
2.4.4 ±Ò°ÊOdyssey / 26
2.5 µêÀÀIP¦a§}°ª¥i¥Î / 26
2.5.1 Keepalived¹ê²{­ì²z / 26
2.5.2 ¦w¸ËKeepalived / 27
2.5.3 HAProxy»PPgBouncer
³¡¸p / 28
²Ä3³¹ PostgreSQL¬y´_¨î / 33
3.1 ¬y´_¨î·§©À / 33
3.2 PostgreSQL¬y´_¨î¾úµ{ / 33
3.3 ¬y´_¨î°ò¦¡X¡XWAL / 35
3.3.1 WAL·§©À / 35
3.3.2 WAL¤é§Ó¤å¥ó / 35
3.3.3 WAL¤é§Ó¸Ô±¡Á|¨Ò / 37
3.4 ª«²z¬y´_¨î / 39
3.4.1 ª«²z¬y´_¨îªº­ì²z / 40
3.4.2 ¬y´_¨î¦P¨B¯Å§O±±¨î / 40
3.4.3 ª«²z¬y´_¨îªº¯SÂI / 41
3.4.4 ª«²z¬y´_¨îªº·f«Ø / 43
3.4.5 ª«²z¬y´_¨îºÊ±±µø¹Ï / 50
3.4.6 ¥D±q¤Á´« / 52
3.5 ÅÞ¿è´_¨î / 58
3.5.1 ÅÞ¿è´_¨îªº­ì²z / 58
3.5.2 ÅÞ¿è´_¨îªº¯SÂI / 59
3.5.3 ÅÞ¿è´_¨îªºÃöÁä¨BÆJ / 60
3.5.4 ÅÞ¿è´_¨îªº¨¤¦â / 62
3.5.5 ·f«ØÅÞ¿è´_¨î / 63
3.5.6 ÅÞ¿è´_¨îºÊ±±µø¹Ï / 68
²Ä4³¹ ³Æ¥÷«ì´_ºÞ²z / 72
4.1 ³Æ¥÷«ì´_ºÞ²z·§­z / 72
4.2 ­ì¥Í³Æ¥÷«ì´_¤u¨ã / 72
4.2.1 ÅÞ¿è³Æ¥÷©M«ì´_ / 72
4.2.2 ª«²z³Æ¥÷©M«ì´_ / 78
4.2.3 ¼W¶q³Æ¥÷©M«ì´_ / 87
4.3 ²Ä¤T¤è³Æ¥÷«ì´_¤u¨ã¤§
pg_probackup / 96
4.3.1 pg_probackup·§­z / 96
4.3.2 pg_probackupªº¦w¸Ë©M
°t¸m / 98
4.3.3 ¨Ï¥Îpg_probackup ³Æ¥÷
¼Æ¾Ú®w / 99
4.3.4 ¨Ï¥Îpg_probackup «ì´_
¼Æ¾Ú®w / 102
4.4 ²Ä¤T¤è³Æ¥÷«ì´_¤u¨ã¤§
pgBackRest / 107
4.4.1 pgBackRest·§­z / 107
4.4.2 ¦w¸Ë©M³¡¸p / 108
4.4.3 ¨Ï¥Î©MºÞ²z / 109
4.5 ²Ä¤T¤è³Æ¥÷«ì´_¤u¨ã¤§
pg_rman / 117
4.5.1 pg_rman·§­z / 117
4.5.2 ¦w¸Ë©M³¡¸p / 118
4.5.3 ¨Ï¥Î©MºÞ²z / 118
²Ä5³¹ ¨Ï¥Îrepmgr¹ê²{°ª
¥i¥Î©Ê / 124
5.1 repmgr¤¶²Ð / 124
5.1.1 ¥þ´Ì¬[ºc / 124
5.1.2 repmgr­Ý®e¯x°} / 127
5.1.3 ·§©À¤¶²Ð / 127
5.1.4 ±ÀÂˬ[ºc / 128
5.2 ¦w¸Ë©M³¡¸p / 130
5.2.1 Àô¹Ò·Ç³Æ / 130
5.2.2 yum·½¦w¸Ë / 132
5.2.3 ·½¥N½X¦w¸Ë / 133
5.3 ¶°¸s°t¸m / 134
5.3.1 °t¸m¥D®w / 134
5.3.2 °t¸m§J¶©±q®w / 138
5.3.3 ¨£ÃÒªA°È / 140
5.4 ªA°ÈºÞ²z / 142
5.4.1 ¤â°Ê¬G»Ù¤Á´« / 142
5.4.2 ¦Û°Ê¬G»ÙÂಾ / 146
5.4.3 IP¦Û°Êº}²¾ / 149
5.4.4 ºÞ²z©R¥O»¡©ú / 152
5.5 ¦b½uºûÅ@©M¤É¯Å / 153
5.5.1 ¤É¯Å»¡©ú / 153
5.5.2 ¤É¯Å¥D­nª©¥» / 154
5.5.3 ¤É¯Å¦¸­nª©¥» / 157
²Ä6³¹ ¨Ï¥ÎPatroni¹ê²{°ª
¥i¥Î©Ê / 158
6.1 Patroni·§­z / 158
6.1.1 Patroni¬[ºc¤Î¥\¯à / 158
6.1.2 Patroni REST API / 160
6.1.3 Watchdog¤ä«ù / 165
6.1.4 Patroniªº¦w¥þ©Ê / 166
6.1.5 ¦bKubernetes¤U¨Ï¥Î
Patroni / 167
6.2 ¬ÛÃö²Õ¥ó¤¶²Ð / 167
6.2.1 Patroni»PHAProxy / 167
6.2.2 Patroni»Petcd / 168
6.3 ¦w¸Ë©M°t¸m / 169
6.3.1 ³n¥óª©¥» / 169
6.3.2 Àô¹Ò«H®§ / 169
6.3.3 ¦w¸Ë©M°t¸metcd / 169
6.3.4 ¦w¸Ë©M°t¸m
PostgreSQL / 171
6.3.5 ¦w¸Ë©M°t¸mPatroni / 174
6.3.6 ¶°¸s¶¡ªº¯ÅÁp´_¨î / 178
6.3.7 ¦w¸Ë©M°t¸mHAProxy / 179
6.4 ¦b½uºûÅ@©M¤É¯Å / 181
6.4.1 ±N¿W¥ßª©¥»Âà´«¬°
Patroni¶°¸s / 181
6.4.2 PostgreSQLª©¥»¤É¯Å / 181
6.5 ¤é±`¾Þ§@ / 182
6.5.1 ­×§ïPostgreSQL°Ñ¼Æ / 183
6.5.2 ¬d¬ÝPatroni¸`ÂIª¬ºA / 183
6.6 ¦h¥D¾÷URL«È¤áºÝ³X°Ý
°t¸m / 184
²Ä7³¹ ¦h¥D´_¨î°ª¥i¥Î / 186
7.1 ¦h¥D¸`ÂI¤¶²Ð / 186
7.2 ½T©w¦h¥D¸`ÂI¬O§_¾A¦X
·í«e»Ý¨D / 188
7.3 ¦w¸ËBDR / 190
7.3.1 ³æBDR¸`ÂI / 192
7.3.2 ³Ð«Ø¤@­ÓÃB¥~ªº
BDR¸`ÂI / 193
7.3.3 ¦b¨C­Ó¸`ÂI¤W´ú¸Õ
DDL´_¨î / 196
7.4 ¦w¥þ¨Ï¥Î§Ç¦C / 199
7.4.1 ¨Ï¥Î§Ç¦C / 199
7.4.2 ¤À°t¥þ§½§Ç¦C / 201
7.5 ¬°¦h¥D¸`ÂI¤èªk°t¸m
HAProxy / 202
7.6 °õ¦æ¦«ºÞ¸`ÂI¤Á´« / 205
7.7 ´£°ª¬G»Ù¤Á´«³t«× / 207
7.8 ¦b½u°õ¦æ­«¤jª©¥»¤É¯Å / 209
§Ç¡G