標籤:主從同步 mysql熱備份 linux mysql 即時同步
近期需要對主伺服器上的mysql進行熱備份,也就是資料即時同步。
參考的文章如下 :http://369369.blog.51cto.com/319630/790921/
我的環境如下:主機A ip:42.62.25.47 從機B ip:106.3.37.197
需要熱備份的資料為vbumng
1.前提要求:主機A 的mysql版本 不得高於 從機B的mysql版本
2.修改主機A的設定檔
我的設定檔目錄為 /etc/my.cnf
在[mysqld] 模組中加入下面配置
[mysqld]log-bin = mysql-bin <!--啟用二進位檔案-->log-slave-updates = turebinlog-do-db = vbumng <!--要備份的資料庫名稱-->binlog-do-db = cdnquality <!--如果要備份多個資料庫-->server-id = 47
ps: server-id一定要配置,預設為1,一般取IP最後一段
log-bin 為資料庫的二進位記錄檔,
如果要備份主機上的多個資料庫,則添加多個 binlog-do-db
至此為止主機A mysql配置修改完畢
3.主機A mysql重啟,建立使用者並授權
重啟主機A mysql /etc/init.d/mysqld start,進入mysql
建立使用者並授權slave,這個使用者從機中需要使用到
GRANT REPLICATION SLAVE ON *.* to ‘resourcemanage‘@‘%‘ identified by ‘chinacache.gz‘;//一般不用root帳號,“%”表示所有用戶端都可以連,只要帳號密碼正確,此處可用具體用戶端IP代替,如106.3.37.197,加強安全。
查看master 狀態
mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 308 | testDB | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
註:執行完此步驟後不要再操作主伺服器MYSQL,防止主伺服器狀態值變化,這裡的file與設定檔中制定的二進位檔案格式相同
4.配置從機B 設定檔
#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必須]啟用二進位日誌 server-id=226 //[必須]伺服器唯一ID,預設是1,一般取IP最後一段
網上很多文章都提到,在此處放master-host,master-user等,但是mysql5.0之後就不支援了,加入了反而資料庫無法啟動。
5.重啟從機mysql,配置對應的master資訊
重啟從機B mysql
/etc/init.d/mysql restart
將主機testDB 資料完整複製一份到從機,一定要手動備份過去,因為主從slave只即時同步start slave
命令執行後進行的增刪改查操作。
配置從機 slave
change master to master_host=‘42.62.25.47‘,master_user=‘testDB‘,master_password=‘chinacache.gz‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=308;
ps: master_host——主機ip
master_user——需要備份的資料庫
master_password——主機建立的slave密碼
master_log_file——master status中對應的日誌file
master_log_pos——master status中對應的position ,主機此處master_log_pos不需要引號
開啟slave
mysql>start slave; mysql>show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 42.62.25.47 <!--主機ip--> Master_User: vbumng <!--主機db名稱--> Master_Port: 3306 <!--主機db連接埠--> Connect_Retry: 60 Master_Log_File: mysql-bin.000004 <!--主機master記錄檔--> Read_Master_Log_Pos: 40543 Relay_Log_File: mysqld-relay-bin.000006 Relay_Log_Pos: 3489 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: vbumng .....................
ps:如果Slave_IO_Running, Slave_SQL_Running均顯示Yes,則說明slave成功,可在主機資料庫中添加資料,在從機中將探索資料被即時同步了。
如果有一個為No,則需要查看日誌了。
到此為止,簡單的一主一從就沒有問題了,如果是主機上多個資料庫,分別備份到不同的從機的話,那麼主機my.cnf中配置多個binlog-do-db,從機的話流程就和上面一樣咯。
本文出自 “bulajunjun” 部落格,請務必保留此出處http://5148737.blog.51cto.com/5138737/1570274
linux中mysql主從熱備份