色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 雙 master

錢多多2年前10瀏覽0評論

MySQL雙主是一種數據復制架構,它允許在兩個(或多個)主服務器之間進行雙向數據同步。 雙主復制結構可提供更高的可用性和容錯能力。

配置MySQL雙主的步驟如下:

1. 配置主節點A和主節點B之間的雙向復制
在主節點A上執行如下命令:
CHANGE MASTER TO
MASTER_HOST = '主節點B的IP地址',
MASTER_PORT = 3306,
MASTER_USER = 'rep_user',
MASTER_PASSWORD = 'rep_password',
MASTER_AUTO_POSITION = 1;
在主節點B上同樣執行以上命令,不同的是將MASTER_HOST改成主節點A的IP地址。
2. 配置主節點A和主節點B的自動故障轉移
在主節點A上創建如下存儲過程:
DELIMITER //
CREATE PROCEDURE failover()
BEGIN
DECLARE failover_done INT DEFAULT 0;
WHILE failover_done = 0 DO
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE 'HY000' SET failover_done=0;
START TRANSACTION;
SELECT IFNULL((SELECT 1 FROM information_schema.tables WHERE table_schema='mysql' AND table_name='failover_status'),0) INTO failover_done;
IF failover_done = 0 THEN
SELECT 'Setting up Failover' as state;
SET GLOBAL read_only = ON;
SELECT 'Read only mode enabled' as state;
CALL mysql.rds_stop_replication;
CALL mysql.rds_set_external_master ('主節點B的IP地址', 3306, 'rep_user', 'rep_password', 'mysql-bin.000001', 123);
CALL mysql.rds_start_replication;
SELECT 'Failover complete, new master is 主節點B' as state;
INSERT INTO mysql.failover_status VALUES (1);
END IF;
SET failover_done=1;
COMMIT;
END;
END WHILE;
END//
DELIMITER ;
然后在主節點A上創建一個事件,調用上面創建的存儲過程:
CREATE EVENT failover_event ON SCHEDULE EVERY 1 MINUTE DO CALL failover();
如果主節點A發生故障,主節點B會成為新的主節點,并繼續提供讀寫服務。

總之,MySQL雙主結構可以增強數據庫的可用性和容錯能力。建議使用較新版本的MySQL,因為在早期版本中,MySQL雙主復制結構可能存在穩定性和一致性問題。