Postgres-XLʹÓÃ˵Ã÷Îĵµ ÏÂÔØ±¾ÎÄ

Postgres-XLʹÓÃ˵Ã÷Îĵµ

Ò»¡¢ÖªÊ¶µã½éÉÜ

Postgres-XLÊÇÒ»¸ö»ùÓÚPostgreSQLÊý¾Ý¿âµÄºáÏòÀ©Õ¹¿ªÔ´SQLÊý¾Ý¿â¼¯Èº£¬XL´ú±íeXtensible Lattice£¬¼´¿ÉÀ©Õ¹µÄPG¡°¸ñ×Ó¡±Ö®Ò⣬ÒÔϼò³ÆPGXL¡£¹Ù·½³ÆÆä¼ÈÊʺÏд²Ù×÷ѹÁ¦½Ï´óµÄOLTP1Ó¦Óã¬ÓÖÊʺ϶Á²Ù×÷ΪÖ÷µÄ´óÊý¾ÝÓ¦Óá£ËüµÄǰÉíÊÇPostgres-XC£¨¼ò³ÆPGXC£©£¬PGXCÊÇÔÚPGµÄ»ù´¡ÉϼÓÈëÁ˼¯Èº¹¦ÄÜ£¬Ö÷ÒªÊÊÓÃÓÚOLTP2Ó¦Óã»PGXLÊÇÔÚPGXCµÄ»ù´¡ÉϵÄÉý¼¶²úÆ·£¬¼ÓÈëÁËһЩÊÊÓÃÓÚOLAPÓ¦ÓõÄÌØÐÔ£¬Èç Massively Parallel Processing (MPP) ÌØÐÔ¡£Í¨Ë×µÄ˵PGXLµÄ´úÂëÊǰüº¬PG´úÂëµÄ£¬Ê¹ÓÃPGXL°²×°PG¼¯Èº²¢²»ÐèÒªµ¥¶À°²×°PG¡£

×ÜÌå¸Ð¾õPGXLÕâ¿î¹¤¾ß»¹ÊÇÏ൱³ÉÊìµÄ£¬Óйٷ½ÍøÕ¾http://www.postgres-xl.org/£¬ÎĵµÒ²±È½ÏÍêÉÆ£¬Ò²ÓÐÉÌÒµ¹«Ë¾2ndQuadrantÔÚÖ§³Ö¡£

ÉÏÃæÕâÕÅͼ¾ÍÊÇPGXL¼¯ÈºµÄ¼Ü¹¹Í¼£¬À´×Ô¹Ù·½ÍøÕ¾¡£ËùÓнڵãÖзÖΪÈýÖÖ½ÇÉ«£ºGTM£¨È«¾ÖÊÂÎñ¹ÜÀíÆ÷£©¡¢Coordinator£¨Ð­µ÷Æ÷£©ºÍDatanode£¨Êý¾Ý½Úµã£©¡£ÐèҪעÒâÒ»µãÊÇͼ 1

OLTPÁª»úÊÂÎñ´¦Àí¹ý³Ì£¨On-Line Transaction Processing£©£¬Ò²³ÆÎªÃæÏò½»Ò׵Ĵ¦Àí¹ý³Ì£¬Æä»ù±¾ÌØ

Õ÷ÊÇǰ̨½ÓÊÕµÄÓû§Êý¾Ý¿ÉÒÔÁ¢¼´´«Ë͵½¼ÆËãÖÐÐĽøÐд¦Àí£¬²¢Ôں̵ܶÄʱ¼äÄÚ¸ø³ö´¦Àí½á¹û£¬ÊǶÔÓû§²Ù×÷¿ìËÙÏìÓ¦µÄ·½Ê½Ö®Ò»¡£OLTPϵͳǿµ÷Êý¾Ý¿âÄÚ´æÐ§ÂÊ£¬Ç¿µ÷ÄÚ´æ¸÷ÖÖÖ¸±êµÄÃüÁîÂÊ£¬Ç¿µ÷

°ó¶¨±äÁ¿£¬Ç¿µ÷²¢·¢²Ù×÷£» 2

