数据库发现
          
        
语法说明
CREATE DB_DISCOVERY RULE ruleDefinition [, ruleDefinition] ...
ALTER DB_DISCOVERY RULE ruleDefinition [, ruleDefinition] ...
DROP DB_DISCOVERY RULE ruleName [, ruleName] ...
CREATE DB_DISCOVERY TYPE databaseDiscoveryTypeDefinition [, databaseDiscoveryTypeDefinition] ...
ALTER DB_DISCOVERY TYPE databaseDiscoveryTypeDefinition [, databaseDiscoveryTypeDefinition] ...
DROP DB_DISCOVERY TYPE discoveryTypeName [, discoveryTypeName] ...
CREATE DB_DISCOVERY HEARTBEAT databaseDiscoveryHeartbaetDefinition [, databaseDiscoveryHeartbaetDefinition] ...
ALTER DB_DISCOVERY HEARTBEAT databaseDiscoveryHeartbaetDefinition [, databaseDiscoveryHeartbaetDefinition] ...
DROP DB_DISCOVERY HEARTBEAT discoveryHeartbeatName [, discoveryHeartbeatName] ...
ruleDefinition:
    (databaseDiscoveryRuleDefinition | databaseDiscoveryRuleConstruction)
databaseDiscoveryRuleDefinition
    ruleName (resources, typeDefinition, heartbeatDefinition)
databaseDiscoveryRuleConstruction
    ruleName (resources, TYPE = discoveryTypeName, HEARTBEAT = discoveryHeartbeatName)
databaseDiscoveryTypeDefinition
    discoveryTypeName (typeDefinition)
databaseDiscoveryHeartbaetDefinition
    discoveryHeartbeatName (PROPERTIES (properties)) 
resources:
    RESOURCES(resourceName [, resourceName] ...)
typeDefinition:
    TYPE(NAME=typeName [, PROPERTIES([properties] )] )
heartbeatDefinition
    HEARTBEAT (PROPERTIES (properties)) 
properties:
    property [, property] ...
property:
    key=value                          
- discoveryType指定数据库发现服务类型,- ShardingSphere内置支持- MGR;
- 重复的 ruleName将无法被创建;
- 正在被使用的 discoveryType和discoveryHeartbeat无法被删除;
- 带有 -的命名在改动时需要使用" ";
- 移除 discoveryRule时不会移除被该discoveryRule使用的discoveryType和discoveryHeartbeat。
示例
创建 discoveryRule 时同时创建 discoveryType 和 discoveryHeartbeat
CREATE DB_DISCOVERY RULE db_discovery_group_0 (
RESOURCES(ds_0, ds_1, ds_2),
TYPE(NAME=mgr,PROPERTIES('group-name'='92504d5b-6dec')),
HEARTBEAT(PROPERTIES('keep-alive-cron'='0/5 * * * * ?'))
);
ALTER DB_DISCOVERY RULE db_discovery_group_0 (
RESOURCES(ds_0, ds_1, ds_2),
TYPE(NAME=mgr,PROPERTIES('group-name'='246e9612-aaf1')),
HEARTBEAT(PROPERTIES('keep-alive-cron'='0/5 * * * * ?'))
);
DROP DB_DISCOVERY RULE db_discovery_group_0;
DROP DB_DISCOVERY TYPE db_discovery_group_0_mgr;
DROP DB_DISCOVERY HEARTBEAT db_discovery_group_0_heartbeat;
使用已有的 discoveryType 和 discoveryHeartbeat 创建 discoveryRule
CREATE DB_DISCOVERY TYPE db_discovery_group_1_mgr(
  TYPE(NAME=mgr,PROPERTIES('group-name'='92504d5b-6dec'))
);
CREATE DB_DISCOVERY HEARTBEAT db_discovery_group_1_heartbeat(
  PROPERTIES('keep-alive-cron'='0/5 * * * * ?')
);
CREATE DB_DISCOVERY RULE db_discovery_group_1 (
RESOURCES(ds_0, ds_1, ds_2),
TYPE=db_discovery_group_1_mgr,
HEARTBEAT=db_discovery_group_1_heartbeat
);
ALTER DB_DISCOVERY TYPE db_discovery_group_1_mgr(
  TYPE(NAME=mgr,PROPERTIES('group-name'='246e9612-aaf1'))
);
ALTER DB_DISCOVERY HEARTBEAT db_discovery_group_1_heartbeat(
  PROPERTIES('keep-alive-cron'='0/10 * * * * ?')
);
ALTER DB_DISCOVERY RULE db_discovery_group_1 (
RESOURCES(ds_0, ds_1),
TYPE=db_discovery_group_1_mgr,
HEARTBEAT=db_discovery_group_1_heartbeat
);
DROP DB_DISCOVERY RULE db_discovery_group_1;
DROP DB_DISCOVERY TYPE db_discovery_group_1_mgr;
DROP DB_DISCOVERY HEARTBEAT db_discovery_group_1_heartbeat;