Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÚ¼¯ÈºÏÂÅäÖà Informix Êý¾Ý²Ö¿â¼ÓËÙÆ÷
 
»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-18
  3095  次浏览      32
 

ÕýÈçÎÒÃÇǰ±ßËù½éÉܵģ¬ÎÒÃÇ¿ÉÒÔ½«Óû§Êý¾Ý¼¯ÊеÄÊý¾Ý×°ÔØµ½IWAÖÐÀ´¼«´óµØ¼ÓËÙÊý¾Ý²éѯµÄЧÂÊ¡£µ«ÊÇ£¬ÎÒÃÇǰ±ß½éÉܵ쬶¼Êǽ«Óû§µÄÊý¾Ý¼¯ÊÐÊý¾Ý×°ÔØµ½Ò»Ì¨ÎïÀí»úÆ÷ÖУ¬Èç¹ûÓû§Êý¾Ý¼¯ÊеÄÊý¾Ý·Ç³£´ó£¬Ò»Ì¨ÎïÀí»úÆ÷µÄÄÚ´æ¿ÉÄܲ»ÄÜÂú×ãÒªÇó£¬Õâʱ£¬ÎÒÃÇ¿ÉÒÔ½«Óû§Êý¾Ý¼¯ÊеÄÊý¾Ý×°ÔØµ½¼¯ÈºµÄ»·¾³£¬½«Êý¾Ý·Ö²¼µ½¶ą̀ÎïÀí»úÆ÷ÖÐÀ´Âú×ã´óÊý¾ÝÁ¿µÄÐèÇó¡£´ÓInformix Ultimate Warehouse Edition 11.7FC4¿ªÊ¼£¬ IWAÖ§³Ö¼¯ÈºÌØÐÔ¡£ÔÚ¼¯Èº»·¾³Ï£¬ÎÒÃÇÐèÒªÅäÖÃ$IWA_INSTALL_DIR/dwa/etc/cluster.confÎļþÀ´Ö¸¶¨¼¯ÈºËù°üº¬µÄ½ÚµãÐÅÏ¢£¬¸ÃÎļþÖеĵÚÒ»¸ö½Úµã»á×÷ΪЭµ÷½Úµã£¨coordinator node£©,ÆäËû½Úµã»á×÷Ϊ¹¤×÷Õ߽ڵ㣨worker node£©£¬ÕâÑù£¬ÎÒÃÇ¿ÉÒÔ½«IWAµÄЭµ÷½Úµã¼°¹¤×÷½Úµã·Ö²¼ÔÚ²»Í¬µÄÎïÀí»úÆ÷ÉÏÀ´Ö§³Ö´óÊý¾ÝÁ¿µÄÊý¾Ý¼¯ÊÐÓ¦Óá£ÈçÏÂͼËùʾ£º

ͼ 1. IWA°²×°ÔÚ¼¯Èº»·¾³Ï£¬Informix¼°¹ÜÀí¿Í»§¶Ë°²×°ÔÚ²»Í¬µÄ»úÆ÷ÉÏ

ÅäÖü¯Èº»·¾³ÏÂIWAµÄ·½·¨Í¬µ¥»ú»·¾³ÏÂIWAµÄÅäÖ÷½·¨»ù±¾ÀàËÆ£¬µ«ÓÐЩ²»Í¬Ö®´¦¡£ÔÚ¼¯Èº»·¾³Ï£¬ÎÒÃÇÐèÒªÅäÖÃSSH, ±£Ö¤rootÓû§¿ÉÒÔÔÚ¼¯ÈºÖеĸ÷¸ö½ÚµãÖ®¼ä²»ÐèÒªÊäÈëÃÜÂë¾Í¿ÉÒÔÔËÐÐSecure Shell (SSH)ÍøÂçЭÒé¡£ÁíÍ⣬ÎÒÃÇÐèÒªÔÚ¼¯ÈºÖÐÅäÖù²Ïí¼¯ÈºÎļþϵͳ£¬±ÈÈçGPFS£¬GFSµÈ£¬²¢Ôڸü¯ÈºÎļþϵͳÉÏ´´½¨¼ÓËÙÆ÷´æ´¢Ä¿Â¼£¨accelerator storage directory£©£¬¼¯ÈºÖеĸ÷¸ö½Úµã¶¼ÐèÒªÄܹ»ÒÔÏàͬµÄĿ¼Ãû³ÆÀ´·ÃÎʸÃĿ¼¡£Õë¶Ô¼¯Èº»·¾³£¬IWA»¹Ôö¼ÓÁËcluster.confÅäÖÃÎļþÀ´Ö¸¶¨¼¯ÈºÖеĸ÷¸ö½ÚµãÐÅÏ¢£¬²¢ÔÚdwainst.confÅäÖÃÎļþÖÐÔö¼ÓÁËCLUSTER_INTERFACE ÅäÖòÎÊýÀ´Ö¸¶¨¼¯Èº½Úµã¼äͨÐŵÄÍøÂçÉ豸Ãû³Æ¡£

ϱߣ¬ÎÒÃÇÒÔÒ»¸öÅäÖÃʾÀýÀ´¾ßÌå½éÉÜһϼ¯Èº»·¾³ÏÂIWAµÄÅäÖ÷½·¨£¬Ï£ÍûÄܹ»¶Ô´ó¼ÒÓÐËù°ïÖú¡£

¼¯Èº»·¾³ÏÂÅäÖÃIWAµÄ»ù±¾·½·¨°üÀ¨Èçϲ½Ö裺

1.ÅäÖÃSSH, ±£Ö¤rootÓû§¿ÉÒÔÔÚ¼¯ÈºÖеĸ÷¸ö½ÚµãÖ®¼ä²»ÐèÒªÊäÈëÃÜÂë¾Í¿ÉÒÔÔËÐÐSecure Shell (SSH)ÍøÂçЭÒé¡£

2.ÅäÖù²Ïí¼¯ÈºÎļþϵͳ£¬±ÈÈçGPFS£¬GFSµÈ¡£

3.ÅäÖÃInformixÊý¾Ý²Ö¿â¼ÓËÙÆ÷IWAʵÀý£¬°üÀ¨ÅäÖÃInformix µ½Êý¾Ý²Ö¿â¼ÓËÙÆ÷µÄÍø¿¨ÉèÖã¬ÔÚ¼¯ÈºÎļþϵͳÉÏ´´½¨storage directory£¬±à¼­dwainst.confÅäÖÃÎļþ£¬´´½¨cluster.confÅäÖÃÎļþ£¬²¢Æô¶¯IWAʵÀý¡£

4.ÅäÖÃInformix µ½IWA¼ÓËÙÆ÷µÄÁ¬½Ó¡£

5.´´½¨Êý¾Ý¼¯ÊС£

6.²¿ÊðÊý¾Ý¼¯ÊС£

7.×°ÔØÊý¾Ýµ½Êý¾Ý¼¯ÊС£

ÎÒÃDZ¾´ÎʾÀýµÄÔËÐл·¾³ÊÇÁ½¸ö¶ÀÁ¢µÄVmware£¬·Ö±ðÔËÐÐSuse Linux 11£¬ ÆäÖУ¬informixva»úÆ÷ÉÏÔËÐÐInformix 11.7FC4£¬Í¬Ê±°²×°ÁËIWA£¬IWAµÄЭµ÷½ÚµãÒ²ÔËÐÐÔڸûúÆ÷ÉÏ£¬ÁíÍâһ̨»úÆ÷iwa1£¬°²×°ÁËIWA£¬IWAµÄÒ»¸ö¹¤×÷Õß½ÚµãÔËÐÐÔڸûúÆ÷ÉÏ¡£

Á½Ì¨»úÆ÷µÄÍøÂçÉèÖûù±¾Ïàͬ£¬¶¼ÅäÖÃÁËeth0¼°eth1ÍøÂçÉ豸£¬ÆäÖУ¬eth0×÷ΪDRDA_INTERFACE²ÎÊýÖµ¸ºÔðInformixͬIWAÖ®¼äµÄͨÐÅ£¬eth1×÷ΪCLUSTER_INTERFACE²ÎÊý¸ºÔðIWA¼¯Èº½Úµã¼äµÄͨÐÅ¡£Informixva¼°iwa1»úÆ÷µÄÍøÂçÉèÖÃÐÅÏ¢ÈçÏ£º

Çåµ¥ 1. Informixva¼°iwa1»úÆ÷µÄÍøÂçÉèÖÃÐÅÏ¢

ÔÚinformixva»úÆ÷:
root@informixva[demo_on]:/opt/IBM/informix/dwa/etc# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:F6:16:E6
inet addr:192.168.179.100 Bcast:192.168.179.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1132 errors:0 dropped:0 overruns:0 frame:0
TX packets:61434 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:90210 (88.0 Kb) TX bytes:82897027 (79.0 Mb)

