欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MySQL主從復(fù)制的常見問題和有效解決方案

下面講講關(guān)于MySQL主從復(fù)制的常見問題和有效解決方案,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL主從復(fù)制的常見問題和有效解決方案這篇文章你一定會有所受益。

創(chuàng)新互聯(lián)服務(wù)項目包括漣水網(wǎng)站建設(shè)、漣水網(wǎng)站制作、漣水網(wǎng)頁制作以及漣水網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,漣水網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到漣水省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

一、復(fù)制的問題和解決方案:

(1)數(shù)據(jù)損壞或丟失:

            某個slave上損壞:在slave上重放二進制日志,各種原因,導致數(shù)據(jù)不一致。例如硬件故障        

            //使用其他master上的備份的數(shù)據(jù)集,在新的slave上進行還原,從備份的位置開始從master上進行復(fù)制。

    重新復(fù)制即可//下線故障的slave,還原然后重新復(fù)制即可

    master數(shù)據(jù)損壞或丟失:

        //在各個slave上根據(jù)其gtid,找出最新的salve,然后提升為master

        //MHA+semi repl //MHA和一個node半同步復(fù)制,提升半同步node為新的master即可

//最后方案:

    二進制日志分析,然后還原

    單個故障了:活該!

(2)混合使用存儲引擎;//堅決杜絕

    MyISAM不支持事務(wù)//不能回滾的

    InnoDB支持事務(wù)

(3)不唯一的server id 

    整個復(fù)制集群,可能導致錯亂。

    //例如某個slave的server id和master的server id一樣,那么他就不會重放master發(fā)來的server-id 

    修改server id 重新復(fù)制 

(4)復(fù)制延遲

    從node落后于master

    自己寫腳本,不斷監(jiān)控,發(fā)現(xiàn)落后的時間不等于0,后,可以重啟slave的io線程

    需要額外的監(jiān)控工具來輔助實現(xiàn)。

    在master上事務(wù)是可以并發(fā)的,但是往同一個二進制日志寫入是單線程的

    因此slave在本地應(yīng)用也是單線程的

    master上有多個庫,每一個庫的事務(wù)是可以并行的,因為對A庫的鎖,對B庫是沒有影響的,但是反映到二進制日志中必然有先后的順序

    因此slave落后是沒有辦法避免的,因此mysql 5.5之后引入了多線程機制。

    

    支持一從多主和多線程復(fù)制

    多線程復(fù)制//每一個數(shù)據(jù)庫只啟用一個線程

     //但是主庫是不能一樣的

    多線程復(fù)制:還是有用的,依賴于gtid 

        //MySQL 5.6.3之后,MariaDB10.0.5之后

    復(fù)制線程:Master上的IO線程和Slave上的IO、SQL線程,

數(shù)據(jù)庫服務(wù)的衡量指標:

qps:query per second 

tps:事務(wù)per second 

數(shù)據(jù)庫壓力測試工具:

sysbench 

二、Galera Cluster:多用于MySQL的數(shù)據(jù)復(fù)制

http://galeracluster.com/

更底層的復(fù)制機制

需要單獨編譯實現(xiàn)。

安裝方式

msyql官方或者galera //官方提供的支持galera 的版本

percona-cluster //整合過mysql版本

mariadb-cluster //專用的復(fù)制

base和epel都沒有提供galera-cluster的源

默認的mariadb版本是不支持galera的

需要用到的包:

MariaDB-5.5.46-centos7-x86_64-client.rpm

MariaDB-5.5.46-centos7-x86_64-common.rpm

MariaDB-Galera-5.5.46-centos7-x86_64-common.rpm

//至少需要3個node

1.前提:hosts文件和時間同步

node1:192.168.1.67

node2:192.168.1.68

node3:192.168.1.69

node1: 

建議在本地配置yum源

yum remove mariadb //卸載client和server端

yum install MairaDB-Galera-server 

node2: 

建議在本地配置yum源

yum remove mariadb //卸載client和server端

yum install MairaDB-Galera-server 

node3: 

建議在本地配置yum源

yum remove mariadb //卸載client和server端

yum install MairaDB-Galera-server 

