溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql主從備份及恢復(fù)總結(jié)

發(fā)布時(shí)間:2020-06-22 02:16:33 來源:網(wǎng)絡(luò) 閱讀:2109 作者:大鳥地帶 欄目:MySQL數(shù)據(jù)庫(kù)

 Mysql主從實(shí)現(xiàn)

 

1、配置主從節(jié)點(diǎn)的服務(wù)配置文件

 

1.1、配置master節(jié)點(diǎn):

[mysqld]

binlog_format=mixed

log-bin=master-bin

server-id=1

port=3306

datadir=/mydata/data

socket=/tmp/mysql.sock

 

1.2、配置slave節(jié)點(diǎn):

[mysqld]

binlog-format=mixed

log-bin=mysql-bin.log

server-id=2

relay-log=/mydata/relaylogs/relay-bin(需要?jiǎng)?chuàng)建/mydata/relaylogs/后chown -R mysql.mysql /mydata/relaylogs/)

port=3306

datadir=/mydata/data

socket=/tmp/mysql.sock

 

 

2、創(chuàng)建復(fù)制用戶

主:

mysql> GRANT REPLICATION SLAVE ON *.* TO slave@192.168.4.%  IDENTIFIED BY '12345';

mysql> flush privileges;

 

3、為備節(jié)點(diǎn)提供初始數(shù)據(jù)集

鎖定主表,備份主節(jié)點(diǎn)上的數(shù)據(jù),將其還原至從節(jié)點(diǎn);在備份時(shí)需要在master上使用show master status命令查看二進(jìn)制日志文件名稱及事件位置,以便后面啟動(dòng)slave節(jié)點(diǎn)時(shí)使用。

注:通過全備可以看出mysql-bin的初始位置,

show master status 可以看出目前的空間位置。

通過全備和增量備份即可還原。

 

 

4、為了測(cè)試效果,先在master機(jī)器上創(chuàng)建測(cè)試庫(kù)

mysql> CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;

Query OK, 1 row affected (0.00 sec)

    

mysql> use test;

Database changed

mysql> create table if not exists test (id int(10) PRIMARY KEY AUTO_INCREMENT,name varchar(50) NOT NULL);

Query OK, 0 rows affected (0.02 sec)

    

mysql> insert into test.test values(1,"liudehua"),(2,"zhangxueyou”);

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0

    

mysql> select * from test.test;

+----+-----------+

| id | name      |

+----+-----------+

|  1 | liudehua |

|  2 | zhangxueyou |

+----+-----------+

2 rows in set (0.00 sec)

 

5、導(dǎo)出master數(shù)據(jù)庫(kù)多于slave數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后導(dǎo)入到slave數(shù)據(jù)庫(kù)中。保證雙方在同步環(huán)境實(shí)現(xiàn)前的數(shù)據(jù)一致。

導(dǎo)出數(shù)據(jù)庫(kù)之前先鎖定數(shù)據(jù)庫(kù)

 

 mysql> flush tables with read lock;       

      # mysqldump -uroot -p12345  test > /opt/test.sql

然后將導(dǎo)出的test.sql文件上傳到slave機(jī)器上

scp test.sql root@192.168.4.204:/root/

     

6、啟動(dòng)從節(jié)點(diǎn)的復(fù)制線程

記錄mysq-bin文件和位置,從端可以從下面這個(gè)點(diǎn)開始同步

 

                                              Mysql主從備份及恢復(fù)總結(jié)

 

7、在slave數(shù)據(jù)庫(kù)中導(dǎo)入從master傳過來的數(shù)據(jù)。

mysql> CREATE DATABASE  test  CHARACTER SET utf8  COLLATE utf8_general_ci;   #先創(chuàng)建一個(gè)test空庫(kù),否則下面導(dǎo)入數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò)說此庫(kù)不存在。字符集需要相同與主庫(kù)

 mysql>  use test;

#mysql -uroot -p test < test.sql   

 

 

 

8、準(zhǔn)備同步

mysql> stop slave;

mysql> CHANGE MASTER TO MASTER_HOST='192.168.4.203',

-> MASTER_USER='slave',

-> MASTER_PASSWORD='12345',

-> MASTER_LOG_FILE='master-bin.000004',

-> MASTER_LOG_POS=2327;

mysql> start slave;

mysql> show slave status \G;

Mysql主從備份及恢復(fù)總結(jié)

 

 

 

 

 

 

9、最后解鎖主庫(kù)并寫入數(shù)據(jù)進(jìn)行同步驗(yàn)證:

master:

mysql> unlock tables;   

mysql> insert into test.customers values (5,"liming",55),(6,"guofucheng",55);

Query OK, 1 row affected (0.00 sec)

 

 

slave:

Mysql主從備份及恢復(fù)總結(jié)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI