mysql雙機主從熱備

在項目部署上線的時候,除了bug的修復最重要的仍是數據的安全,爲了防止一些特殊狀況的發生,咱們會採用一些容災備份的方案,在正常運行的狀況下也須要對數據庫進行備份, 相對於冷備份,熱備份和熱拷貝實時性是比較高的。有時候爲了提供數據庫的性能也會讀寫分離,實際方案也有不少種,好比master-slave備份機制, master-master 備份機制等等。

主從備份

  • 準備工做mysql

    • 主機A : 39.96.56.70 (master)
    • 主機B : 23.95.229.223 (slave)
  • 說明sql

    • 把主機A當成master機器, 主機B爲salve機器,利用mysql自帶的 REPLICATION完成熱備份,那麼當在主機A中有數據改變的時候會同步到主機B中,因此能夠把主機A當成write database, 主機B爲read database,能夠針對操做不一樣好比選擇指定的數據庫引擎,還有能夠選擇相關的鎖機制。

配置基本表:

分別在兩臺主機上安裝mysql,而且指定ip開通遠程鏈接,建立須要備份的數據庫以及建立一張測試表數據庫

mysql> create database hotcopytest;
mysql> use hotcopytest;
mysql> create tables person(name varchar(20) comment'name'); 
複製代碼

主機A配置

建立同步用戶(user replicate)
mysql> grant replication slave on *.* to 'replicate'@'23.95.229.223' identified by '123456';
mysql> flush privileges;

複製代碼

建立完以後,在slave中登陸ubuntu

ubuntu: mysql -h23.95.229.223 -ureplicate -p123456
複製代碼
修改mysql 配置文件

Linux中mysql的配置文件在 /etc/mysql/my.cnf, 若是my.cnf中引了con.d文件夾的話能夠在該文件夾下進行配置, 打開配置文件後在 [mysqld]下修改安全

server-id只要惟一自定義就能夠bash

log_bin 能夠自定義bin-log日誌服務器

max_bin_log_szie 爲bin_log日誌的容量ide

binlog_d0_db 須要備份的數據庫性能

binlog_ignore_db 被忽略的數據庫測試

配置完了以後重啓主機A,查看數據庫狀態( 在生產環境下記得先鎖表!!!

主機B配置

一樣修改配置文件並重啓數據庫

用change master 語句指定同步位置
mysql> change master to 
mysql>master_host='23.95.229.223',master_user='replicate',master_password='123456',
mysql> master_log_file=' mysql-bin.000056 ',master_log_pos=154;
mysql> stop salve; # 從新設置salve, salve線程重啓
mysql> reset slave;
mysql> start slave;
複製代碼
查看slave服務器狀態

查看到Salv_IO_Running = Yes

查看到Salv_SQL_Running = Yes

測試同步

在主機A中表插入數據, 主機B自動同步則成功了。

相關文章
相關標籤/搜索