day09_讀寫分離_Atlas小記

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by 'mysql';

FLUSH PRIVILEGES;


主從庫上全做
--------------------------------------------------------------------




yum install -y gcc*



rpm -ivh Atlas-2.2.1.el5.x86_64.rpm ? 【rpm包直接安裝】

rpm -ql Atlas 【查看安裝路徑】

grep -v '^#' /usr/local/mysql-proxy/conf/test.cnf ?|grep -v '^$' ?> /usr/local/mysql-proxy/conf/lipengfei ?【過濾垃圾提示符】

mv test.cnf test.cnf.old

cat /usr/local/mysql-proxy/conf/lipengfei > /usr/local/mysql-proxy/conf/test.cnf?

rm -rf /usr/local/mysql-proxy/conf/lipengfei



/usr/local/mysql-proxy/bin/encrypt mysql ? ? ? ? ? 【mysql是我的密碼,把密碼加密】
TWbz0dlu35U=


vi /usr/local/mysql-proxy/conf/test.cnf

[mysql-proxy]
plugins = admin,proxy
admin-username=admin
admin-password=admin
admin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-backend-addresses = 192.168.8.100:3306
proxy-read-only-backend-addresses = 192.168.8.101:3306,192.168.8.102:3306
pwds = root:TWbz0dlu35U=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
instance = test
proxy-address = 0.0.0.0:1234
admin-address = 0.0.0.0:5678
charset = utf8







查看監聽端口
netstat -tanlp | grep mysql


開啟?

/usr/local/mysql-proxy/bin/mysql-proxyd test start
/usr/local/mysql-proxy/bin/mysql-proxyd test stop


登錄管理

mysql -h 192.168.8.103 -P 5678 -u admin -padmin
正常通過代理操作

mysql -h 192.168.8.103 -P 1234 -u root -pmysql

SHOW VARIABLES LIKE 'server_id';



mysql> select * from help;
+-------------------+---------------------------------------+
| command ? ? ? ? ? ? ? ? ?| description ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+-------------------+---------------------------------------+
| SELECT * FROM help ? ? ? ? | shows this help ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| SELECT * FROM backends ? ? | lists the backends and their state ? ? ? ? ? ? ? ? ? ? ?|
| SET OFFLINE $backend_id ? | offline backend server, $backend_id is backend_ndx's id ?|
| SET ONLINE $backend_id ? ? | online backend server, ... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
| ADD MASTER $backend ? ? ? ?| example: "add master 127.0.0.1:3306", ... ? ? ? ? ? ? ? |
| ADD SLAVE $backend ? ? ? ? | example: "add slave 127.0.0.1:3306", ... ? ? ? ? ? ? ? ?|
| REMOVE BACKEND $backend_id | example: "remove backend 1", ... ? ? ? ? ? ? ? ? ? ? ? ?|
| ADD CLIENT $client ? ? ? ? | example: "add client 192.168.1.2", ... ? ? ? ? ? ? ? ? ?|
| REMOVE CLIENT $client ? ? ?| example: "remove client 192.168.1.2", ... ? ? ? ? ? ? ? |
| SAVE CONFIG ? ? ? ? ? ? ? ?| save the backends to config file ? ? ? ? ? ? ? ? ? ? ? ?|
+-------------------+---------------------------------------+
10 rows in set (0.00 sec)
mysql> select * from backends;
+-------------+-------------------+-------+------+
| backend_ndx ? ? ? | ? ? ? ? ? address ? ? ? ?| state ? ?| ?type ? |
+-------------+-------------------+-------+------+
| ? ? ? ? ? 1 ? ? ?| 192.168.0.42:3306 ? ? ? ? | down ? ? | rw ? ? ?|
| ? ? ? ? ? 2 ? ? ?| 192.168.0.44:3306 ? ? ? ? | down ? ? | ro ? ? ?|
| ? ? ? ? ? 3 ? ? ?| 192.168.0.43:3306 ? ? ? ? | down ? ? | ro ? ? ?|
+-------------+-------------------+-------+------+
3 rows in set (0.00 sec)









