Cobar的使用与心得(持续更新)
来源:互联网 发布:织梦cms基于什么框架 编辑:程序博客网 时间:2024/05/30 05:08
关于淘宝Cobar中间件使用中一些问题总结,会在使用中不断完善该文档
1、LOAD DATA LOCAL FILE ...不支持
mysql> load data local infile "/usr/jfy/tmp/scpcdr.txt" into table scpcdr fields TERMINATED by '|';
ERROR 1148 (42000): The used command is not allowed with this MySQL version
可以不带LOCAL关键字,那则是导入文件必须在MYSQL服务器的相应目录中
即服务器上必须有这个绝对路径的文件:/usr/jfy/tmp/scpcdr.txt
2、关于wait_timeout的问题
使用cobar分前端连接和后端连接,前端连接是指客户端应该程序连接cobar,后端是指cobar连接的实际的mysql数据库
前端的wait_timeout时间是由配置文件server.xml中system段的idleTimeout这个参数决定的,默认是28800即8小时,可以改为:<property name="idleTimeout">2880000000</property>
后端的wait_timeout时间与两个参数有关,一个是cobar后端连接池中的idleTimeout参数,另一上是mysql数据库服务器本身的wait_timeout参数
对于mysql这边可以设置wait_timeout参数,在my.cnf中增加如下设置:
[mysqld]
wait_timeout = 2880000
interactive_timeout = 2880000
对于cobar的后端连接,由配置文件schema.xml中dataNode段的idleTimeout这个参数决定的,默认是600S即10分钟,如果10分钟空闲,cobar就会将这个连接结束掉,可以改为:<property name="idleTimeout">2880000000</property>
3、监控命令show @@backend,只会显示出cobar连接数据源的心跳连接,正常的数据连接不会显示;
4、cobar的8066端口上SET语句只支持以以下几个:
SET AUTOCOMMIT
SET ISOLATIONS,cobar后端连接默认的事务隔离级别是REPEATED_READ
SET NAMES
SET CHARACTER_SET_CLIENT/CHARACTER_SET_CONNECTION/CHARACTER_SET_RESULTS
5、关于cobar前端连接起事务的问题,BEGIN和START TRANSACTION是不支持的,要靠SET AUTOCOMMIT=0来变向起事务,事务结束后,如果后续的语句不希望起事务,那么一定要在这次事务提交中SET AUTOCOMMIT=1
6、cobar不支持prepare语句,支持call <procedure>
7、利用cobar实现程序一次连接访问多个数据库主机的MYSQL
如果是应用自己实现,那么先要自己连接三个MYSQL数据库,然后在程序中分别使用三个mysql连接句柄才能操作三个库,很麻烦。
利用cobar对前端展示三个逻辑库,如db1,db2,db3,物理上db1,db2,db3分别指向三个MYSQL数据库服务器实例,前端应用程序可以用mysql_real_query只连接cobar的一个数据库db1,然后在mysql_real_query的sql语句中就可以使用db2.t1,db3.t2这种方式访问另外两个逻辑库的表,实际上就是访问了其它两个数据库服务器上的MYSQL实例,而且你可以将访问三个库的语句封到一个事务中(当然这种事务cobar实现的是弱事务,二阶段提交的方式)。
8、今天重看了下cobar的配置文件,发现里面的一些汉字注释是乱码的,我想应该是UTF8格式的吧,我就用ultraedit将文件格式转换成了ascii格式,汉字都可以正常看了,结果悲剧来了,cobar起不来了,说配置文件错误,只好把安装包里的配置文件重新拷贝过来,再次修改。那个配置文件格式不要改,不然会出错的。
9、针对某个表按字段进行拆分到不同库中:
schema.xml: <schema name="wollar" dataNode="dn_wollar"> <table name="tb3" dataNode="dn_test,dn_wifi" rule="rule1" /> </schema>rule.xml: <tableRule name="rule1"> <rule> <columns>id</columns> <algorithm><![CDATA[ func1(${id}) ]]></algorithm> </rule> </tableRule> <function name="func1" class="com.alibaba.cobar.route.function.PartitionByLong"> <property name="partitionCount">2</property> <property name="partitionLength">512</property> </function> tb3表有一个数字型的字段id,插入数据时,id % 1024的值,0-511进dn_test,512-1023进dn_wifi库insert语句需要按标准语句书写(必须带出字段名字): insert into tb3 (id,val) values (512, "val_1");如果写成如下格式将不会自动分库,而是两个库的tb3表中均会插入一条记录: insert into tb3 values (512, "val_1")
- Cobar的使用与心得(持续更新)
- pycharm的使用心得---持续更新
- AngularJS使用心得(持续更新中)
- 项目心得(持续更新)
- git+github个人使用心得总结(持续更新)
- 【Python】记录三:Spyder使用心得(持续更新)
- Delphi使用心得------持续更新中
- mac idea使用心得--不定期持续更新
- Masonry介绍与使用实践和各种使用心得,持续更新~
- Cobar Client的使用
- Cobar Client的使用
- uCOS_51之移植心得(持续更新)
- JQuery心得(持续更新中)
- 基础心得/持续更新
- 使用的常见问题(持续更新)
- Mac的使用技巧(持续更新~~)
- AndroidStudio的使用(持续更新)
- IDA工具的使用(持续更新)
- C++要点摘录(六)面向对象和类的封装
- 如何读取电脑CPU序列号、主板BIOS、硬盘的序列号
- 创建servlet的验证码
- UVA12554
- UVA 11795 Mega Man's Mission
- Cobar的使用与心得(持续更新)
- gcp – 源于CP的高级命令行文件拷贝工具
- 黑马程序员——java中static和final关键字概述
- fseek获取大于4G的文件大小的问题
- 成都工业学院(成都无机校/电子机械高等专科学校)百年校庆之行记
- java调用sql语句时需要注意的东东
- 字符串常量
- UVA10405
- Android图形图画学习(11)——颜色相关