spider存儲引擎佈署

當前平臺:centos5.8, x86_64


1. 下載地址:http://spiderformysql.com/index.html,

     當前下載的文件名:mysql-5.5.34-spider-3.2-vp-1.1-hs-1.2-q4m-0.95.tgz  (源碼安裝)


2. 安裝cmake軟件,如果可以直接用yum install cmake (不要裝與系統版本不適合版本避免兼容性和編譯時的一些報錯)


3.解壓後安裝

#tar -zxvf mysql-5.5.34-spider-3.2-vp-1.1-hs-1.2-q4m-0.95.tgz

#cd mysql-5.5.34-spider-3.2-vp-1.1-hs-1.2-q4m-0.95

# cmake .
# make
# make install


#中間可能會報一些由於缺少安裝gcc的包而引起的報錯。yum install gcc gcc-c

#正常編譯通過的結尾部份:

-- Running cmake version 2.6.4
-- MySQL 5.5.34
-- Packaging as: mysql-5.5.34-Linux-x86_64
-- Configuring done
-- Generating done
-- Build files have been written to: /root/mysql-5.5.34-spider-3.2-vp-1.1-hs-1.2-q4m-0.95

#如果出一些類似 的警告問題,證明編譯非正常結束,建議先修復,如以下:

-- Performing Test HAVE_PEERCRED
-- Performing Test HAVE_PEERCRED - Success
Warning: Bison executable not found in PATH
-- Configuring done
-- Generating done
-- Build files have been written to: /root/mysql-5.5.34-spider-3.2-vp-1.1-hs-1.2-q4m-0.95

==>解決方式yum install bison


4.啓動前先初始化環境:

#根據實際情況調整

/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql

5.選擇其中一種方式啓動(這裏mysql.server)

修改mysql.server裏邊的變量

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

#修改完成後./mysql.server start啓動庫


6.執行bin目錄下的mysql 連接庫和創建spider引擎

mysql -uroot -p

source /usr/local/mysql/share/install_spider.sql

mysql> source /usr/local/mysql/share/install_spider.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

ERROR 1436 (HY000): Thread stack overrun:  11296 bytes used of a 131072 byte stack, and 128000 bytes needed.  Use 'mysqld --thread_stack=#' to specify a bigger stack.
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

ERROR 1436 (HY000): Thread stack overrun:  11296 bytes used of a 131072 byte stack, and 128000 bytes needed.  Use 'mysqld --thread_stack=#' to specify a bigger stack.
Query OK, 0 rows affected (0.00 sec)

==>解決辦法 :修改/etc/my.cnf裏邊的變量:  thread_stack=256000,重新執行腳本一次


| Engine             | Support | Comment                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| SPIDER             | YES     | Spider storage engine                                      | YES          | YES  | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                         | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+


示例 :當前3臺主機,1臺建spider引擎(ip:192.168.56.51),另兩臺裏邊包含的分區表所在庫,ip分別爲192.168.56.52和53

示例 參考地址:https://wenku.baidu.com/view/40094a91b8f67c1cfbd6b859.html

(1)、52,53機器上分別建立表tbl_a

mysql> show create table tbl_a\G
*************************** 1. row ***************************
       Table: tbl_a
Create Table: CREATE TABLE `tbl_a` (
  `col_a` int(11) NOT NULL,
  `col_b` varchar(20) DEFAULT NULL,
  `col_c` int(11) NOT NULL,
  PRIMARY KEY (`col_a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.05 sec)


(2)、51機器


CREATE SERVER backend1
     FOREIGN DATA WRAPPER mysql
OPTIONS(
    HOST '192.168.56.52',
    DATABASE 'test',
    USER 'root',
    PASSWORD '123456789',
    PORT 3306
);


CREATE SERVER backend2
     FOREIGN DATA WRAPPER mysql
OPTIONS(
    HOST '192.168.56.53',
    DATABASE 'test',
    USER 'root',
    PASSWORD '123456789',
    PORT 3306
);



create table test.tbl_a(
  col_a int not null,
  col_b varchar(20),
  col_c int not null,
  primary key(col_a)
)engine=spider connection='wrapper "mysql", user "root", password "123456789",table "tbl_a", port "3306"'
partition by key(col_a)
(partition pt1 comment='srv"backend1"' engine=spider, partition pt2 comment='srv"backend2"' engine=spider);


mysql> select * from tbl_a;
Empty set (0.12 sec)

mysql> insert into tbl_a values(1,'a',1);
Query OK, 1 row affected (0.05 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into tbl_a values(2,'a',2);
Query OK, 1 row affected (0.06 sec)

mysql> insert into tbl_a values(3,'a',3);
Query OK, 1 row affected (0.01 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from tbl_a;
+-------+-------+-------+
| col_a | col_b | col_c |
+-------+-------+-------+
|     1 | a     |     1 |
|     3 | a     |     3 |
|     2 | a     |     2 |
+-------+-------+-------+
3 rows in set (0.03 sec)


(3)、52,53的機器上分別查詢:

52機器:

mysql> select * from tbl_a;
+-------+-------+-------+
| col_a | col_b | col_c |
+-------+-------+-------+
|     1 | a     |     1 |
|     3 | a     |     3 |
+-------+-------+-------+



53機器:

mysql> select * from tbl_a;
+-------+-------+-------+
| col_a | col_b | col_c |
+-------+-------+-------+
|     2 | a     |     2 |
+-------+-------+-------+
1 row in set (0.00 sec)


小結:證明從表51上插入的行已按分區方式自動分散到兩個分區。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章