最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

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

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 13:51:29
文檔

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

線上mysql數(shù)據(jù)庫不停機(jī)的環(huán)境下如何添加新的從機(jī):在工作中,主從環(huán)境搭的多了,但是,基本上都是在DB SERVER停機(jī)(游戲公司)的情況下搭建的,今天突然被一技術(shù)官問,如何在線添加主從,回答的大概思路,但是沒有實(shí)踐過,下面,我就測試一下。各位也可以先想想自己的思路:mysql 5.1版本,二進(jìn)制日志文件(時(shí)間
推薦度:
導(dǎo)讀線上mysql數(shù)據(jù)庫不停機(jī)的環(huán)境下如何添加新的從機(jī):在工作中,主從環(huán)境搭的多了,但是,基本上都是在DB SERVER停機(jī)(游戲公司)的情況下搭建的,今天突然被一技術(shù)官問,如何在線添加主從,回答的大概思路,但是沒有實(shí)踐過,下面,我就測試一下。各位也可以先想想自己的思路:mysql 5.1版本,二進(jìn)制日志文件(時(shí)間

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

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

  注:在mysql 5.6版本中,已經(jīng)有基于GTID的主從復(fù)制(即:不需要知道日志文件和position號),只需還原最新的備份就可實(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)備在線添加做為從機(jī)的mysql數(shù)據(jù)庫)

  數(shù)據(jù)庫版本:mysql 5.1.61(select version())

  服務(wù)器版本:red hat linux 6

  注:目前主從正常(show slave statusG),同步的數(shù)據(jù)庫為 login

  3臺DB server的備份軟件(xtrbackup)都已經(jīng)安裝完成

  同步的表為innodb引擎的表,不然用xtrabackup還是會鎖表

  假設(shè)環(huán)境為:現(xiàn)在login庫下的表a,備份的時(shí)候插入數(shù)據(jù),最終行為5418272

  注:思路是備份,可是用mysqldump備份會鎖表,如果數(shù)據(jù)量很大的話,線上環(huán)境肯定不允許使用mysqldump備份

  所以,我們采用的xtrabackup來進(jìn)行在線熱備,至于,它的原理,,請各位自行g(shù)oogle

  二.部署實(shí)例:

  1.主DB,線上數(shù)據(jù)正常寫入的同時(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 此文件會記錄主上的日志和position號

[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ù)有問題

# [這里建議只復(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ù)庫的內(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/

# 啟動數(shù)據(jù)庫

[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ù)后,會有個(gè)文件:xtrabackup_binlog_pos_innodb --> 此文件記錄了備份時(shí)日志文件和pos號

[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;

# 開啟同步

mysql> start slave;

# 查看同步狀態(tài)

mysql> show slave statusG;

  5.此時(shí)如果都為yes,則主從則建立完畢!大家可自行測試

  注:

  還有一種方式在線添加主從,即原本的從機(jī)只做冗余,可以在從機(jī)暫時(shí)停止主從,

  然后,在從機(jī)上執(zhí)行備份,看當(dāng)前從機(jī)上,日志執(zhí)行到哪個(gè)文件,哪個(gè)位置(master的日志文件和pos號)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

線上mysql數(shù)據(jù)庫不停機(jī)的環(huán)境下如何添加新的從機(jī):在工作中,主從環(huán)境搭的多了,但是,基本上都是在DB SERVER停機(jī)(游戲公司)的情況下搭建的,今天突然被一技術(shù)官問,如何在線添加主從,回答的大概思路,但是沒有實(shí)踐過,下面,我就測試一下。各位也可以先想想自己的思路:mysql 5.1版本,二進(jìn)制日志文件(時(shí)間
推薦度:
標(biāo)簽: 添加 如何 新的
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top