mysql雙主互備設置詳細記錄

mysql雙主互備設置詳細記錄
1.環境詳細信息:
    1.1 服務器A
            CentOS realse 6.8 final
            mysql,5.6.34
            192.168.31.133;
    1.2 服務器B,
            CentOS realse 6.8 final
            mysql,5.6.34
            192.168.31.132
2.說明
    2.1 對於一個mysql服務器,通常有兩個線程來負責複製和被複制,當開啓複製以後:
        2.1.1 做爲主服務器Master,會把本身的每一次改動都記錄到二進制日誌binarylog中。(從服務器會負責來讀取這個log, 而後在本身那裏再執行一遍。)
        2.1.2 做爲從服務器Slave,會用master上的帳號登錄到master上,讀取master的Binarylog,寫入到本身的中繼日誌 relaylog,而後本身的sql線程會負責讀取這個中繼日誌,並執行一遍。到這裏主服務器上的更改就同步到從服務器上了。
3.設置詳細步驟:
    3.1 在服務器A上建立專門用於備份的帳戶,在mysql中執行:
        grant replication slave on *.* to 'root_save'@'192.168.31.132' identified by 'root_save';
        其中192.168.31.132爲B服務器的IP地址,前面的root_save爲用戶名,後面的root_save爲密碼
    3.2 開啓主服務器(A服務器)的binarylog(配置my.cnf文件中的相關參數)
        #about master-slave
        #開啓二進制日誌
        log-bin=mysql-bin
        #設置二進制文件模式
        binlog_format=mixed
        #服務的ID,主從服務須要設置不一樣的值
        server-id=1mysql

        #設置是否只讀
        read-only=0
        #設置須要關注的數據庫
        #binlog-do-db=i_test
        #設置須要忽略的數據庫
        #which should be ignored
        binlog-ignore-db=mysql
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        #how many db servers
        auto-increment-increment = 10
        # 設置增加的初始值
        auto-increment-offset=2
        #end master-slave
    3.3 獲取主服務器(A服務器)狀態,和同步初態。
        3.3.1 先鎖定須要同步的數據庫,好比咱們測試的i_test,在mysql中執行:
        use i_test;
        FLUSH TABLES WITH READ LOCK;
        3.3.2 導出數據庫中的數據,在命令行中執行:
        mysqldump --master-data -u root -p i_test > i_test.sql
        3.3.3 查看A服務器的binary日誌位置,在mysql中執行:
        show master status\G;
        執行結果以下:
        mysql> show master status\G;
        *************************** 1. row ***************************
                     File: mysql-bin.000007 #該參數在啓動同步設置MASTER_LOG_FILE參數時使用
                 Position: 2879 #該參數在啓動同步設置MASTER_LOG_POS參數時使用
             Binlog_Do_DB:
         Binlog_Ignore_DB: mysql,information_schema,performance_schema
        Executed_Gtid_Set:
        1 row in set (0.00 sec)sql

        ERROR:
        No query specified數據庫

        3.3.4 解鎖數據庫,在mysql中依次執行:
        use i_test;
        unlock tables;
    3.4 設置從服務器(B服務器)須要複製的數據庫(配置my.cnf文件中的相關參數)
        #about master to slave
        log-bin=mysql-bin
        binlog-format=mixed
        #服務的ID,主從服務須要設置不一樣的值
        server-id=2服務器

        #replicate-do-db=i_test
        #能夠指定須要複製的數據庫
        replicate-ignore-db=mysql
        #複製時須要排除的數據庫
        replicate-ignore-db=information_schema
        replicate-ignore-db=performance_schema
        #中繼日誌的名字
        relay_log=mysqld-relay-bin
        #中繼日誌執行以後,這些變化是否須要計入本身的binarylog。 當你的B服務器須要做爲另一個服務器的主服務器的時候須要打開。  就是雙主互相備份,或者多主循環備份。
        log-slave-updates=ON
        #about master to slave
    3.5 配置my.cnf文件以後重啓mysql服務
    3.6 導入初態,開始同步
        在從服務器(B服務器)建立數據庫,i_test,在mysql中執行:
        create database i_test;
        把剛剛從主服務器(A服務器上)導出的i_test.sql導入到從服務器(B服務器)的i_test數據庫中,在命令行執行:
        mysql -u root -p i_test<i_test.sql
    3.7 開啓同步
        在從服務器(B服務器)上執行
        CHANGE MASTER TO
        MASTER_HOST='192.***.***.***',#(A服務器IP)
        MASTER_USER='repl_user',#(A服務器建立的B服務器訪問帳號)
        MASTER_PASSWORD='hj3****',#(A服務器建立的B服務器訪問帳號的密碼)
        MASTER_LOG_FILE='mysql-bin.000004',#(A服務器的當前二進制日誌文件的名稱)
        MASTER_LOG_POS=7145;#(A服務器的當前二進制日誌文件的位置)
    3.8 重啓從服務器(B服務器)的mysql服務
    3.9 查看從服務器(B服務器)的slave線程狀況
        show slave status\G;
        只有在
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        才說明配置成功,其中任意一個爲NO都表示配置不成功,應當查看錯誤日誌,進行查看。
    3.10 在主服務器(A服務器)上的i_test數據庫中插入一條記錄,在從服務器(B服務器)上進行查看,就可以正常的查看到了。
    3.11 以上完成A-B的複製,即簡單的主從配置,
        如今開始配置B-A的複製,即:把B當成主服務器,A當成從服務器,從而實現雙主熱備.
    3.12 在B中建立用於複製的帳戶,相似於3.1,在mysql中執行:
        grant replication slave on *.* to 'root_save'@'192.168.31.133' identified by 'root_save';
    3.13 開啓主服務器(B服務器)的binarylog,相似於3.2
        read-only=0
        binlog-ignore-db=mysql
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        auto-increment-increment = 10
        auto-increment-offset=6
    3.14 查看主服務器(B服務器)的master日誌狀態,相似於3.3.3
        show master status\G;
    3.15 開啓從服務器(A服務器)的中繼日誌,相似於3.4
        #replicate-do-db=i_test
        replicate-ignore-db=mysql
        replicate-ignore-db=information_schema
        replicate-ignore-db=performance_schema
        relay_log=mysqld-relay-bin
        log-slave-updates = ON
    3.16 啓動同步,在從服務器(A服務器)的mysql下執行:
        change master to
        master_host='192.168.31.132',
        master_user='root_save',
        master_password='root_save',
        master_log_file='mysql-bin.000006',
        master_log_pos=120;
    3.17 查看從服務器(A服務器)的slave狀態是否正常
        show slave status\G;
        只有在
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        才說明配置成功,其中任意一個爲NO都表示配置不成功,應當查看錯誤日誌,進行查看。
    3.18 完成以上操做以後,mysql雙主熱備就實現了。
4.配置過程當中的注意事項:
    4.1 注意參數的拼寫,下劃線和中劃線的書寫
    4.2 注意查看錯誤日誌
    4.3 注意設置的帳號和密碼是否正確
    4.4 注意對應端口是否開啓以及防火牆的狀態
    4.5 注意在開啓從服務器的同步時,應當是即時查看主服務器的master狀態
    4.6 注意設置mysql服務的開機啓動ide

相關文章
相關標籤/搜索