您好,登錄后才能下訂單哦!
#####################################
主從同步: 讓其他數(shù)據(jù)庫服務(wù)器自動同步正在提供服務(wù)的數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)。
構(gòu)建主從同步
(a)確保主、從數(shù)據(jù)庫的數(shù)據(jù)相同
從庫必須要有主庫上的數(shù)據(jù)
(b)配置主服務(wù)器
啟用binlog日志,server_id,授權(quán)用戶
(c)配置從服務(wù)器
設(shè)置server_id
[master]
/etc/my.cnf
[mysqld]
server_id=11
log-bin=master11
binlog-format="mixed" /指定日志格式
#systemctl start mysqld
#mysql>grant replication slave on *.* slaveuser@"%" identified by "123456"; /授權(quán)slaveuser用戶在所有主機登錄,權(quán)限為replication slave
show master status; /查看binlog日志
[slave]
/etc/my.cnf
[mysqld]
server_id=12 /可以不啟用binlog日志
mysql>change master to
>master_host="192.168.4.11", /指出主服務(wù)器地址
>master_user="slaveuser", /指出使用slaveuser授權(quán)用戶登錄主服務(wù)器
>mster_password="123456", /授權(quán)用戶的密碼
>master_log_file="master11.000001", /指出主服務(wù)器現(xiàn)在的binlog日志
>master_log_pos=154; /主服務(wù)器binlog日志的偏移量
#start slave; /啟動復(fù)制
#show slave status; /查看slave狀態(tài)
slave_IO_running:yes /IO線程已運行
slave_SQL_running:yes /SQL線程已運行
IO線程: 復(fù)制master主機binlog日志文件里的SQL到本機的relay-log文件里
SQL線程: 執(zhí)行本機relay-log文件里的SQL語句,重現(xiàn)master數(shù)據(jù)操作
出現(xiàn)問題解決:
IO線程狀態(tài)是no ---> 沒有連接到主服務(wù)器上等
SQL線程狀態(tài)是no ---> 主從數(shù)據(jù)不同步等
#ls /var/lib/mysql
master.info /連接主服務(wù)器信息
relay-log.info /中繼日志消息
主機名-relay-bin.xxxxxx /中繼日志
主機名-relay-bin.index 中繼日志索引文件
主從同步模式
一主一從
一主多從
主從從(主---從(主)---從) /1是2的主,2是1的從且是3的主,3是2的從
主主結(jié)構(gòu)(互為主從)
主庫配置文件(對所有從服務(wù)器有效)
只允許同步的庫 binlog_do_db=庫1,庫2
不允許同步的庫 binlog_ignore_db=庫1,庫2
從庫配置文件
只允許同步的庫 replicate_do_db=庫1,庫2
不允許同步的庫 replicate_ignore_db=庫1,庫2
級連復(fù)制 log_slave_updates
#########################################
為了緩解主服務(wù)器的壓力,采用讀寫分離,即客戶端進行寫操作時,進入主服務(wù)器,客戶端進行讀操作時,進入從服務(wù)器
實現(xiàn)方式: maxscale軟件 + 一主一從
[master11]
[slave12]
slave12是master11的從服務(wù)器
[monitor13]
#rpm -ivh maxscale..
修改配置文件
/etc/maxscale.cnf
(a)指定數(shù)據(jù)庫服務(wù)器
[server1]
[server2]
(b)指定監(jiān)控的數(shù)據(jù)庫服務(wù)器
(c)指定讀寫在那些服務(wù)器之間執(zhí)行
(d)定義管理服務(wù)
(e)讀寫分離使用的端口 port=4006
(f)管理服務(wù)使用的端口 port=4009
(g)根據(jù)配置文件,在數(shù)據(jù)庫服務(wù)器上添加相應(yīng)的授權(quán)用戶
[master11]
>grant replication slave replication client on *.* to scalemon@"%" identified by "123456";
使用scalemon 用戶監(jiān)控讀寫分離服務(wù)器
>grant select on mysql.* to saclemax@"%" identified by "123456";
使用scalemax 用戶監(jiān)控登錄的用戶是否是數(shù)據(jù)庫的授權(quán)用戶
[monitor13]
maxscale --help
#maxscale -f /etc/maxsacle.cnf /啟動服務(wù)
#netstat -lnptu | grep :4006
maxadmin -uamdin -pmariadb -P4009
maxscale>list servers /列出監(jiān)控的服務(wù)器
#killall maxscale /殺死進程,停止服務(wù)
驗證
[宿主機254]
#mysql -h292.168.4.13 -P4006 -uuser -p123456
>select @@hostname /查看當(dāng)前處于哪個數(shù)據(jù)庫服務(wù)器
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。