OLAP£¬Ò²½ÐÁª»ú·ÖÎö´¦Àí£¨On-line Analytical Processing£©ÏµÍ³£¬ÓеÄʱºòÒ²½ÐDSS¾ö²ßÖ§³Öϵͳ£¬¾ÍÊÇÎÒÃÇ˵µÄÊý¾Ý²Ö¿â¡£ÔÚÕâÑùµÄϵͳÖУ¬Óï¾äµÄÖ´ÐÐÁ¿²»ÊÇ¿¼ºË±ê×¼£¬ÒòΪһÌõÓï¾äµÄÖ´ÐÐʱ¼ä¿ÉÄÜ»á·Ç³£³¤£¬¶ÁÈ¡µÄÊý¾ÝÒ²·Ç³£¶à¡£ËùÒÔ£¬ÔÚÕâÑùµÄϵͳÖУ¬¿¼ºËµÄ±ê×¼ÍùÍùÊÇ´ÅÅÌ×ÓϵͳµÄÍÌÍÂÁ¿£¨´ø¿í£©£¬ÈçÄÜ´ïµ½¶àÉÙMB/sµÄÁ÷Á¿¡£OLAPϵͳÔòÇ¿µ÷Êý¾Ý·ÖÎö£¬Ç¿µ÷SQLÖ´ÐÐÊг¡£¬Ç¿µ÷´ÅÅÌI/O£¬Ç¿µ÷·ÖÇøµÈ¡£

ÖеÄLoad Balance×é¼þ²¢²»ÊôÓÚPGXL¼¯Èº±¾Éí£¬ÐèÒªÆäËû¸ºÔؾùºâ¹¤¾ßʵÏÖ¡£

GTM£º

È«¾ÖÊÂÎñ¿ØÖƽڵ㣬±£Ö¤¼¯ÈºÊý¾ÝµÄÒ»ÖÂÐÔ£¬ÓëCoordinator½ÚµãºÍDatanode½Úµã²»¶ÏͨÐÅ£¬ÊÇÕû¸ö¼¯ÈºµÄºËÐĽڵ㣬ֻ´æÔÚÒ»¸ö£¬¿ÉÒÔ´æÔÚÒ»¸öGTM Standby½Úµã£¬¶ÔGTMʵʱ±¸·Ý¡£GTMÒ»µ©¹ÊÕÏ£¬Õû¸ö¼¯ÈºÁ¢¿ÌÎÞ·¨·ÃÎÊ£¬´Ëʱ¿ÉÒÔÇл»µ½GTM Standby½ÚµãÉÏ¡£Èç¹û²¿ÊðÁËGTM Standby½Úµã£¬¾ÍÓ¦¸Ãͬʱ²¿ÊðGTM Proxy£¬Ò»°ãºÍCoordinator¡¢Datanode²¿ÊðÔÚͬһ̨·þÎñÆ÷ÉÏ¡£GTM ProxyµÄ×÷ÓôúÀíCoordinatorºÍDatanode¶ÔGTMµÄ·ÃÎÊ£¬Æðµ½¼õÇáGTM¸ºÔصÄ×÷Óã¬ÁíÍâÒ»¸öÖØÒªµÄ×÷ÓÃÊǰïÖúÍê³ÉGTMµÄ¹ÊÕÏÇл»£¬µ±GTM½Úµã·¢Éú¹ÊÕϺó£¬GTM Standby³ÉΪеÄGTM£¬´ËʱCoordinatorºÍDatanode½Úµã²¢²»ÐèÒªÖØÐÂÖ¸¶¨GTMµØÖ·£¬Ö»ÐèÒªGTM ProxyÖØÐÂÁ¬½Óµ½ÐµÄGTMµØÖ·¼´¿É¡£

Coordinator£º

½ÓÊÕÊý¾Ý·ÃÎÊÇëÇóµÄ½Úµã£¬±¾ÖÊÉÏÊÇÓÉPGºǫ́½ø³Ì×é³É¡£½ÓÊÕµÄÒ»Ìõ²éѯºó£¬Coordinator½ÚµãÖ´Ðвéѯ¼Æ»®£¬È»ºó»á¸ù¾Ý²éѯÊý¾ÝÉæ¼°µÄÊý¾Ý½Úµã½«²éѯ·Ö·¢¸øÏà¹ØµÄÊý¾Ý½Úµã¡£Ð´ÈëÊý¾Ýʱ£¬Ò²»á¸ù¾Ý²»Í¬µÄÊý¾Ý·Ö²¼²ßÂÔ½«Êý¾ÝдÈëÏà¹ØµÄ½Úµã¡£¿ÉÒÔ˵Coordinator½ÚµãÉϱ£´æ×ż¯ÈºµÄÈ«¾ÖÊý¾ÝλÖá£Coordinator½Úµã¿ÉÒÔÈÎÒâÀ©Õ¹£¬¸÷¸ö½ÚµãÖ®¼ä³ýÁË·ÃÎʵØÖ·²»Í¬ÒÔÍâÊÇÍêÈ«¶ÔµÈµÄ£¬Í¨¹ýÒ»¸ö½Úµã¸üеÄÊý¾Ý¿ÉÒÔÔÚÁíÒ»¸ö½ÚµãÉÏÁ¢¿Ì¿´µ½¡£Ã¿¸öCoordinator½Úµã¿ÉÒÔÅäÖÃÒ»¸ö¶ÔÓ¦µÄstandby½Úµã£¬±ÜÃâµ¥µã¹ÊÕÏ¡£