eth1 Link encap:Ethernet HWaddr 00:0C:29:F6:16:F0
inet addr:192.168.179.101 Bcast:192.168.179.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25354 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4926678 (4.6 Mb) TX bytes:1547 (1.5 Kb)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3146 errors:0 dropped:0 overruns:0 frame:0
TX packets:3146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:308582 (301.3 Kb) TX bytes:308582 (301.3 Kb)
ÔÚiwa1»úÆ÷:
root@iwa1[demo_on]:/opt/IBM/informix/dwa/etc# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:72:88:ED
inet addr:192.168.179.102 Bcast:192.168.179.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:336 errors:0 dropped:0 overruns:0 frame:0
TX packets:24223 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34256 (33.4 Kb) TX bytes:4818872 (4.5 Mb)

eth1 Link encap:Ethernet HWaddr 00:0C:29:72:88:E3
inet addr:192.168.179.103 Bcast:192.168.179.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:60997 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:82857485 (79.0 Mb) TX bytes:378 (378.0 b)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2273 errors:0 dropped:0 overruns:0 frame:0
TX packets:2273 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:184010 (179.6 Kb) TX bytes:184010 (179.6 Kb)

ϱߣ¬ÎÒÃǾßÌå½²Êöһϼ¯Èº»·¾³ÏÂIWAÅäÖõľßÌå²½Ö裺

1. ÅäÖÃSSH

ÔÚ¼¯Èº»·¾³ÏÂÅäÖÃIWA£¬ÎÒÃÇÐèÒªÅäÖÃSSH, ±£Ö¤rootÓû§¿ÉÒÔÔÚ¼¯ÈºÖеĸ÷¸ö½ÚµãÖ®¼ä²»ÐèÒªÊäÈëÃÜÂë¾Í¿ÉÒÔÔËÐÐSecure Shell (SSH)ÍøÂçЭÒé¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÈçÏÂÃüÁîÀ´ÅäÖÃinformixvaͬiwa1Ö®¼äµÄSSHͨÐÅ£º

ÔÚinformixva»úÆ÷ÉÏ£¬ÎÒÃÇÒÔrootÓû§µÇ¼£¬²¢Ö´ÐÐÈçÏÂÃüÁ

Çåµ¥ 2. ÔÚinformixva»úÆ÷ÉÏÉèÖ÷½·¨

ssh-keygen -b 1024 -t rsa -f ~/.ssh/id_rsa
cd ~/.ssh/id_rsa
cat id_rsa.pub>>authorized_keys
scp id_rsa.pub root@iwa1:~/.ssh/pub1
cat pub2>>authorized_keys

ÔÚiwa1»úÆ÷ÉÏ£¬ÎÒÃÇÒÔrootÓû§µÇ¼£¬²¢Ö´ÐÐÈçÏÂÃüÁ

Çåµ¥ 3. ÔÚiwa1»úÆ÷ÉÏÉèÖ÷½·¨

ssh-keygen -b 1024 -t rsa -f ~/.ssh/id_rsa
cat id_rsa.pub>>authorized_keys
scp id_rsa.pub root@informixva:~/.ssh/pub2
cat pub1>>authorized_keys

ÎÒÃÇ¿ÉÒÔͨ¹ýÖ´ÐÐÈçÏÂÃüÁ²âÊÔSSHµÄÁ¬Í¨ÐÔ£º

Çåµ¥ 4. ²âÊÔSSHµÄÁ¬Í¨ÐÔ

ÔÚinformixva»úÆ÷:
root@informixva[demo_on]:~/Desktop# ssh iwa1
Last login: Sat Nov 26 04:11:21 2011 from console
root@iwa1[demo_on]:~#

ÔÚiwa1»úÆ÷:
root@iwa1[demo_on]:~/Desktop# ssh informixva
Last login: Sat Nov 26 04:09:24 2011 from console
root@informixva[demo_on]:~#

2. ÅäÖù²Ïí¼¯ÈºÎļþϵͳGPFS

¼¯Èº»·¾³ÏµÄIWAÐèÒªÅäÖù²Ïí¼¯ÈºÎļþϵͳ£¬²¢ÔÚ¸ÃÎļþϵͳÉÏ´´½¨´æ´¢Ä¿Â¼(storage directory)¡£IWAÖ§³ÖÖ÷Á÷µÄ¼¯ÈºÎļþϵͳ£¬±ÈÈçGPFS£¬GFSµÈ¡£±¾´ÎʾÀý£¬ÎÒÃDzÉÓÃGPFS¼¯ÈºÎļþϵͳ¡£

GPFSÔÊÐíʹÓÃÕß¹²Ïí·Ö²¼ÔÚ¶à¸ö½ÚµãºÍ¶à¸ö´ÅÅÌÉϵÄÎļþ¡£ËüÔÊÐí²¢ÐеÄÓ¦ÓóÌÐòͬʱ´ÓGPFS ½Úµã×飨nodeset£©ÖеÄÈκνڵã·ÃÎÊÏàͬ»ò²»Í¬µÄÎļþ(½Úµã×é nodeset ±»¶¨ÒåΪһ×éÔËÐÐÏàͬ°æ±¾GPFSµÄ½Úµã)¡£GPFSÎļþϵͳµÄÉè¼ÆÄ¿±êÊÇʹÊý¾Ý·Ö²¼ÔÚÒ»¸ö¼¯ÈºÖеÄËùÓнڵãÉÏ£¬ÔÊÐíÓ¦ÓóÌÐòͨ¹ý±ê×¼µÄUNIX/LinuxÎļþϵͳ½Ó¿ÚÀ´·ÃÎÊÊý¾Ý¡£´ó¶àÊýµÄUNIX/LinuxÎļþϵͳ±»Éè¼ÆÔÚµ¥Ò»·þÎñÆ÷»·¾³ÏÂʹÓã¬ÔÚÕâÒ»»·¾³ÏÂ, Ôö¼ÓÎļþ·þÎñÆ÷Ò²²»»áÌá¸ßÌØ¶¨µÄÎļþ´æÈ¡µÄÐÔÄÜ¡£ GPFS ±»Éè¼Æ³Éͨ¹ý½«I/O·Ö²¼ÔÚ¶à¸öÓ²ÅÌÌá¸ßÐÔÄÜ£¬Í¨¹ýÈÕÖ¾ºÍ¸´ÖƵķ½Ê½Ìá¸ß¿É¿¿ÐÔ£¬²¢Í¨¹ýÔö¼Ó½ÚµãµÄ·½Ê½Ìá¸ßϵͳµÄ¿ÉÀ©Õ¹ÐÔ¡£

ÅäÖÃGPFS¼¯ÈºÎļþϵͳÖ÷񻃾¼°ÒÔϼ¸¸ö²½Ö裺

2.1 °²×°GPFS

Ê×ÏÈ£¬ÎÒÃÇÐèÒªÔÚSuse linux 11ϵͳÉϰ²×°GPFSÈí¼þ¡£

GPFSÈí¼þ°üÖ÷Òª°üÀ¨Èçϰ²×°°ü£º

Çåµ¥ 5. GPFSÈí¼þ°ü

gpfs.base-3.3.0-0.x86_64.rpm
gpfs.docs-3.3.0-0.noarch.rpm
gpfs.gpl-3.3.0-0.noarch.rpm
gpfs.gui-3.3.0-0.x86_64.rpm
gpfs.msg.en_US-3.3.0-0.noarch.rpm

ÎÒÃÇ¿ÉÒÔͨ¹ýÖ´ÐÐÈçÏÂÃüÁîÀ´°²×°ÉÏÊö°²×°°ü£º

Çåµ¥ 6. °²×°GPFSÈí¼þ°ü

rpm ¨Civh *rpm

ͬʱ£¬ÎÒÃǰ²×°ÁËÈçϲ¹¶¡°ü£º

Çåµ¥ 7. GPFS²¹¶¡°ü

gpfs.base-3.3.0-3.x86_64.update.rpm
gpfs.docs-3.3.0-3.noarch.rpm
gpfs.gpl-3.3.0-3.noarch.rpm
gpfs.gui-3.3.0-3.x86_64.rpm
gpfs.msg.en_US-3.3.0-3.noarch.rpm

ÎÒÃÇͨ¹ýÖ´ÐÐÈçÏÂÃüÁîÀ´°²×°ÉÏÊö²¹¶¡°ü£º

Çåµ¥ 8. °²×°GPFS²¹¶¡°ü

rpm ¨CUvh *rpm

ÎÒÃÇ»¹¿ÉÒÔÖ´ÐÐÈçÏÂÃüÁ¼ì²éGPFSÊÇ·ñ°²×°ÕýÈ·£º

Çåµ¥ 9. ¼ì²éGPFSÈí¼þ°ü

root@iwa1[demo_on]:/data/fp# rpm -qa|grep gpfs
gpfs.gui-3.3.0-3
gpfs.base-3.3.0-3
gpfs.docs-3.3.0-3
gpfs.gpl-3.3.0-3
gpfs.msg.en_US-3.3.0-3

