Mysql 服務(wù)遷移

?

需求場(chǎng)景:因機(jī)器原因Mysql服務(wù)需要遷移到其他機(jī)器夷陋,這個(gè)Mysql服務(wù)所在機(jī)器為A; 此Mysql 版本5.1.73 ;?多個(gè)業(yè)務(wù)在使用這個(gè)Mysql 服務(wù),要求遷移的時(shí)候盡可能不影響服務(wù)骗绕。目前這個(gè)Mysql是一個(gè)單點(diǎn)服務(wù),并無從庫撤缴。

解決方案:mysql router + xtrabackup

基本思想:如下圖所示

使用xtrabackup 軟件對(duì)Mysql A 進(jìn)行一次全量備份刹枉,然后在機(jī)器B上進(jìn)行恢復(fù)并設(shè)置成Mysql A? 的從庫,同時(shí)配置Mysql?C屈呕、Mysql D?為?Mysql?B 的從庫;

使用?Mysql?Router?的 Read-Writer 模式?微宝,將MySQL A 服務(wù)配置在 Mysql B 服務(wù)的前面, 修改Mysql Client 使其從MySQL?Router?服務(wù)讀寫Mysql?

關(guān)閉Mysql A服務(wù)凉袱,讓Mysql B 提供服務(wù)芥吟。

下面介紹具體的操作步驟,此文的Mysql 服務(wù)都部署在 Centos 6.3(x64)?系統(tǒng)上专甩,Mysql A 版本為:5.1.73 ?钟鸵,Mysql B、C涤躲、D 版本為 5.6.X

操作步驟:

1.對(duì)Mysql A進(jìn)行全量備份并恢復(fù)到Mysql B:

安裝xtrabackup(機(jī)器A棺耍、B上)? ?

wget http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpmyum install -y? percona-release-0.1-3.noarch.rpm#percona 的官方源很慢种樱,很大概率會(huì)出現(xiàn)下載失敗,多試幾次就好,下載是自動(dòng)支持?jǐn)帱c(diǎn)重試的yum install -y percona-xtrabackup-20.x86_64

設(shè)置?的mysql 賬號(hào)replication(機(jī)器A),之所以在備份前設(shè)置是因?yàn)镸ysql版本5.1 和5.6?的版本在同步?user不兼容(如果你不需要對(duì)mysql 的系統(tǒng)庫進(jìn)行同步,此步可以在后面進(jìn)行)

#使用有權(quán)限的mysql賬號(hào)(如?root)創(chuàng)建replication 賬號(hào)grant replication slave on *.* to slave@'%'? identified by "123";

全量備份(機(jī)器A)

innobackupex /home/mysql/backups/ --user=root --password=123

恢復(fù)備份(機(jī)器A)

innobackupex --apply-log --use-memory=40G /home/mysql/backups/2019-11-15_20-04-14/

拷貝文件(機(jī)器B)

#使用rsync?從機(jī)器B將通過xtrabackup恢復(fù)好的備份文件同步到機(jī)器B上#rsync?相關(guān)使用方法可以自己baidu或者google,注意這里兩個(gè)目錄的?“/”#這里的hostA為機(jī)器A的hostname或者iprsync?-avz?--progress?hostA:/home/mysql/backups/2019-11-15_20-04-14?~mysqld/backup/#根據(jù)你自己的mysql?配置文件路徑進(jìn)行調(diào)整innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back ~mysqld/backup/2019-11-15_20-04-14/

改變文件屬主(機(jī)器B)

#根據(jù)自己的mysql data 的配置進(jìn)行調(diào)整chown -R mysqld:mysqld ~mysqld/var/lib/mysql

mysql 關(guān)鍵配置項(xiàng)(機(jī)器B)

#server-id?要比機(jī)器A的小纪吮,比機(jī)器C、D上大server-id = 10#開啟二進(jìn)制日志嚼沿,目錄根據(jù)自己的機(jī)器進(jìn)行調(diào)整log-bin=/home/disk2/mysqld_bin_log/mysql-bin#開啟通過replication也產(chǎn)生二進(jìn)制日志的選項(xiàng)攀细,以便機(jī)器C锦担、D上的Mysql可以從機(jī)器B上同步數(shù)據(jù)log_slave_updates=1

啟動(dòng)Mysql服務(wù)(機(jī)器B)

#你的mysql要是通過yum 安裝的可以通過service 方式其他磁椒,否則直使用命令行的方式啟動(dòng)service mysqld start

查看master 相關(guān)信息(機(jī)器B),在后面設(shè)置Mysql B 的從庫需要用到,這個(gè)時(shí)候不要有任何對(duì) Mysql B的寫操作

#登錄mysql 后執(zhí)行show master status ;

#?輸出如下示例,需要記下對(duì)應(yīng)的?log?file?和log?pos?缔恳,開啟replication后會(huì)變化#?mysql-bin.000001??120

查看機(jī)器A上Mysql bin?日志位置

#在備份目錄的xtrabackup_binlog_info?文件中,

cat? ~/mysqld/backup/2019-11-15_20-04-14/xtrabackup_binlog_info

