【Cetus】Cetus-sharding版本
1.shard.conf
2.sharding.json
3.模擬資料
3306節點上查的資料
3308節點上查到的資料
問題:
1.一個db只能用一種vbd規則,hash分表與range分表不能放在同一個db下
報錯詳情:2018-03-28 14:38:40: (critical) src/sharding-config.c:468 same db inside different vdb: db0328
2.各種型別的表join報錯
mysql> select a.*,b.* from dept_emp a , stable1 b where a.emp_no=b.emp_no;
ERROR 5004 (HY000): (cetus) JOIN single-table WITH sharding-table
mysql> select a.*,b.* from hash_db.dept_emp a , range_db.sale_emp b where a.emp_no=b.emp_no;
ERROR 5004 (HY000): (proxy)JOIN must inside VDB and have explicit join-on condition
mysql> select a.*,b.* from hash_db.stable1 a , range_db.stable2 b where a.emp_no=b.emp_no;
ERROR 5004 (HY000): (cetus)JOIN multiple single-tables not allowed
。。。先測到這把!
-
[root@iZ2ze66bhrbxkc31nljgjnZ cetus_sharding]# more conf/shard.conf
-
[cetus]
-
daemon = true
-
-
# Loaded Plugins
-
plugins=shard,admin
-
-
# Proxy Configuration
-
proxy-address=127.0.0.1:1234
-
proxy-backend-addresses=47.93.243.162:3306@data1,47.93.243.162:3308@data2
-
-
# Admin Configuration
-
admin-address=127.0.0.1:5678
-
admin-username=admin
-
admin-password=admin
-
-
# Backend Configuration
-
default-db=hash_db
-
default-username=appuser1
-
-
# Log Configuration
-
log-file=cetus.log
- log-level=debug
2.sharding.json
-
[root@iZ2ze66bhrbxkc31nljgjnZ cetus_sharding]# vi conf/sharding.json
-
{
-
{"table": "stable1", "db": "hash_db", "group": "data1","data2"},
-
"vdb": [
-
{
-
"id": 1,
-
"type": "int",
-
"method": "hash",
-
"num": 4,
-
"partitions": {"data1": [0,1], "data2": [2,3]}
-
},
-
{
-
"id": 2,
-
"type": "int",
-
"method": "range",
-
"num": 0,
-
"partitions": {"data1": 124999, "data2": 249999}
-
}
-
],
-
"table": [
-
{"vdb": 1, "db": "hash_db", "table": "dept_emp", "pkey": "emp_no"},
-
{"vdb": 2, "db": "range_db", "table": "sale_emp", "pkey": "emp_no"}
-
],
-
"single_tables": [
-
{"table": "stable1", "db": "hash_db", "group": "data1"},
-
{"table": "stable2", "db": "range_db", "group": "data2"}
-
]
- }
3.模擬資料
-
mysql> use hash_db;
-
Database changed
-
mysql> CREATE TABLE `dept_emp` (
-
-> `emp_no` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '賬號ID',
-
-> `role_id` smallint(6) NOT NULL DEFAULT '0' COMMENT '角色ID',
-
-> PRIMARY KEY (`emp_no`)
-
-> ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='管理員';
-
insert into dept_emp(emp_no,role_id) values (125999,1),(2,2),(11999,3),(4,4);Query OK, 0 rows affected (0.11 sec)
-
-
mysql> insert into dept_emp(emp_no,role_id) values (125999,1),(2,2),(11999,3),(4,4);
-
Query OK, 4 rows affected (0.05 sec)
-
-
mysql> select * from dept_emp;
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 4 | 4 |
-
| 2 | 2 |
-
| 11999 | 3 |
-
| 125999 | 1 |
-
+--------+---------+
-
4 rows in set (0.00 sec)
-
-
mysql> use range_db;
-
Database changed
-
mysql> CREATE TABLE `sale_emp` (
-
-> `emp_no` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '賬號ID',
-
-> `role_id` smallint(6) NOT NULL DEFAULT '0' COMMENT '角色ID',
-
-> PRIMARY KEY (`emp_no`)
-
-> ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='管理員';
-
insert into sale_emp(emp_no,role_id) values (125999,1),(2,2),(11999,3),(4,4);Query OK, 0 rows affected (0.03 sec)
-
-
mysql> insert into sale_emp(emp_no,role_id) values (125999,1),(2,2),(11999,3),(4,4);
-
Query OK, 4 rows affected (0.03 sec)
-
-
mysql> CREATE TABLE `stable2` (
-
-> `emp_no` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '賬號ID',
-
-> `role_id` smallint(6) NOT NULL DEFAULT '0' COMMENT '角色ID',
-
-> PRIMARY KEY (`emp_no`)
-
-> ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='管理員';
-
Query OK, 0 rows affected (0.03 sec)
-
-
mysql> insert into stable2(emp_no,role_id) values (125999,1),(2,2),(11999,3),(4,4);
-
Query OK, 4 rows affected (0.01 sec)
-
Records: 4 Duplicates: 0 Warnings: 0
-
-
mysql> use hash_db;
-
Reading table information for completion of table and column names
-
You can turn off this feature to get a quicker startup with -A
-
-
Database changed
-
mysql> CREATE TABLE `stable1` (
-
-> `emp_no` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '賬號ID',
-
-> `role_id` smallint(6) NOT NULL DEFAULT '0' COMMENT '角色ID',
-
-> PRIMARY KEY (`emp_no`)
-
-> ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='管理員';
- insert into stable1(emp_no,role_id) values (125999,1),(2,2),(11999,3),(4,4);Query OK, 0 rows affected (0.03 sec
3306節點上查的資料
-
mysql> select * from hash_db.dept_emp; ---hash分表,分表正常
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 4 | 4 |
-
+--------+---------+
-
1 row in set (0.00 sec)
-
-
mysql> select * from range_db.sale_emp; ----range分表,分表正常
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 2 | 2 |
-
| 4 | 4 |
-
| 11999 | 3 |
-
+--------+---------+
-
3 rows in set (0.00 sec)
-
-
-
mysql> select * from range_db.stable2; ----私有表,是在data2上
-
Empty set (0.00 sec)
-
-
mysql> select * from hash_db.stable1; ----私有表,在data1上
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 2 | 2 |
-
| 4 | 4 |
-
| 11999 | 3 |
-
| 125999 | 1 |
-
+--------+---------+
- 4 rows in set (0.00 sec)
3308節點上查到的資料
-
mysql> select * from hash_db.dept_emp; ----hash分表正常
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 2 | 2 |
-
| 11999 | 3 |
-
| 125999 | 1 |
-
+--------+---------+
-
3 rows in set (0.00 sec)
-
-
mysql> select * from range_db.sale_emp; ----range分表正常
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 125999 | 1 |
-
+--------+---------+
-
1 row in set (0.00 sec)
-
-
-
-
mysql> select * from range_db.stable2; ----私有表 在data2上
-
+--------+---------+
-
| emp_no | role_id |
-
+--------+---------+
-
| 2 | 2 |
-
| 4 | 4 |
-
| 11999 | 3 |
-
| 125999 | 1 |
-
+--------+---------+
-
4 rows in set (0.00 sec)
-
-
mysql> select * from hash_db.stable1; -----私有表在data1上
- Empty set (0.00 sec)
問題:
1.一個db只能用一種vbd規則,hash分表與range分表不能放在同一個db下
報錯詳情:2018-03-28 14:38:40: (critical) src/sharding-config.c:468 same db inside different vdb: db0328
2.各種型別的表join報錯
mysql> select a.*,b.* from dept_emp a , stable1 b where a.emp_no=b.emp_no;
ERROR 5004 (HY000): (cetus) JOIN single-table WITH sharding-table
mysql> select a.*,b.* from hash_db.dept_emp a , range_db.sale_emp b where a.emp_no=b.emp_no;
ERROR 5004 (HY000): (proxy)JOIN must inside VDB and have explicit join-on condition
mysql> select a.*,b.* from hash_db.stable1 a , range_db.stable2 b where a.emp_no=b.emp_no;
ERROR 5004 (HY000): (cetus)JOIN multiple single-tables not allowed
。。。先測到這把!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2152341/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL cetus 中介軟體 讀寫分離MySql
- webgl 系列 —— 繪製一個點(版本2、版本3、版本4、版本5)Web
- MySQL的版本以及版本號MySql
- 【Linux】Linux版本介紹(核心版本和發行版本)Linux
- Node 快速切換版本、版本回退(降級)、版本更新(升級)
- React 16.8 版本: 帶 Hooks 的版本ReactHook
- FlashFxp版本,好用的3個FlashFxp版本
- Android SDK版本和ADT版本Android
- 版本管理
- 版本控制
- pip包 高版本轉低版本 或者直接pip低版本包
- 語義化版本 2.0.0 - 版本控制規則
- lombok版本 與 lombok plugins版本問題LombokPlugin
- 版本的故事(四)版本號有多重要
- 檢視ubuntu版本與linux核心版本UbuntuLinux
- Docker Compose 版本過高(Docker版本不匹配),降低docker-compose版本Docker
- Android Sdk版本、Support包版本及常用框架最新版本彙總Android框架
- 如何將 Ubuntu 版本升級到新版本Ubuntu
- Apache Doris 1.2.4 Release 版本正式釋出|版本通告Apache
- Spark版本釋出歷史,及其各版本特性Spark
- 全球iPhone版本大全 iPhone有哪些國家版本iPhone
- ORACLE FLAHBACK 系列(包含版本9與版本10)(zt)Oracle
- swoole 版本更新
- 版本管理GitGit
- iOS 版本更新iOS
- InnoDB多版本
- GIT版本管理Git
- 版本控制工具
- 版本迭代更新
- 最終版本
- linux 版本Linux
- SQL SERVER 版本SQLServer
- 編譯版本編譯
- go 版本資訊Go
- git回退版本Git
- win10版本multiple editions是什麼版本_win10版本multiple editions啥意思Win10
- Linux哪個版本更好用?常用Linux版本!Linux
- Swoole v4.6.1 版本釋出,Bug 修復版本