2.2 ÔÚlinuxÄÚºËÖн¨Á¢GPFS¿ÉÒÆÖ²²ã

ÎÒÃÇ¿ÉÒÔÖ´ÐÐÏÂÊöÃüÁîÔÚlinuxÄÚºËÖн¨Á¢GPFS¿ÉÒÆÖ²²ã£º

Çåµ¥ 10. ÔÚlinuxÄÚºËÖн¨Á¢GPFS¿ÉÒÆÖ²²ã

cd /usr/lpp/mmfs/src
make Autoconfig
make World
make InstallImages

2.3 ʹÓÃmmcrclusterÃüÁî´´½¨GPFS Cluster

±¾´ÎʾÀýÖУ¬ÎÒÃÇÐèÒªÔÚinformixva¼°iwa1Á½Ì¨linux·þÎñÆ÷ÉÏ´´½¨GPFS ¼¯Èº¡£Ê×ÏÈ£¬ÎÒÃÇÔÚinformixva»úÆ÷ÉÏ´´½¨/tmp/gpfs.nodeÎļþ£¬²¢Ö¸¶¨ÈçÏÂÐÅÏ¢£º

Çåµ¥ 11. ÅäÖÃGPFS Cluster½Úµã

cat /tmp/gpfs.node
informixva:quorum-manager
iwa1:quorum-manager

gpfs.nodeÎļþÖÐÓÐÁ½ÐÐÄÚÈÝ£¬Ã¿ÐÐÄÚÈݵĵÚÒ»ÏîΪËùʹÓûúÆ÷µÄÖ÷»úÃû£¬µÚ¶þÏîΪÅäÖÃÏ°üÀ¨quorum½ÚµãµÄÖ¸¶¨ºÍmanager½ÚµãµÄÖ¸¶¨¡£
½ÓÏÂÀ´Ö´ÐÐÈçÏÂÃüÁîÀ´´´½¨GPFS¼¯Èº£º

Çåµ¥ 12. ´´½¨GPFS ¼¯Èº

#mmcrcluster -n /tmp/gpfs.node -p informixva -s iwa1 -r /usr/bin/ssh -R /usr/bin/scp
Tue Nov 8 11:42:04 EST 2011: mmcrcluster: Processing node informixva
Tue Nov 8 11:42:04 EST 2011: mmcrcluster: Processing node iwa1
mmcrcluster: Command successfully completed
mmcrcluster: Warning: Not all nodes have proper GPFS license designations.
Use the mmchlicense command to designate licenses as needed.
mmcrcluster: Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.
root@informixva[demo_on]:/usr/lpp/mmfs/src#

mmcrclusterÃüÁîµÄ¸÷Ñ¡ÏîÒâÒ壺-NÖ¸¶¨gpfs.nodeÎļþ£¬-CÖ¸¶¨¼¯ÈºÃû³Æ£¬-pÖ¸¶¨Ö÷NSD·þÎñÆ÷£¬-sÖ¸¶¨±¸NSD·þÎñÆ÷£¬-rÖ¸¶¨Á½Ì¨»úÆ÷Ö®¼äµÄÁ¬½Ó·½Ê½£¬-RÖ¸¶¨Á½Ì¨»úÆ÷Ö®¼äÎļþ´«ÊäµÄ·½Ê½¡£

ÎÒÃÇ¿ÉÒÔʹÓÃmmlsclusterÃüÁî²é¿´Ëù½¨clusterµÄÏà¹ØÐÅÏ¢£º

Çåµ¥ 13. ²é¿´GPFS ¼¯Èº

./mmlscluster

GPFS cluster information
========================
GPFS cluster name: informixva
GPFS cluster id: 13882543094768425948
GPFS UID domain: informixva
Remote shell command: /usr/bin/ssh
Remote file copy command: /usr/bin/scp
GPFS cluster configuration servers:
-----------------------------------
Primary server: informixva
Secondary server: iwa1
Node Daemon node name IP address Admin node name Designation
------------------------------------------------------------------------
1 informixva 192.168.179.100 informixva quorum-manager
2 iwa1 192.168.179.102 iwa1 quorum-manager
root@informixva[demo_on]:/var/mmfs/gen#

ÓÉÓÚ֮ǰûÓнÓÊÜlicense£¬ËùÒÔÎÒÃÇÐèÒªÖ´ÐÐÈçÏÂÃüÁîÀ´½ÓÊÜlicense£º

Çåµ¥ 14. ½ÓÊÜGPFS license

root@informixva[demo_on]:/usr/lpp/mmfs# mmchlicense server --accept -N  informixva
The following nodes will be designated as possessing GPFS server licenses:
informixva
mmchlicense: Command successfully completed
mmchlicense: Warning: Not all nodes have proper GPFS license designations.
Use the mmchlicense command to designate licenses as needed.
mmchlicense: Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.
root@informixva[demo_on]:/usr/lpp/mmfs#mmchlicense server --accept -N iwa1
The following nodes will be designated as possessing GPFS server licenses:
iwa1
mmchlicense: Command successfully completed
mmchlicense: Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.

2.4 Æô¶¯GPFS ¼¯Èº

ÎÒÃÇ¿ÉÒÔÖ´ÐÐÈçÏÂÃüÁîÆô¶¯GPFS¼¯Èº£º

Çåµ¥ 15. Æô¶¯GPFS¼¯Èº

./ mmstartup -a

ͬʱ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÖ´ÐÐÈçÏÂÃüÁî¹Û²ìGPFS¼¯ÈºÇé¿ö:

Çåµ¥ 16. ²é¿´GPFS¼¯ÈºÇé¿ö

root@informixva[demo_on]:/data# mmgetstate -Lsa

Node number Node name Quorum Nodes up Total nodes GPFS state Remarks
-------------------------------------------------------------------------------
1 informixva 2 2 2 active quorum node
2 iwa1 2 2 2 active quorum node

Summary information
---------------------
Number of nodes defined in the cluster: 2
Number of local nodes active in the cluster: 2
Number of remote nodes joined in this cluster: 0
Number of quorum nodes defined in the cluster: 2
Number of quorum nodes active in the cluster: 2
Quorum = 2, Quorum achieved
root@informixva[demo_on]:/var/mmfs/gen#

ÎÒÃÇÒ²¿ÉÒÔͨ¹ý¼ì²é/var/adm/ras/mmfs.log.latestÈÕÖ¾Îļþ²é¿´GPFS¼¯ÈºÖ´ÐÐ״̬ÐÅÏ¢£º

Çåµ¥ 17. ²é¿´ÈÕÖ¾ÐÅÏ¢

