日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

萬字詳述 MySQL ProxySQL

 

ProxySQL是用C++語言開發(fā)的,一個(gè)輕量級開源軟件,性能和功能滿足讀寫中間件所需的絕大多數(shù)功能,其配置數(shù)據(jù)基于SQLite存儲,目前已到v2.0.13版本。

功能方面如下:

  • 最基本的讀/寫分離,且方式有多種。
  • 可定制基于用戶、基于schema、基于語句的規(guī)則對SQL語句進(jìn)行路由。換句話說,規(guī)則很靈活。基于schema和與語句級的規(guī)則,可以實(shí)現(xiàn)簡單的sharding。
  • 不支持分表,可以分庫,但利用規(guī)則配置實(shí)現(xiàn)分表。
  • 可緩存查詢結(jié)果。基本ProxySQL的緩存策略實(shí)現(xiàn)了基本的緩存功能,絕大多數(shù)時(shí)候夠用。支持動(dòng)態(tài)加載配置,即一般可以在線修改配置,但有少部分參數(shù)還是需要重啟來生效。支持query cache。支持對query的路由,可以針對某個(gè)語句進(jìn)行分配執(zhí)行實(shí)例。
  • 監(jiān)控后端節(jié)點(diǎn)。ProxySQL可以監(jiān)控后端節(jié)點(diǎn)的多個(gè)指標(biāo),包括:ProxySQL和后端的心跳信息,后端節(jié)點(diǎn)的read-only/read-write,slave和master的數(shù)據(jù)同步延遲性 (replication lag)。

特性方面:

  • 連接池,而且是 multiplexing;
  • 主機(jī)和用戶的最大連接數(shù)限制;
  • 自動(dòng)下線后端DB;延遲超過閥值ping 延遲超過閥值網(wǎng)絡(luò)不通或宕機(jī)
  • 強(qiáng)大的規(guī)則路由引擎;實(shí)現(xiàn)讀寫分離查詢重寫sql流量鏡像
  • 支持prepared statement;
  • 支持Query Cache;
  • 支持負(fù)載均衡,與gelera結(jié)合自動(dòng)failover;
  • 將所有配置保存寫入到SQLit表中。
  • 支持動(dòng)態(tài)加載配置,即一般可以在線修改配置,但有少部分參數(shù)還是需要重啟來生效。
  • 支持query cache。
  • 支持對query的路由。
  • 不支持分表,可以分庫,但是利用規(guī)則配置實(shí)現(xiàn)分表。

ProxySQL:

官方站點(diǎn)

官方github

percona ProxySQL手冊

下面基于2.0.10版本所有操作。

安裝部署

安裝地址

官方說明

proxysql服務(wù)器上安裝MySQL客戶端,用于在本機(jī)連接到ProxySQL的管理接口

一、tar.gz安裝

