ããã«ã¡ã¯ã ãããŒçšã®ããåœä»€ã®åœ¢åŒã§Postgres-xlã¯ã©ã¹ã¿ãŒãå±éããçµéšãKhabrovskãšå
±æããããšæããŸãã postgres-xlã¯ã©ã¹ã¿ãŒã®ãããã€ã«é¢ãããããã¯ã«é¢ããèšäºãããã¥ã¢ã«ã¯ããã»ã©å€ããããŸããããååã§ãã ãããŠã圌ãã¯çãç§ã®ãããªäººã®ç®ã«ã¯ããã€ãã®é倧ãªæ¬ é¥ãæã£ãŠããŸãã圌ãã¯ä»¥åã«ã¯ã©ã¹ã¿ãªã³ã°ã«é¢äžããããšããªããããã«Linuxã®ãããªè»žã§åããããšããããŸããã§ããã ãã®çš®ã®èšäºã¯ãã¹ãŠãLinuxããã³ãã®ãããªç°å¢ã§ã®postgresql / postgres-xlã®å±éã«å€å°ãªããšã粟éããŠãã人åãã«æžãããŠããŸãã
ãã®ãããä»ã®æ¥çžŸãšå
±æããããšããèŠæããããŸããã 次ã«ãpostgres-xlãœãŒã¹ã®ããŠã³ããŒããšã³ã³ãã€ã«ããã¯ã©ã¹ã¿ãŒã®æ§æãŸã§ãå±éããã»ã¹å
šäœãã¹ãããããšã«èª¬æããŸãã
ãçµéšè
åããã®å€ãã®èšäºããã§ã«æžãããŠããã®ã§ãããã§ããPostgres-xlèªäœããã®ã³ã³ããŒãã³ããããã³ãããã®ã¿ã€ãïŒããŒã«ïŒã®èª¬æã¯çç¥ããŸãã
ããŒã1.ç°å¢ã®æºå
ãã¹ãã¯ã©ã¹ã¿ãŒã§ã¯ã4ã€ã®ããŒãã®æ§æãéžæãããŸããïŒGTMãGTM-Stââandbyããã³2ã€ã®ããŒãïŒGTM-ãããã·ãã³ãŒãã£ããŒã¿ãŒãããŒã¿ããŒãïŒïŒ
- GTM1
192.168.1.100
GTMã¢ã¯ãã£ãïŒ6666
- GTM2
192.168.1.101
GTM-ã¹ã¿ã³ããŒïŒ6666
- NODE1
192.168.1.102
GTM-Proxy1ïŒ6666
ã³ãŒãã£ããŒã¿ãŒ1ïŒ5432
ããŒã¿ããŒã1ïŒ15432
- NODE2
192.168.1.103
GTM-Proxy2ïŒ6666
ã³ãŒãã£ããŒã¿ãŒ2ïŒ5432
ããŒã¿ããŒã2ïŒ15432
ãã¹ãŠã®ããŒãã¯ã1024 MBã®RAMãš2.1Ghzã®åšæ³¢æ°ã®ããã»ããµãåããä»®æ³ãã·ã³ã§ãã OSã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãéžæããéã«ãCentOS 7.0ã®ææ°ããŒãžã§ã³ã«æ±ºããŸãããããã®ã€ã³ã¹ããŒã«ãçç¥ããŸãã æå°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŸããã
ããŒã2.äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«
ãããã£ãŠãCentOSãã€ã³ã¹ããŒã«ããã4å°ã®ã¯ãªãŒã³ãã·ã³ããããŸãã sourceforgeãããœãŒã¹ã®ããŠã³ããŒããéå§ããåã«ããŸããœãŒã¹èªäœã®ã³ã³ãã€ã«ã«å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
ãªããªã CentOSã®ã¯ãªãŒã³ã€ã³ã¹ããŒã«ãå®äºããã®ã§ããã®ã¹ãããã«wgetïŒããŠã³ããŒããããŒãžã£ãŒïŒãšvimïŒããã¹ããšãã£ã¿ãŒïŒã®ã€ã³ã¹ããŒã«ãè¿œå ããŸããã ãŸããããã±ãŒãžãã€ã³ã¹ããŒã«ããåŸã次ã®ã³ãã³ãã§æ®ãã®ããã±ãŒãžãæŽæ°ããå¿
èŠã¯ãããŸããã
æŽæ°ãå®äºããã®ãåŸ
ã£ãŠãããããã»ã¹ã®æ¬¡ã®éšåã«é²ã¿ãŸãã
ããŒã3.ãœãŒã¹ã³ãŒãã®ããŠã³ããŒããã³ã³ãã€ã«ãã€ã³ã¹ããŒã«
ãœãŒã¹ãããŠã³ããŒãããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
ãŸãã¯ïŒ
ããŠã³ããŒãããã¢ãŒã«ã€ããç®çã®ãã©ã«ããŒã«ã³ããŒããŠè§£åããŸãã
ã¢ãŒã«ã€ãã¯postgres-xlãã©ã«ããŒã«å±éããã次ã®ã³ãã³ãã§ç¢ºèªããŸãã
ãœãŒã¹ãã³ã³ãã€ã«ãããã®åŸã®ã€ã³ã¹ããŒã«ãšèµ·åãè¡ãã«ã¯ã次ã®ãããªéã«ãŒããŠãŒã¶ãŒã¢ã«ãŠã³ããå¿
èŠã§ãã
次ã«ããã¹ã¯ãŒããå
¥åããŠç¹°ãè¿ãããœãŒã¹ãã©ã«ããŒå
šäœã«ãã®ãŠãŒã¶ãŒæš©éãä»äžããŸãã
ã³ã³ãã€ã«ãéå§ããåã«./configureã䜿çšããŠãœãŒã¹ãæ§æããå¿
èŠããããŸãã次ã®ãªãã·ã§ã³ãæå®ããŠãã®ã³ãã³ãã䜿çšããŸããã
ãããã®ãªãã·ã§ã³ã®è©³çŽ°ã«ã€ããŠã¯ãå
¬åŒããã¥ã¡ã³ãããŒãžãã芧ãã ããã
ã¢ãžã¥ãŒã«ãå¿
èŠãªãå Žåã¯ãäŸåé¢ä¿ãã€ã³ã¹ããŒã«ãã段éã§ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããããšããæšæºæ§æã䜿çšããããšãã§ããŸããã
ã³ã³ãã€ã«ããããœãŒã¹ã移æ€å¯èœã«ããããïŒåã¯ã©ã¹ã¿ãŒããŒãã§åã®æé ããã¹ãŠå®è¡ããªãããã«ïŒããã©ã¡ãŒã¿ãŒ--prefixããã³--disable-rpathãããã«è¿œå ããå¿
èŠããããŸãã ãã®çµæãããã©ã«ããã©ã¡ãŒã¿ã䜿çšããã€ã³ã¹ããŒã«ã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
--prefixãã©ã¡ãŒã¿ãŒã¯ã€ã³ã¹ããŒã«ãã¹ã§ããããã©ã«ãã§ã¯ '/ usr / local / pgsql'ãšåãã§ã
--disable-rpathãã©ã¡ãŒã¿ãŒ-ãã®ãã©ã¡ãŒã¿ãŒã¯ãã³ã³ãã€ã«ããããœãŒã¹ã移æ€å¯èœã«ããŸãã
ããã§ãã³ã³ãã€ã«èªäœã«çŽæ¥é²ãããšãã§ããŸãã以åã«äœæããããŠãŒã¶ãŒã«ä»£ãã£ãŠå®è¡ããå¿
èŠããããŸãã
ã©ã¡ãã
ã³ã³ãã€ã«ãæåããå Žåããã°ã®æåŸã®è¡ã¯æ¬¡ã®ããã«ãªããŸãã
Postgres-XLãcontribãããã³HTMLããã¥ã¡ã³ããæ£åžžã«äœæãããŸããã ã€ã³ã¹ããŒã«ããæºåãã§ããŸããã
ããã ãã§ãïŒ ãã¹ãŠãã³ã³ãã€ã«ããããã/ usr / local / src / postgres-xlãã©ã«ããŒãã¯ã©ã¹ã¿ãŒã®ä»ã®ããŒãã«ã³ããŒããŠã€ã³ã¹ããŒã«ã§ããŸãã
ã€ã³ã¹ããŒã«ã¯æ¬¡ã®ã³ãã³ãã§å®è¡ãããŸãã
ã¯ã©ã¹ã¿ãŒã®ãã¹ãŠã®ããŒãã§ãã®ã³ãã³ããç¹°ãè¿ããæ§æã«é²ã¿ãŸãã
ããŒã4.æ§æ
æåã«ãã€ã³ã¹ããŒã«åŸã®èšå®ãè¡ãå¿
èŠããããŸãã ç°å¢å€æ°ã®å®£èšïŒ
次ã«ããã°ã€ã³ããå¿
èŠããããŸãã ãã°ã¢ãŠãã¯æ¬¡ã®ã³ãã³ãã§å®è¡ãããŸãã
次ã«ãã¯ã©ã¹ã¿ãŒããŒãã®æ§æãéå§ããŸãã ãŸããããŒã¿ãã©ã«ããŒãäœæãããµãŒããŒã®åœ¹å²ã«åŸã£ãŠåæåããŸãã
GTM1 / GTM2 ïŒ
NODE1 ïŒ
NODE2 ïŒ
次ã«ãã¯ã©ã¹ã¿ãŒããŒãã§æ§æãã¡ã€ã«ãç·šéããŸãã
GTM1 ïŒ
GTM2 ïŒ
NODE1 ïŒ
GTM_PROXYïŒ
ã³ãŒãã£ããŒã¿ãŒ1
Datanode1
NODE2 ïŒ
GTM_PROXYïŒ
ã³ãŒãã£ããŒã¿ãŒ2
Datanode2
ããã§èšå®ã®äœæ¥ãå®äºããŸããã 次ã®ã¹ãããã§ã¯ããã¹ãŠã®ãã¹ãã®CentOSãã¡ã€ã¢ãŠã©ãŒã«ã«äŸå€ãè¿œå ããŸãã
ãã ããGTM1 / GTM2ãã·ã³ã®å Žåã6666ããŒãã®ã¿ãéãã ãã§ååã§ãã
ããŒã5.ã¯ã©ã¹ã¿ãŒããŒãã®èµ·å
ããã§ãã¯ã©ã¹ã¿ãŒããŒãã®éå§ç¹ã«å°éããŸããã ã¯ã©ã¹ã¿ãŒããŒããèµ·åããã«ã¯ãpostgresãŠãŒã¶ãŒã«ä»£ãã£ãŠã察å¿ããããŒãã§æ¬¡ã®ã³ãã³ããå®è¡ããå¿
èŠããããŸãã
ããã§ãã
{data_dir} ãã¯GTMã®å¯Ÿå¿ãããã©ã«ããŒã®ååã¯ã
data / gtm_data ããdatanode1ã®å Žåã¯ã
data / data_datanode1 / ããªã©ã§ãã
ããããéå§/åæ¢/èªåéå§ãå¶åŸ¡ããå¥ã®ãã䟿å©ãªæ¹æ³ã玹ä»ããããšæããŸãã
ãœãŒã¹ãã©ã«ããŒã«ã¯ãPostgreSQLã®ãæ£åžžãªå¶åŸ¡ãçšã®SysVã¹ã¯ãªããããããŸãã ç§ãã¡ã®ã¿ã¹ã¯ã¯ãã¯ã©ã¹ã¿ãŒå
ã®ããŒãã®åããŒã«ã«ãããé©å¿ãããããšã§ãã ã¹ã¯ãªããèªäœãäœã§ããããèŠãŠã¿ãŸãããã
src / postgres-xl / contrib / start-scripts / linux ãã¹ãŠã®åœ¹å²ã«ã€ããŠããã®ã¹ã¯ãªãããç°ãªãååã§ãã£ã¬ã¯ããªã
/etc/rc.d/init.d/ ãã«ã³ããŒããŸãã
次ã®ãããªçµæã«ãªããŸããã
次ã«ãåããŒãã®ç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ããšã«ã¹ã¯ãªããã調æŽãå§ããŸãã ããã€ãã®å°ããªå€æŽã®åŸãGTMã®ã¹ã¯ãªããã¯æ¬¡ã®ããã«ãªãå§ããŸããïŒäŸ¿å®äžãã³ã¡ã³ããšéèŠã§ãªãé åãåé€ããŸããïŒã
ã芧ã®ãšãããã
$ PGHOME / bin ããPATHå€æ°ã«è¿œå ããDAEMONãåé€ããPGCTLã§GTMããã³GTM_PROXYããŒã«ã管çããããã®ã
$ PGHOME / bin ã
ãã£ã¬ã¯ããªã®gtm_ctlãŠãŒãã£ãªãã£ãžã®ãã¹ãèšå®ããããŒããèµ·åããããã«å¿
èŠãªPGROLEå€æ°ãè¿œå ããŸããã¯ã©ã¹ã¿ãŒã
ã¯ã©ã¹ã¿å
ã®æ®ãã®ããŒã«ã«ãã®ãããªã¹ã¯ãªããã䜿çšããã«ã¯ãPGDATAãPGROLEãPGCTLã®3ã€ã®å€æ°ã®ã¿ãç·šéããå¿
èŠããããŸãã
PGDââATAã¯ããã®ããŒãããŒã«ã®ããŒã¿ãã£ã¬ã¯ããªãžã®
ãã¹ã§ãã
PGROLE-ã¯ã©ã¹ã¿ãŒå
ã®ãã®ã€ã³ã¹ã¿ã³ã¹ã®åœ¹å²ã gtmãgtm_proxyãcoordinatorãdatanodeãçºçããŸãã
PGCTLã¯ãµãŒããŒã¹ã¿ãŒãã¢ãããŠãŒãã£ãªãã£ã§ããgtmããã³gtm_proxyã®å Žå㯠'
gtm_ctl 'ãã³ãŒãã£ããŒã¿ãŒããã³ããŒã¿ããŒãã®å Žå㯠'
pg_ctl 'ã§ãã
ãã¹ãã¯ã©ã¹ã¿ãŒã®æ®ãã®ããŒãã«å®å
šãªå€æŽãå ããŸãã
GTM_PROXY1 ïŒ
GTM_PROXY2 ïŒ
COORDINATOR1 ïŒ
COORDINATOR2 ïŒ
DATANODE1 ïŒ
DATANODE2 ïŒ
ã»ãŒå®äºïŒ 次ã«ãåããŒãã§é©åãªã³ãã³ããå®è¡ããŠããããã®ã¹ã¯ãªãããå®è¡å¯èœã«ããå¿
èŠããããŸãã
次ã«ãããŒãã¹ãã©ããã«ã¹ã¯ãªãããè¿œå ããŸãã
ãããŠå®è¡ïŒ
ããŒã¿ãã£ã¬ã¯ããªã®ãã°ãã¡ã€ã«ã§èµ·åãã©ã®ããã«è¡ããããã確èªããããã³ãã³ããå®è¡ã§ããŸãã
ãã¹ãŠãããŸããã£ãå ŽåãããŒãã®æ§æã«é²ã¿ãŸãã
ããŒã6.ã¯ã©ã¹ã¿ãŒããŒãã®æ§æ
ããã¥ã¢ã«ã«åŸã£ãŠã¯ã©ã¹ã¿ãŒããŒããæ§æããŸãããã
ã³ãã³ãã§äœãèµ·ãã£ããã確èªã§ããŸãïŒ
$ psql -p 5432 -c "select * from pgxc_node"
ãã¹ãŠãæ£åžžãªå ŽåãããŒã«ãåèµ·åããŸãã
$ psql -p 5432 -c "select pgxc_pool_reload()"
èšå®ãæåãããšãã³ãã³ãã¯ã
t ããã€ãŸã
trueãè¿ã
ãŸã ã
ã»ãšãã©ã®ããã¥ã¢ã«ã§ã¯ããã®æé ã®åŸããã¹ãããŒãã«ã®äœæãšãã¹ãã¯ãšãªã®å®è¡ãéå§ããŸããã99.9ïŒ
ã®ä¿èšŒã§ãINSERTãå®è¡ããããšãããšããããã®ãã°ããã°ã«èšé²ãããŸãã
ã¹ããŒãã¡ã³ãïŒãã¹ãéžæ112233445566ã0123456789ã«æ¿å
¥ããŸãã
ãšã©ãŒïŒããŒã¿ããŒãçªå·ãç¡å¹ã§ã
ãŸãã¯ãã
ã¹ããŒãã¡ã³ãïŒSET global_session TO coord2_21495; SET datestyle TO iso; SET client_min_messages TO notice; SET client_encoding TO UNICODE; SET bytea_output TO escape;
ãšã©ãŒïŒããŒã¿ããŒãçªå·ãç¡å¹ã§ã
STATEMENTïŒãªã¢ãŒããµããã©ã³
ãšã©ãŒïŒããŒã "coord2_21580"ã¯ååšããŸãã
ã¹ããŒãã¡ã³ãïŒset global_session TO coord2_21580; SET datestyle TO iso; SET client_min_messages TO notice; SET client_encoding TO UNICODE; SET bytea_output TO escape;
ãšã©ãŒïŒããŒã¿ããŒãçªå·ãç¡å¹ã§ã
STATEMENTïŒãªã¢ãŒããµããã©ã³
ãšã©ãŒïŒããŒã¿ããŒãçªå·ãç¡å¹ã§ã
STATEMENTïŒãªã¢ãŒããµããã©ã³
ãšã©ãŒïŒããŒã¿ããŒãçªå·ãç¡å¹ã§ã
STATEMENTïŒãªã¢ãŒããµããã©ã³
ãã°ïŒXID = 96184ããœãŒã¹= 0ãgxmin = 0ãautovac launch = 0ãautovac = 0ãnormProcMode = 0ãpostEnv = 1ã®ããŒã«ã«ã¹ãããã·ã§ããã«ãã©ãŒã«ããã¯ããŸã
ãšã©ãŒïŒããŒã "coord2_22428"ã¯ååšããŸãã
STATEMENTïŒSET global_session TO coord2_22428;
ãšã©ãŒïŒããŒã¿ããŒãçªå·ãç¡å¹ã§ã
ãã¹ãŠãã¢ã¹ãã¡ã«ãã®2æ¬ã®æãšåããããåçŽãªãçµéšè
åããã®æœè±¡åãããããã¥ã¢ã«ã§ã¯ãéèŠãªã¹ããããèŠéããŸãã-DATANODEèªäœã®ä»ã®ããŒããåããããã§ãã ãããŠãããã¯éåžžã«ç°¡åã«è¡ãããæ§æã®äž¡æ¹ã®ããŒã¿ããŒãã§æ¬¡ã®ããšãè¡ããŸãã
$ psql -p 5432 -c "EXECUTE DIRECT ON (datanode1) 'DELETE FROM pgxc_node'" $ psql -p 5432 -c "EXECUTE DIRECT ON (datanode1) 'create NODE coord1 WITH (TYPE=''coordinator'',HOST=''192.168.1.102'',PORT=5432)'" $ psql -p 5432 -c "EXECUTE DIRECT ON (datanode1) 'create NODE coord2 WITH (TYPE=''coordinator'',HOST=''192.168.1.103'',PORT=5432)'" $ psql -p 5432 -c "EXECUTE DIRECT ON (datanode1) 'create NODE datanode1 WITH (TYPE=''datanode'',HOST=''192.168.1.102'',PORT=15432)'" $ psql -p 5432 -c "EXECUTE DIRECT ON (datanode1) 'create NODE datanode2 WITH (TYPE=''datanode'',HOST=''192.168.1.103'',PORT=15432)'" $ psql -p 5432 -c "EXECUTE DIRECT ON (datanode1) 'SELECT pgxc_pool_reload()'"
ãããã£ãŠãè¡
EXECUTE DIRECT ONïŒdatanode1ïŒ
ã«å€æŽ
EXECUTE DIRECT ONïŒããŒã¿ããŒã2ïŒ
ããŒãçªå·2ã®å Žåã
ãããŠåºæ¥äžããïŒ ããã§ãããŒãã«ãå®å
šã«äœæããã¯ã©ã¹ã¿ãŒããã¹ãã§ããŸãã ããããããã¯å
šãç°ãªã話ã§ã...
ãããã«
ããã ãã§ãããã¹ãŠãã»ããã¢ããããããã¹ãŠãæ©èœããŸããè€éãªããšã¯äœããªãããã«æãããŸãããã®èšäºã§ã¯ã1é±éã®æ€çŽ¢ãšå«ç
ã®ããã¥ã¢ã«ãé ããŠããŸãã ãœãŒã¹ã³ãŒãã®ããŠã³ããŒã/ã³ã³ãã€ã«ããã³ã€ã³ã¹ããŒã«ã®æ®µéã¯çŸåšãæãç¡å®³ã§ããããã«èŠããŸãããå®éã«ã¯å€ãã®åé¡ããããŸããïŒãã¡ãããç§ã®çµéšã¯ãã®ãããªç°å¢ã§åããŠããããšã§ãïŒãäŸãã°ã³ãŒãã¯é åºã«ã³ã³ãã€ã«ããŠãã®ãããªãšã©ãŒãæããããããŸããã§ããïŒ
'/ usr / bin / perl' /bin/collatââeindex.pl -f -g -i 'bookindex' -o bookindex.sgml HTML.index
perlã¹ã¯ãªãã "/bin/collatââeindex.pl"ãéããŸããïŒãã®ãããªãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªã¯ãããŸãã
make [4]ïŒ*** [bookindex.sgml]ãšã©ãŒ2
make [4]ïŒãã£ã¬ã¯ã㪠`/ usr / local / src / postgres-xl / doc-xc / src / sgmlãé¢ãã '
make [3]ïŒ*** [sql_help.h]ãšã©ãŒ2
make [3]ïŒãã£ã¬ã¯ã㪠`/ usr / local / src / postgres-xl / src / bin / psqlãæ®ã
make [2]ïŒ*** [all-psql-recurse]ãšã©ãŒ2
make [2]ïŒãã£ã¬ã¯ã㪠`/ usr / local / src / postgres-xl / src / binãé¢ãã
make [1]ïŒ*** [all-bin-recurse]ãšã©ãŒ2
make [1]ïŒãã£ã¬ã¯ã㪠`/ usr / local / src / postgres-xl / src 'ãé¢ãã
makeïŒ*** [all-src-recurse]ãšã©ãŒ2
åŸã«ãããäžåœã®ãã©ãŒã©ã ã§ã
docbook-style-dssslã©ã€ãã©ãªãªã©ãã€ã³ã¹ããŒã«ããå¿
èŠããããšããçããèŠã€ããŸãããçµéšã足ãããå®å
šãªããã¥ã¢ã«ïŒèªåãªã©ã®ãããŒïŒãäžè¶³ããŠãããããæ°ããªé©ãããããŸããã
ããã§ããæ
å ±ã®æ€çŽ¢ãæ°çŸåã®è©Šè¡é¯èª€ã®åŸããã¹ãŠãããŸããããã¯ã©ã¹ã¿ãŒãèµ·åããŸããã
ãã®åºçç©ãå°ãªããšãå°ã楜ã«ãªããã圹ã«ç«ã€ããšãé¡ã£ãŠããŸãã
ããã«ãããŒããã©ã³ã¹ã®ã»ããã¢ããã«åãçµã¿ãWindowsãå®è¡ããŠããéåžžã®PostgreSQL 9.4ããCentOS 7.0äžã®ã¢ã»ã³ãã«ãããpostgres-xl 9.2ã¯ã©ã¹ã¿ãŒã«ããŒã¿ããŒã¹ã移è¡ããã¯ã©ã¹ã¿ãŒå
ã®ãããžã§ã¯ãã§æãéãã¯ãšãªããã¹ãããã¹ã¿ã³ãã¢ãã³PostgreSQLã®çµæãšæ¯èŒãããã¥ãŒãã³ã°ãè¡ãäºå®ã§ãã¯ã©ã¹ã¿èšå®ãã¯ã©ã¹ã¿å
ã®PostGISã§ã®ãã¬ã€ãªã©ã ããã§ããã®èšäºãŸãã¯ç§ããªã¹ããããã®ãããããã¹ã¯åžæ°ã«åœ¹ç«ã€ãªããç§ã¯åãã§ããªããšãããå
±æããŸãã
ãæž
èŽããããšãããããŸããã