2.配置文件說明/etc/my.cnf.d/server.cnf 

...

[galera] 

# Manatory settings //強制配置

#wresp_provider = /usr/lib64/galera/libgalera_smm.so 

#wresp_cluster_address = "gcomm://192.168.1.67, 192.168.1.68, 192.168.1.69"  

#wresp_cluster_name = "mycluster" 

#wresp_node_name = 'node1'

#wresp_node_address = '192.168.1.67' //這兩個可以省略

#binlog_format = row 

#default_storage_engine=InnoDB

#bind-address=0.0.0.0

# Optional setting 

#wsrep_slave_threads=1

#innodb_flush_logs_at_trx_commit=0 

...

首次啟動:需要初始化集群,在其中一個node上執(zhí)行如下命令

/etc/init.d/mysql start --wsreq-new-cluster 

而后正常啟動其他節(jié)點即可

3.修改配置文件

node1: 

[galera] 

wresp_provider=/usr/lib64/galera/libgalera_smm.so 

wresp_cluster_address="gcomm://192.168.1.67, 192.168.1.68, 192.168.1.69"  

binlog_format=row 

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2 

bind-address=0.0.0.0

wresp_cluster_name="mycluster" 

node2: 和 node3: 配置文件相同 

node1:任意一個node都可以

/etc/rc.d/init.d/mysql start --wsrep-new-cluster

node2: 

service mysql start 

node3:

service mysql start 

3.測試 

mysql> 任何一個node創(chuàng)建數(shù)據(jù)

在其他node上可以看到有數(shù)據(jù)

node1:

> use mydb;

> create table tb2 (id int unsigned auto_increment not null primary key,name char(30));

> insert into tb2 (name) values ('hi'),('hello');

node2:

> select * from tb2; 

id | name 

---------

1 | h2 

4 | hello  

> insert into tb2 (name) values ('to'),('from');

> select * from tb2 

1 hi 

4 hello 

5 to 

8 from 

使用全局id生成器

r/w分離器:

要么自己寫

要么使用開源的工具

或者在應(yīng)用層配置實現(xiàn) //一旦故障需要手動修改或者使用vrrp

親測方法:

1.復(fù)制所有的rpm文件

2.createrepot /testrepo 

3.修改yum文件指向該yum源即可

4.使用yum進行安裝即可

三、MySQL 5.6的多線程復(fù)制、GTID

注意:任何服務(wù)或者主機都應(yīng)該被監(jiān)控

mysql落后的原因:單線程復(fù)制,

5.5 半同步

5.6 GTID、多線程復(fù)制,

MariaDB在配置文件的mysqld選項組中添加:

slave-parallel-threads

MASTER: my.cnf添加以下參數(shù) 

binlog_format = row 

gtid_mode = ON 

enforce-gtid-consistency = ON 

slave_parallel_workers=4           --開啟基于庫的多線程復(fù)制默認0不開啟 

binlog_cache_size = 8M 

max_binlog_size = 50M 

max_binlog_cache_size = 100M 

sync_binlog = 1 

expire_logs_days = 1 

log-slave-updates=true 

SLAVE: my.cnf添加以下參數(shù)  

binlog_format = row 

gtid_mode = ON 

enforce-gtid-consistency = ON 

binlog_cache_size = 8M 

max_binlog_size = 50M 

max_binlog_cache_size = 100M 

sync_binlog = 1 

expire_logs_days = 1 

slave_parallel_workers=4 

max_relay_log_size = 50M 

relay_log_purge = 1 

relay_log_recovery = 1  

master_verify_checksum = 1        --主事件校驗 

slave_sql_verify_checksum = 1     --從事件校驗 

slave_allow_batching = 1 

log-slave-updates=true 

對于以上MySQL主從復(fù)制的常見問題和有效解決方案相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

分享名稱:MySQL主從復(fù)制的常見問題和有效解決方案
分享鏈接:http://chinadenli.net/article40/pgjeeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)網(wǎng)站建設(shè)企業(yè)建站網(wǎng)站設(shè)計公司移動網(wǎng)站建設(shè)網(wǎng)站策劃

廣告

聲明:本網(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)

成都app開發(fā)公司