#下面是我這邊的輸出示例腰素,需要根據(jù)自己的文件輸出進(jìn)行配置下面的步驟

# mysql-bin.001150??611640010?

設(shè)置mysql?replication (機(jī)器B)

#登錄mysql?后執(zhí)行洋访,需要有對(duì)應(yīng)權(quán)限扶歪,這個(gè)時(shí)候機(jī)器B上的mysql?用戶和機(jī)器Amysql用戶一致#相關(guān)參數(shù)需要根據(jù)自己的配置進(jìn)行調(diào)整,這里僅僅是示例change?master?to?master_host="hostA",?master_port=3306,?master_user='replication',?master_password='123',?master_log_file='mysql-bin.001150',?master_log_pos=611640010;#啟動(dòng)?replicationstart slave ;#查看replication 的狀態(tài)show?slave?status?\G

若slave status 輸出下面兩個(gè)字段都Yes,說明已經(jīng)開始進(jìn)行Mysql的內(nèi)容同步了桥状,若是有錯(cuò)誤需要根據(jù)錯(cuò)誤提示進(jìn)行排查士飒。

Slave_IO_Running: YesSlave_SQL_Running:?Yes

2. 在機(jī)器C缓苛、D上配置Mysql?B 的從庫

將之前機(jī)器A的備份文件分別拷貝到機(jī)器C、D徘熔,并分別啟動(dòng)mysql 服務(wù)??(不再命令酷师,參看上面)

設(shè)置replication(機(jī)器C山孔、D), 這里的master_log_file 和 master_log_pos 是從Mysql B 啟動(dòng)的時(shí)候通過 show master?status \G 命令獲取的

#登錄mysql?后執(zhí)行串前,需要有對(duì)應(yīng)權(quán)限坛吁,這個(gè)時(shí)候機(jī)器B上的mysql?用戶和機(jī)器Amysql用戶一致#相關(guān)參數(shù)需要根據(jù)自己的配置進(jìn)行調(diào)整,這里僅僅是示例changemastertomaster_host="hostB",?master_port=3306,?master_user='replication',?master_password='123',?master_log_file='mysql-bin.000001',?master_log_pos=120;#啟動(dòng)?replicationstartslave;#查看replication 的狀態(tài)showslavestatus\G

部署 mysql router:

從mysql 官網(wǎng)(https://dev.mysql.com/downloads/router/)下載 mysql?router?

下面給出mysql router 關(guān)鍵配置項(xiàng)桨武,并啟動(dòng)mysql router

[routing:unit1]bind_address? ? ? ? ? ? ? ? ? ? =0.0.0.0:8563connect_timeout? ? ? ? ? ? ? ? =2#?一定是這個(gè)模式mode????????????????????????????=read-writemax_connections? ? ? ? ? ? ? ? =2000max_connect_errors? ? ? ? ? ? ? =10000client_connect_timeout? ? ? ? ? =2#?需要根據(jù)自己的配置進(jìn)行調(diào)整destinations????????????????????=hostA:portA,hostB:portB

修改所有業(yè)務(wù)訪問mysql A 入口 到 mysql router 入口锈津,并驗(yàn)證可用性

切換Mysql A 到 Mysql B上

確認(rèn)MySQL B?和 Mysql A?同步無延遲

msyql>show slave status \G#查看?Seconds_Behind_Master?字段呀酸,值為0表示同步無延遲

直接關(guān)閉Mysql A服務(wù)

?service?mysqld?stop

關(guān)閉Mysql B 上的replication

msyql>stop slave ;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市琼梆,隨后出現(xiàn)的幾起案子性誉,更是在濱河造成了極大的恐慌,老刑警劉巖茎杂,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件错览,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡煌往,警方通過查閱死者的電腦和手機(jī)倾哺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刽脖,“玉大人羞海,你說我怎么就攤上這事∏埽” “怎么了扣猫?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)翘地。 經(jīng)常有香客問我申尤,道長(zhǎng),這世上最難降的妖魔是什么衙耕? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任昧穿,我火速辦了婚禮,結(jié)果婚禮上橙喘,老公的妹妹穿的比我還像新娘时鸵。我一直安慰自己,他們只是感情好厅瞎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布饰潜。 她就那樣靜靜地躺著,像睡著了一般和簸。 火紅的嫁衣襯著肌膚如雪彭雾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天锁保,我揣著相機(jī)與錄音薯酝,去河邊找鬼半沽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吴菠,可吹牛的內(nèi)容都是我干的者填。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼做葵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼占哟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酿矢,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤重挑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后棠涮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刺覆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年严肪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谦屑。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驳糯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出氢橙,到底是詐尸還是另有隱情酝枢,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布悍手,位于F島的核電站帘睦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏坦康。R本人自食惡果不足惜竣付,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一浩嫌、第九天 我趴在偏房一處隱蔽的房頂上張望惋增。 院中可真熱鬧,春花似錦纺弊、人聲如沸筛璧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夭谤。三九已至棺牧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朗儒,已是汗流浹背陨帆。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工曲秉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疲牵。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓承二,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親纲爸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亥鸠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容