程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql主從同步備份

mysql主從同步備份

編輯:MySQL綜合教程

mysql主從同步備份    網站有一個後台業務,叫searchEngine項目,基於Lucene 構建。主要提供索引構建和檢索的功能,搜索引擎查詢mysql 數據庫然後根據數據狀態來構建索引,這裡采用的是 程序每隔一段時間主動輪詢 mysql 查詢 數據列 增刪改的狀態,對應的去增刪改 Lucene 索引,然後會將索引的狀態更新到數據列中,方便輪詢的時候區分哪些是未索引的數據。       由於mysql主要采用myisam引擎,導致java程序構建索引 輪詢數據庫的時候,頻繁鎖表,頁面查詢的時候無法響應。這裡做了下 mysql 主從同步,將所有業務上的更新和查找在 master 上進行,而Lucene後台服務操作slave庫,同時也起到備份的作用。這裡整理下做主從備份的一些配置。       主庫 master:192.168.0.102,mysql 5.6.12,centos       從庫 slave:192.168.0.100,mysql 5.5.13,centos   都是采用源碼編譯,安裝過程可以查看我的這篇博文http://www.BkJia.com/database/201306/221828.html。master、slave 所有的數據表結構都一致。之前我做了一個雙master 的配置,可以查看這裡http://www.BkJia.com/database/201306/221828.html   1. master 配置 這裡的配置只截取了部分 同步需要的配置,其他的優化方面的暫不考慮   my.cnf:   01 [client] 02 port=3306 03 [mysqld] 04 socket=/usr/local/mysql/mysql.sock 05 basedir=/usr/local/mysql 06 datadir=/usr/local/mysql/data 07 log-error=/usr/local/mysql/data/mysql_error.log 08 pid-file=/usr/local/mysql/data/mysql.pid 09 log-bin = /usr/local/mysql/mysql-bin.log #二進制文件必須開啟 10 explicit_defaults_for_timestamp=true 11 innodb_flush_log_at_trx_commit=2 #日志flush到磁盤的,2表示寫入到緩存,提高性能,操作系統崩潰會丟失部分數據 12 #master 13 server_id=1 14 expire_logs_days = 10 15 max_binlog_size = 1G 16 binlog-do-db = webportal #同步數據庫 17 binlog-ignore-db=information_schema 18 binlog-ignore-db=performance_schema 19 binlog-ignore-db=mysql 20 binlog-ignore-db=test     創建同步用戶,在主服務器上為從服務器建立一個連接帳戶,該帳戶必須授予REPLICAITON SLAVE權限。在主服務器登陸mysql上執行   1 grant replication slave on *.* to 'replication'@'192.168.0.100' identified by '123456'; 注: [email protected]這裡是客戶端的ip 可以使用 % 代替,表示允許任意的客戶端,例如:   192.168.0.% 。表示該段地址的主機都可作為客戶端。   查看master 狀態:   1 mysql> show master status\G; 2 *************************** 1. row *************************** 3              File: mysql-bin.000001 4          Position: 416 5      Binlog_Do_DB: webportal 6  Binlog_Ignore_DB: information_schema,performance_schema,mysql,test 7 Executed_Gtid_Set: 8 1 row in set (0.00 sec) 注意上面的 File 和 Position :slave 配置的時候會使用。 2. slave配置 1 [mysqld] 2 server_id=2 3 log-bin=mysql-bin.log 4 replicate-do-db=webportal 用change master語句指定同步位置 1 mysql>change master to master_host='192.168.0.102', master_user='replication', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=525; 2   3 注:master_log_file,master_log_pos由上面master查出的狀態值中確定。master_log_file對應File,master_log_pos對應Position。 啟用slave; 1 start slave; 關閉slave;   1 stop slave; 查看狀態:     1 show slave status; 這裡出現了這樣一個錯誤:     Last_IO_Error: Got fatal error 1236 from master when reading data from >> binary log: 'Slave can not handle replication events with the checksum that >> master is configured to log; the first event 'mysql-bin.000001' 這是由於 master 用的 mysql5.6 , binlog_checksum 默認設置的是 crc32。 如果slave用的 5.5 或者更早的版本,請將master的 binglog_checksum設置為 none。 binlog_checksum=none 重啟master : ./mysqld restart    查看slave :show slave status\G;     01 mysql> show slave status\G; 02 *************************** 1. row *********** 03                Slave_IO_State: Waiting for mas 04                   Master_Host: 192.168.0.102 05                   Master_User: replication 06                   Master_Port: 3306 07                 Connect_Retry: 60 08               Master_Log_File: mysql-bin.00000 09           Read_Master_Log_Pos: 120 10                Relay_Log_File: YZ-relay-bin.00 11                 Relay_Log_Pos: 266 12         Relay_Master_Log_File: mysql-bin.00000 13              Slave_IO_Running: Yes  #必須為yes 14             Slave_SQL_Running: Yes  #必須為yes 15               Replicate_Do_DB: webportal 16           Replicate_Ignore_DB: 17            Replicate_Do_Table: 18        Replicate_Ignore_Table: 19       Replicate_Wild_Do_Table: 20   Replicate_Wild_Ignore_Table: 21                    Last_Errno: 0 22                    Last_Error: 23                  Skip_Counter: 0 24           Exec_Master_Log_Pos: 120 25               Relay_Log_Space: 419 26               Until_Condition: None 27                Until_Log_File: 28                 Until_Log_Pos: 0 29            Master_SSL_Allowed: No 30            Master_SSL_CA_File: 31            Master_SSL_CA_Path: 32               Master_SSL_Cert: 33             Master_SSL_Cipher: 34                Master_SSL_Key: 35         Seconds_Behind_Master: 0 36 Master_SSL_Verify_Server_Cert: No 37                 Last_IO_Errno: 0 38                 Last_IO_Error: 39                Last_SQL_Errno: 0 40                Last_SQL_Error: 41   Replicate_Ignore_Server_Ids: 42              Master_Server_Id: 1 43 1 row in set (0.00 sec) 注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態,否則都是錯誤的狀態(如:其中一個NO均屬錯誤)。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved