東坡下載:內(nèi)容最豐富最安全的下載站!

首頁(yè)IT技術(shù)服務(wù)器 → 線(xiàn)上mysql數(shù)據(jù)庫(kù)不停機(jī)的環(huán)境下,如何添加新的從機(jī)

線(xiàn)上mysql數(shù)據(jù)庫(kù)不停機(jī)的環(huán)境下,如何添加新的從機(jī)

相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站原創(chuàng)時(shí)間:2014/2/23 0:19:20字體大。A-A+

更多

作者:不詳點(diǎn)擊:1264次評(píng)論:0次標(biāo)簽: MySQL

    在工作中,主從環(huán)境搭的多了,但是,基本上都是在DB SERVER停機(jī)(游戲公司)的情況下搭建的,今天突然被一技術(shù)官問(wèn),如何在線(xiàn)添加主從,回答的大概思路,但是沒(méi)有實(shí)踐過(guò),下面,我就測(cè)試一下。各位也可以先想想自己的思路:mysql 5.1版本,二進(jìn)制日志文件(時(shí)間長(zhǎng)了,有些二進(jìn)制日志定期清除了),pos號(hào)

      注:在mysql 5.6版本中,已經(jīng)有基于GTID的主從復(fù)制(即:不需要知道日志文件和position號(hào)),只需還原最新的備份就可實(shí)現(xiàn),這里只討論mysql 5.1
一.目前的基本環(huán)境:
 主DB:192.168.1.101
 從DB1:192.168.1.102
 從DB2:192.168.1.103(準(zhǔn)備在線(xiàn)添加做為從機(jī)的mysql數(shù)據(jù)庫(kù))
 數(shù)據(jù)庫(kù)版本:mysql 5.1.61(select  version())
 服務(wù)器版本:red hat linux 6
       注:目前主從正常(show slave status\G),同步的數(shù)據(jù)庫(kù)為 login
              3臺(tái)DB server的備份軟件(xtrbackup)都已經(jīng)安裝完成
              同步的表為innodb引擎的表,不然用xtrabackup還是會(huì)鎖表
  假設(shè)環(huán)境為:現(xiàn)在login庫(kù)下的表a,備份的時(shí)候插入數(shù)據(jù),最終行為5418272
       注:思路是備份,可是用mysqldump備份會(huì)鎖表,如果數(shù)據(jù)量很大的話(huà),線(xiàn)上環(huán)境肯定不允許使用mysqldump備份
              所以,我們采用的xtrabackup來(lái)進(jìn)行在線(xiàn)熱備,至于,它的原理,請(qǐng)各位自行g(shù)oogle
二.部署實(shí)例:
1.主DB,線(xiàn)上數(shù)據(jù)正常寫(xiě)入的同時(shí)我實(shí)施備份
1
2
3
4
mysql> insert into a select * from a;
[root@client101 backup]# innobackupex --user=root --password=kongzhong --defaults-file=/etc/my.cnf --port=3306  --database=login /tmp/backup/ >/tmp/backup/innoback.log 2>&1
# 備份完成后,可以查看備份文件目錄下, xtrabackup_binlog_info  此文件會(huì)記錄主上的日志和position號(hào)
[root@client101 2014-02-22_07-43-36]# cat xtrabackup_binlog_info

2.將備份文件壓縮,并傳送到從DB2(192.168.1.103)上,用于在上面進(jìn)行還原

1
2
[root@client101 backup]# tar zcvf login.tar  2014-02-22_07-43-36
[root@client101 backup]# scp login.tar  192.168.1.103:/tmp/
3.從DB2上,解壓剛才的備份,并用于恢復(fù)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@client103 tmp]# tar -xf login.tar
# 應(yīng)用日志,保證數(shù)據(jù)一致
[root@client103 tmp]# innobackupex --apply-log /tmp/2014-02-22_07-43-36/
# 停mysql
[root@client103 mysql]# /etc/init.d/mysqld stop
# mysql數(shù)據(jù)目錄下的所有文件移到/tmp/mysqlbackup/下,不然,恢復(fù)有問(wèn)題
# [這里建議只復(fù)制數(shù)據(jù)文件,不建議復(fù)制(日志,索引,innodb共享表空間,innodb日志文件,慢日志等)]
[root@client103 mysql]# mv /var/lib/mysql/*  /tmp/mysqlback
# 恢復(fù)數(shù)據(jù)
[root@client103 mysql]# innobackupex --copy-back /tmp/2014-02-22_07-43-36/
# 將原數(shù)據(jù)庫(kù)的內(nèi)容復(fù)制mysql數(shù)據(jù)目錄(這里就是我認(rèn)為這個(gè)軟件不好的地方,大家也可以給點(diǎn)建議)
[root@client103 mysqlback]# mv /tmp/mysqlbac k/* /var/lib/mysql/
# 將數(shù)據(jù)目錄的權(quán)限修改為mysql權(quán)限
[root@client103 mysql]# chown mysql. /var/lib/mysql/
# 啟動(dòng)數(shù)據(jù)庫(kù)
[root@client103 mysql]# /etc/init.d/mysqld start
# 驗(yàn)證數(shù)據(jù)的一致性:5418272(主上的行)
mysql> select count(*) from a;
+----------+
| count(*) |
+----------+
|  5418272 |
+----------+
4.將從DB2的主機(jī)指向主DB1
1
2
3
4
5
6
7
8
9
10
11
12
13
# 剛才回復(fù)后,會(huì)有個(gè)文件:xtrabackup_binlog_pos_innodb --> 此文件記錄了備份時(shí)日志文件和pos號(hào)
[root@client103 mysql]# cat xtrabackup_binlog_pos_innodb
/var/lib/mysql/mysql-101-bin.000008     2423
# 建立主從關(guān)系
mysql> change master to master_host='192.168.1.101',
    -> master_user='slave',
    -> master_password='slave',
    -> master_log_file='mysql-101-bin.000008',
    -> master_log_pos=2423;
# 開(kāi)啟同步
mysql> start slave;
# 查看同步狀態(tài)
mysql> show slave status\G;
5.此時(shí)如果都為yes,則主從則建立完畢!大家可自行測(cè)試
注:
    還有一種方式在線(xiàn)添加主從,即原本的從機(jī)只做冗余,可以在從機(jī)暫時(shí)停止主從,
    然后,在從機(jī)上執(zhí)行備份,看當(dāng)前從機(jī)上,日志執(zhí)行到哪個(gè)文件,哪個(gè)位置(master的日志文件和pos號(hào))
  • mysql數(shù)據(jù)庫(kù)管理工具
mysql數(shù)據(jù)庫(kù)管理工具
(6)mysql數(shù)據(jù)庫(kù)管理工具

mysql數(shù)據(jù)庫(kù)管理工具是可以幫助很多的在使用mysql數(shù)據(jù)庫(kù)的人員更好的管理你的mysql數(shù)據(jù)庫(kù),這里面有你需要的mysql數(shù)據(jù)庫(kù)備份工具以及mysql數(shù)據(jù)庫(kù)連接工具,還有mysql數(shù)據(jù)庫(kù)導(dǎo)出工具等,各種各樣的實(shí)用工具都是可以方便你的下載以及使用的!

...更多>>

擴(kuò)展知識(shí)

相關(guān)評(píng)論

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過(guò)難過(guò)
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無(wú)聊無(wú)聊
熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)