5678端口:是Atlas的管理接口,此接口提供了查看mysql狀態,設置上線、下線后端mysql服務器
訪問方法使用mysql命令

mysql -h 10.142.132.50 -P2345 -u admin -p'admin'

這里的用戶名密碼是上面配置文件中的admin-username = admin、admin-password = admin
下面是管理接口的使用幫助

SELECT * FROM help; ?# 查看幫助信息
SELECT * FROM backends; # 查看后端主機狀態
SET OFFLINE $backend_id ?# 下線一臺主機,$backend_id == SELECT * FROM backends;查出來的ID
SET ONLINE $backend_id ? # 上線一臺主機
ADD MASTER $backend ? ? ?# 添加一臺master節點,如: ADD MASTER 10.57.1.131;
ADD SLAVE $backend ? ? ? # 添加一臺slave節點,如 : ADD SLAVE 10.57.1.132;
REMOVE BACKEND $backend_id # 刪除一個節點,







自動讀寫分離挺好,但有時候我寫完馬上就想讀,萬一主從同步延遲怎么辦?
A: SQL語句前增加 /*master*/ 就可以將讀請求強制發往主庫




---------------------------------------------------------------------

將atlas設置成服務,并實現開機自動啟動

# 說明:作者僅在CentOS7.0上進行了測試,而且沒有進行可靠性和穩定性的測試!
cp /tmp/atlas /etc/rc.d/init.d/atlas
chmod +x /etc/rc.d/init.d/atlas
chkconfig --add atlas
chkconfig atlas on



#!/bin/sh
#description: atlas autorun
#your instance name
instance_name=test
case "$1" in?
"start")
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name start
;;?
"stop")?
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name stop
;;?
"restart")?
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name restart
;;?
"status")?
/usr/local/mysql-proxy/bin/mysql-proxyd $instance_name status
;;?
*)?
echo "Usage: service atlas start/stop/restart/status " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
;;?
esac
使用命令如下:
service atlas start
service atlas stop
service atlas status
service atlas restart ?

----------------------------------------------------




監控atlas腳本

cat /usr/local/mysql-proxy/bin/monitor_atlas.sh

#!/bin/bash
if ?[ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then
/usr/local/mysql-proxy/bin/mysql-proxyd test start
sleep 5
if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ?];then
killall -9 keepalived
service network restart
fi
fi





chmod +x /usr/local/mysql-proxy/bin/monitor_atlas.sh




------------------------配置文件說明------------------------
[mysql-proxy]
#管理接口的用戶名,根據自己需要定義
admin-username = admin
#管理接口的密碼
admin-password = password
#Atlas后端連接的MySQL主庫的IP和端口,可設置多項,用逗號分隔
proxy-backend-addresses = 10.57.1.131:3306
#Atlas后端連接的MySQL從庫的IP和端口,@后面的數字代表權重,用來作負載均衡,若省略則默認為1,可設置多項,用逗號分隔
proxy-read-only-backend-addresses = 10.57.1.132:3306@1
#用戶名與其對應的加密過的MySQL密碼,密碼使用PREFIX/bin目錄下的加密程序encrypt加密,下行的user1和user2為示例,將其替換為你的MySQL的用戶名和加密密碼!
pwds = root:YQsbJY4G4oc=,test:YQsbJY4G4oc=
# 需要注意的是,這兩個用戶要在MySQL-Master上創建并開放對應的訪問權限,這里的用戶是需要對外開放使用的用戶
#設置Atlas的運行方式,設為true時為守護進程方式,設為false時為前臺方式,一般開發調試時設為false,線上運行時設為true
daemon = true
#設置Atlas的運行方式,設為true時Atlas會啟動兩個進程,一個為monitor,一個為worker,monitor在worker意外退出后會自動將其重啟,設為false時只有worker,沒有monitor,一般開發調試時設為false,線上運行時設為true
keepalive = true
#工作線程數,對Atlas的性能有很大影響,可根據情況適當設置
event-threads = 8
#日志級別,分為message、warning、critical、error、debug五個級別
log-level = message
#日志存放的路徑
log-path = /usr/local/mysql-proxy/log
#SQL日志的開關,可設置為OFF、ON、REALTIME,OFF代表不記錄SQL日志,ON代表記錄SQL日志,REALTIME代表記錄SQL日志且實時寫入磁盤,默認為OFF
#sql-log = OFF
#實例名稱,用于同一臺機器上多個Atlas實例間的區分
#instance = test
#Atlas監聽的工作接口IP和端口
proxy-address = 0.0.0.0:3306
#Atlas監聽的管理接口IP和端口
admin-address = 0.0.0.0:2345
#連接池的最小空閑連接數,可根據業務請求量大小適當調大或調小
min-idle-connections = 128
#分表設置,此例中person為庫名,mt為表名,id為分表字段,3為子表數量,可設置多項,以逗號分隔,若不分表則不需要設置該項
#tables = person.mt.id.3
#默認字符集,設置該項后客戶端不再需要執行SET NAMES語句
charset = utf8
#允許連接Atlas的客戶端的IP,可以是精確IP,也可以是IP段,以逗號分隔,若不設置該項則允許所有IP連接,否則只允許列表中的IP連接
client-ips = 127.0.0.1, 10.0.0
#Atlas前面掛接的LVS的物理網卡的IP(注意不是虛IP),若有LVS且設置了client-ips則此項必須設置,否則可以不設置
#lvs-ips = 192.168.1.1
# End


