環境:兩台centos環境,安裝mysql(mariadb) web網站的優化: 緩存技術 資料庫緩存 redis 文件緩存 圖片 fastdfs 負載均衡 nginx 資料庫主從備份,讀寫分離 圖解: 在工作中,為了防止數據損壞,使用主從備份這種架構(複製集),為了滿足mysql的性能要求,為了提 ...
環境:兩台centos環境,安裝mysql(mariadb)
web網站的優化:
- 緩存技術 資料庫緩存 redis
- 文件緩存 圖片 fastdfs
- 負載均衡 nginx
- 資料庫主從備份,讀寫分離
圖解:
在工作中,為了防止數據損壞,使用主從備份這種架構(複製集),為了滿足mysql的性能要求,為了提高吞吐量使用複製集之後還可搭建讀寫分離去提高性能。
搭建主從
在master(主機名) 和slave(從機名) 都需要操作安全嚮導
mysql_secure_installation
systemctl restart mariadb 重啟服務
mysql -u root -p 使用密碼登陸
關閉主從防火牆和安全模式
systemctl stop firewalld
setenforce 0
slave 操作
systemctl restart mariadb
mysql -uroot -p
create database OurBlog charset=utf8;
exit
將剛導入的sql文件導入到salve庫中
mysql -h localhost -u root -p111111 OurBlog < /opt/OurBlog.sql
修改配置文件
master配置文件
vi /etc/my.cnf 增加代碼 server-id=1 log_bin=mysql-bin? binlog-do-db=OurBlog binlog-ignore-db=mysql 保存文件 重啟 mariadb
slave修改
修改配置文件 vi /etc/my.cnf 增加下麵代碼 server-id=2 log_bin=mysql-bin? binlog-do-db=OurBlog binlog-ignore-db=mysql 保存 重啟
-Salve 配置
change master to master_host="10.10.14.154",master_user="root",master_password='111111',master_log_file="mysql-bin?.000001",master_log_pos=245;
-Slave 庫當中
資料庫當中
slave start 開始備份
show slave status \G
-salve庫當中
查看slave 狀態
show slave status \G
停止slave
stop slave;
開啟slave
start slave
查看master 狀態
show master status;
在 master中寫入數據,然後在slave中查看數據
- Master 主庫 slave 從庫
- binary log 二進位文件。relay log 中繼器日誌
- I/O線程,sql線程
- 當客戶端發器insert操作,操作的master庫(事務)由master服務將sql語句轉為二進位,存儲到二進位日誌文件中,然後執行commit 操作,將事務結果存儲到master 庫當中。
- slave 開通一個io線程,線程阻塞等到,監聽二進位文件是否有改變,如果有的,讀取到中繼器當中,
- sql線程會定期查看中繼器中的內容,然後重演,將改變寫入slave庫當中。