27主库出问题备库怎么办

正确切换一主多从
A、A1互为主备 可读写、BCD备库 只读
故障时A1成为新主库,BCD切换主库A1

基于点位的主备切换

MASTER_HOST、MASTER_PORT、MASTER_USER 和 MASTER_PASSWORD 分别代表了主库 A1的 IP、端口、用户名和密码。
MASTER_LOG_FILE 和 MASTER_LOG_POS,主库对应的文件名和日志偏移量,要从主库的master_log_name 文件的master_log_pos 这个位置的日志继续同步

取同步位点的方法:

  1. 等待新主库 A1把中转日志(relay log)全部同步完成;
  2. 在 A1上执行 show master status 命令,得到当前 A1上最新的 File 和 Position;
  3. 取原主库 A 故障的时刻T;
  4. 用mysqlbinlog 工具解析 A’的 File,得到 T 时刻的位点。

此方法不准确
解决方法:

  • 跳过一个事务
    重复执行会报错:Duplicate entry ‘id_of_R’ for key‘PRIMARY’ 错误,然后停止同步。
    执行
    set global sql_slave_skip_counter=1;
    start slave;
  • 设置 slave_skip_errors 参数,直接设置跳过指定的错误
    1062 错误是插入数据时唯一键冲突;
    1032 错误是删除数据时找不到行
    slave_skip_errors 设置为 “1032,1062”
    主备建立完成需清空设置

GTID

解决主备切换找同步位点的难题