MySQL 클러스터 MySQL 클러스터
기본 개념:
"NDB"는 "인 메모리" 스토리지 엔진으로, 높은 가용성과 우수한 데이터 일관성이라는 특징을 가지고 있습니다.
MySQL 클러스터에는 다양한 장애 조치 및 로드 밸런싱 옵션으로 NDB 스토리지 엔진을 구성할 수 있는 기능이 있지만 클러스터 수준의 스토리지 엔진에서 이 작업을 수행하는 것이 가장 쉽습니다. MySQL 클러스터의 NDB 스토리지 엔진은 완전한 데이터 세트를 포함하며 클러스터 자체 내의 다른 데이터에만 의존합니다.
관리(MGM) 노드: 이 유형의 노드의 역할은 구성 데이터 제공, 노드 시작 및 중지, 백업 실행 등 MySQL 클러스터의 다른 노드를 관리하는 것입니다. 이러한 노드는 다른 노드의 구성을 관리하므로 다른 노드보다 먼저 시작되어야 합니다. MGM 노드는 "ndb_mgmd" 명령으로 시작됩니다.
데이터 노드: 이 유형의 노드는 클러스터 데이터를 저장하는 데 사용됩니다. 데이터 노드 수는 조각의 배수인 복제본 수와 관련이 있습니다. 예를 들어 각각 2개의 조각이 있는 2개의 복제본이 있는 경우 4개의 데이터 노드가 있습니다. 하지만 여러 복사본을 설정할 필요는 없습니다. 데이터 노드는 "ndbd" 명령으로 시작됩니다.
SQL 노드: 클러스터 데이터에 액세스하는 데 사용되는 노드입니다. MySQL 클러스터의 경우 클라이언트 노드는 NDB 클러스터 스토리지 엔진을 사용하는 기존 MySQL 서버입니다. 일반적으로 SQL 노드는 "mysqld -ndbcluster" 명령을 사용하거나 "my.cnf"에 "ndbcluster"를 추가한 후 "mysqld"를 사용하여 시작된다.
관리 서버(MGM 노드)는 클러스터 구성 파일 및 클러스터 로그 관리를 담당합니다. 클러스터의 각 노드는 관리 서버에서 구성 데이터를 검색하고 관리 서버의 위치를 확인하는 방법을 요청합니다. 데이터 노드 내에서 새로운 이벤트가 발생하면 해당 노드는 해당 이벤트에 대한 정보를 관리 서버로 전송한 후 해당 정보를 클러스터 로그에 기록합니다.
클러스터 구성 개요:
설치 버전: mysql 클러스터 7.3.2
운영 체제: centos6.3 (X64)
소프트웨어 이름: mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar.gz(일반 버전)
관리 노드 IP: 192.168.0.202
데이터 노드-SQL 노드 IP: 192.168.0.203
데이터 노드-SQL 노드 IP: 192.168.0.204
종속성 패키지 설치: yum install -y glibc perl libaio-devel
x32비트 시스템에서는 yum groupinstall "호환성 라이브러리"
1. 관리 노드 설치 및 구성
1을 설치해야 합니다. mysql-cluster
groupadd mysql useradd -g mysql -s /sbin/nologin mysql tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-cluster chown -R root.mysql /usr/local/mysql/ chown -R mysql.mysql /usr/local/mysql/data/ /usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库 cp -rf /usr/local/mysql/bin/ndb_mgm * /usr/local/bin/ #复制ndb节点管理命令到本地,方便使用
2. mysql 기본 구성 파일
vi /etc/my .cnf [MYSQLD] user = mysql socket = /tmp/mysql .sock basedir = /usr/local/mysql #安装目录 datadir = /usr/local/mysql/data #数据库存放目录 character-sets-server=UTF8 ndbcluster #运行NDB存储引擎 ndb-connectstring=192.168.0.202 lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的 [MYSQL_CLUSTER] ndb-connectstring=192.168.0.202 #Mysql Cluster管理节点IP
3. mysql 클러스터 구성 파일 생성
mkdir /var/lib/mysql-cluster vi /var/lib/mysql-cluster/config .ini [ndbd default] NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4 DataMemory=256M #分配的数据内存大小,根据本机服务器内存适量来分配 IndexMemory=256M #设定用于存放索引(非主键)数据的内存段大小 #一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。 [ndb_mgmd] nodeid=1 hostname =192.168.0.202 datadir= /var/lib/mysql-cluster/ [ndbd] nodeid=2 hostname =192.168.0.203 datadir= /usr/local/mysql/data [ndbd] nodeid=3 hostname =192.168.0.204 datadir= /usr/local/mysql/data [mysqld] nodeid=4 hostname =192.168.0.203 [mysqld] nodeid=5 hostname =192.168.0.204
저장하고 종료하세요!
chown mysql.mysql /var/lib/mysql-cluster/config .ini
2. 두 데이터 노드와 SQL 노드의 구성은 동일합니다
1. mysql-cluster
tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql groupadd mysql useradd -g mysql -s /sbin/nologin mysql chown -R root.mysql /usr/local/mysql chown -R mysql.mysql /usr/local/mysql/data /usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库 cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysqld cp /usr/local/mysql/support-files/medium .cnf /etc/my .cnf chmod +x /etc/init .d /mysqld
2를 설치합니다. 3개 서버의 방화벽(IPTABLES) 및 Selinux)
1. 관리 노드를 시작하세요
vi /etc/my .cnf [MYSQLD] user=mysql character_set_server=utf8 ndbcluster ndb-connectstring=192.168.0.202 default-storage-engine=ndbcluster #设置默认是NDB存储引擎 datadir= /usr/local/mysql/data basedir= /usr/local/mysql [MYSQL_CLUSTER] ndb-connectstring=192.168.0.202 #mysql cluster 管理节点IP
4. 데이터베이스를 생성하여 동기화되었는지 확인하세요
mysql -u root -p
Mysql>create 데이터베이스 테스트 ;Mysql>use test ;Mysql>create table abc (id int)engine=ndbcluster; #데이터베이스 테이블의 엔진을 NDB로 지정하세요. 그렇지 않으면 동기화가 실패합니다Mysql>Insert abc() 값으로 (1); select * from abc;#이때 두 데이터가 일치하는지 확인하면 클러스터가 성공한 것입니다! 참고 사항: 1 테이블을 생성할 때 반드시 ENGINE=NDB 또는 ENGINE=NDBCLUSTER를 사용하여 NDB 클러스터 스토리지 엔진을 지정하거나 ALTER TABLE 옵션을 사용하여 테이블의 스토리지 엔진을 변경하세요. 2.NDB 테이블에는 기본 키가 있어야 하므로 테이블을 생성할 때 기본 키를 정의해야 합니다. 그렇지 않으면 NDB 스토리지 엔진이 자동으로 암시적 기본 키를 생성합니다. 3. Sql 노드의 사용자 권한 테이블은 여전히 MYISAM 스토리지 엔진에 저장되므로 Sql 노드에서 생성된 MySql 사용자는 동일한 사용자를 사용하여 다른 Sql 노드에 액세스할 수 있습니다. 해당 SQL 노드 추가 사용자를 사용해야 합니다.
4. 관리 및 유지 관리 명령
mysql 클러스터 종료: ndb_mgm -e shutdownmysql 클러스터 다시 시작: ndb_mgmd -f /var/lib/mysql-cluster/config.ini
데이터 노드 다시 시작 : /usr/ local/mysql/bin/ndbdSQL 노드 시작: /usr/local/mysql/bin/mysqld_safe --user=mysql & 또는 service mysqld restartmysql 상태 보기: ndb_mgm -e show 시작 순서: 관리 노드-> SQL 노드닫기 순서: SQL 노드-> 관리 노드추천 튜토리얼: "MySQL Tutorial
"위 내용은 MySQL - 클러스터 MySQL 클러스터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!