使用mysqldump備份來實如今線添加新的從機

   更多博文請關注:沒有傘的孩子必須努力奔跑 (www.xuchanggang.cn)mysql


   在上一篇博文中,提到使用xtrabackup工具來實現熱備,這篇我經過mysqldump來實如今線添加從機linux

一.目前的基本環境:
 主DB:192.168.1.101
 從DB1:192.168.1.102
 從DB2:192.168.1.100(準備在線添加作爲從機的mysql數據庫)
 數據庫版本:mysql 5.1.61(select  version())
 服務器版本:red hat linux 6
       注:目前主從正常(show slave status\G),同步的數據庫爲 login
              同步的表爲innodb引擎的表
       注:思路是備份,但是用mysqldump備份會鎖表,若是數據量很大的話,線上環境確定不容許使用mysqldump備份
              因此,咱們採用的xtrabackup來進行在線熱備,至於,它的原理,請各位自行google
二.部署實例:
1.主DB,線上數據正常寫入的同時我實施備份
# 使用mysqldump進行備份,使用--master-data參數:此值有1和2,你們能夠本身google如下
[root@client101 ~]# mysqldump -uroot -pkongzhong --opt --hex-blob --single_transaction -R --default-character-set=utf8 --master-data=2 login>/tmp/login.sql
# 再開一個端口,插入數據
mysql> insert into a select * from a;
# 備份完畢後,咱們查看剛纔的備份發現,master的日誌文件和pos號
[root@client101 ~]# grep -i  "change master"  /tmp/login.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-101-bin.000007', MASTER_LOG_POS=107;
# 我剛纔在備份的時候也插入數據的,我再看看主上實際的日誌文件和pos號
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| mysql-101-bin.000007 |      532 |              |                  |
+----------------------+----------+--------------+------------------+
# 如今咱們利用備份還原,利用備份的裏的pos號,看可否追上主
2.備份完成後,將數據傳送到須要做爲新從機的DB server(192.168.1.100)上用於在上面進行還原
[root@client101 ~]# scp /tmp/login.sql  192.168.1.100:/tmp
3.從DB2上,使用剛纔的備份,並用於恢復
[root@client100 tmp]# mysql -uroot -pkongzhong  login </tmp/login.sql
# 修改配置文件:/etc/my.cnf
replicate-wild-do-table=login.%
innodb_file_per_table=1
report-host=192.168.1.100
innodb_lock_wait_timeout=1
expire_logs_days= 3
max_binlog_size= 100M
server-id=100
# 從新啓動數據庫
[root@client103 mysql]# /etc/init.d/mysqld restart
4.將從DB2的主機指向主DB1
# 備份文件裏有備份時的master日誌文件和pos號
[root@client100 ~]# grep -i  "change master"  /tmp/login.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-101-bin.000007', MASTER_LOG_POS=107;
# 創建主從關係
mysql> change master to master_host='192.168.1.101',
    -> master_user='slave',
    -> master_password='slave',
    -> master_log_file='mysql-101-bin.000007',
    -> master_log_pos=107;
# 開啓同步
mysql> start slave;
# 查看同步狀態
mysql> show slave status\G;
5.此時若是都爲yes,則主從則創建完畢!發現數據已經追上從機了
  你們能夠自行測試!
相關文章
相關標籤/搜索