Datanode£º

ʵ¼Ê´æÈ¡Êý¾ÝµÄ½Úµã£¬½ÓÊÕCoordinatorµÄÇëÇó²¢Ö´ÐÐSQLÓï¾ä´æÈ¡Êý¾Ý£¬½ÚµãÖ®¼äÒ²»á»¥ÏàͨÐÅ¡£Ò»°ãµÄ£¬Ò»¸ö½ÚµãÉϵÄÊý¾Ý²¢²»ÊÇÈ«¾ÖµÄ£¬Êý¾Ý½Úµã²»Ö±½Ó¶ÔÍâÌṩÊý¾Ý·ÃÎÊ¡£Ò»¸ö±íµÄÊý¾ÝÔÚÊý¾Ý½ÚµãÉϵķֲ¼´æÔÚÁ½ÖÖģʽ£º¸´ÖÆÄ£Ê½ºÍ·ÖƬģʽ£¬¸´ÖÆÄ£Ê½Ï£¬Ò»¸ö±íµÄÊý¾ÝÔÚÖ¸¶¨µÄ½ÚµãÉÏ´æÔÚ¶à¸ö¸±±¾£»·ÖƬģʽÏ£¬Ò»¸ö±íµÄÊý¾Ý°´ÕÕÒ»¶¨µÄ¹æÔò·Ö²¼ÔÚ¶à¸öÊý¾Ý½ÚµãÉÏ£¬ÕâЩ½Úµã¹²Í¬±£´æÒ»·ÝÍêÕûµÄÊý¾Ý¡£ÕâÁ½ÖÖģʽµÄÑ¡ÔñÊÇÔÚ´´½¨±íµÄʱºòÖ´ÐÐCREATE TABLEÓï¾äÖ¸¶¨µÄ£¬¾ßÌåÓï·¨ÈçÏ£º CREATETABLE table_name(...) DISTRIBUTEBY HASH(col)|MODULO(col)|ROUNDROBIN|REPLICATION TO NODE(nodename1,nodename2...) ¿ÉÒÔ¿´µ½£¬Èç¹ûDISTRIBUTE BY ºóÃæÊÇREPLICATION£¬ÔòÊǸ´ÖÆÄ£Ê½£¬ÆäÓàÔòÊÇ·ÖÆ¬Ä£Ê½£¬HASHÖ¸µÄÊǰ´ÕÕÖ¸¶¨ÁеĹþÏ£Öµ·Ö²¼Êý¾Ý£¬MODULOÖ¸µÄÊǰ´ÕÕÖ¸¶¨ÁеÄȡĦÔËËã·Ö²¼Êý¾Ý£¬ROUNDROBINÖ¸µÄÊǰ´ÕÕÂÖѯµÄ·½Ê½·Ö²¼Êý¾Ý¡£TO NODEÖ¸¶¨ÁËÊý¾Ý·Ö²¼µÄ½Úµã·¶Î§£¬Èç¹ûûÓÐÖ¸¶¨ÔòĬÈÏËùÓÐÊý¾Ý½Úµã²ÎÓëÊý¾Ý·Ö²¼¡£Èç¹ûûÓÐÖ¸¶¨·Ö²¼Ä£Ê½£¬¼´Ê¹ÓÃÆÕͨµÄCREATE TABLEÓï¾ä£¬PGXL»áĬÈϲÉÓÃ·ÖÆ¬Ä£Ê½½«Êý¾Ý·Ö²¼µ½ËùÓÐÊý¾Ý½Úµã¡£

¶þ¡¢°²×°ËµÃ÷ 1. ÏÂÔØ°²×°°ü

https://www.postgres-xl.org/download/

µ±Ç°×îа汾Ϊ£ºpostgres-xl-9.5r1.6.tar.bz2

2. Ö÷»ú¹æ»®

