| | |
| | | // 启动后查询一次集群状态 |
| | | ss.QueryClusterStat() |
| | | |
| | | if ss.ClusterStatus != "" { |
| | | ss.sqlDB.LogMode(true) |
| | | } |
| | | //if ss.ClusterStatus != "" { |
| | | ss.sqlDB.LogMode(true) |
| | | //} |
| | | |
| | | initChan <- true |
| | | <-q |
| | |
| | | // 退出集群, 开启日志跟踪, 设置角色slave |
| | | ss.clusterEventFn(EventLeaveCluster) |
| | | ss.ClusterStatus = "" |
| | | ss.sqlDB.LogMode(false) |
| | | ss.sqlDB.LogMode(true) |
| | | case "slave2master": |
| | | ss.clusterEventFn(EventSlave2Master) |
| | | ss.ClusterStatus = "master" |
| | |
| | | //fmt.Println("同步全量数据给节点:", targetId) |
| | | sqls, err := DumpTables(ss.sqlDB, ss.syncTables) |
| | | if err != nil { |
| | | fmt.Println("DumpTables error, ", err.Error()) |
| | | logx.Errorf("DumpTables error: %s", err.Error()) |
| | | return err |
| | | } |
| | | |
| | | logx.Infof("DumpTables sql:%v", sqls) |
| | | syncSql := strings.Join(sqls, ";") |
| | | if len(syncSql) < sizeLimit { |
| | | err = ss.pubSyncSqlMessage([]byte(syncSql), targetId) |
| | |
| | | |
| | | shard = fmt.Sprintf("%s%s;", shard, sql) |
| | | } |
| | | |
| | | if len(shard) > 0 { |
| | | err = ss.pubSyncSqlMessage([]byte(shard), targetId) |
| | | } |
| | | } |
| | | |
| | | return err |