1.spider 安装
1.1.MariaDB 安装
1.1.1 下载MariaDB wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.3.16/bintar-linux-x86_64/mariadb-10.3.16-linux-x86_64.tar.gz
https://mariadb.com/downloads/
1.1.2 解压安装
[root@localhost:/usr/local]#tar -zxvf mariadb-10.3.16-linux-x86_64.tar.gz -C /usr/local/
[root@localhost:/usr/local]#ln -s mariadb-10.3.16-linux-x86_64 mariadb
[root@localhost:/usr/local]#cd mariadb
[root@localhost:/usr/local/mariadb]#cp /etc/my.cnf /etc/my_3320.cnf ####生成my.cnf文件 与原生mysql差不多,有个别参数不存在。
[root@localhost:/usr/local/mariadb]#./scripts/mysql_install_db --defaults-file=/etc/my_3320.cnf --basedir=/usr/local/mariadb/
[root@localhost:/usr/local/mariadb]#chown -R mysql:mysql /data/mysql_3320/
[root@localhost:/usr/local/mariadb]#/usr/local/mariadb-10.3.16-linux-x86_64/bin/mysqld_safe --defaults-file=/etc/my_3320.cnf &
|
1.2.安装spider 引擎
[root@localhost:/usr/local/mariadb]#mysql -uroot -p < /usr/local/mariadb/share/install_spider.sql
root@localhost 19:46: [(none)]> select * from information_schema.engines where engine='SPIDER';
|
2.spider的使用实战
2.1 创建spider引擎表方法1
#mysql node1CREATE TABLE s(
id INT NOT NULL AUTO_INCREMENT,
code VARCHAR(10),
PRIMARY KEY(id));
#spider nodeCREATE TABLE s(
id INT NOT NULL AUTO_INCREMENT,
code VARCHAR(10),
PRIMARY KEY(id)
)ENGINE=SPIDER COMMENT 'host "10.204.10.20", user "work", password "123456", port "3306", database "lucky_order"';
|
2.2 创建spider引擎表方法2
#创建spider到后端DB server的配置CREATE SERVER lucky_test1 FOREIGN DATA WRAPPER mysql OPTIONS (
HOST '10.212.22.22',
DATABASE 'lucky_test1',
USER 'admintools',
PASSWORD '111111',
PORT 3306
);CREATE SERVER lucky_test2 FOREIGN DATA WRAPPER mysql OPTIONS (
HOST '10.204.28.1',
DATABASE 'lucky_test2',
USER 'admintools',
PASSWORD '111111',
PORT 3336
);或者直接插入mysql.servers表INSERT INTO mysql.servers(Server_name,HOST,Db,Username,PASSWORD,PORT,SOCKET,WRAPPER,OWNER)
VALUES ('lucky_test1','10.212.22.22','lucky_test1','work','111111',3306,'','mysql','');
INSERT INTO mysql.servers(Server_name,HOST,Db,Username,PASSWORD,PORT,SOCKET,WRAPPER,OWNER)
VALUES ('lucky_test2','10.204.55.72','lucky_test2','work','111111',3306,'','mysql','');
#mysql node1CREATE TABLE lucky_test1.sbtest1 (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT '0',
c char(120) NOT NULL DEFAULT '',
pad char(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=InnoDB;#mysql node2CREATE TABLE lucky_test2.sbtest2 (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT '0',
c char(120) NOT NULL DEFAULT '',
pad char(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=InnoDB;#spider nodeCREATE TABLE test.sbtest1
( id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT '0',
c char(120) NOT NULL DEFAULT '',
pad char(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=spider COMMENT='wrapper "mysql",srv "lucky_test1"';
CREATE TABLE test.sbtest2
( id int(10) unsigned NOT NULL AUTO_INCREMENT,
k int(10) unsigned NOT NULL DEFAULT '0',
c char(120) NOT NULL DEFAULT '',
pad char(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=spider COMMENT='wrapper "mysql",srv "lucky_test2"';
SELECT * FROM sbtest1 a JOIN sbtest2 b ON a.id=b.id LIMIT 10;
DROP SERVER lucky_test0;
DROP TABLE test.sbtest1; drop spider上的表,不会drop后端DB server上的表。
|
2.3 创建hash分区表
CREATE TABLE sbtest (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
k INT(10) UNSIGNED NOT NULL DEFAULT '0',
c CHAR(120) NOT NULL DEFAULT '',
pad CHAR(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY HASH (id)
( PARTITION pt1 COMMENT='wrapper "mysql",srv "lucky_test1"',
PARTITION pt2 COMMENT='wrapper "mysql",srv "lucky_test0"') ;
|
2.4 创建range分区表
CREATE TABLE sbtest_range (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
k INT(10) UNSIGNED NOT NULL DEFAULT '0',
c CHAR(120) NOT NULL DEFAULT '',
pad CHAR(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY range columns (id)
( PARTITION pt1 values less than (100000) COMMENT='wrapper "mysql",srv "lucky_test1"',
PARTITION pt2 values less than (200000) COMMENT='wrapper "mysql",srv "lucky_test0"') ;
|
2.5 创建list分区表
CREATE TABLE sbtest_list (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
k INT(10) UNSIGNED NOT NULL DEFAULT '0',
c CHAR(120) NOT NULL DEFAULT '',
pad CHAR(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY k (k)
) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'
PARTITION BY list columns (id)
( PARTITION pt1 values in (1,3,5,7,9) COMMENT='wrapper "mysql",srv "lucky_test1"',
PARTITION pt2 values in (2,4,6,8,10) COMMENT='wrapper "mysql",srv "lucky_test0"') ;
|