中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL5.6 主從復制(簡單版)

發布時間:2020-06-16 23:38:44 來源:網絡 閱讀:782 作者:退而結網ZP 欄目:數據庫

幾種常見的Replication拓撲結構:

1.單master----多slave

slave之間互不通信,只和master通信

適用于讀壓力比較大的應用場景,將讀操作分布到不同的slave中,減小master壓力


2.多master----單slave 

    mysql貌似暫不支持,個人認為通過slave多實例實現


3.主動模式的Master----Master

當前master是另一master的slave

問題:同時更新一個操作產生沖突


4.主動-被動模式的Master----Master

只能有一個可讀


5.級聯復制的Master----Slaves----Slaves

結構1中的replication導致slave連上master的線程過多,replication的壓力過大

級聯可以一定程度上緩解master的壓力,但是需要設置log_slave_updates=1。

每級slave是下級slave的master,所有重做中繼日志同樣需要寫入binlog中


下面安裝的是最基本的單slave單master

第一步:準備工作

        操作系統:Centos7.1

        數據庫:mysql-5.6.30

        主host:172.17.220.145

        從host:172.17.220.220


第二步:設置防火墻

        Centos7.1默認防火墻為firewalld,需要通過yum安裝iptables-service

        分別在主從服務器中:

                vi /etc/sysconfig/iptables

                在“-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT”后增加

                -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

                systemctl start iptables.service 


第三步:修改主數據庫的配置文件my.cnf 

        server-id=145(主服務器的ID值,建議為ip最后一段)

        log_bin = /opt/mysql/data1/mysql-bin.log(二進制日志)

        log_slave_updates = 0 (0表示slave將復制事件寫進自己的二進制日志)

        binlog_format=MIXED  (二進制日志類型)


第四步:修改從數據庫的配置文件my.cnf 

        server-id=224

        log_bin = /opt/mysql/data1/mysql-bin.log(如果該slave為其他slave的master,必須開啟二進制)

        #relay_log=

        read_only=1 (防止從庫修改數據,從庫只讀)

        log_slave_updates = 1


第五步:創建master用戶

        登錄主數據庫

        mysql> GRANT REPLICATION SLAVE ON *.* TO 'mypri'@'172.17.220.145' IDENTIFIED BY ‘123456’;


第六步:重啟主從數據庫

        service mysql restart


第七步:假如主庫存在數據

        5.1 先對主庫鎖表,不讓數據再進行寫入

               mysql> flush tables with read lock;

        5.2 主庫 mysqldump -uroot -p --all-databases >all.sql(導出所有數據庫)

        5.3 若從庫不存在數據,則導入all.sql到從庫

             mysql -uroot -p <all.sql

            從庫本身存在數據,先備份從庫,再刪除從庫中的數據,僅保留mysql、information_schema、performance_schema

        5.4 主數據庫 unlock table

        5.5 主數據庫 show master status; 獲取master_log_file與master_log_pos


第八步: 從服務器slave啟動

        change master to master_host='172.17.220.145',

                master_user='mypri',

                master_password='123456',

                master_log_file='mysql-bin.000021',(show master status獲取)

                master_log_pos=1212, (show master status獲取)

                master_connect_retry=60;(超時重連)


        啟動slave:start slave;

        show slave status\G  驗證是否成功

        成功與否主要看:

                   Slave_IO_Running=Yes

                   Slave_SQL_Running=Yes

錯誤信息:

        1. slave have equal MySQL Server UUIDs

            這個問題的主要原因是本人進行了虛擬機復制,導致主從數據庫的server_id或server_uuid一致

            查看server_id:show variables like 'server_id';

            查看server_uuid:show variables like 'server_uuid';

            server_id一致,修改my.cnf文件

            server_uuid一致

                    刪除從庫中的$data_path/data/auto.cnf

            然后重啟從庫

查看主庫上的幾個重要參數:

            show variables like '%autocommit%';  自動提交是否開啟

            show variables like '%innodb_flush_method%'; innodb引擎的表刷新方式 O_DIRECT

            show variables like '%sync_binlog%'; 

                    sync_binlog=0:不主動刷新二進制日志文件的數據到磁盤上,由操作系統決定

                    sync_binlog=N:向二進制日志文件寫入N條SQL或N個事務后,二進制日志文件的數據刷新到磁盤上;


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙陵县| 新晃| 乡宁县| 富源县| 宜丰县| 田东县| 隆尧县| 家居| 民勤县| 衡山县| 仁寿县| 蒲城县| 辰溪县| 明溪县| 靖宇县| 贵州省| 北辰区| 灵寿县| 汝城县| 壶关县| 苍梧县| 江永县| 无极县| 永泰县| 腾冲县| 友谊县| 鄂温| 龙江县| 宜宾县| 攀枝花市| 稷山县| 武川县| 田东县| 息烽县| 望城县| 兴安县| 平原县| 仙居县| 临海市| 东山县| 藁城市|