资源定义

语法说明

  1. ADD RESOURCE dataSource [, dataSource] ...
  2. ALTER RESOURCE dataSource [, dataSource] ...
  3. DROP RESOURCE dataSourceName [, dataSourceName] ... [ignore single tables]
  4. dataSource:
  5. simpleSource | urlSource
  6. simpleSource:
  7. dataSourceName(HOST=hostName,PORT=port,DB=dbName,USER=user [,PASSWORD=password] [,PROPERTIES(poolProperty [,poolProperty]) ...])
  8. urlSource:
  9. dataSourceName(URL=url,USER=user [,PASSWORD=password] [,PROPERTIES(poolProperty [,poolProperty]) ...])
  10. poolProperty:
  11. "key"= ("value" | value)
  • 添加资源前请确认已经创建分布式数据库,并执行 use 命令成功选择一个数据库
  • 确认增加的资源是可以正常连接的, 否则将不能添加成功
  • 重复的 dataSourceName 不允许被添加
  • 在同一 dataSource 的定义中,simpleSourceurlSource 语法不可混用
  • poolProperty 用于自定义连接池参数,key 必须和连接池参数名一致,value 支持 int 和 String 类型
  • ALTER RESOURCE 修改资源时会发生连接池的切换,这个操作可能对进行中的业务造成影响,请谨慎使用
  • DROP RESOURCE 只会删除逻辑资源,不会删除真实的数据源
  • 被规则引用的资源将无法被删除
  • 若资源只被 single table rule 引用,且用户确认可以忽略该限制,则可以添加可选参数 ignore single tables 进行强制删除

示例

  1. ADD RESOURCE resource_0 (
  2. HOST=127.0.0.1,
  3. PORT=3306,
  4. DB=db0,
  5. USER=root,
  6. PASSWORD=root
  7. ),resource_1 (
  8. HOST=127.0.0.1,
  9. PORT=3306,
  10. DB=db1,
  11. USER=root
  12. ),resource_2 (
  13. HOST=127.0.0.1,
  14. PORT=3306,
  15. DB=db2,
  16. USER=root,
  17. PROPERTIES("maximumPoolSize"=10)
  18. ),resource_3 (
  19. URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=UTC&useSSL=false",
  20. USER=root,
  21. PASSWORD=root,
  22. PROPERTIES("maximumPoolSize"=10,"idleTimeout"="30000")
  23. );
  24. ALTER RESOURCE resource_0 (
  25. HOST=127.0.0.1,
  26. PORT=3309,
  27. DB=db0,
  28. USER=root,
  29. PASSWORD=root
  30. ),resource_1 (
  31. URL="jdbc:mysql://127.0.0.1:3309/db1?serverTimezone=UTC&useSSL=false",
  32. USER=root,
  33. PASSWORD=root,
  34. PROPERTIES("maximumPoolSize"=10,"idleTimeout"="30000")
  35. );
  36. DROP RESOURCE resource_0, resource_1;
  37. DROP RESOURCE resource_2, resource_3 ignore single tables;