來自為知筆記(Wiz)


轉載于:https://www.cnblogs.com/xiaoxiao5ya/p/a867d29ca1b1f03a6b93b6a4022bfa8e.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396538.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396538.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396538.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Free Code Camp現在有本地組

by freeCodeCamp通過freeCodeCamp Free Code Camp現在有本地組 (Free Code Camp now has Local Groups) Our open source community was born online. And our campers are adept at using the internet to communicate. Most of this communication is just short text messa…

二十四點游戲python_[求助]關于二十四點游戲python

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓24點紙牌游戲的開發24點是一種老少咸宜的游戲,它的具體玩法如下:給玩家4張牌,每張牌的面值在1~13之間,允許其中有數值相同的牌。采用加、減、乘、除四則運算,允…

python-3.6.2安裝

1、下載python-3.6.2-amd64.exe安裝包 官網下載地址:https://www.python.org/ 2、Python安裝,雙擊傻瓜式安裝(用英文路徑,不要有空格), 特別要注意勾上Add Python 3.6 to PATH(勾選后&#xff0…

Siege壓力工具

Siege官方:http://www.joedog.org/ Siege下載:http://www.joedog.org/pub/siege/siege-latest.tar.gz Siege解壓并安裝:# tar -zxvf siege-latest.tar.gz # cd siege-latest/ #./configure #make #make installSiege使用:# siege -h 查看相關…

遞歸javascript_JavaScript中的遞歸

遞歸javascriptby Kevin Ennis凱文恩尼斯(Kevin Ennis) JavaScript中的遞歸 (Recursion in JavaScript) I’m just gonna get this out of the way right up front, because people get really angry otherwise:我只是直接解決這個問題,因為否則人們會非常生氣&…

python google drive api_Python管理Google Drive文件

背景Google Drive給我們提供了很多管理和共享文件的簡便方法,而且還是免費的(當然免費賬戶有一定存儲限制)。但是,對于某些edu用戶,Google Drive存儲不僅是免費的,而且是無配額限制的。您是否想知道如何從數據科學的角度充分利用這…

Struts2學習---基本配置,action,動態方法調用,action接收參數

首先我們先來直接配置,然后再來講原理: 第一步:jar包的引入: 我們可以到struts2的官網上下載: http://struts.apache.org/download.cgi#struts2513 然后解壓將里面的app文件夾下的示例war文件解壓,將里面的…

實現對數組找最大最小數

實現對數組找最大最小數 在用js的過程中我們往往會需要找到一個數組里最大或最小的數, 但是我們不能直接用Math.max(Arr)或Math.min(Arr),因為max()里面不能填數組,只能填連續的數。 那我們該怎么辦呢? 一定…

開源免費 低代碼平臺開源_行動透明:免費代碼營現已開源

