百萬級mysql從庫如何搭建

本文主要給大家簡單講講百萬級MySQL從庫如何搭建,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望百萬級mysql從庫如何搭建這篇文章可以給大家?guī)硪恍嶋H幫助。

創(chuàng)新互聯(lián)建站長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為邵武企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站設(shè)計,邵武網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

背景:
 1.當前mysql:Ucloud高可用數(shù)據(jù)庫實例,所屬區(qū)域在北京。

 2.異地容災(zāi)需求、跨平臺同步、后期的異地雙活需求。

 3.新建從庫:阿里云華南自建mysql。  
考察:

    1.Ucloud數(shù)據(jù)庫實例基于mysql原版進行了二次開發(fā),在結(jié)構(gòu)上有些調(diào)整,在為每個實例搭配一個phpadmin進行管理,算是比較簡單。高可用實例主庫已做雙主熱備。Mysql5.7后支持一從多主。

    2.Aliyun數(shù)據(jù)庫實例也進行過調(diào)整,修改比較多,對mysql庫管控比較嚴以配合控制臺的數(shù)據(jù)庫管理。

    3.Aliyun數(shù)據(jù)庫管理提供DTS工具,用于遷移數(shù)據(jù),功能比較強大:遷移粒度、持續(xù)數(shù)據(jù)遷移(間接達到數(shù)據(jù)同步)、適合環(huán)境多。不適用當前需求原因:DTS遷移自建數(shù)據(jù)庫需要公網(wǎng)訪問源實例,太不安全。

    4.跨平臺異地雙活目前來看只能通過自建實現(xiàn),業(yè)務(wù)架構(gòu)還要大幅度調(diào)整。先實現(xiàn)跨平臺異地備份吧。

    5.Mysl同步的數(shù)據(jù)包默認是明文傳輸,支持ssl驗證,但在云平臺上似乎不好實現(xiàn)(內(nèi)網(wǎng)訪問),先通過使用安全組控制訪問解決安全問題,后期建立***,包傳輸走隧道改進。

情景匯總:
Mysql主(10.10.123.231):ucloud北京機房、高可用實例、內(nèi)網(wǎng)訪問、版本為5.6.20-ucloudrel1-log
Mysql從(172.17.3.42):aliyun華南自建

步驟:

   1.準備工作:
    aliyun平臺新建ECS實例;根據(jù)源mysql版本安裝相近版本,選擇的mysql5.6.38,下載rpm包后,使用yum安裝;初始化數(shù)據(jù)庫,修改配置文件,并啟動。
    考慮到后期會使用DTS,按建議添加配置;mysql5.6后添加了GTID作用于同步,主從配置要一致:

server_id=23
gtid_mode=on
enforce_gtid_consistency=on
log_bin=mysql_bin
binlog_format=row
binlog_row_image=full
log-bin-trust-function-creators=1

2.數(shù)據(jù)導(dǎo)入:從ucloud控制臺找到源mysql的最新備份,下載并導(dǎo)入到自建的mysql中。
   下載備份遇到問題:瀏覽器能正常下載,在linux下使用wget下載報403
百萬級mysql從庫如何搭建
    解決辦法:對下載地址用引號引入。

   備份壓縮包接近40G,使用source導(dǎo)入耗時超過一天。

3.搭建端口轉(zhuǎn)發(fā)(類似于mysql代理云服務(wù)器
   選擇一臺與源mysql同內(nèi)網(wǎng)的centos 7 (內(nèi)網(wǎng)IP:10.10.123.233,外網(wǎng)IP:123.123.123.123),配置iptables轉(zhuǎn)發(fā)3306端口的流量,實現(xiàn)新建的mysql實例訪問到主庫。

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -d 10.10.123.233 -p tcp --dport 3306 -j DNAT --to-destination 10.10.123.231:3306
# iptables -t nat -A POSTROUTING -d 10.10.123.231 -p tcp --dport 3306 -j SNAT --to-source 10.10.123.233

  并在新建從庫中測試好連通性。

4.主從配置

主要命令:
> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%' IDENTIFIED BY ‘123456’;     //添加主從同步的用戶
> change master to \
master_host=”123.123.123.123”,\
master_port=3306,\
master_user=’slave’,\
master_password=’123456’,\
master_log_file=’mysql-bin.000383’,\
master_log_pos=’888039274’;     //配置主庫信息
> start slave;
> show slave status\G;

    獲取同步的binlog文件和位置:下載的備份文件中有,在文件前100行可以找到(推斷ucloud備份是用mysqldump命令配合--single-transaction --master-data=2參數(shù))。

遇到的問題及解決

  1.查看主從同步,報錯:無法從master獲取日志
百萬級mysql從庫如何搭建
   Last_IO_Error: Relay log write failure: could not queue event from master
   原因:配置主從同步的binlog位置異常,需要重新指定。

> show master status;
> show master logs;     //查看可用的binlog文件
> show binlog events in 'mysql-bin.000383' from 888039274 limit 2;      //指定開始位置和顯示數(shù)量

百萬級mysql從庫如何搭建
  果然是個比較特殊的位置,直接在mysql下查不到。還好還可以使用mysqlbinlog工具查看。
  下載binlog,解壓得到mysql-bin.000383文件

# mysqlbinlog  --start-position=888039200 --stop-position=888039300 mysql-bin.000383 //用大概的位置查找,報錯

百萬級mysql從庫如何搭建

  只能全部導(dǎo)出,在定位了:

# mysqlbinlog  mysql-bin.000383 > 383bin.log

  查找到的范圍為:
百萬級mysql從庫如何搭建
  重新配置position位置,并重啟slave進程即可。

  2.查看主從同步狀態(tài),報錯:重復(fù)鍵問題,可能是剛剛調(diào)整了log_position導(dǎo)致的
百萬級mysql從庫如何搭建
考慮到先只做備份,將類似錯誤忽略即可。
    解決辦法:在mysqld配置文件中添加 slave-skip-errors = 1062,并重啟mysql服務(wù)即可。

百萬級mysql從庫如何搭建就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

分享題目:百萬級mysql從庫如何搭建
文章轉(zhuǎn)載:http://muchs.cn/article10/picgdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)網(wǎng)站收錄、網(wǎng)站改版、網(wǎng)頁設(shè)計公司外貿(mào)網(wǎng)站建設(shè)、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)