2.鍦╨inux涓垏鎹㈠埌 /var/ftp/pub鐩綍涓嬶紝淇敼jdk1.6鐨勪嬌鐢ㄦ潈闄愶細(xì)#chmod u+x jdk-6u10-linux-i586-rpm.bin
3.瑙e帇騫跺畨瑁咃細(xì)#./ jdk-6u10-linux-i586-rpm.bin (榛樿瀹夎鍦?usr/java涓?
4.鐜鍙橀噺閰嶇疆錛?/p>
#vi /etc/profile
鍦ㄨprofile鏂囦歡涓坊鍔狅細(xì)
JAVA_HOME=/usr/java/jdk1.6.0_10
JRE_HOME=/usr/java/jdk1.6.0_10/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
娣誨姞瀹屾瘯淇濆瓨閫鍑?/p>
#source /etc/profile
#java -version
鏄劇ず java version "1.6.0_10" (jdk1.6瀹夎鎴愬姛)
鍗歌澆rpm鐗堢殑jdk錛?/p>
#rpm -qa|grep jdk
鏄劇ず錛歫dk-1.6.0_10-fcs
鍗歌澆錛?rpm -e --nodeps jdk-1.6.0_10-fcs
搴旂敤紼嬪簭client
database proxy
database闆嗙兢
鍦ㄦ湰嬈″疄鎴樹腑錛屽簲鐢ㄧ▼搴廲lient鍩轟簬c3p0榪炴帴鍚庣鐨刣atabase proxy銆俤atabase proxy璐熻矗綆$悊client瀹為檯璁塊棶database鐨勮礬鐢辯瓥鐣ワ紝閲囩敤寮婧愭鏋禷moeba銆俤atabase闆嗙兢閲囩敤mysql鐨刴aster-slave鐨剅eplication鏂規(guī)銆傛暣涓幆澧冪殑緇撴瀯鍥懼涓嬫墍紺猴細(xì)
瀹炴垬姝ラ涓庤瑙?/p>
涓.鎼緩mysql鐨刴aster-slave鐜
1錛夊垎鍒湪host1錛?0.20.147.110錛夊拰host2錛?0.20.147.111錛変笂瀹夎mysql錛?.0.45錛夛紝鍏蜂綋瀹夎鏂規(guī)硶鍙瀹樻柟鏂囨。
2錛夐厤緗甿aster
棣栧厛緙栬緫/etc/my.cnf錛屾坊鍔犱互涓嬮厤緗細(xì)
log-bin=mysql-bin #slave浼?xì)鍩轰簬姝og-bin鏉ュ仛replication
server-id=1 #master鐨勬爣紺?br />
binlog-do-db = amoeba_study #鐢ㄤ簬master-slave鐨勫叿浣撴暟鎹簱
鐒跺悗娣誨姞涓撻棬鐢ㄤ簬replication鐨勭敤鎴鳳細(xì)
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@10.20.147.111 IDENTIFIED BY '111111';
閲嶅惎mysql錛屼嬌寰楅厤緗敓鏁堬細(xì)
/etc/init.d/mysqld restart
鏈鍚庢煡鐪媘aster鐘舵侊細(xì)
3錛夐厤緗畇lave
棣栧厛緙栬緫/etc/my.cnf錛屾坊鍔犱互涓嬮厤緗細(xì)
server-id=2 #slave鐨勬爣紺?/p>
閰嶇疆鐢熸晥鍚庯紝閰嶇疆涓巑aster鐨勮繛鎺ワ細(xì)
mysql> CHANGE MASTER TO
-> MASTER_HOST='10.20.147.110',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='111111',
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=161261;
鍏朵腑MASTER_HOST鏄痬aster鏈虹殑ip錛孧ASTER_USER鍜孧ASTER_PASSWORD灝辨槸鎴戜滑鍒氭墠鍦╩aster涓婃坊鍔犵殑鐢ㄦ埛錛孧ASTER_LOG_FILE鍜孧ASTER_LOG_POS瀵瑰簲涓巑aster status閲岀殑淇℃伅
鏈鍚庡惎鍔╯lave錛?/p>
mysql> start slave;
4錛夐獙璇乵aster-slave鎼緩鐢熸晥
閫氳繃鏌ョ湅slave鏈虹殑log錛?var/log/mysqld.log錛夛細(xì)
100703 10:51:42 [Note] Slave I/O thread: connected to master 'repl@10.20.147.110:3306', replication started in log 'mysql-bin.000003' at position 161261
濡傜湅鍒頒互涓婁俊鎭垯璇佹槑鎼緩鎴愬姛錛屽鏋滄湁闂涔熷彲閫氳繃姝og鎵懼師鍥?/p>
浜?鎼緩database proxy
姝ゆ瀹炴垬涓璬atabase proxy閲囩敤amoeba 錛屽畠鐨勭浉鍏充俊鎭彲浠ユ煡闃呭畼鏂規(guī)枃妗o紝涓嶅湪姝よ榪?/p>
1錛夊畨瑁卆moeba
涓嬭澆amoeba錛?.2.0-GA錛夊悗瑙e帇鍒版湰鍦幫紙D:\openSource\amoeba-mysql-1.2.0-GA錛夛紝鍗沖畬鎴愬畨瑁?/p>
2錛夐厤緗產(chǎn)moeba
鍏堥厤緗畃roxy榪炴帴鍜屼笌鍚勫悗绔痬ysql鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭紙D:\openSource\amoeba-mysql-1.2.0-GA\conf\amoeba.xml錛夛細(xì)
<server>
<!-- proxy server緇戝畾鐨勭鍙?-->
<property name="port">8066</property>
<!-- proxy server緇戝畾鐨処P -->
<!--
<property name="ipAddress">127.0.0.1</property>
-->
<!-- proxy server net IO Read thread size -->
<property name="readThreadPoolSize">20</property>
<!-- proxy server client process thread size -->
<property name="clientSideThreadPoolSize">30</property>
<!-- mysql server data packet process thread size -->
<property name="serverSideThreadPoolSize">30</property>
<!-- socket Send and receive BufferSize(unit:K) -->
<property name="netBufferSize">128</property>
<!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). -->
<property name="tcpNoDelay">true</property>
<!-- 瀵瑰楠岃瘉鐨勭敤鎴峰悕 -->
<property name="user">root</property>
<!-- 瀵瑰楠岃瘉鐨勫瘑鐮?-->
<property name="password">root</property>
</server>
<server>
<!-- proxy server緇戝畾鐨勭鍙?-->
<property name="port">8066</property>
<!-- proxy server緇戝畾鐨処P -->
<!--
<property name="ipAddress">127.0.0.1</property>
-->
<!-- proxy server net IO Read thread size -->
<property name="readThreadPoolSize">20</property>
<!-- proxy server client process thread size -->
<property name="clientSideThreadPoolSize">30</property>
<!-- mysql server data packet process thread size -->
<property name="serverSideThreadPoolSize">30</property>
<!-- socket Send and receive BufferSize(unit:K) -->
<property name="netBufferSize">128</property>
<!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). -->
<property name="tcpNoDelay">true</property>
<!-- 瀵瑰楠岃瘉鐨勭敤鎴峰悕 -->
<property name="user">root</property>
<!-- 瀵瑰楠岃瘉鐨勫瘑鐮?-->
<property name="password">root</property>
</server>
浠ヤ笂鏄痯roxy鎻愪緵緇檆lient鐨勮繛鎺ラ厤緗?/p>
<dbServerList>
<dbServer name="server1">
<!-- PoolableObjectFactory瀹炵幇綾?-->
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">defaultManager</property>
<!-- 鐪熷疄mysql鏁版嵁搴撶鍙?-->
<property name="port">3306</property>
<!-- 鐪熷疄mysql鏁版嵁搴揑P -->
<property name="ipAddress">10.20.147.110</property>
<property name="schema">amoeba_study</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勭敤鎴峰悕 -->
<property name="user">root</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勫瘑鐮?-->
<property name="password"></property>
</factoryConfig>
<!-- ObjectPool瀹炵幇綾?-->
<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
<property name="maxActive">200</property>
<property name="maxIdle">200</property>
<property name="minIdle">10</property>
<property name="minEvictableIdleTimeMillis">600000</property>
<property name="timeBetweenEvictionRunsMillis">600000</property>
<property name="testOnBorrow">true</property>
<property name="testWhileIdle">true</property>
</poolConfig>
</dbServer>
<dbServer name="server2">
<!-- PoolableObjectFactory瀹炵幇綾?-->
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">defaultManager</property>
<!-- 鐪熷疄mysql鏁版嵁搴撶鍙?-->
<property name="port">3306</property>
<!-- 鐪熷疄mysql鏁版嵁搴揑P -->
<property name="ipAddress">10.20.147.111</property>
<property name="schema">amoeba_study</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勭敤鎴峰悕 -->
<property name="user">root</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勫瘑鐮?-->
<property name="password"></property>
</factoryConfig>
<!-- ObjectPool瀹炵幇綾?-->
<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
<property name="maxActive">200</property>
<property name="maxIdle">200</property>
<property name="minIdle">10</property>
<property name="minEvictableIdleTimeMillis">600000</property>
<property name="timeBetweenEvictionRunsMillis">600000</property>
<property name="testOnBorrow">true</property>
<property name="testWhileIdle">true</property>
</poolConfig>
</dbServer>
</dbServerList>
<dbServerList>
<dbServer name="server1">
<!-- PoolableObjectFactory瀹炵幇綾?-->
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">defaultManager</property>
<!-- 鐪熷疄mysql鏁版嵁搴撶鍙?-->
<property name="port">3306</property>
<!-- 鐪熷疄mysql鏁版嵁搴揑P -->
<property name="ipAddress">10.20.147.110</property>
<property name="schema">amoeba_study</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勭敤鎴峰悕 -->
<property name="user">root</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勫瘑鐮?-->
<property name="password"></property>
</factoryConfig>
<!-- ObjectPool瀹炵幇綾?-->
<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
<property name="maxActive">200</property>
<property name="maxIdle">200</property>
<property name="minIdle">10</property>
<property name="minEvictableIdleTimeMillis">600000</property>
<property name="timeBetweenEvictionRunsMillis">600000</property>
<property name="testOnBorrow">true</property>
<property name="testWhileIdle">true</property>
</poolConfig>
</dbServer>
<dbServer name="server2">
<!-- PoolableObjectFactory瀹炵幇綾?-->
<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
<property name="manager">defaultManager</property>
<!-- 鐪熷疄mysql鏁版嵁搴撶鍙?-->
<property name="port">3306</property>
<!-- 鐪熷疄mysql鏁版嵁搴揑P -->
<property name="ipAddress">10.20.147.111</property>
<property name="schema">amoeba_study</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勭敤鎴峰悕 -->
<property name="user">root</property>
<!-- 鐢ㄤ簬鐧婚檰mysql鐨勫瘑鐮?-->
<property name="password"></property>
</factoryConfig>
<!-- ObjectPool瀹炵幇綾?-->
<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
<property name="maxActive">200</property>
<property name="maxIdle">200</property>
<property name="minIdle">10</property>
<property name="minEvictableIdleTimeMillis">600000</property>
<property name="timeBetweenEvictionRunsMillis">600000</property>
<property name="testOnBorrow">true</property>
<property name="testWhileIdle">true</property>
</poolConfig>
</dbServer>
</dbServerList>
浠ヤ笂鏄痯roxy涓庡悗绔悇mysql鏁版嵁搴撴湇鍔″櫒閰嶇疆淇℃伅錛屽叿浣撻厤緗娉ㄩ噴寰堟槑鐧戒簡(jiǎn)
鏈鍚庨厤緗鍐欏垎紱葷瓥鐣ワ細(xì)
<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
<property name="LRUMapSize">1500</property>
<property name="defaultPool">server1</property>
<property name="writePool">server1</property>
<property name="readPool">server2</property>
<property name="needParse">true</property>
</queryRouter>
<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
<property name="LRUMapSize">1500</property>
<property name="defaultPool">server1</property>
<property name="writePool">server1</property>
<property name="readPool">server2</property>
<property name="needParse">true</property>
</queryRouter>
浠庝互涓婇厤緗笉鐒跺彂鐜幫紝鍐欐搷浣滆礬鐢卞埌server1錛坢aster錛夛紝璇繪搷浣滆礬鐢卞埌server2錛坰lave錛?/p>
3錛夊惎鍔╝moeba
鍦ㄥ懡浠よ閲岃繍琛孌:\openSource\amoeba-mysql-1.2.0-GA\amoeba.bat鍗沖彲錛?/p>
log4j:WARN log4j config load completed from file:D:\openSource\amoeba-mysql-1.2.0-GA\conf\log4j.xml
log4j:WARN ip access config load completed from file:D:\openSource\amoeba-mysql-1.2.0-GA/conf/access_list.conf
2010-07-03 09:55:33,821 INFO net.ServerableConnectionManager - Server listening on 0.0.0.0/0.0.0.0:8066.
涓?client绔皟鐢ㄤ笌嫻嬭瘯
1錛夌紪鍐檆lient璋冪敤紼嬪簭
鍏蜂綋紼嬪簭緇嗚妭灝變笉璇﹁堪浜?jiǎn)锛屽彧鏄竴涓渶鏅氱殑鍩轟簬mysql driver鐨刯dbc鐨勬暟鎹簱鎿嶄綔紼嬪簭
2錛夐厤緗暟鎹簱榪炴帴
鏈琧lient鍩轟簬c3p0錛屽叿浣撴暟鎹簮閰嶇疆濡備笅錛?/p>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:8066/amoeba_study" />
<property name="user" value="root" />
<property name="password" value="root" />
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="1" />
<property name="maxIdleTime" value="1800" />
<property name="acquireIncrement" value="1" />
<property name="maxStatements" value="0" />
<property name="initialPoolSize" value="1" />
<property name="idleConnectionTestPeriod" value="1800" />
<property name="acquireRetryAttempts" value="6" />
<property name="acquireRetryDelay" value="1000" />
<property name="breakAfterAcquireFailure" value="false" />
<property name="testConnectionOnCheckout" value="true" />
<property name="testConnectionOnCheckin" value="false" />
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:8066/amoeba_study" />
<property name="user" value="root" />
<property name="password" value="root" />
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="1" />
<property name="maxIdleTime" value="1800" />
<property name="acquireIncrement" value="1" />
<property name="maxStatements" value="0" />
<property name="initialPoolSize" value="1" />
<property name="idleConnectionTestPeriod" value="1800" />
<property name="acquireRetryAttempts" value="6" />
<property name="acquireRetryDelay" value="1000" />
<property name="breakAfterAcquireFailure" value="false" />
<property name="testConnectionOnCheckout" value="true" />
<property name="testConnectionOnCheckin" value="false" />
</bean>
鍊煎緱娉ㄦ剰鏄紝client绔彧闇榪炲埌proxy錛屼笌瀹為檯鐨勬暟鎹簱娌℃湁浠諱綍鍏崇郴錛屽洜姝dbcUrl銆乽ser銆乸assword閰嶇疆閮藉搴斾簬amoeba鏆撮湶鍑烘潵鐨勯厤緗俊鎭?/p>
3錛夎皟鐢ㄤ笌嫻嬭瘯
棣栧厛鎻掑叆涓鏉℃暟鎹細(xì)insert into zone_by_id(id,name) values(20003,'name_20003')
閫氳繃鏌ョ湅master鏈轟笂鐨勬棩蹇?var/lib/mysql/mysql_log.log錛?/p>
100703 11:58:42 1 Query set names latin1
1 Query SET NAMES latin1
1 Query SET character_set_results = NULL
1 Query SHOW VARIABLES
1 Query SHOW COLLATION
1 Query SET autocommit=1
1 Query SET sql_mode='STRICT_TRANS_TABLES'
1 Query SHOW VARIABLES LIKE 'tx_isolation'
1 Query SHOW FULL TABLES FROM `amoeba_study` LIKE 'PROBABLYNOT'
1 Prepare [1] insert into zone_by_id(id,name) values(?,?)
1 Prepare [2] insert into zone_by_id(id,name) values(?,?)
1 Execute [2] insert into zone_by_id(id,name) values(20003,'name_20003')
寰楃煡鍐欐搷浣滃彂鐢熷湪master鏈轟笂
閫氳繃鏌ョ湅slave鏈轟笂鐨勬棩蹇?var/lib/mysql/mysql_log.log錛?/p>
100703 11:58:42 2 Query insert into zone_by_id(id,name) values(20003,'name_20003')
寰楃煡slave鍚屾鎵ц浜?jiǎn)杩欐潯璇?/p>
鐒跺悗鏌ヤ竴鏉℃暟鎹細(xì)select t.name from zone_by_id t where t.id = 20003
閫氳繃鏌ョ湅slave鏈轟笂鐨勬棩蹇?var/lib/mysql/mysql_log.log錛?/p>
100703 12:02:00 33 Query set names latin1
33 Prepare [1] select t.name from zone_by_id t where t.id = ?
33 Prepare [2] select t.name from zone_by_id t where t.id = ?
33 Execute [2] select t.name from zone_by_id t where t.id = 20003
寰楃煡璇繪搷浣滃彂鐢熷湪slave鏈轟笂
騫朵笖閫氳繃鏌ョ湅slave鏈轟笂鐨勬棩蹇?var/lib/mysql/mysql_log.log鍙戠幇榪欐潯璇彞娌″湪master涓婃墽琛?/p>
閫氳繃浠ヤ笂楠岃瘉寰楃煡綆鍗曠殑master-slave鎼緩鍜屽疄鎴樺緱浠ョ敓鏁?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/cutesource/archive/2010/07/03/5710645.aspx