·þÎñÆ÷·ÖÅ䣺£¨ÊÖ¶¯ÅäÖ÷ÖÅ䣩 ²Ù×÷ϵͳ IPµØÖ· Kylin3.2 Kylin3.2 Kylin3.2 192.168.51.2 Ö÷»úÃû³Æ scada_server1 ½ÚµãÀàÐÍ gtm,coordinator1,coordinator2 datanode1,datanode2 datanode3,datanode4 ½ÚµãÀàÐÍ gtm coordinator1,datanode1,datanode2 coordinator2,datanode3,datanode4 ½ÚµãÀàÐÍ gtm coordinator coordinator datanode datanode datanode datanode ½ÚµãÀàÐÍ gtm gtm_proxy coordinator gtm_proxy coordinator datanode datanode datanode datanode ¶Ë¿ÚºÅ 6666 5301 5302 5401 5402 5401 5402 ¶Ë¿ÚºÅ 20001 20001 20004 20001 20004 20008 20009 20008 20009 ÆäËû ÆäËû 192.168.51.125 scada_server2 192.168.51.120 scada_server3 Ö÷»úÃû³Æ scada_server1 ·þÎñÆ÷·ÖÅ䣺£¨×Ô¶¯ÅäÖ÷ÖÅ䣩 ²Ù×÷ϵͳ IPµØÖ· Kylin3.2 Kylin3.2 Kylin3.2 ½ÚµãÃû³Æ gtm coord1 coord2 dn1 dn2 dn3 dn4 ½ÚµãÃû³Æ gtm gtm_pxy coord1 gtm_pxy coord2 dn1 dn2 dn3 dn4 192.168.51.2 192.168.51.125 scada_server2 192.168.51.120 scada_server3 ËùÔÚ»úÆ÷ scada_server1@192.168.51.2 scada_server1@192.168.51.2 scada_server1@192.168.51.2 scada_server2@192.168.51.125 scada_server2@192.168.51.125 scada_server3@192.168.51.120 scada_server4@192.168.51.120 ËùÔÚ»úÆ÷ scada_server1@192.168.51.2 scada_server2@192.168.51.125 scada_server2@192.168.51.125 scada_server3@192.168.51.120 scada_server3@192.168.51.120 scada_server2@192.168.51.125 scada_server2@192.168.51.125 scada_server3@192.168.51.120 scada_server4@192.168.51.120 ¸÷¸ö½Úµã»®·Ö£º£¨ÊÖ¶¯ÅäÖû®·Ö£© Á¬½Ó³Ø¶Ë¿ÚºÅ 6701 6702 6801 6802 6801 6802 Á¬½Ó³Ø¶Ë¿ÚºÅ 20010 20010 20012 20013 20012 20013 ¸÷¸ö½Úµã»®·Ö£º£¨×Ô¶¯ÅäÖû®·Ö£© 3. Ð޸ĽڵãHostÅäÖÃ

ÿ¸ö½ÚµãÒÑrootÓû§Ö´ÐÐÏÂÃæ²Ù×÷£º # vi /etc/hosts

ÔÚÎļþºóÃæ×·¼ÓÒÔÏÂÄÚÈÝ£º 192.168.51.2 scada_server1 192.168.51.125 scada_server2 192.168.51.120 scada_server3

4. °²×°ÒÀÀµÈí¼þ°ü

ÐèÒª°²×°µÄÒÀÀµ°ü£º

openssh-clients,flex,bison,readline-devel,zlib-devel,openjade,docbook-style-dsssl,gcc ¼ì²éÐèÒªÒÀÀµµÄ°ü£º # rpm -qa |grep xxx

Èç¹ûÉÏÊöÃüÁîÄܹ»Êä³ö°üµÄÐÅÏ¢Ôò˵Ã÷¸Ã°üÒѾ­´æÔÚ¡££¨kylin3.2²Ù×÷ϵͳ×Ô´øÉÏÊöËùÓаü£¡£©

5. Ð¶ÔØÏµÍ³×Ô´øPostgreSQLÊý¾Ý¿â

ÒÔrootÓû§Ö´ÐУº

²éѯϵͳÊÇ·ñ°²×°×Ô´øÈí¼þ£º ²éѯ£º

#rpm -qa |grep postgresql ÈôÓÐÔòɾ³ýÒѰ²×°Èí¼þ£º ɾ³ý£º

#rpm -qa |grep postgresql | xargs rpm -e --nodeps ²éѯÊÇ·ñɾ³ý¸É¾»£º ²éѯ£º

#rpm -qa |grep postgresql

6. ÿ¸ö½ÚµãÌí¼ÓpostgresÓû§

ÒÔrootÓû§Ö´ÐУº ½¨Á¢×飺

#groupadd postgres ½¨Á¢Óû§£º

#useradd -m -d /home/postgres postgres -g postgres ³õʼ»¯ÃÜÂ룺 #passwd postgres

ÊäÈëÃÜÂ룺abcd.135£¨¾ÙÀý£©

×¢£ºÈç¹ûÐèҪɾ³ýpostgresÓû§£¬¿ÉÒÔÒÔrootÓû§Ö´ÐÐÃüÁ