集群账号
重置集群内部账号密码
Cluster.resetRecoveryAccountsPassword()
创建集群配置账号
dba.configureInstance('root@ic-1:3306', {clusterAdmin: "'icadmin'@'ic-1%'"});
升级账号为集群管理账号
myCluster.setupAdminAccount('icadmin', {'update':1})
权限和配置账号是一样的,区别只是配置账号需要在创建集群前进行创建,不会分发到集群中的其他节点,管理账号可以在集群配置后创建,能够分发到其他节点
创建集群
检查集群实例配置
dba.checkInstanceCoextendednfiguration(instance)
配置集群实例
远程配置
dba.configureInstance(instance)
配置集群并创建集群账号
dba.configureInstance('root@/data%2Fmysql%2Fmysql.sock', {clusterAdmin: "'cluster_configure'",clusterAdminPassword:"'password"});
本地配置
dba.configureLocalInstance(instance)
创建和管理集群
创建集群
var cluster = dba.createCluster('testCluster')
检查要加入到集群的实例状态
cluster.checkInstanceState('icadmin@ic-4:3306')
添加集群实例
Cluster.addInstance(instance)
限制集群内部账号的host
mysql-js> dba.createCluster('testCluster', {replicationAllowedHost:'192.0.2.0/24'})
使用已存在的组复制环境创建集群
mysql-js> var cluster = dba.createCluster('prodCluster', {adoptFromGR: true})
从集群中移除实例
mysql-js> cluster.removeInstance('root@localhost:3310')
解散集群
Cluster.dissolve()
mysql-js> Cluster.dissolve({force: true})
mysql-js> Cluster.dissolve({interactive: true})
更改主节点
Cluster.setPrimaryInstance(instance[, options)
更改单主/多主模式
Cluster.switchToMultiPrimaryMode()
Cluster.switchToSinglePrimaryMode([instance])
查看集群状态
Cluster.status()
Cluster.status({extended:1})
更改集群配置
检查集群配置
Cluster.options()
cluster.options({'all':true})
列出所有组复制相关参数
更改集群配置
全局更改
Cluster.setOption(option, value)
更改某个实例的配置
Cluster.setInstanceOption(instance, option, value)
给实例加标签
cluster.setInstanceOption("gxj-test-0001:3306","tag:host","10.250.191.223")
查看标签
cluster.options()["defaultReplicaSet"]["tags"]
集群配置
集群和单独实例级别配置
- autoRejoinTries 自动重连次数 (0-1026,默认值3)
- exitStateAction 表示组复制退出状态操作的字符串值 (READ_ONLY/OFFLINE_MODE/ABORT_SERVER)
- ipAllowList 子网IP地址列表,例如: 192.168.1.0/24,10.0.0.1 (只有使用XCOM通信栈时可以使用)
- tag:option 要关联到集群的内置标记和用户定义标记 集群级别配置
- clusterName 集群名称
- disableClone 禁用克隆
- replicationAllowedHost 内部账号host
- expelTimeout 整数值,以秒为单位。定义集群成员在将无响应成员从集群中移除之前等待该成员的时间周期
- failoverConsistency 字符串值,表示集群提供的一致性保证。(EVENTUAL/BEFORE_ON_PRIMARY_FAILOVER)
- transactionSizeLimit 设置组复制系统变量组复制事务大小限制的正整数值。这将设置集群接受的最大传输大小(以字节为单位)。较大的事务将回滚,而不会广播到集群。添加到集群的所有成员使用相同的值。 实例级别配置
- label 实例的标识字符串
恢复集群
将实例重新加入到集群
Cluster.rejoinInstance(instance)
更新集群元数据
cluster.rescan()
删除集群元数据
dba.dropMetadataSchema()
当仲裁丢失时恢复集群
cluster.forceQuorumUsingPartitionOf("icadmin@ic-1:3306")
在集群全部停止后重新启动集群
检查哪个实例应用的事务最多
dba.rebootClusterFromCompleteOutage("testCluster",{dryRun: true})
在应用事务最多的实例上执行
dba.rebootClusterFromCompleteOutage("testCluster")