如何查找集群中最少连接数的节点?

通过SQL命令show gcluster entry,返回信息如下:

gbase> show gcluster entry;
+------------------------+-------+
| IP             | Port |
+------------------------+-------+
| 192.168.105.210 | 5258 |
+------------------------+-------+

第1列是集群最少连接数节点的IP地址。
第2列是集群最少连接数节点的GCluster服务端口号。

数据库的root用户和gbase用户有何区别?

数据库中的root用户是默认管理员账户,可以登陆,默认密码是空。用root用户登陆后,可通过set password=password(newpassword)命令修改密码。数据库中的gbase用户是内部使用账户,在备份恢复、重分布等操作时需要自动调用该账户,这个是透明的,用户不需要用到。建议不要对root用户更改权限或限制登陆,该用户是DBA的权限。

数据库用户的最大连接数是多少?

GNode上的数据库最大连接数可以通过参数max_user_connections进行设置(参数范围:1-4294967295,如果为0表示无限制),集群整体层面没有此限定。
GBase集群默认的单个节点的最大连接数为10000,可以通过max_connections参数进行设置(参数值范围1~655350)。
max_user_connections是单个用户的最大连接数,一般没有特殊要求只需要设置max_connections。max_user_connections保持默认为0即可。

集群节点能ping通,但无法通过ssh连到节点,通过gncli也无法连到数据库,导致集群下发SQL时一直试图连接到该节点。长时间处于这种状态下导致大量SQL积压。如何解决?

方法1:
到机房关闭故障节点的gcware服务或者将服务器关机、断开网络连接。待设备问题解决后再连入集群。
方法2:
在无法到机房操作服务器的情况下,需要通过集群层命令从集群中将故障节点暂时离线,待故障解决后再恢复为正常状态。
操作方法:使用gcadmin setnodestate设置节点failure离线状态解决。
setnodestate命令语法:gcadmin setnodestate ip <state>
ip:要设置状态的节点ip;
State: 设置后的节点状态:

  • UNAVILIABLE:用于节点替换。
  • failure:标识集群故障,相当于offline 这时dml、ddl将不会下发到该节点直接记录fevent;
  • normal:当节点故障解决后可以直接将节点置为normal,这相当于节点重新online,这时gcrecover将恢复之前记录的feventlog,新发起的ddl、dml将重新下发到该节点。
    [info]注:[/info]

集群存在多个distribution时,如果设置一个节点为unavailable状态,会导致任何一个distribution中出现某个分片的主副分片都不可用得情况,则设置失败。