先说明下版本:SqlServer2008R2 + MyCat 1.6
现在主从分离 一主一从 用的是 代码 写死的方式 转换下思路 一主两从 或者多从 怎么实现 负载均衡 或者 按权重调用相应库呢 或者 分库 分片 算法 看了下 Java里面 spring 有个实现方法 就是 截获 sql 字符串 当出现 insert update delete 时 走主库 其他的走从库 代码实现 并且 分片 怎么搞 这种搞法是行不通的吧 中间件的话 sqlserver 确实有一些 这里我列举一下 我最近 找的的吧 oneproxy-for-sqlserver moebius 相对于 mysql 而言 sqlserver 的分布式数据库中间件 相形见绌 最火爆的mycat 也很奇怪 官网 很显然的表示 可以支持 sqlserver oracle 但是呢 无论看 mycat 官网 还是 一些 coder分享的文章 基本上都是mycat + mysql 貌似 sqlserver 算另类使用方法 经过一翻配置 最终困惑在 MySql.Data 连接mycat 走 MySqlConnection 时 connection.Open(); 一打开数据库连接 就会抛 errno:195 'NOW' 不是可以识别的 内置函数名称。 用 Pomelo.Data.MySql 这个可以过去 但是 还是在 : errno:195 'curtime' 不是可以识别的 内置函数名称。 这个错误 查看了下 mycat的源代码 这块也没找到解决方案 。
先抛出一个解决方案
try { connection.Open(); } catch (Exception ex) { }
这时只要不throw 异常 那么数据库连接是已经正常打开的了 并且 后续执行 任何 cmd 命令 以及 Transaction 都是可以 正常 commit Rollback 的
问题已经提交给 mycat 相关开发者了 后期有解决方案的话 会补充进来
这个不算是解决方案 但还是可以跑起来的 大家有好的解决方案一希望可以 留言 或者 分享出来了