Mysql主從備份及恢復總結

 Mysql主從實現mysql

 

1、配置主從節點的服務配置文件sql

 

1.1、配置master節點:數據庫

[mysqld]socket

binlog_format=mixedide

log-bin=master-bin測試

server-id=1spa

port=3306線程

datadir=/mydata/data日誌

socket=/tmp/mysql.sockorm

 

1.2、配置slave節點:

[mysqld]

binlog-format=mixed

log-bin=mysql-bin.log

server-id=2

relay-log=/mydata/relaylogs/relay-bin(須要建立/mydata/relaylogs/後chown -R mysql.mysql /mydata/relaylogs/)

port=3306

datadir=/mydata/data

socket=/tmp/mysql.sock

 

 

2、建立複製用戶

主:

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

mysql> flush privileges;

 

3、爲備節點提供初始數據集

鎖定主表,備份主節點上的數據,將其還原至從節點;在備份時須要在master上使用show master status命令查看二進制日誌文件名稱及事件位置,以便後面啓動slave節點時使用。

注:經過全備能夠看出mysql-bin的初始位置,

show master status 能夠看出目前的空間位置。

經過全備和增量備份便可還原。

 

 

4、爲了測試效果,先在master機器上建立測試庫

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、導出master數據庫多於slave數據庫中的數據,而後導入到slave數據庫中。保證雙方在同步環境實現前的數據一致。

導出數據庫以前先鎖定數據庫

 

 mysql> flush tables with read lock;       

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

而後將導出的test.sql文件上傳到slave機器上

scp test.sql root@192.168.4.204:/root/

     

6、啓動從節點的複製線程

記錄mysq-bin文件和位置,從端能夠從下面這個點開始同步

 

                                              blob.png

 

7、在slave數據庫中導入從master傳過來的數據。

mysql> CREATE DATABASE  test  CHARACTER SET utf8  COLLATE utf8_general_ci;   #先建立一個test空庫,不然下面導入數據時會報錯說此庫不存在。字符集須要相同與主庫

 mysql>  use test;

#mysql -uroot -p test < test.sql   

 

 

 

8、準備同步

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;

blob.png

 

 

 

 

 

 

9、最後解鎖主庫並寫入數據進行同步驗證:

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:

blob.png

相關文章
相關標籤/搜索