mysql 主、從同步---amoeba讀寫分離

安裝mysql
下載mysql安裝源
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
安裝源
[root@master ~]# rpm -ivh mysql-community-release-el6-5.noarch.rpm
會添加兩個mysql下載源
mysql 主、從同步---amoeba讀寫分離

通過yum 安裝mysql 數據庫
[root@master ~]# yum -y install mysql-community-server mysql mysql-devel

安裝完成後啓動mysql服務 ---注意服務名”mysqld“
[root@master ~]# systemctl start mysqld

修改MySQL密碼 root用戶 5.6的版本
mysql> set password=password('Allen@86');

安裝兩臺MySQL ----master(主)-----slave(從)
修改master---的配置文件---/etc/my.cnf ----備份配置文件在修改
[root@master ~]# cp /etc/my.cnf /etc/my.cnf.bak
[root@master ~]# vim /etc/my.cnf
mysql 主、從同步---amoeba讀寫分離

mysql 主、從同步---amoeba讀寫分離

重啓MySQL
[root@master ~]# systemctl restart mysqld
進入MySQL數據庫
[root@master ~]# mysql -uroot -p
創建MySQL數據庫
mysql> create database testdb;
切換
mysql> use testdb;
創建表
mysql> create table t1(id int);
查看錶
mysql> show tables;

mysql 主、從同步---amoeba讀寫分離

在master上數據庫中對slave授權

mysql> grant all privileges on . to 'root'@'10.1.3.232' identified by 'Allen@86';
mysql> grant replication slave on . to [email protected] identified by 'Allen@86';
mysql> flush privileges;

查看master 狀態
mysql> show master status;
mysql 主、從同步---amoeba讀寫分離
#授權binlog事件
mysql> show binlog events;

mysql> show processlist;
mysql 主、從同步---amoeba讀寫分離

導出master數據庫

[root@master ~]# mysqldump -uroot -p testdb > testdb.sql #也可以導出數據庫,這裏注意我們root用戶是否有密碼
mysql 主、從同步---amoeba讀寫分離

同步到slave機器上
[root@master ~]# scp -r testdb.sql [email protected]:/root/ --這裏root是所在的機器用戶名,ip地址是從機地址

從機器設置
1、測試主服務器是否能連接
[root@slave ~]# mysql -uroot -p -h10.1.3.231
記得master、slave要關閉防火牆
[root@slave ~]# systemctl stop firewalld

查看版本
mysql> show variables like '%version%';
mysql 主、從同步---amoeba讀寫分離

導入數據庫
[root@slave ~]# mysql -uroot -p testdb < testdb.sql

server-id = 2 #從服務器ID號,不要和主ID相同 ,如果設置多個從服務器,每個從服務器必須有一個唯一的server-id值,必須與主服務器的以及其它從服務器的不相同。可以認爲server-id值類似於IP地址:這些ID值能唯一識別複製服務器羣集中的每個服務器實例。

啓動數據庫
使用--skip-slave-start 選項來啓動從數據庫,這樣不會立即啓動從數據庫服務的複製進程,方便我們對從數據庫做進一步的配置;
mysqld_safe --skip-slave-start &
[root@slave ~]# systemctl restart mysqld

進入mysql設置
stop slave; --先停止slave同步線程
mysql> change master to master_host='10.1.3.231',master_user='root',master_password='Allen@86',master_log_file='mysql-bin-master.000001',master_log_pos=829;
start slave;
show slave status; #查看數據同步情況
mysql> show slave status\G;

mysql 主、從同步---amoeba讀寫分離

測試master、slave數據同步

在master上
mysql> create table t2(id int,name char);
mysql 主、從同步---amoeba讀寫分離

在slave上查看的結果
mysql 主、從同步---amoeba讀寫分離

主從同步測試完成,
下一步完成讀、寫分離使用 amoeba工具
配置集羣過程
一、環境準備
1、部署分佈
amoeba:10.1.3.234
masterDB:10.1.3.231
slaveDB:10.1.3.232

2、因爲amoeba依賴java環境,(jdk1.5)
安裝java,1.8和8
oracle java和openjdk搞清

採用oracle java

下載JDK
官方網站 www.oracle.com
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html?ssSourceSiteId=otncn

wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm?AuthParam=1551071409_2be565241729e0b5315e551528e7d631

修改文件名
[root@amoeba ~]# mv jdk-8u201-linux-x64.rpm\?AuthParam\=1551071409_2be565241729e0b5315e551528e7d631 jdk-8u201-linux-x64.rpm
mysql 主、從同步---amoeba讀寫分離
安裝jdk
[root@amoeba ~]# rpm -ivh jdk-8u201-linux-x64.rpm
mysql 主、從同步---amoeba讀寫分離

--配置
打開/etc/profile在末尾添加如下內容:
JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
JRE_HOME=/usr/java/jdk1.8.0_201-amd64/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

保存後使其起作用
命令:source /etc/profile

二、安裝及其配置Amoeba
1、下載amoeba
地址:https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/3.x/amoeba-mysql-3.0.5-RC-distribution.zip/download
下載:wget 地址
注意:下載下來文件名稱爲:download
修改下文件名稱:
命令:mv download amoeba-mysql-3.0.5-RC-distribution.zip
安裝一個解壓工具
[root@amoeba ~]# yum -y install unzip

3、放到一個安裝的目錄下
自己創建一個目錄
命令:mkdir -p /usr/local/amoeba

拷貝到創建好的目錄下
命令:
cd amoeba-mysql-3.0.5-RC
cp -rf * /usr/local/amoeba

4、配置amoeba文件
進入到conf目錄下
1、配置dbServers.xml
詳細參考dbServers.xml樣例
mysql 主、從同步---amoeba讀寫分離
mysql 主、從同步---amoeba讀寫分離

2、配置ameoba.xml
詳細參考ameoba.xml樣例
mysql 主、從同步---amoeba讀寫分離
mysql 主、從同步---amoeba讀寫分離

3、啓動前配置下,java運行參數

如果報錯:
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
從錯誤文字上看,應該是由於stack size太小,導致JVM啓動失敗,要如何修改呢?
其實Amoeba已經考慮到這個問題,並將JVM參數配置寫在屬性文件裏。現在,讓我們通過該屬性文件修改JVM參數。
修改jvm.properties文件JVM_OPTIONS參數。

應該配置jvm.properties
修改JVM_OPTIONS參數:
改成:JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"
原爲:JVM_OPTIONS="-server -Xms256m -Xmx1024m -Xss196k -XX:PermSize=16m -XX:MaxPermSize=96m"
mysql 主、從同步---amoeba讀寫分離
4、啓動
命令:./bin/launcher
啓動成功
mysql 主、從同步---amoeba讀寫分離

在主庫服務器上對amoeba 機器授權
mysql> grant all privileges on . to 'root'@'10.1.3.244' identified by 'Allen@86';

5、進入MySQL終端
驗證是否能查看testdb;
命令:mysql>use testdb;
5.10、遠程登錄amoeda代理
命令:mysql -uroot -h192.168.1.21 -P8066 -p -P表示是amoeda端口

6、驗證讀寫分離
--關閉主服務(master)
systemctl stop mysqld
--插入表記錄
insert into t1 values(1000,'hao');
如果報錯表示必能寫入數據

select * form t1;
如果能出結果表示查詢是可以的

7、關閉ameoba
使用端口查詢進程:
yum -y install lsof
命令:lsof -i:8066
直接kill掉
命令:kill -9 {java 的 PID }

比如:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1867 root 65u IPv6 19062 0t0 TCP *:8066 (LISTEN)

直接運行:kill -9 1867

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章