1 [root@amoeba tmp]# rpm -ivh jdk-8u144-linux-i586.rpm 2 [root@amoeba ~]# vi /etc/profile 3 #set java environment 4 java_home=/usr/java/jdk1.8.0_144/ 5 jre_home=/usr/java/jdk1.8.0_144/jre/ 6 class_path=.:$java_home/lib/dt.jar:$java_home/lib/tools.jar:$jre_home/lib 7 path=$path:$java_home/bin:$jre_home/bin 8 export java_home jre_home class_path path 9 [root@amoeba ~]# source /etc/profile 10 [root@amoeba ~]# java -version #验证是否安装成功
1 [root@amoeba tmp]# wget https://nchc.dl.sourceforge.net/project/amoeba/amoeba%20for%20mysql/3.x/amoeba-mysql-3.0.5-rc-distribution.zip 2 [root@amoeba tmp]# unzip amoeba-mysql-3.0.5-rc-distribution.zip -d /usr/local/ 3 [root@amoeba ~]# mv /usr/local/amoeba-mysql-3.0.5-rc/ /usr/local/amoeba
1 [root@amoeba ~]# vi /usr/local/amoeba/conf/dbservers.xml 2 …… 3 <property name="port">3306</property> #设置amoeba要连接的mysql数据库的端口,默认是3306。 4 <property name="schema">testdb</property> 5 #设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式,不支持use dbname指定缺省库,因为操作会调度到各个后端dbserver。 6 <property name="user">test1</property> 7 <property name="password">x12345678</property>
1 …… 2 <property name="maxactive">500</property> #最大连接数,默认500 3 <property name="maxidle">500</property> #最大空闲连接数 4 <property name="minidle">1</property> #最新空闲连接数 5 …… 6 <dbserver name="writedb" parent="abstractserver"> 7 #设置一个后端可写的dbserver,这里定义为writedb,这个名字可以任意命名,后面还会用到。 8 <factoryconfig> 9 <property name="ipaddress">172.24.8.100</property> 10 #设置后端可写dbserver ip。 11 </factoryconfig> 12 </dbserver> 13 14 <dbserver name="slave01" parent="abstractserver"> 15 <factoryconfig> 16 <property name="ipaddress">172.24.8.101</property> 17 </factoryconfig> 18 </dbserver> 19 20 <dbserver name="slave02" parent="abstractserver"> 21 <factoryconfig> 22 <property name="ipaddress">172.24.8.102</property> 23 </factoryconfig> 24 </dbserver> 25 26 <dbserver name="slave03" parent="abstractserver"> 27 <factoryconfig> 28 <property name="ipaddress">172.24.8.103</property> 29 </factoryconfig> 30 </dbserver> 31 32 <dbserver name="slave04" parent="abstractserver"> 33 <factoryconfig> 34 <property name="ipaddress">172.24.8.104</property> 35 </factoryconfig> 36 </dbserver> #以上设置四台后端可读节点信息。 37 <dbserver name="myslave" virtual="true"> 38 #设置定义一个虚拟的dbserver,实际上相当于一个dbserver组,这里将可读的数据库ip统一放到一个组中,将这个组的名字命名为myslave。 39 <poolconfig class="com.meidusa.amoeba.server.multipleserverpool"> 40 <!-- load balancing strategy: 1=roundrobin , 2=weightbased , 3=ha--> 41 <property name="loadbalance">1</property> #选择调度算法,1表示负载均衡,2表示权重,3表示ha, 这里选择1。 42 43 <!-- separated by commas,such as: server1,server2,server1 --> 44 <property name="poolnames">slave01,slave02,slave03,slave04</property> #myslave组成员。 45 </poolconfig> 46 </dbserver>
1 [root@amoeba ~]# vi /usr/local/amoeba/conf/amoeba.xml 2 …… 3 <property name="port">8066</property> #设置amoeba监听的端口,默认是8066 4 …… 5 <property name="ipaddress">127.0.0.1</property> #配置监听的接口,如果不设置,默认监听所以的ip 6 …… 7 <property name="user">root</property> 8 <property name="password">x120952576</property>
1 …… 2 <property name="defaultpool">writedb</property> #设置amoeba默认的池,这里设置为writedb 3 <property name="writepool">writedb</property> 4 <property name="readpool">myslave</property> 5 <property name="needparse">true</property> #取消注释,则指定前面定义好的俩个读写池。
1 [root@client ~]# mysql -ummm_test -px120952576 -h172.24.8.100 #从客户端使用可写vip连接数据库 2 mysql> create database testdb; #曾经testdb数据库 3 [root@master02 ~]# mysql -uroot -px120952576 #使用master02进入 4 mysql> show databases; #验证是否复制成功
1 [root@master01 ~]# mysql -uroot -px120952576 2 mysql> grant all on testdb.* to 'test1'@'172.24.8.14' identified by 'x12345678';
1 [root@amoeba ~]# /usr/local/amoeba/bin/launcher
1 [root@amoeba ~]# vim /usr/local/amoeba/jvm.properties 2 jvm_options="-server -xms2048m -xmx2048m -xss512k -xx:permsize=16m -xx:maxpermsize=96m"
1 [root@amoeba ~]# /usr/local/amoeba/bin/launcher & #建议直接放入后台启动 2 [root@amoeba ~]# echo "/usr/local/amoeba/bin/launcher &" >> /etc/rc.local
1 [root@master01 ~]# touch /var/log/mysql_query_log 2 [root@master01 ~]# chown mysql:mysql /var/log/mysql_query_log 3 [root@master01 ~]# vi /etc/my.cnf 4 general_log=on 5 general_log_file=/var/log/mysql_query_log.log
1 [root@master01 ~]# mysql -uroot -px120952576 2 mysql> use testdb; 3 mysql> create table mmm_test(id int,email varchar(60)); 4 mysql> insert into mmm_test (id,email) values (100,'ip is 172.24.8.10');
1 [root@client ~]# mysql -uroot -h172.24.8.14 -px120952576 -p8066 2 mysql> select * from testdb.mmm_test;
1 [root@master01 ~]# tail -f /var/log/mysql_query_log | grep mmm_test 2 #所有节点执行此命令,观察log信息。 3 [root@client ~]# mysql -uroot -h172.24.8.14 -px120952576 -p8066 4 mysql> create table mmm_test1(id int,email varchar(60)); 5 mysql> insert into mmm_test1 (id,email) values (104,'ip is 172.24.8.14');
如对本文有疑问, 点击进行留言回复!!
一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起
网友评论