diff --git a/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/partition_init.go b/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/partition_init.go index ea00c340cc..9fd2211716 100644 --- a/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/partition_init.go +++ b/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/partition_init.go @@ -81,7 +81,7 @@ func (pc *PartitionConfig) ExecuteInitStatement(pd *PartitionDetail, conn *nativ func (pc *PartitionConfig) ExecuteInitStatementByPTTool(initStatement string, forceInitInfo *ForceInitInfo, partitionStepInfo *PartitionStepInfo) { // 有唯一键,使用pt工具 - pt_tool := "percona-toolkit-3.5.0/bin/pt-online-schema-change" + pt_tool := "percona-toolkit-3.5.7/bin/pt-online-schema-change" user := forceInitInfo.User pwd := forceInitInfo.Pwd host := forceInitInfo.Host diff --git a/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/tendbcluster_partition.go b/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/tendbcluster_partition.go index 808c1ec788..d279dda25e 100644 --- a/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/tendbcluster_partition.go +++ b/dbm-services/mysql/db-tools/dbactuator/pkg/components/mysql/partitionsvr/tendbcluster_partition.go @@ -29,16 +29,12 @@ func (c *PartitionExecComp) TendbClusterPartition() (err error) { return fmt.Errorf("error occurred while getting shard info: %s", err.Error()) } - // 强制执行是任务级别的,对此次所有分区配置通用,使用同一个ForceInitInfo + // 强制执行是任务级别的开关,DSN 在各分片上再组装 // 非强制执行,则为nil var forceInitInfo *ForceInitInfo if c.Params.Force { forceInitInfo = &ForceInitInfo{ Force: c.Params.Force, - User: c.GeneralParam.RuntimeAccountParam.PartitionYwUser, - Pwd: c.GeneralParam.RuntimeAccountParam.PartitionYwPwd, - Host: c.Params.Cluster.IP, - Port: c.Params.Cluster.Port, } } // 使用带缓冲的channel实现并发控制,最大并发数为3 @@ -149,8 +145,17 @@ func (c *PartitionExecComp) ExecuteOneConfigOnShards(tdbCluPartConf *TdbCluPartC mu.Unlock() return } - - tdbCluPartConf.ExecuteOneShardPartition(tdbCluPartConf, shard, shardConn, partitionShardResult, forceInitInfo, partialForce) + var shardForceInitInfo *ForceInitInfo + if forceInitInfo != nil { + shardForceInitInfo = &ForceInitInfo{ + Force: forceInitInfo.Force, + User: shard.Account, + Pwd: shard.PWD, + Host: shard.IP, + Port: shard.Port, + } + } + tdbCluPartConf.ExecuteOneShardPartition(tdbCluPartConf, shard, shardConn, partitionShardResult, shardForceInitInfo, partialForce) if !partitionShardResult.ShardStatus { mu.Lock()