標籤:#### 伺服器 iad mdi mat 中繼日誌 主機名稱 用戶端 update
#####################################
MySQL資料庫主從同步
主從同步: 讓其他資料庫伺服器自動同步正在提供服務的資料庫伺服器上的資料。構建主從同步(a)確保主、從資料庫的資料相同從庫必須要有主庫上的資料(b)配置主伺服器啟用binlog日誌,server_id,授權使用者(c)配置從伺服器設定server_id[master]/etc/my.cnf[mysqld]server_id=11log-bin=master11binlog-format="mixed" /指定日誌格式#systemctl start mysqld#mysql>grant replication slave on *.* [email protected]"%" identified by "123456"; /授權slaveuser使用者在所有主機登入,許可權為replication slaveshow master status; /查看binlog日誌[slave]/etc/my.cnf[mysqld]server_id=12 /可以不啟用binlog日誌mysql>change master to>master_host="192.168.4.11", /指出主伺服器地址>master_user="slaveuser", /指出使用slaveuser授權使用者登入主伺服器>mster_password="123456", /授權使用者的密碼>master_log_file="master11.000001", /指出主伺服器現在的binlog日誌>master_log_pos=154; /主伺服器binlog日誌的位移量#start slave; /啟動複製#show slave status; /查看slave狀態slave_IO_running:yes /IO線程已運行slave_SQL_running:yes /SQL線程已運行IO線程: 複製master主機binlog記錄檔裡的SQL到原生relay-log檔案裡SQL線程: 執行本機relay-log檔案裡的SQL語句,重現master資料操作出現問題解決:IO線程狀態是no ---> 沒有串連到主伺服器上等SQL線程狀態是no ---> 主從資料不同步等#ls /var/lib/mysqlmaster.info /串連主伺服器資訊relay-log.info /中繼日誌訊息主機名稱-relay-bin.xxxxxx /中繼日誌主機名稱-relay-bin.index 中繼日誌索引檔案主從同步模式一主一從一主多從主從從(主---從(主)---從) /1是2的主,2是1的從且是3的主,3是2的從 主主結構(互為主從)主庫設定檔(對所有從伺服器有效)只允許同步的庫 binlog_do_db=庫1,庫2不允許同步的庫 binlog_ignore_db=庫1,庫2從庫設定檔只允許同步的庫 replicate_do_db=庫1,庫2不允許同步的庫 replicate_ignore_db=庫1,庫2級連複製 log_slave_updates#########################################
MySQL資料庫的讀寫分離
為了緩解主伺服器的壓力,採用讀寫分離,即用戶端進行寫操作時,進入主伺服器,用戶端進行讀操作時,進入從伺服器實現方式: maxscale軟體 + 一主一從[master11][slave12]slave12是master11的從伺服器[monitor13]#rpm -ivh maxscale..修改設定檔/etc/maxscale.cnf(a)指定資料庫伺服器[server1][server2](b)指定監控的資料庫伺服器(c)指定讀寫在那些伺服器之間執行(d)定義管理服務(e)讀寫分離使用的連接埠 port=4006(f)管理服務使用的連接埠 port=4009(g)根據設定檔,在資料庫伺服器上添加相應的授權使用者[master11]>grant replication slave replication client on *.* to [email protected]"%" identified by "123456";使用scalemon 使用者監控讀寫分離伺服器>grant select on mysql.* to [email protected]"%" identified by "123456";使用scalemax 使用者監控登入的使用者是否是資料庫的授權使用者[monitor13]maxscale --help#maxscale -f /etc/maxsacle.cnf /啟動服務#netstat -lnptu | grep :4006maxadmin -uamdin -pmariadb -P4009maxscale>list servers /列出監控的伺服器#killall maxscale /殺死進程,停止服務驗證[宿主機254]#mysql -h192.168.4.13 -P4006 -uuser -p123456>select @@hostname /查看當前處於哪個資料庫伺服器
MySQL資料庫(六)