[root@ss30 proxysql-2.0.10]# tar -xvf proxysql-2.0.10.tar.gz.gz 
[root@ss30 proxysql-2.0.10]# cd proxysql-2.0.10/
[root@ss30 proxysql-2.0.10]# make -j 4
[root@ss30 proxysql-2.0.10]# make install DESTDIR=/opt/idc/proxysql-2.0.10
make[1]: Leaving directory `/opt/idc/softwares/proxysql-2.0.10/src'
[root@ss30 proxysql-2.0.10]# make install DESTDIR=/opt/idc/proxysql-2.0.10
install -m 0755 src/proxysql /usr/bin
install -m 0600 etc/proxysql.cnf /etc
if [ ! -d /var/lib/proxysql ]; then mkdir /var/lib/proxysql ; fi
Creating proxysql user and group
useradd -r -U -s /bin/false proxysql
install -m 0644 systemd/system/proxysql.service /usr/lib/systemd/system/
systemctl enable proxysql.service
Created symlink from /etc/systemd/system/multi-user.target.wants/proxysql.service to /usr/lib/systemd/system/proxysql.service.

卸載:make uninstall

二、rpm包安裝

rpm解壓即可,會在/usr/local/proxysql 生成文件

[root@ss30 softwares]# rpm -ivh proxysql-2.0.10-1-centos7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:proxysql-2.0.10-1                warning: group proxysql does not exist - using root
warning: group proxysql does not exist - using root
################################# [100%]
Created symlink from /etc/systemd/system/multi-user.target.wants/proxysql.service to /etc/systemd/system/proxysql.service.

三、啟動(dòng)服務(wù)

[root@ss30 softwares]# systemctl start proxysql
[root@ss30 softwares]# ps -ef | grep proxy
proxysql   3964      1  0 21:01 ?        00:00:00 /usr/bin/proxysql -c /etc/proxysql.cnf
proxysql   3965   3964  7 21:01 ?        00:00:00 /usr/bin/proxysql -c /etc/proxysql.cnf
root       3989  77420  0 21:01 pts/2    00:00:00 grep --color=auto proxy

服務(wù)命令:systemctl start | stop | restart | statu proxysql

四、配置信息

ProxySQL很少停止或重啟,因?yàn)榻^大多數(shù)配置都可以在線修改。

服務(wù)啟動(dòng)配置文件

[root@ss30 proxysql-2.0.10]# vim /etc/systemd/system/proxysql.service 
[Unit]
Description=High Performance Advanced Proxy for MySQL
After=network.target

[Service]
Type=forking
RuntimeDirectory=proxysql
#PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mkdir -p /var/run/proxysql /var/run/proxysql
#ExecStartPre=/usr/bin/chown -R proxysql: /var/run/proxysql/
ExecStart=/usr/bin/proxysql -c /etc/proxysql.cnf
#PIDFile=/var/lib/proxysql/proxysql.pid
#StandardError=null  # all output is in stderr
SyslogIdentifier=proxysql
Restart=no
User=proxysql
Group=proxysql
PermissionsStartOnly=true
UMask=0007
LimitNOFILE=102400
LimitCORE=1073741824
ProtectHome=yes
NoNewPrivileges=true
CapabilityBoundingSet=CAP_SETGID CAP_SETUID CAP_SYS_RESOURCE
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_ALG
ProtectSystem=full
PrivateDevices=yes

[Install]
WantedBy=multi-user.target

五、參數(shù)配置文件

[root@ss30 softwares]# vim /etc/proxysql.cnf 
datadir="/var/lib/proxysql"
errorlog="/var/lib/proxysql/proxysql.log"

admin_variables=
{
        admin_credentials="admin:admin"
#       mysql_ifaces="127.0.0.1:6032;/tmp/proxysql_admin.sock"
        mysql_ifaces="0.0.0.0:6032"
#       refresh_interval=2000
#       debug=true
}
......

ProxySQL結(jié)構(gòu)

萬字詳述 MySQL ProxySQL

 

  • Qurey Processor 用于匹配查詢規(guī)則并根據(jù)規(guī)則決定是否緩存查詢或者將查詢加入黑名單或者重新路由、重寫查詢或者鏡像查詢到其他hostgroup。
  • User Auth 為底層后端數(shù)據(jù)庫認(rèn)證提供了用戶憑證。
  • Hostgroup manager – 負(fù)責(zé)管理發(fā)送SQL請求都后端數(shù)據(jù)庫并跟蹤SQL請求狀態(tài)。
  • Connection pool – 負(fù)責(zé)管理后端數(shù)據(jù)庫連接,連接池中建立的連接被所有的前端應(yīng)用程序共享。
  • Monitoring – 負(fù)責(zé)監(jiān)控后端數(shù)據(jù)庫健康狀態(tài)主從復(fù)制延時(shí)并臨時(shí)下線不正常的數(shù)據(jù)庫實(shí)例。

一、啟動(dòng)過程

萬字詳述 MySQL ProxySQL

 

  • RUNTIME層代表的是ProxySQL當(dāng)前生效的配置,包括 globalvariables, mysqlservers, mysqlusers, mysqlquery_rules。無法直接修改這里的配置,必須要從下一層load進(jìn)來
  • MEMORY層是平時(shí)在mysql命令行修改的 main 里頭配置,可以認(rèn)為是SQLite數(shù)據(jù)庫在內(nèi)存的鏡像。該層級的配置在main庫中以mysql開頭的表以及globalvariables表,這些表的數(shù)據(jù)可以直接修改;
  • DISK|CONFIG FILR層持久存儲的那份配置,一般在$(DATADIR)/proxysql.db,在重啟的時(shí)候會從硬盤里加載。 /etc/proxysql.cnf文件只在第一次初始化的時(shí)候用到,完了后,如果要修改監(jiān)聽端口,還是需要在管理命令行里修改,再 save 到硬盤。

注意:

如果找到數(shù)據(jù)庫文件(proxysql.db),ProxySQL 將從 proxysql.db 初始化其內(nèi)存中配置。因此,磁盤被加載到 MEMORY 中,然后加載到 RUNTIME 中。

如果找不到數(shù)據(jù)庫文件(proxysql.db)且存在配置文件(proxysql.cfg),則解析配置文件并將其內(nèi)容加載到內(nèi)存數(shù)據(jù)庫中,然后將其保存在 proxysql.db 中并在加載到 RUNTIME。

請務(wù)必注意,如果找到 proxysql.db,則不會解析配置文件。也就是說,在正常啟動(dòng)期間,ProxySQL 僅從持久存儲的磁盤數(shù)據(jù)庫初始化其內(nèi)存配置。

二、數(shù)據(jù)庫結(jié)構(gòu)

ProxySQL自身共有5個(gè) 庫,分別為3個(gè)保存在內(nèi)存中的庫,和三個(gè)保存在磁盤的SQLite庫。

通過6032管理端口登入后,默認(rèn)就是main庫,所有的配置更改都必須在這個(gè)庫中進(jìn)行,disk存檔庫不會直接受到影響。接下來看下

[root@ss30 proxysql-2.0.10]# mysql -uadmin -padmin -h127.0.0.1 -P6032
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.5.30 (ProxySQL Admin Module)
mysql> show databases;
+-----+---------------+-------------------------------------+
| seq | name          | file                                |
+-----+---------------+-------------------------------------+
| 0   | main          |                                     |
| 2   | disk          | /var/lib/proxysql/proxysql.db       |
| 3   | stats         |                                     |
| 4   | monitor       |                                     |
| 5   | stats_history | /var/lib/proxysql/proxysql_stats.db |
+-----+---------------+-------------------------------------+
5 rows in set (0.00 sec)
  • main:內(nèi)存配置數(shù)據(jù)庫,表里存放后端db實(shí)例、用戶驗(yàn)證、路由規(guī)則等信息。表名以 runtime開頭的表示proxysql當(dāng)前運(yùn)行的配置內(nèi)容,不能通過dml語句修改,只能修改對應(yīng)的不以 runtime 開頭的(在內(nèi)存)里的表,然后 LOAD 使其生效, SAVE 使其存到硬盤以供下次重啟加載。
  • disk:是持久化到硬盤的配置,sqlite數(shù)據(jù)文件。SQLite3 數(shù)據(jù)庫,默認(rèn)位置為 $(DATADIR)/proxysql.db,在重新啟動(dòng)時(shí),未保留的內(nèi)存中配置將丟失。因此,將配置保留在 DISK 中非常重要。(SQLite是一個(gè)進(jìn)程內(nèi)的庫,實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫引擎)
  • stats:proxysql運(yùn)行抓取的統(tǒng)計(jì)信息,包括到后端各命令的執(zhí)行次數(shù)、流量、processlist、查詢種類匯總/執(zhí)行時(shí)間等等。
  • monitor:庫存儲 monitor 模塊收集的信息,主要是對后端db的健康/延遲檢查。
  • stats_history:統(tǒng)計(jì)信息歷史庫

三、核心配置表

萬字詳述 MySQL ProxySQL

 


萬字詳述 MySQL ProxySQL

 


萬字詳述 MySQL ProxySQL

 


萬字詳述 MySQL ProxySQL

 


萬字詳述 MySQL ProxySQL

 


萬字詳述 MySQL ProxySQL

 


萬字詳述 MySQL ProxySQL

 

五、小結(jié)

這些數(shù)據(jù)庫的功能實(shí)現(xiàn)了實(shí)用化內(nèi)容:

  • 允許輕松動(dòng)態(tài)更新配置,便于運(yùn)維管理,與MySQL兼容的管理界面可用于此目的。
  • 允許盡可能多的配置項(xiàng)目動(dòng)態(tài)修改,而不需要重新啟動(dòng)ProxySQL進(jìn)程
  • 可以毫不費(fèi)力地回滾無效配置
  • 通過多級配置系統(tǒng)實(shí)現(xiàn)的,其中設(shè)置從運(yùn)行時(shí)移到內(nèi)存,并根據(jù)需要持久保存到磁盤

ProxySQL讀寫分離配置

萬字詳述 MySQL ProxySQL

 

一、MySQL里創(chuàng)建賬號

數(shù)據(jù)庫段創(chuàng)建訪問用戶,監(jiān)控用戶

[root@ss30 ~]# mysql -uroot -p123456 -h127.0.0.1 -P3410
mysql>  GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'%' identified by '123456'  WITH GRANT OPTION;

mysql> create user monitor@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication client on *.* to monitor@'%';
Query OK, 0 rows affected (0.01 sec)

二、添加MySQL節(jié)點(diǎn)

...

? 接下來內(nèi)容請?jiān)L問原文(https://www.modb.pro/db/28841?YYF)進(jìn)行查看~

更多數(shù)據(jù)庫相關(guān)內(nèi)容,可訪問墨天輪(https://www.modb.pro/?YYF)進(jìn)行瀏覽。

分享到:
標(biāo)簽:MySQL ProxySQL
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定