有关运维面试重点
數據庫分為:關系型數據庫(mysql、mariadb)和非關系型數據庫(redis等)
mysql主從復制的原理:
主從復制:
- master開啟binlog日志
- master和slave的server-id不同
- slave主動連接master
mysql復制是將主庫的DDL和DML操作通過二進制日志傳遞到復制服務器(從庫)上,然后從庫對這些日志重新執行(重做),從而使得主庫和從庫保持數據一致。
vim /etc/my.conf? ? ? ?(主:server-id=1?bin? ? 從:server-id =2)?
mysql(8080)復制的優點:
如果主庫出現問題,可以快速切換到從庫提供服務
可以在從庫執行查詢操作,降低主庫的訪問壓力。
可以在從庫進行備份,以免備份期間影響主庫的服務。
基于GTID的主從復制
優點:不用手工設置日志偏移量, 可以很方便地進行故障轉移,如果啟用log_slave_updates 那么從庫不會丟失主庫上的任何修改。
缺點:僅支持 MySQL 5.6 之后的版本, 而且不建議使用早期 5.6 版本。
在兩邊的配置文件/etc/my.cnf 都加上:
gtid_mode=ON
enforce-gtid-consistency=true
proxy實現mysql讀寫分離
在/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua修改最小連接數和最大連接數,?
mysql proxy 會檢測客戶端連接, 當連接沒有超過 max_idle_connections 值時, 不會進行讀寫分離, 即查詢操作會發生到 master 上。
創建腳本? /usr/local/mysql-proxy/conf/mysql-proxy.conf
[mysql-proxy]
user=root
proxy-address=0.0.0.0:3306
proxy-backend-addresses=172.25.254.11:3306? ? ? ? ? ? ? ? ?//master
proxy-read-only-backend-addresses=172.25.254.12:3306? ? ? ? ? ? ? ? ?//slave
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
?
test3和test4實現主從復制,test2的proxy實現讀寫分離功能
?
redis(6379)(6380) 的主從復制及高可用集群的原理:
redis的優點和缺點:
存儲在內存中,所以其性能極高;豐富的數據類型、原子性
redis是key-value數據庫,無法自己實現獨立的高可用,需要借助其他外力或者手動干預進行實現
redis支持各種不同方式的排序.與memcached一樣,為了保證效率,數據都是緩存在內存中;區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。
主從復制:
一主兩備
redis-4.0.8? ? 端口:6379? ?
redis-cli? 進入數據庫
vim /etc/redis/6379.conf
從數據庫配置:
slaveof 主機ip 主機端口(6379)
redis提供了哨兵,實現高可用。sentinel哨兵節點(26379)
哨兵節點進行自主監控主從節點以及其他哨兵節點,當發現主節點掛掉時自動故障轉移。
vim /etc/redis/sentinel.conf? ? ? ? ?給test1、test2和test3都配置master為test1的ip
redis的集群:
最少三個節點,因為投票機制應該滿足半數以上的節點認為某個節點是掛掉的,此時才能認為該節點掛掉。
?
memcache+nginx+php緩存? ? ? ? ?memcache (11211)
nginx+tomcat+memcache實現session共享? ? ? ? ? ? ? ? ?memcache(11211)? ?tomcat(8080)? ? ? ? 用到nginx的jsp模塊
/usr/local/tomcat/conf/context.xml? ? ? ? test1為nginx? ?配置n1和n2? ,并且test2指定n1,test1指定n2
為了對數據的保存更加牢靠,我們選擇交叉存放session的方法,即將訪問tomcat1上的數據存放在memcache2中,將訪問tomcat2上的數據存放在memcache1中,這樣存放,當某個tomcat服務斷了之后,訪問它的客戶session并不會消失,而是存放在了對立的memcache,如果存放session的memcache壞了,那么它的數據會立即切換到另一個memcached中
總結
- 上一篇: shell脚本api接口考虑并发问题的可
- 下一篇: 五款常用协议分析处理工具推荐