開源免費 低代碼平臺開源by freeCodeCamp通過freeCodeCamp 行動透明:免費代碼營現已開源 (Transparency in Action: Free Code Camp is Now Open Source) We’re thrilled to announce that Free Code Camp is now fully open-source. Now you can fork our code b…

vc mysql init 崩潰_故障分析 | 崩潰恢復巨慢原因分析

作者:xuty本文來源:原創投稿*愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源。一、現象有個 MySQL 5.7 開發庫異常掛掉后,奔潰恢復一直處于如下位置,且持續了 2 小時左右才起來…

surfaceview結束后怎么處理_污泥壓濾機處理后的污泥怎么處置

在污泥處理處置中,污泥壓濾機處理污泥只是對污泥進行脫水,并沒有實現污泥資源化處置。再進行污泥“減量化、無害化、資源化”處理時,許多企業用污泥壓濾機對污泥脫水處理后就不知道怎么繼續處置了,從而使污泥餅無處可去&#xff0…

js數組詳解

1,什么是數組數組是值得有序集合,每個值叫做一個元素,而每個元素在數組中有一個位置,以數字表示,稱為索引。js的數組是無類型的,數組元素可以是任意類型,同一個數組中的不同元素可能是對象或數組…

[轉載]linux內存映射mmap原理分析

轉自:http://blog.csdn.net/yusiguyuan/article/details/23388771 內存映射,簡而言之就是將用戶空間的一段內存區域映射到內核空間,映射成功后,用戶對這段內存區域的修改可以直接反映到內核空間,同樣,內核空…

判斷一個指針有沒有free_Free Code Camp的每個人現在都有一個檔案袋

判斷一個指針有沒有freeby freeCodeCamp通過freeCodeCamp Free Code Camp的每個人現在都有一個檔案袋 (Everyone at Free Code Camp now has a Portfolio) Note: we originally published this on our now-defunct blog in January of 2015.注意:我們最初是在2015年…

冒泡、快速排序小結

1.冒泡排序 (1) 比較領近的兩個數 (2) 如果左邊的比右邊的數字大,則交換位置 (3) 向右移動一位,繼續比較相鄰的兩個數 排序示例: 一輪排序結束后,最大值的位置已經移動最右端,再次如此循環,最終經過n-1次則…

python中until函數_等待應用程序窗口:python中的pywinauto.timings.WaitUntilPasses

我試圖在pywinauto中使用waituntilpasses來給應用程序時間打開一個新窗口.我已使用SWAPY識別窗口詳細信息.為了進行測試,我手動打開了子窗口,因此WaitUntilPasses應該立即看到該窗口,但是沒有看到.語法顯示為OK,因為我可以找到并打印find_windows的輸出,如下所示:xx…

synchronized 異常_由淺入深,Java 并發編程中的 Synchronized

synchronized 作用synchronized 關鍵字是 Java 并發編程中線程同步的常用手段之一。1.1 作用:確保線程互斥的訪問同步代,鎖自動釋放,多個線程操作同個代碼塊或函數必須排隊獲得鎖,保證共享變量的修改能夠及時可見,獲得…

mysql正則通配符全解_mysql正則表達式與通配符

擴展正則表達式的一些字符是: “.”匹配任何單個的字符。 一個字符類“[...]”匹配在方括號內的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。為了命名字符的一個范圍,使用一個“-”。“[a-z]”匹配任何小寫字母,而“[0-9…

dos常用文件操作命令

1、DIR 含義: 顯示指定目錄下的文件和子目錄列表 類型: 內部命令 格式: DIR[drive:][path][filename][/p][/w][/A[[:]attributes]][/O[[:]sortorder]][/S][/B][/L] 舉例: DIR DIR D:\px2 DIR D:\px2\*.txt DIR /A:D /O:D 2、COPY…

使您的Java代碼聞起來很新鮮

by Marco Massenzio由Marco Massenzio 使您的Java代碼聞起來很新鮮 (Make your Java code smell nice and fresh) A few years ago I joined a startup working on a cloud enterprise service that was originally built by an offshore team.幾年前,我加入了一家…