【轉】在同一臺主機配置MySQL Cluster
MySQL cluster是share nothing的叢集,採用ndb儲存引擎,和Oracle的RAC採用集中儲存不同,是一種分散式的架構,所以可以很輕鬆的實現在同一臺主機上配置MySQL Cluster,相對RAC來說要簡單得多。
[@more@]在MySQL Cluster中,有三種不同的節點:
- 管理節點:守護程式為ndb_mgmd,用於管理cluster。
- 資料節點: 守護程式為ndbd,用於存放資料
- SQL節點:守護程式為mysqld,就是一個MySQL例項,對外供客戶端連線訪問資料。
本文將在一臺64位linux主機上同時配置上述三種節點。在實際生產環境中,根據需要,可以在相同或者不同的機器部署節點。本次例項中共包含以下節點:
- 一個管理節點
- 兩個資料節點
- 三個SQL節點
下載Mysql cluster,當前版本7.0.6,http://dev.mysql.com/downloads/cluster/7.0.html
解壓,並複製到安裝目錄
tar zxvf mysql-cluster-gpl-7.0.6-linux-x86_64-glibc23.tar.gz cp mysql-cluster-gpl-7.0.6-linux-x86_64-glibc23 /u01/mysql-cluster cd /u01/mysql-cluster
建立三個MySQL例項的資料目錄
mkdir data/data1 mkdir data/data2 mkdir data/data3 mkdir data/data1/mysql mkdir data/data1/test mkdir data/data2/mysql mkdir data/data2/test mkdir data/data3/mysql mkdir data/data3/test
Cluster配置檔案如下
$ more conf/config.ini [ndbd default] noofreplicas=2 [ndbd] hostname=localhost id=2 [ndbd] hostname=localhost id=3 [ndb_mgmd] id = 1 hostname=localhost [mysqld] id=4 hostname=localhost [mysqld] id=5 hostname=localhost [mysqld] id=6 hostname=localhost
三個MySQL例項配置檔案如下
$ more conf/my1.cnf [mysqld] ndb-nodeid=4 ndbcluster=true datadir=/u01/mysql-cluster/data/data1 basedir=/u01/mysql-cluster port=9306 server-id=1 log-bin $ more conf/my2.cnf [mysqld] ndb-nodeid=5 ndbcluster=true datadir=/u01/mysql-cluster/data/data2 basedir=/u01/mysql-cluster port=9307 server-id=2 log-bin $ more conf/my3.cnf [mysqld] ndb-nodeid=6 ndbcluster=true datadir=/u01/mysql-cluster/data/data3 basedir=/u01/mysql-cluster port=9308 server-id=3 log-bin
初始化三個MySQL例項
script/mysql_install_db --basedir=/u01/mysql-cluster --datadir=/u01/mysql-cluster/data/data1 script/mysql_install_db --basedir=/u01/mysql-cluster --datadir=/u01/mysql-cluster/data/data2 script/mysql_install_db --basedir=/u01/mysql-cluster --datadir=/u01/mysql-cluster/data/data3
初始化管理節點
bin/ndb_mgmd --initial -f conf/config.ini --configdir=/u01/mysql-cluster
進入管理節點檢視配置
$ bin/ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> help --------------------------------------------------------------------------- NDB Cluster -- Management Client -- Help --------------------------------------------------------------------------- HELP Print help text HELP COMMAND Print detailed help for COMMAND(e.g. SHOW) SHOW Print information about cluster CREATE NODEGROUP, ... Add a Nodegroup containing nodes DROP NODEGROUP Drop nodegroup with id NG START BACKUP [NOWAIT | WAIT STARTED | WAIT COMPLETED] START BACKUP [ ] [NOWAIT | WAIT STARTED | WAIT COMPLETED] START BACKUP [ ] [SNAPSHOTSTART | SNAPSHOTEND] [NOWAIT | WAIT STARTED | WAIT COMPLETED] Start backup (default WAIT COMPLETED,SNAPSHOTEND) ABORT BACKUP Abort backup SHUTDOWN Shutdown all processes in cluster CLUSTERLOG ON [ ] ... Enable Clus = ALERT | CRITICAL | ERROR | WARNING | INFO | DEBUG = STARTUP | SHUTDOWN | STATISTICS | CHECKPOINT | NODERESTART | CONNECTION | INFO | ERROR | CONGESTION | DEBUG | BACKUP = 0 - 15 = ALL | Any database node id For detailed help on COMMAND, use HELP COMMAND. ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from localhost) id=3 (not connected, accepting connect from localhost) [ndb_mgmd(MGM)] 1 node(s) id=1 @localhost (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 3 node(s) id=4 (not connected, accepting connect from localhost) id=5 (not connected, accepting connect from localhost) id=6 (not connected, accepting connect from localhost)
初始化資料節點
bin/ndbd --initial -c localhost:1186 2009-06-21 23:13:19 [ndbd] INFO -- Configuration fetched from 'localhost:1186', generation: 1 bin/ndbd --initial -c localhost:1186 2009-06-21 23:13:50 [ndbd] INFO -- Configuration fetched from 'localhost:1186', generation: 1
啟動SQL節點
bin/mysqld --defaults-file=conf/my1.cnf& [1] 17843 090621 23:14:36 [Warning] No argument was provided to --log-bin, and --log-bin-index was not used; so replication may break when this MySQL server acts as a master and has his hostname changed!! Please use '--log-bin=test-bin' to avoid this problem. InnoDB: The first specified data file ./ibdata1 did not exist: InnoDB: a new database to be created! 090621 23:14:36 InnoDB: Setting file ./ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 090621 23:14:36 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 5 MB InnoDB: Database physically writes the file full: wait... 090621 23:14:36 InnoDB: Log file ./ib_logfile1 did not exist: new to be created InnoDB: Setting log file ./ib_logfile1 size to 5 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 090621 23:14:36 InnoDB: Started; log sequence number 0 0 090621 23:14:36 [Note] NDB: NodeID is 4, management server 'localhost:1186' 090621 23:14:37 [Note] NDB[0]: NodeID: 4, all storage nodes connected 090621 23:14:37 [Note] Starting Cluster Binlog Thread 090621 23:14:37 [Note] Event Scheduler: Loaded 0 events 090621 23:14:37 [Note] bin/mysqld: ready for connections. Version: '5.1.34-ndb-7.0.6-cluster-gpl-log' socket: '/tmp/mysql.sock' port: 9306 MySQL Cluster Server (GPL) 090621 23:14:38 [Note] NDB Binlog: Ndb tables initially read only. 090621 23:14:38 [Note] NDB: Creating mysql.ndb_schema 090621 23:14:38 [Note] NDB Binlog: CREATE TABLE Event: REPL$mysql/ndb_schema 090621 23:14:38 [Note] NDB Binlog: logging ./mysql/ndb_schema (UPDATED,USE_WRITE) 090621 23:14:38 [Note] NDB: Creating mysql.ndb_apply_status 090621 23:14:39 [Note] NDB Binlog: CREATE TABLE Event: REPL$mysql/ndb_apply_status 090621 23:14:39 [Note] NDB Binlog: logging ./mysql/ndb_apply_status (UPDATED,USE_WRITE) 2009-06-21 23:14:39 [NdbApi] INFO -- Flushing incomplete GCI:s < 20/3 2009-06-21 23:14:39 [NdbApi] INFO -- Flushing incomplete GCI:s < 20/3 090621 23:14:39 [Note] NDB Binlog: starting log at epoch 20/3 090621 23:14:39 [Note] NDB Binlog: ndb tables writable
bin/mysqld --defaults-file=conf/my2.cnf& bin/mysqld --defaults-file=conf/my3.cnf&
檢視cluster
bin/ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @127.0.0.1 (mysql-5.1.34 ndb-7.0.6, Nodegroup: 0, Master) id=3 @127.0.0.1 (mysql-5.1.34 ndb-7.0.6, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @127.0.0.1 (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 3 node(s) id=4 @127.0.0.1 (mysql-5.1.34 ndb-7.0.6) id=5 @127.0.0.1 (mysql-5.1.34 ndb-7.0.6) id=6 @127.0.0.1 (mysql-5.1.34 ndb-7.0.6)
建立測試表
bin/mysql -uroot -h localhost -P 9306 --socket=/tmp/mysql.sock Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.1.34-ndb-7.0.6-cluster-gpl-log MySQL Cluster Server (GPL) Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. root@(none) 11:21:24>use test Database changed root@test 11:21:26>create table test_ndb(i int,a varchar(20),primary key(i)) engine=ndb; 090621 23:22:32 [Note] NDB Binlog: CREATE TABLE Event: REPL$test/test_ndb 090621 23:22:32 [Note] NDB Binlog: logging ./test/test_ndb (UPDATED,USE_WRITE) 090621 23:22:32 [Note] NDB Binlog: DISCOVER TABLE Event: REPL$test/test_ndb 090621 23:22:32 [Note] NDB Binlog: DISCOVER TABLE Event: REPL$test/test_ndb 090621 23:22:32 [Note] NDB Binlog: logging ./test/test_ndb (UPDATED,USE_WRITE) 090621 23:22:32 [Note] NDB Binlog: logging ./test/test_ndb (UPDATED,USE_WRITE) Query OK, 0 rows affected (1.10 sec) root@test 11:22:32>insert into test_ndb values(1,'NinGoo'); Query OK, 1 row affected (0.02 sec) [mysql@dbconsole mysql-cluster]$ ls -l data/data1/test total 12 -rw-rw---- 1 mysql dba 8578 Jun 21 23:22 test_ndb.frm -rw-rw---- 1 mysql dba 0 Jun 21 23:22 test_ndb.ndb [mysql@dbconsole mysql-cluster]$ ls -l data/data2/test total 12 -rw-rw---- 1 mysql dba 8578 Jun 21 23:22 test_ndb.frm -rw-rw---- 1 mysql dba 0 Jun 21 23:22 test_ndb.ndb [mysql@dbconsole mysql-cluster]$ ls -l data/data3/test total 12 -rw-rw---- 1 mysql dba 8578 Jun 21 23:22 test_ndb.frm -rw-rw---- 1 mysql dba 0 Jun 21 23:22 test_ndb.ndb $ bin/mysql -uroot -P 9307 --socket=/tmp/mysql.sock Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.1.34-ndb-7.0.6-cluster-gpl-log MySQL Cluster Server (GPL) Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. root@(none) 11:24:38>use test 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 root@test 11:24:41>select * from test_ndb; +---+--------+ | i | a | +---+--------+ | 1 | NinGoo | +---+--------+ 1 row in set (0.02 sec) 本文網址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-1035629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一臺主機上配置MySQL ClusterMySql
- 請教在同一臺機器上配置weblogic的clusterWeb
- MySQL 5.6同一物理主機配置多例項MySql
- 在同一臺主機上建立複製資料庫資料庫
- 【DataGuard】同一臺主機實現物理Data Guard配置安裝
- 利用rman在同一臺機器上主庫online搭建standby
- 【DG】同一臺主機實現物理Data Guard配置安裝(精簡版)
- 一臺server上安裝mysql cluster(轉)ServerMySql
- 在同一臺計算機中執行多個MySQL服務計算機MySql
- 【DATAGUARD 學習】同一臺主機上的dataguard
- mysql cluster 簡單配置MySql
- MySQL Cluster 配置檔案MySql
- 在一臺機器配置兩個listener(Oracle)(轉)Oracle
- 同一臺linux主機同時安裝lamp和lnmpLinuxLAMPLNMP
- 【DATAGUARD 學習】同一臺主機的dataguard 密碼問題!密碼
- MySQL cluster 7.2叢集部署配置MySql
- 在多臺Cisco交換機更改相同的配置命令(轉)
- mysql cluster 一臺server安裝MySqlServer
- Window 10 單機配置MYSQL主從同步MySql主從同步
- 基於同一主機配置Oracle 11g Data Guard(logical standby)Oracle
- mysql主從配置MySql
- mysql 主從配置MySql
- mysql配置主從MySql
- 在同一臺機器下安裝兩個Oracle Software 版本Oracle
- 物理裸機配置如何轉換為天翼云云主機配置
- 同一Linux下起兩臺Mysql ServerLinuxMySqlServer
- 失敗的mysql cluster配置-無法順利轉換已有資料MySql
- 通過rman在同一臺機器上搭建standby大致過程!
- MySQL主從同步配置MySql主從同步
- docker mysql 主從配置DockerMySql
- MySQL5.7在滴滴雲主機上的主從複製MySql
- MySQL ClusterMySql
- Cluster for MySQLMySql
- Mysql主主同步-配置資料同步MySql
- Mysql ndb-cluster centos6.4 簡單配置MySqlCentOS
- 【DataGuard】同一臺主機部署Oracle 11g物理Active Data Guard詳細過程Oracle
- Apache 配置各種虛擬主機實踐(轉)Apache
- redis cluster 配置Redis