這種架構一般用在以下三類場景

成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為龍陵企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站制作,龍陵網(wǎng)站改版等技術服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
1. 備份多臺 Server 的數(shù)據(jù)到一臺如果按照數(shù)據(jù)切分方向來講,那就是垂直切分。比如圖 2,業(yè)務 A、B、C、D 是之前拆分好的業(yè)務,現(xiàn)在需要把這些拆分好的業(yè)務匯總起來備份,那這種需求也很適用于多源復制架構。實現(xiàn)方法我大概描述下:業(yè)務 A、B、C、D 分別位于 4 臺 Server,每臺 Server 分別有一個數(shù)據(jù)庫來隔離前端的業(yè)務數(shù)據(jù),那這樣,在從庫就能把四臺業(yè)務的數(shù)據(jù)全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現(xiàn)這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯(lián)的問題,不但性能急劇下降,管理多個實例也沒有單臺來的容易。
2. 用來聚合前端多個 Server 的分片數(shù)據(jù)。
同樣,按照數(shù)據(jù)切分方向來講,屬于水平切分。比如圖 3,按照年份拆分好的數(shù)據(jù),要做一個匯總數(shù)據(jù)展現(xiàn),那這種架構也非常合適。實現(xiàn)方法稍微復雜些:比如所有 Server 共享同一數(shù)據(jù)庫和表,一般為了開發(fā)極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總并合并多個 Server 的數(shù)據(jù)
第三類和第一種場景類似。不一樣的是不僅僅是數(shù)據(jù)需要匯總到目標端,還得合并這些數(shù)據(jù),這就比第一種來的相對復雜些。比如圖 4,那這樣的需求,是不是也適合多源復制呢?答案是 YES。那具體怎么做呢?
使用這種方法前,我們需要先下載一個MySQL客戶端工具SqlYog。點擊這里下載并安裝\x0d\x0a\x0d\x0a下面我們開始復制數(shù)據(jù)庫:\x0d\x0a1、打開SqlYog community Edition,分別在不同的選項卡中打開源數(shù)據(jù)庫服務器與目標數(shù)據(jù)庫服務器,這一點很重。\x0d\x0a\x0d\x0a在源數(shù)據(jù)庫服務器選項卡中你將看到所有數(shù)據(jù)庫列表。\x0d\x0a2、在需要復制遷移的數(shù)據(jù)庫上右擊,在彈出菜單中選擇“Copy Database to Different Host/Database”\x0d\x0a3、在彈出對話框中,我們能看到源數(shù)據(jù)庫服務器及目標服務器,在左邊,通過勾選復選框來選擇需要復制遷移的對象,如表、函數(shù)、觸發(fā)器等,也可以選擇所有對象。\x0d\x0a4、在右邊選擇需要遷移的目標服務器或數(shù)據(jù)庫\x0d\x0a5、根據(jù)你的需要選擇復制類型:“Structure and Data”或“Structure only”,即“結構和數(shù)據(jù)”或“僅結構”。\x0d\x0a6、選擇結束后點擊“Copy”按鈕開始復制,知道數(shù)據(jù)遷移結束。
在MySQL服務器1中,添加如下配置:
在MySQL服務器2中,添加如下設置:
在這里兩臺MySQL的配置文件,需要對auto_increment_offset字段,設定不同值。因為如果mysql中有自增長字段,不設定這個參數(shù)會起沖突,會報duplicate....的報錯。
auto_increment_offset表示自增長字段從那個數(shù)開始,他的取值范圍是1 .. 65535
auto_increment_increment表示自增長字段每次遞增的量,其默認值是1,取值范圍是1 .. 65535
做主主同步配置時,需要將兩臺服務器的auto_increment_increment增長量都配置為2,而要把auto_increment_offset分別配置為1和2,這樣可以避免兩臺服務器同時做更新時,自增長字段的值之間發(fā)生沖突。
配置好兩臺mysql的my.cnf配置文件后,service mysqld restart 重啟mysql服務。
在Mysql服務器1中,
在MySQL服務器2中,做如上同樣的操作,然后將服務器1的file和position值設定到服務器2中,服務器2的file和position值輸入到服務器1中。
在MySQL服務器1中,輸如下命令:
在MySQL服務器2中,輸如下命令:
范例如下圖:
配置完后,分別在兩臺服務器上輸show slave status ;
如果出現(xiàn)如下兩個字段都是on的狀態(tài),則主主備份搭建完成。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在實際測試配置中,由于MySQL服務器2是克隆的MySQL服務器1的,所以start slave 后,show slave status 出現(xiàn)了Slave_IO_Running: No ,然后有如下報錯信息。告知是因為兩個MySQL服務器的UUID相重復了。
只需要,將basedir,即/use/local/mysql/data中的auto.cnf文件刪掉后,重啟mysql,就會出現(xiàn)新的auto.cnf文件,里面有新的UUID
IP的設置:A主機 IP:10.10.0.119;Mask:255.255.0.0;B主機 IP:10.10.8.112;Mask:255.255.0.0
在IP設置完成以后,需要確定兩主機的防火墻確實已經(jīng)關閉。可以使用命令service iptables status查看防火墻狀態(tài)。如果防火墻狀態(tài)。
為仍在運行。使用service iptables stop來停用防火墻。如果想啟動關閉防火墻,可以使用setup命令來禁用或定制。最終以兩臺主機可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式;3.2.1 配置A 為master。
增加一個用戶同步使用的帳號:
GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’。
賦予10.10.8.112也就是Slave機器有File權限,只賦予Slave機器有File權限還不行,還要給它REPLICATION SLAVE的權限才可以。
增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:create database test;
創(chuàng)建一個表結構:create table mytest (username varchar(20),password varchar(20));
修改配置文件:修改A的/etc/my.cnf文件。
在my.cnf配置項中加入下面配置:
server-id = 1 #Server標識
log-bin
binlog-do-db=test #指定需要日志的數(shù)據(jù)庫
重起數(shù)據(jù)庫服務:
service mysqld restart
查看server-id:
show variable like ‘server_id’。
1. 建立VPN內(nèi)部網(wǎng)絡通信(這種方式快速一點)
2. 在需要同步的服務器上,建立連接服務器,取個名字,按照向?qū)顚戲炞C信息。
3. 在數(shù)據(jù)庫中直接使用連接服務器上的數(shù)據(jù),數(shù)據(jù)表格式如:連接服務器名.數(shù)據(jù)庫名..表名
4. 在計劃任務中也可以把服務器表數(shù)據(jù)計劃更新到本地數(shù)據(jù)庫表里面
本文標題:關于mysql怎么同步服務器的信息
URL地址:http://chinadenli.net/article40/hijseo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、云服務器、做網(wǎng)站、網(wǎng)站維護、電子商務、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)