root@informixva[demo_on]:/data# cat /var/adm/ras/mmfs.log.latest
Tue Nov 8 12:03:32 EST 2011: runmmfs starting
Removing old /var/adm/ras/mmfs.log.* files:
/bin/mv: cannot stat `/var/adm/ras/mmfs.log.previous': No such file or directory
Unloading modules from /lib/modules/2.6.27.39-0.3-default/extra
Loading modules from /lib/modules/2.6.27.39-0.3-default/extra
Module Size Used by
mmfs26 1499720 0
mmfslinux 300776 1 mmfs26
tracedev 32560 2 mmfs26,mmfslinux
Tue Nov 8 12:03:36.839 2011: mmfsd initializing.
{Version: 3.3.0.3 Built: Dec 3 2009 14:45:03} ...
Tue Nov 8 12:03:40.082 2011: Connecting to 192.168.179.101 iwa1
Tue Nov 8 12:03:41.017 2011: Accepted and connected to 192.168.179.101 iwa1
Tue Nov 8 12:03:45.602 2011: This node (192.168.179.100 (informixva))
is now Cluster Manager for informixva.
Tue Nov 8 12:03:45.792 2011: mmfsd ready
Tue Nov 8 12:03:45 EST 2011: mmcommon mmfsup invoked. Parameters:
192.168.179.100 192.168.179.100 all
root@informixva[demo_on]:/data#

2.5 ʹÓÃmmcrnsdÃüÁî´´½¨nsdÅÌ

ÎÒÃÇÏÖÔÚÓÐÁ½Ì¨»úÆ÷£¬Ã¿Ì¨»úÆ÷É϶¼ÒѾ­°²×°ÁËGPFSÈí¼þ£¬µ«ÓÉÓÚÁ½Ì¨»úÆ÷¶¼Ö»ÓÐϵͳÅÌ£¬¶øGPFSÐèÒª¶ÀÁ¢·ÖÇøÀ´Ö§³ÖÎļþϵͳ£¬ËùÒÔÎÒÃǽÓÏÂÀ´ÒªÔÚÕâÁ½Ì¨»úÆ÷ÉÏʹÓÃddÃüÁîÀ´½¨Á¢ÐéÄâµÄ´ÅÅÌ£¨ÓÃÎļþÄ£Äâ´ÅÅÌ£©£º

Çåµ¥ 18. ʹÓÃddÃüÁîÀ´½¨Á¢ÐéÄâ´ÅÅÌ

ÔÚinformixva»úÆ÷ÉÏ´´½¨/data/disk1
dd if=/dev/zero of=/data/disk1 bs=1M count=1000 # 1G
ÔÚiwa1»úÆ÷ÉÏ´´½¨/data/disk2
dd if=/dev/zero of=/data/disk2 bs=1M count=1000 # 1G

½ÓÏÂÀ´£¬ÎÒÃÇÔÚinformixva»úÆ÷ÉÏ´´½¨/tmp/disk1.nodeÎļþ£¬°üº¬ÈçÏÂÐÅÏ¢£º

Çåµ¥ 19. /tmp/disk1.nodeÎļþ

/data/disk1:informixva::dataAndMetadata:1:nsd1:

²¢Ö´ÐÐÈçÏÂÃüÁ´´½¨NSD1£º

Çåµ¥ 20. ´´½¨NSD1

mmcrnsd -F /tmp/disk1.node -v no
mmcrnsd: Processing disk /data/disk1
mmcrnsd: Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.
root@informixva[demo_on]:/data#

ͬÑù£¬ÎÒÃÇÔÚiwa1»úÆ÷ÉÏ´´½¨/tmp/disk2.nodeÎļþ£¬°üº¬ÈçÏÂÐÅÏ¢£º

Çåµ¥ 21. /tmp/disk2.nodeÎļþ

/data/disk2:iwa1::dataAndMetadata:1:nsd2:

²¢Ö´ÐÐÈçÏÂÃüÁ´´½¨NSD2£º

Çåµ¥ 22. ´´½¨NSD2

mmcrnsd -F /tmp/disk2.node -v no
mmcrnsd: Processing disk /data/disk2
mmcrnsd: Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.
root@informixva[demo_on]:/data#

ÎÒÃÇ¿ÉÒÔͨ¹ýÖ´ÐÐÈçÏÂÃüÁî²é¿´NSDÏà¹ØÐÅÏ¢£º

Çåµ¥ 23. ²é¿´NSDÐÅÏ¢

root@informixva[demo_on]:/data# mmlsnsd -m

Disk name NSD volume ID Device Node name Remarks
----------------------------------------------------------------------------------
nsd1 C0A8B3644EB95F78 /data/disk1 informixva server node
nsd2 C0A8B3644EB95FBF /data/disk2 iwa1 server node

2.6 ʹÓÃmmcrfsÃüÁÁ¢GPFSÎļþϵͳ

Ê×ÏÈ£¬ÎÒÃÇÔÚinformixva»úÆ÷ÉÏ´´½¨¹ÒÔØµã£ºmkdir /gpfs1,²¢´´½¨/tmp/nsdfileÎļþ£¬°üº¬ÎÒÃǸղŴ´½¨µÄNSD´ÅÅÌÐÅÏ¢£º

Çåµ¥ 24. /tmp/nsdfileÎļþ

cat /tmp/nsdfile
nsd1
nds2

½ÓÏÂÀ´£¬ÎÒÃÇ¿ÉÒÔÖ´ÐÐÈçÏÂÃüÁîÀ´´´½¨GPFSÎļþϵͳ£º

Çåµ¥ 25. ´´½¨GPFSÎļþϵͳ

# mmcrfs /gpfs1 /dev/gpfs1 -F /tmp/nsdfile -A yes -B 512k -m 1 -M 2 -r 1 -R 2

The following disks of gpfs will be formatted on node informixva:
nsd1: size 1024000 KB
nsd2: size 1024000 KB
Formatting file system ...
Disks up to size 29 GB can be added to storage pool 'system'.
Creating Inode File
Creating Allocation Maps
Clearing Inode Allocation Map
Clearing Block Allocation Map
Formatting Allocation Map for storage pool 'system'
Completed creation of file system /dev/gpfs.
mmcrfs: Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.

ÆäÖУ¬mmcrfs ÃüÁîµÄ²ÎÊýº¬ÒåÈçÏ£º

1./gpfs1£ºÎļþϵͳ mount µãÃû³Æ

2./dev/gpfs1: Ö¸¶¨Îļþϵͳ lv Ãû³Æ

3.-F Ö¸¶¨ NSD µÄÎļþÃû

4.-A ×Ô¶¯ mount Ñ¡ÏîΪ yes

5.-B ¿é´óСΪ512K

´Ëʱ£¬¿ÉÒÔÔÚinformixva»úÆ÷ÉÏʹÓÃcat /etc/fstabÃüÁî²é¿´µ±Ç°²Ù×÷ϵͳÄÚµÄÎļþÉ豸£º

Çåµ¥ 26. informixva»úÆ÷ÉÏ/etc/fstabÎļþ


cat /etc/fstab
/dev/sda1 swap swap defaults 0 0
/dev/sda2 / ext3 acl,user_xattr 1 0
/dev/sdb1 /data ext3 acl,user_xattr 1 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
# Beginning of the block added by the VMware software
.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0
# End of the block added by the VMware software
/dev/gpfs1 /gpfs1 gpfs rw,mtime,atime,dev=gpfs1,autostart 0 0

ͬÑù£¬¿ÉÒÔÔÚiwa1»úÆ÷ÉÏʹÓÃcat /etc/fstabÃüÁî²é¿´µ±Ç°²Ù×÷ϵͳÄÚµÄÎļþÉ豸£º

Çåµ¥ 27. iwa1»úÆ÷ÉÏ/etc/fstabÎļþ

cat /etc/fstab

/dev/sda1 swap swap defaults 0 0
/dev/sda2 / ext3 acl,user_xattr 1 0
/dev/sdb1 /data ext3 acl,user_xattr 1 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
# Beginning of the block added by the VMware software
.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0
# End of the block added by the VMware software
/dev/gpfs1 /gpfs1 gpfs rw,mtime,atime,dev=gpfs1,autostart 0 0

2.7 ¹ÒÔØÎļþϵͳ

ÔÚinformixva»úÆ÷ÉÏ£¬Í¨¹ýÈçÏÂÃüÁî¹ÒÔØgpfs1Îļþϵͳ£º

Çåµ¥ 28. ÔÚinformixva»úÆ÷ÉϹÒÔØgpfs1Îļþϵͳ

mount /gpfs1

ÎÒÃÇ¿ÉÒÔÔÚinformixva»òiwa1»úÆ÷ÉÏÖ´ÐÐÈçÏÂÃüÁî²é¿´GPFS¼¯ÈºµÄ״̬ÐÅÏ¢£º

Çåµ¥ 29. ²é¿´GPFS¼¯ÈºµÄ״̬ÐÅÏ¢

root@informixva[demo_on]:/# mmlsconfig
Configuration data for cluster informixva:
------------------------------------------
clusterName informixva
clusterId 13882543094768425948
autoload no
minReleaseLevel 3.3.0.2
dmapiFileHandleSize 32
adminMode central

File systems in cluster informixva:
----------------------------------
/dev/gpfs1

3. ÅäÖÃInformixÊý¾Ý²Ö¿â¼ÓËÙÆ÷IWAʵÀý

Ê×ÏÈ£¬ÎÒÃÇÐèÒªºÏÀíÅäÖÃInformix µ½Êý¾Ý²Ö¿â¼ÓËÙÆ÷µÄÍø¿¨ÉèÖá£ÕýÈçÉϱßËù½éÉܵ쬱¾´ÎʾÀýÖеÄinformixva¼°iwa1Á½Ì¨»úÆ÷µÄÍøÂçÉèÖûù±¾Ïàͬ£¬¶¼ÅäÖÃÁËeth0¼°eth1ÍøÂçÉ豸£¬ÆäÖУ¬eth0×÷ΪDRDA_INTERFACE²ÎÊýÖµ¸ºÔðInformixͬIWAÖ®¼äµÄͨÐÅ£¬eth1×÷ΪCLUSTER_INTERFACE²ÎÊý¸ºÔðIWA¼¯Èº½Úµã¼äµÄͨÐÅ¡£

½ÓÏÂÀ´£¬ÎÒÃÇÐèÒªÔÚ¹²Ïí¼¯ÈºÎļþϵͳÉÏΪIWA´´½¨´æ´¢Ä¿Â¼¡£¼ÓËÙÆ÷´æ´¢Ä¿Â¼Ö÷ÒªÓÃÀ´´æ´¢¼ÓËÙÆ÷ÔªÊý¾ÝÐÅÏ¢¡¢Êý¾Ý¼¯ÊÐÄÚ´æÊý¾ÝµÄ´ÅÅ̾µÏñ¡¢ÈÕÖ¾ÐÅÏ¢ÒÔ¼°¸ú×ÙÐÅÏ¢µÈ¡£ÓÉÓÚÊý¾Ý¼¯ÊÐÊý¾ÝµÄ´ÅÅ̾µÏñÒª±£´æÔÚ¸ÃĿ¼ÖУ¬¶øÇÒÊý¾ÝÁ¿»á²»¶ÏÔö¼Ó£¬Òò´Ë£¬¸ÃĿ¼ҪÓÐ×ã¹»µÄ¿Õ¼ä£¬Ò²²»½¨Ò齫¸ÃĿ¼´´½¨ÔÚIWA°²×°Ä¿Â¼Ï¡£Í¬Ê±£¬¼¯ÈºÖеĸ÷¸ö½Úµã¶¼ÐèÒªÄܹ»ÒÔÏàͬµÄĿ¼Ãû³ÆÀ´·ÃÎʸÃĿ¼¡£

ÎÒÃÇ¿ÉÒÔʹÓÃdwainst.confÅäÖÃÎļþÖеÄDWADIRÅäÖòÎÊýÀ´Ö¸¶¨´æ´¢Â·¾¶µÄλÖá£ÈçϱßËùʾ£¬ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃÇÔÚ/gpfs1/demoĿ¼Ï´´½¨Á˼ÓËÙÆ÷´æ´¢Ä¿Â¼¡£

Çåµ¥ 30. ÔÚ/gpfs1/demoĿ¼Ï´´½¨¼ÓËÙÆ÷´æ´¢Ä¿Â¼

root@informixva[demo_on]:/gpfs1# mkdir demo
root@informixva[demo_on]:/gpfs1# cd demo

ÔÚ´´½¨Íê¼ÓËÙÆ÷´æ´¢Ä¿Â¼ºó£¬ÎÒÃÇÒªÅäÖÃdwainst.conf ¼ÓËÙÆ÷ÅäÖÃÎļþ¼°cluster.conf¼¯ÈºÅäÖÃÎļþ¡£dwainst.conf ¼ÓËÙÆ÷ÅäÖÃÎļþÓÃÓÚ¶ÔIWA½øÐÐÉèÖã¬cluster.conf¼¯ÈºÅäÖÃÎļþÓÃÓÚÅäÖü¯Èº½ÚµãÐÅÏ¢¡£ÎÒÃÇÒªÔÚÔËÐÐondwa setupÃüÁî֮ǰ¶ÔÕâÁ½¸öÎļþ½øÐÐÉèÖá£

dwainst.conf¼ÓËÙÆ÷ÅäÖÃÎļþĬÈϰ²×°ÔÚ$IWA_INSTALL_DIR/dwa/etcĿ¼Ï¡£¸ÃÎļþÅäÖòÎÊýºÍµ¥»ú»·¾³ÏÂIWA»ù±¾Ïàͬ£¬¼¯Èº»·¾³ÏÂIWAµÄÌØÊâ²ÎÊýÈçÏ£º

±í 1. dwainst.conf ¼¯ÈºÅäÖòÎÊý£º

ÈçϱßËùʾ£¬ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃǶÔdwainst.confÅäÖÃÎļþ½øÐÐÁËÈçÏÂÉèÖãº

Çåµ¥ 31. dwainst.confÅäÖÃÎļþ

# DWA storage directory
# Stores the catalog, marts, logs, traces etc.
DWADIR=/gpfs1/demo

# Starting port number
# Grows to START_PORT-1+DEFAULT_NUMBER_ENTITLED_NODES*4 .
START_PORT=21020

# Number of DWA_CM processes
NUM_NODES=2

# Worker shared memory
# SHM (in Megabyte) for all worker nodes.
# Minimum value is 1 percent of physical memory.
WORKER_SHM=520

# Coordinator shared memory
# SHM (in Megabyte) for all coordinator nodes.
# Minimum value is 1 percent of physical memory.
COORDINATOR_SHM=250
# DRDA network interface
# For running the accelerator on a separate computer ask the system
# administrator for the network interface (e.g. eth0) that the Informix
# database server should connect to or run the ifconfig command to find the
# network interface.
DRDA_INTERFACE=eth0
CLUSTER_INTERFACE=eth1
CORES_FOR_LOAD_THREADS_PERCENTAGE=100
CORES_FOR_REORG_THREADS_PERCENTAGE=25
CORES_FOR_SCAN_THREADS_PERCENTAGE=100

ͬʱ£¬ÎÒÃÇÐèÒªÔÚ$IWA_INSTALL_DIR/dwa/etcĿ¼Ï´´½¨cluster.conf ÎļþÀ´±£´æ¼¯Èº½ÚµãÖ÷»úÃû»òIPµØÖ·¡£ÔÚcluster.conf ÎļþÖУ¬Ã¿Ò»¸ö¼¯Èº½ÚµãÕ¼ÓÃÒ»ÐУ¬¸ÃÎļþÖеĵÚÒ»¸ö½Úµã»á×÷ΪIWAЭµ÷½Úµã£¨coordinator node£©,ÆäËû½Úµã»á×÷ΪIWA¹¤×÷Õ߽ڵ㣨worker node£©¡£ÎļþÖм¯Èº½ÚµãµÄ˳Ðò¾ÍÊÇondwa start »òondwa stopÃüÁîÆô¶¯»òÍ£Ö¹½ÚµãµÄ˳Ðò¡£ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃǶÔcluster.confÅäÖÃÎļþ½øÐÐÁËÈçÏÂÉèÖãº

Çåµ¥ 32. cluster.confÅäÖÃÎļþ

informixva
iwa1

½ÓÏÂÀ´£¬ÎÒÃÇÒªÔËÐС°ondwa setup¡±ÃüÁîÀ´´´½¨InformixÊý¾Ý²Ö¿â¼ÓËÙÆ÷IWAʵÀýÔËÐÐʱËùÐèÒªµÄÎļþ¼°×ÓĿ¼¡£ÎÒÃÇ¿ÉÒÔÔÚ¼¯ÈºÖеÄÈÎÒâÒ»¸ö½ÚµãÉÏÔËÐÐondwaÃüÁîÀ´ÉèÖûòÆô¶¯IWAʵÀý¡£ondwaÃüÁî»áÔÚcluster.conf ÎļþËù¶¨ÒåµÄ¼¯Èº½ÚµãÉÏÔËÐиÃÃüÁî¡£

ÈçϱßËùʾ£¬ÎÒÃÇÒÔrootÓû§Ö´ÐС°ondwa setup¡±ÃüÁ¸ÃÃüÁ¶ÁÈ¡dwainst.conf¼°cluster.confÅäÖÃÎļþÀ´¶ÔIWAʵÀý½øÐÐÅäÖ㬠²¢ÔÚ¼ÓËÙÆ÷´æ´¢Ä¿Â¼Ï´´½¨ÈçϽṹ£º

1.IWA½Úµã¼ä¹²ÏíĿ¼(shared)

2.°üº¬½Úµã˽Óз¾¶µÄĿ¼(local)

3.¶ÔÓÚÿһ¸ö½Úµã:

1)½Úµã˽ÓÐĿ¼: local/#node#

2)½ÚµãÅäÖÃÎļþ: #node#.conf

3)¨C Ö¸ÏòDWA_CM ¿ÉÖ´ÐÐÎļþµÄÁ´½Ó: DWA_CM_#node#

ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃÇΪIWAʵÀýÖ¸¶¨ÁË2¸ö½Úµã£¬Òò´Ë£¬IWA·ÖÅäÁË1¸öЭµ÷Õß½Úµãnode0ºÍ1¸ö¹¤×÷Õß½Úµãnode1£¬²¢ÔÚlocalĿ¼Ï´´½¨ÁËnode0¼°node1½Úµã˽ÓÐĿ¼¼°ÏàÓ¦µÄnode0.confºÍnode1.conf 2¸ö½ÚµãÅäÖÃÎļþ£¬´´½¨ÁËDWA_CM_node0¼°DWA_CM_node1Ö¸ÏòIWA¿ÉÖ´ÐÐÎļþµÄÁ´½Ó¡£

Çåµ¥ 33. Ö´ÐÐondwa setupÃüÁî

root@informixva[demo_on]:/gpfs1/demo # ondwa setup
root@informixva[demo_on]:/gpfs1/demo# ls -l
total 64
DWA_CM_node0 -> /opt/IBM/informix/dwa/bin/dwa/DWA_CM
DWA_CM_node1 -> /opt/IBM/informix/dwa/bin/dwa/DWA_CM
drwxr-xr-x 4 informix informix 16384 2011-11-13 11:22 local
-r--r--r-- 1 informix informix 916 2011-11-13 11:22 node0.conf
-r--r--r-- 1 informix informix 916 2011-11-13 11:22 node1.conf
drwxr-xr-x 2 informix informix 16384 2011-11-13 11:22 shared

ÎÒÃǾͿÉÒÔͨ¹ýÖ´ÐС±ondwa start¡±ÃüÁîÀ´Æô¶¯IWAʵÀý¡£ÈçÏÂÃæËùʾ£¬ÎÒÃÇÔÚinformixva»úÆ÷ÉÏÒÔrootÓû§ÔËÐС±ondwa start¡±À´Æô¶¯IWAʵÀý£¬¸ÃÃüÁÆô¶¯IWAËùÓеĽڵ㣬²¢½«½ÚµãÆô¶¯ÐÅÏ¢¼Ç¼ÔÚÿ¸ö½ÚµãµÄÈÕÖ¾ÎļþÖУ¬Èçnode0.log, node1.log¡£µ±¡±ondwa start¡±ÃüÁîÖ´Ðгɹ¦ºó£¬IWAʵÀý¾Í¿ÉÒÔʹÓÃÁË¡£

Çåµ¥ 34. Æô¶¯IWAʵÀý

root@informixva[demo_on]:/gpfs1/demo# ondwa start
Starting DWA_CM_node0 on informixva: started
Starting DWA_CM_node1 on iwa1: started

ÎÒÃÇ¿ÉÒÔÔËÐÐÈçÏÂÃüÁî²é¿´IWAʵÀýÔËÐÐ×´¿ö£º

Çåµ¥ 35. ²é¿´IWAʵÀýÔËÐÐ×´¿ö

root@informixva[demo_on]:/gpfs1/demo# ondwa status
ID | Role | Cat-Status | HB-Status | Hostname | System ID
-----+-------------+-------------+--------------
0 | COORDINATOR | ACTIVE | Healthy | informixva | 1
1 | WORKER | ACTIVE | Healthy | iwa1 | 2

Cluster is in state : Fully Operational
Expected node count : 1 coordinator and 1 worker nodes
root@informixva[demo_on]:/gpfs1/demo#

ͬʱ£¬ÎÒÃÇ»¹¿ÉÒÔÔÚinformixva¼°iwa1»úÆ÷ÉÏÔËÐÐÈçÏÂÃüÁî²é¿´IWA½ø³ÌÐÅÏ¢£º

Çåµ¥ 36. ²é¿´IWA½ø³Ì

ÔÚinformixva»úÆ÷ÉÏ:
root@informixva[demo_on]:/gpfs1/demo# ps -ef|grep DWA
informix 19294 1 0 11:23 ? 00:00:00 ./DWA_CM_node0 --no-console
root 19322 1 0 11:23 ? /bin/bash /opt/IBM/informix/dwa/etc/DWA_watchdog -daemon 0
root@informixva[demo_on]:/gpfs1/demo#

ÔÚiwa1»úÆ÷ÉÏ:
root@iwa1[demo_on]:/opt/IBM/informix/dwa/etc# ps -ef|grep DWA
informix 17787 1 0 11:23 ? 00:00:00 ./DWA_CM_node1 --no-console
root 17815 1 0 11:23 ? /bin/bash /opt/IBM/informix/dwa/etc/DWA_watchdog -daemon 1
root 18049 5389 0 11:25 pts/0 00:00:00 grep DWA
root@iwa1[demo_on]:/opt/IBM/informix/dwa/etc#

ͨ³££¬ÔÚ¼¯Èº»·¾³ÏµÄIWA£¬ÎÒÃǽ¨ÒéÔÚÿһ¸ö¼¯Èº½ÚµãÉÏÔËÐÐÒ»¸öIWAЭµ÷½Úµã»ò¹¤×÷Õ߽ڵ㣬ͬÑù£¬ÎÒÃÇÒ²¿ÉÒÔÔÚÒ»¸ö¼¯Èº½ÚµãÉÏÔËÐжà¸ö¹¤×÷Õ߽ڵ㡣±ÈÈ磬ÎÒÃÇ¿ÉÒÔÖ¸¶¨ÔÚinformixva»úÆ÷ÉÏÔËÐÐÒ»¸öЭµ÷Õ߽ڵ㼰һ¸ö¹¤×÷Õ߽ڵ㣬ÔÚiwa1»úÆ÷ÉÏÔËÐÐÒ»¸ö¹¤×÷Õ߽ڵ㣬ÕâÑù£¬ÎÒÃÇÐèÒªÔÚdwainst.confÅäÖÃÎļþÖÐÖ¸¶¨£º

Çåµ¥ 37. dwainst.confÎļþ

# Number of DWA_CM processes
NUM_NODES=3

ÔÚcluster.confÅäÖÃÎļþÖнøÐÐÈçÏÂÉèÖãº

Çåµ¥ 38. cluster.confÎļþ

informixva
informixva
iwa1

ÕâÑù£¬µ±ÎÒÃÇÆô¶¯IWAʵÀýºó£¬ÔÚinformixva»úÆ÷ÉÏ£¬½«ÔËÐÐÒ»¸öЭµ÷Õ߽ڵ㼰һ¸ö¹¤×÷Õ߽ڵ㣬ÔÚiwa1»úÆ÷ÉϽ«ÔËÐÐÒ»¸ö¹¤×÷Õ߽ڵ㣬ÈçϱßËùʾ£º

Çåµ¥ 39. IWAʵÀý״̬ÐÅÏ¢

root@informixva[demo_on]:/opt/IBM/informix/dwa/etc# ondwa status
ID | Role | Cat-Status | HB-Status | Hostname | System ID
-----+-------------+-------------+--------------+-------
0 | COORDINATOR | ACTIVE | Healthy | informixva | 1
1 | WORKER | ACTIVE | Healthy | informixva | 2
2 | WORKER | ACTIVE | Healthy | iwa1 | 3

Cluster is in state : Fully Operational
Expected node count : 1 coordinator and 2 worker nodes

ͬʱ£¬ÎÒÃÇÒ²¿ÉÒÔÔÚinformixva¼°iwa1»úÆ÷Éϲ鿴IWA½ø³ÌÐÅÏ¢£º

Çåµ¥ 40. IWAʵÀý½ø³ÌÐÅÏ¢

ÔÚinformixva»úÆ÷ÉÏ:
root@informixva[demo_on]:/opt/IBM/informix/dwa/etc# ps -ef|grep DWA
informix 27803 1 0 11:04 ? 00:00:00 ./DWA_CM_node0 --no-console
root 27828 1 0 11:04 ? /bin/bash /opt/IBM/informix/dwa/etc/DWA_watchdog -daemon 0
informix 28141 1 0 11:04 ? 00:00:00 ./DWA_CM_node1 --no-console
root 28160 1 0 11:04 ? /bin/bash /opt/IBM/informix/dwa/etc/DWA_watchdog -daemon 1
root 28395 25297 0 11:04 pts/1 00:00:00 grep DWA

ÔÚiwa1»úÆ÷ÉÏ:
root@iwa1[demo_on]:/opt/IBM/informix/dwa/etc# ps -ef|grep DWA
informix 26905 1 0 11:04 ? 00:00:00 ./DWA_CM_node2 --no-console
root 26929 1 0 11:04 /bin/bash /opt/IBM/in
formix/dwa/etc/DWA_watchdog -daemon 2 root 27100 6819 99 11:04 pts/0 00:00:00 grep DWA

4. ÅäÖÃInformixµ½¼ÓËÙÆ÷µÄÁ¬½Ó

Ê×ÏÈ£¬ÎÒÃÇÐèÒªÔËÐС°ondwa getpin¡±ÃüÁîÀ´»ñÈ¡Êý¾Ý²Ö¿â¼ÓËÙÆ÷µÄIPµØÖ·, ¶Ë¿ÚºÅ¼°PINºÅÂë¡£ÈçÏÂÃæËùʾ£¬ÎÒÃÇÒÔrootÓû§ÔËÐÐ ¡°ondwa getpin¡±ÃüÁî»ñÈ¡µ½IWAµ±Ç°µÄIPµØÖ·, ¶Ë¿ÚºÅ¼°PINºÅÂëΪ£º192.168.179.100 21022 4028¡£

Çåµ¥ 41. »ñÈ¡Êý¾Ý²Ö¿â¼ÓËÙÆ÷IPµØÖ·, ¶Ë¿ÚºÅ¼°PINºÅÂë

root@informixva[demo_on]:~/Desktop# ondwa getpin
192.168.179.100 21022 4028
root@informixva[demo_on]:~/Desktop#

½ÓÏÂÀ´£¬ÎÒÃÇÐèÒªÔÚInformixÊý¾Ý²Ö¿â¼ÓËÙÆ÷¹ÜÀí¹¤¾ßIBM Smart Analytics Optimizer Studio Öд´½¨Í¬InformixÊý¾Ý¿âµÄÁ¬½Óds2,²¢Îªds2Êý¾Ý¿â´´½¨Ò»¸öеļÓËÙÆ÷¡£ÈçÏÂͼËùʾ£¬ÎÒÃÇΪds2Êý¾Ý¿â´´½¨ÁËIWADEMO¼ÓËÙÆ÷£º

ͼ 2. Ϊds2Êý¾Ý¿â´´½¨IWADEMO¼ÓËÙÆ÷

²¢ÊäÈëÁËÈçÏÂÐÅÏ¢£º

Name: IWADEMO
Paring code: 4028
IP-address: 192.168.179.100
Port: 21022

5. ´´½¨Êý¾Ý¼¯ÊÐ

Ê×ÏÈ£¬ÎÒÃÇÐèÒªÉè¼ÆÒ»¸ö¸ßЧµÄÊý¾Ý¼¯ÊС£ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃÇÉè¼ÆÁËIWAMartÊý¾Ý¼¯ÊУ¬Ëü°üÀ¨ÁËsalecostÊÂʵ±í¼°shop¡¢goodsά±í¡£

Éè¼ÆºÃÊý¾Ý¼¯ÊÐÖ®ºó£¬ÎÒÃÇÐèÒªÔÚInformixÊý¾Ý²Ö¿â¼ÓËÙÆ÷¹ÜÀí¹¤¾ßIBM Smart Analytics Optimizer Studio Öд´½¨Êý¾Ý¼¯Êе͍Òå¡£Êý¾Ý¼¯Êж¨ÒåÐÅÏ¢±£´æÔÚXMLÎļþÖУ¬ËüÃèÊöÁËÊý¾Ý¼¯ÊÐÖж¨ÒåµÄ±í¡¢×Ö¶ÎÒÔ¼°±íºÍ±íÖ®¼äµÄ¹ØÏµ¡£XMLÎļþÖ»±£´æÊý¾Ý¼¯Êе͍ÒåÐÅÏ¢£¬µ«²»°üº¬Óû§Êµ¼ÊÊý¾Ý¡£ µ±²¿ÊðÊý¾Ý¼¯ÊÐʱ£¬Êý¾Ý¼¯Êж¨ÒåÐÅÏ¢±»´«Ë͸øIWA£¬Êý¾Ý¼¯Êгɹ¦²¿Êðºó£¬IWA»á½«Êý¾Ý¼¯Êж¨ÒåÐÅÏ¢ÒÔSQLÓï¾äÐÎʽ·µ»Ø¸øInformixÊý¾Ý¿â²¢ÔÚInformixÊý¾Ý¿âϵͳ±íÖд´½¨accelerated query table or AQT£¬µ±Óû§·¢³ö²éѯÇëÇóºó£¬InformixÓÅ»¯Æ÷»á½«Óû§²éѯÓï¾äͬAQT½øÐÐÆ¥Å䣬Âú×ãÌõ¼þµÄ²éѯÓï¾ä»á±»ÖØÂ·Óɵ½IWAÖÐÀ´¼Ó¿ì²éѯËÙ¶È¡£

Ê×ÏÈ£¬ÎÒÃÇÒªÔÚIBM Smart Analytics Optimizer StudioÖд´½¨Ò»¸öaccelerator ¹¤³Ì¡£ÈçÏÂͼËùʾ£¬ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃÇ´´½¨ÁËIWADEMO¹¤³Ì¡£

ͼ 3. ´´½¨IWADEMO¹¤³Ì

½ÓÏÂÀ´£¬ÎÒÃÇÔÚIWADEMO¹¤³ÌÖÐʹÓÃNew Data Mart wizard ´´½¨IWAMartÊý¾Ý¼¯ÊУ¬ÈçÏÂͼËùʾ¡£

ͼ 4. ´´½¨IWAMartÊý¾Ý¼¯ÊÐ

²¢Ìí¼ÓsalecostÊÂʵ±í¼°shop¡¢goodsά±íµ½IWAMartÊý¾Ý¼¯ÊУ¬ÈçÏÂͼËùʾ£¬ÎÒÃÇÑ¡Ôñsalecost×÷ΪÊÂʵ±í£¬²¢×Ô¼º¶¨ÒåÊý¾Ý¼¯ÊÐÖÐÊÂʵ±íÒÔ¼°Î¬±íÖ®¼äµÄÁ¬½Ó¡£

ͼ 5. Ìí¼ÓÊÂʵ±í¼°Ïà¹ØÎ¬±íµ½IWAMartÊý¾Ý¼¯ÊÐ

ÔÚ¶¨ÒåºÃÊý¾Ý¼¯Êкó£¬ÎÒÃÇÐèÒª¶Ô´´½¨µÄÊý¾Ý¼¯Êж¨Òå½øÐÐÍêÕûÐÔÑéÖ¤£¬ÎÒÃÇÔÚIWAMartÊý¾Ý¼¯ÊÐÉϵã»÷ÓÒ¼üÑ¡ÔñValidate¶ÔIWAMartÊý¾Ý¼¯ÊнøÐÐÍêÕûÐÔÑéÖ¤¡£

6. ²¿Êð²¢×°ÔØÊý¾Ý¼¯ÊÐ

µ±ÎÒÃÇÉú³ÉºÃXMLÐÎʽµÄÊý¾Ý¼¯Êж¨ÒåÐÅÏ¢ºó£¬ÎÒÃÇÐèÒª½«Æä²¿Êðµ½IWAÖС£µ±²¿ÊðÊý¾Ý¼¯ÊÐʱ£¬Êý¾Ý¼¯Êж¨ÒåÐÅÏ¢±»´«Ë͸øIWA£¬Êý¾Ý¼¯Êгɹ¦²¿Êðºó£¬IWA»á½«Êý¾Ý¼¯Êж¨ÒåÐÅÏ¢ÒÔSQLÓï¾äÐÎʽ·µ»Ø¸øInformixÊý¾Ý¿â²¢ÔÚInformixÊý¾Ý¿âϵͳ±íÖд´½¨accelerated query table or AQTÀ´Æ¥ÅäÓû§µÄ²éѯÓï¾ä¡£ÎÒÃÇ¿ÉÒÔ²ÉÓÃIBM Smart Analytics Optimizer Studio¹¤¾ß»òjava CLIÀ´²¿ÊðÊý¾Ý¼¯ÊС£

µ±Êý¾Ý¼¯Êгɹ¦²¿Êðºó£¬Êý¾Ý¼¯Êд¦ÓÚLOAD PENDING״̬£¬²¢ÇÒ²»¿ÉÓã¬Ö±µ½Êý¾Ý×°ÔØÍê³Éºó£¬¸ÃÊý¾Ý¼¯ÊвſÉÒÔʹÓá£

ÈçÏÂͼËùʾ£¬ÎÒÃÇÔÚIBM Smart Analytics Optimizer Studio¹¤¾ßÖеÄData Source ExploerÑ¡ÔñIWADEMO¼ÓËÙÆ÷ʵÀý£¬ÔÚÆäÊôÐÔÀ¸ÖУ¬Ñ¡ÔñData Marts£¬²¢µã»÷Deploy°´Å¥À´²¿Êð²¢×°ÔØÊý¾Ý¼¯ÊУº

ͼ 6. ²¿Êð¼°×°ÔØÊý¾Ý¼¯ÊÐ

7. SQL²éѯÓï¾ä¼ÓËÙ

µ±Êý¾Ý¼¯ÊÐ×°ÔØ³É¹¦ºó£¬ÎÒÃǾͿÉÒÔÀûÓÃÊý¾Ý¼¯ÊÐÀ´¼ÓËÙÊý¾Ý²éѯ¡£InformixÊý¾Ý¿âÓÅ»¯Æ÷»á¸ù¾Ý¸Ãͳ¼ÆÐÅÏ¢À´ÆÀ¹ÀÓû§²éѯÓï¾äµÄÊÂʵ±íÊÇ·ñºÍAQTÖеÄÊÂʵ±íÏàͬ£¬Èç¹û²»Ïàͬ£¬¸Ã²éѯÓï¾ä¾Í²»»áÖØ¶¨Ïòµ½IWAÖÐÈ¥ÔËÐС£½ÓÏÂÀ´£¬ÎÒÃÇÐèÒªÉèÖÃPDQPRIORITY±äÁ¿£¬ÕâÑù£¬InformixÓÅ»¯Æ÷½«»á¿¼ÂÇstar join plan£¬²¢ÇÒ¿ÉÒÔÕýÈ·Ñ¡ÔñÊÂʵ±í¡£ÎÒÃÇ»¹ÐèÒªÉèÖÃuse_dwa±äÁ¿¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÉèÖÃuse_dwa±äÁ¿À´¸æËßInforixÓÅ»¯Æ÷ÊÇ·ñʹÓÃIWAÀ´¼ÓËÙÊý¾Ý²éѯ¡£Èç¹ûÎÒÃǽ«use_dwa²ÎÊýÉèΪ0£¬»òÕß²»½øÐÐÉèÖã¬Óû§µÄ²éѯÓï¾ä½«²»»áÖØ¶¨Ïòµ½IWAÀ´¼ÓËÙ¡£Èç¹û½«use_dwa±äÁ¿ÉèÖÃΪ1£¬Óû§µÄ²éѯÓï¾ä½«±»Öض¨Ïòµ½IWAÀ´¼ÓËÙ¡£

ÈçϱßËùʾ£¬ÔÚ±¾´ÎʾÀýÖУ¬ÎÒÃÇͨ¹ýset environment use_dwa '1'ÃüÁîÉèÖøñäÁ¿£¬²¢ÔÊÐí²éѯÓï¾ä±»Öض¨Ïòµ½IWAÀ´¼ÓËÙ²éѯ¡£ÎªÁËÄܹ»¸üºÃµØ²é¿´Óû§²éѯÓï¾äÊÇ·ñ±»Öض¨Ïòµ½IWA£¬ÔÚʾÀýÖУ¬ÎÒÃǶÔÖ´ÐеÄSQLÓï¾äÊÕ¼¯ÆäÖ´Ðмƻ®¡£ÕâÑù£¬ÎÒÃÇ¿ÉÒÔͨ¹ý²é¿´SQLÓï¾äµÄÖ´Ðмƻ®À´¼ì²éSQLÓï¾äÊÇ·ñ±»Öض¨Ïòµ½IWAÀ´¼ÓËÙ²éѯ¡£

Çåµ¥ 42. query1_iwa.sql²éѯÓï¾ä

informix@informixva[demo_on]: cat query1_iwa.sql
set explain file to '/tmp/query1_iwa.out';
set explain on;
set environment use_dwa '1';
set PDQPRIORITY 100;
select a.ShopID,b.Name ShopName,a.DeptID,sum(a.Qty) Qty,sum(a.SaleValue) SaleValue,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue) RealValue,
sum((a.SaleValue-a.DiscountValue+a.ExDiscValue)/(1+a.saletaxrate/100)) NTRealValue,
sum(a.Qty*a.Cost) CostValue,sum(a.Qty*a.Cost/(1+a.saletaxrate/100)) NTCostValue,
sum(a.DiscountValue) DiscountValue,sum(a.ExDiscValue) ExDiscValue,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost) MarginValue,
sum((a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost)/
(1+a.saletaxrate/100)) NTMarginValue,
case sum(a.SaleValue-a.DiscountValue+a.ExDiscValue) when 0 then 0 else
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost)*100/decode(
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue),0,NULL,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue)) end MarginRate,
sum(case a.MarginRate when 100 then 0 else (a.Qty*a.Cost/
decode (1-a.MarginRate, 0, NULL, 1-a.MarginRate )/100) end) PlanSaleValue,
sum(case a.MarginRate when 100 then 0 else (a.Qty*a.Cost/decode
(1-a.MarginRate, 0, NULL, 1-a.MarginRate )/100)/
(1+a.saletaxrate/100) end) NTPlanSaleValue
from SaleCost a,Shop b,Goods c
where a.ShopID=b.ID and a.VgNo=c.VgNo and a.SDate
between '2010-01-01' and '2010-12-31' and c.ZYFlag=0
group by ShopID,ShopName,a.DeptID£»
set explain off;

ͨ¹ý²é¿´¸Ã²éѯÓï¾äµÄÖ´Ðмƻ®£¬ÈçϱßËùʾ£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬QUERY: DWA executed:(OPTIMIZATION TIMESTAMP: 11-20-2011 10:45:15)£¬Ò²¾ÍÒâζןòéѯÓï¾ä±»Öض¨Ïòµ½IWAÀ´¼ÓËÙ²éѯ¡£

Çåµ¥ 43. query1_iwa.sqlÖ´Ðмƻ®

informix@informixva[demo_on]:/tmp$ cat query1_iwa.out 

QUERY: DWA executed:(OPTIMIZATION TIMESTAMP: 11-20-2011 10:45:15)
------
select a.ShopID,b.Name ShopName,a.DeptID,sum(a.Qty) Qty,sum(a.SaleValue) SaleValue,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue) RealValue,
sum((a.SaleValue-a.DiscountValue+a.ExDiscValue)/(1+a.saletaxrate/100)) NTRealValue,
sum(a.Qty*a.Cost) CostValue,sum(a.Qty*a.Cost/(1+a.saletaxrate/100)) NTCostValue,
sum(a.DiscountValue) DiscountValue,sum(a.ExDiscValue) ExDiscValue,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost) MarginValue,
sum((a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost)/
(1+a.saletaxrate/100)) NTMarginValue,
case sum(a.SaleValue-a.DiscountValue+a.ExDiscValue) when 0 then 0 else
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost)*100/decode(
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue),0,NULL,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue)) end MarginRate,
sum(case a.MarginRate when 100 then 0 else (a.Qty*a.Cost/
decode (1-a.MarginRate, 0, NULL, 1-a.MarginRate )/100) end) PlanSaleValue,
sum(case a.MarginRate when 100 then 0 else (a.Qty*a.Cost/decode
(1-a.MarginRate, 0, NULL, 1-a.MarginRate )/100)/
(1+a.saletaxrate/100) end) NTPlanSaleValue
from SaleCost a,Shop b,Goods c
where a.ShopID=b.ID and a.VgNo=c.VgNo and a.SDate
between '2010-01-01' and '2010-12-31' and c.ZYFlag=0
group by ShopID,ShopName,a.DeptID£»

Estimated Cost: 94109
Estimated # of Rows Returned: 7304
Maximum Threads: 0

ds2@IWADEMO:dwa.aqt6c910b46-edc4-440c-addc-d2202154dc42: REMOTE PATH
Remote SQL Request:
{QUERY {FROM dwa.aqt6c910b46-edc4-440c-addc-d2202154dc42}
... ...

QUERY: IDS FYI:(OPTIMIZATION TIMESTAMP: 11-20-2011 10:45:15)
------
select a.ShopID,b.Name ShopName,a.DeptID,sum(a.Qty) Qty,sum(a.SaleValue) SaleValue,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue) RealValue,
sum((a.SaleValue-a.DiscountValue+a.ExDiscValue)/(1+a.saletaxrate/100)) NTRealValue,
sum(a.Qty*a.Cost) CostValue,sum(a.Qty*a.Cost/(1+a.saletaxrate/100)) NTCostValue,
sum(a.DiscountValue) DiscountValue,sum(a.ExDiscValue) ExDiscValue,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost) MarginValue,
sum((a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost)/
(1+a.saletaxrate/100)) NTMarginValue,
case sum(a.SaleValue-a.DiscountValue+a.ExDiscValue) when 0 then 0 else
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue-a.Qty*a.Cost)*100/decode(
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue),0,NULL,
sum(a.SaleValue-a.DiscountValue+a.ExDiscValue)) end MarginRate,
sum(case a.MarginRate when 100 then 0 else (a.Qty*a.Cost/
decode (1-a.MarginRate, 0, NULL, 1-a.MarginRate )/100) end) PlanSaleValue,
sum(case a.MarginRate when 100 then 0 else (a.Qty*a.Cost/decode
(1-a.MarginRate, 0, NULL, 1-a.MarginRate )/100)/
(1+a.saletaxrate/100) end) NTPlanSaleValue
from SaleCost a,Shop b,Goods c
where a.ShopID=b.ID and a.VgNo=c.VgNo and a.SDate
between '2010-01-01' and '2010-12-31' and c.ZYFlag=0
group by ShopID,ShopName,a.DeptID£»

Estimated Cost: 94109
Estimated # of Rows Returned: 7304
Maximum Threads: 0
Temporary Files Required For: Group By
1) informix.a: SEQUENTIAL SCAN

... ...

2) informix.c: INDEX PATH

Filters: informix.c.zyflag = 0

(1) Index Name: informix. 154_493
Index Keys: vgno (Parallel, fragments: ALL)
Lower Index Filter: informix.a.vgno = informix.c.vgno
NESTED LOOP JOIN

3) informix.b: INDEX PATH

(1) Index Name: informix. 155_535
Index Keys: id (Parallel, fragments: ALL)
Lower Index Filter: informix.a.shopid = informix.b.id
NESTED LOOP JOIN

×ܽá

ͨ¹ýÉÏÊö½éÉÜ£¬ÎÒÃǶԼ¯Èº»·¾³ÏÂÅäÖá¢Ê¹ÓÃIWAµÄ»ù±¾·½·¨¼°²½ÖèÓÐÁËÒ»¸ö±È½ÏÉî¿ÌµÄÁ˽⡣ͨ¹ýʹÓÃIWA£¬ÌرðÊǼ¯Èº»·¾³ÏµÄIWA£¬¿ÉÒÔ¼«ËÙ¼Ó¿ì´óÊý¾ÝÁ¿Êý¾Ý¼¯ÊеIJéѯÇëÇó£¬ÎªÆóÒµÒµÎñÓÅ»¯¡¢¸¨Öú¾ö²ßÌṩ¸üºÃµÄ°ïÖú¡£

   
3095 ´Îä¯ÀÀ       32
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí