日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

day09_读写分离_Atlas小记

發布時間:2023/11/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,proxyadmin-username=adminadmin-password=adminadmin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.luaproxy-backend-addresses = 192.168.8.100:3306proxy-read-only-backend-addresses = 192.168.8.101:3306,192.168.8.102:3306pwds = root:TWbz0dlu35U=daemon = truekeepalive = trueevent-threads = 8log-level = messagelog-path = /usr/local/mysql-proxy/loginstance = testproxy-address = 0.0.0.0:1234admin-address = 0.0.0.0:5678charset = 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;查出來的IDSET 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/atlaschmod +x /etc/rc.d/init.d/atlaschkconfig --add atlaschkconfig atlas on


#!/bin/sh#description: atlas autorun#your instance nameinstance_name=testcase "$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 startservice atlas stopservice atlas statusservice atlas restart ?
----------------------------------------------------



監控atlas腳本
cat /usr/local/mysql-proxy/bin/monitor_atlas.sh
#!/bin/bashif ?[ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ];then/usr/local/mysql-proxy/bin/mysql-proxyd test startsleep 5if [ $(ps -ef |grep 'mysql-proxy' |grep -v 'grep' |wc -l) -eq "0" ?];thenkillall -9 keepalivedservice network restartfifi




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,線上運行時設為truedaemon = true#設置Atlas的運行方式,設為true時Atlas會啟動兩個進程,一個為monitor,一個為worker,monitor在worker意外退出后會自動將其重啟,設為false時只有worker,沒有monitor,一般開發調試時設為false,線上運行時設為truekeepalive = 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

總結

以上是生活随笔為你收集整理的day09_读写分离_Atlas小记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。