- 浏览: 505800 次
- 性别:
- 来自: 宁波
博客专栏
-
浙大软院考研
浏览量:19318
文章分类
最新评论
-
J2EE大鸟:
muzeng 写道非常感谢,比淘宝的还全,向学长学习,谢谢哈哈 ...
2013浙大878计算机基础综合大题答案解析 -
muzeng:
非常感谢,比淘宝的还全,向学长学习,谢谢
2013浙大878计算机基础综合大题答案解析 -
J2EE大鸟:
tianxia2s 写道 求楼主给个选择题答案不不好意思,博客 ...
2012浙大878计算机专业基础综合大题答案解析 -
tianxia2s:
求楼主给个选择题答案不
2012浙大878计算机专业基础综合大题答案解析 -
tianxia2s:
感谢楼主
关于浙大考研878历年试卷的说明
Management管理节点和DataNote节点都不开启mysql服务,只有MysqlServer节点开启。The default port for Cluster management nodes is 1186; the default port for data nodes is 2202.
mysql集群技术 mysql4.1.13
Submitted by root on 2008, March 14, 3:15 PM. 数据库类
mysql集群技术
1 环境描述
Mysql manager 节点: 192.168.0.1
MysqlServer节点: 192.168.0.100
Mysql 节点: 192.168.0.160
Mysql 节点: 192.168.0.161
说明:至少需要四台服务器才可以做mysql的集群。建议5台,再增加一台MysqlServer。
2 安装mysql二进制包
2.1 安装之前的准备工作
下载mysql-max-4.1.13-pc-linux-gnu-i686.tar.gz包
(注意:可以做集群的mysql都是mysql-max的,下载地点www.mysql.org)
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local
#tar xfz mysql-max-4.1.13-pc-linux-gnu-i686.tar.gz
#ln -s /usr/local/mysql-max-4.1.13-pc-linux-gnu-i686 /opt/mysql4.1.13
2.2 分别在manager,server,node节点上安装二进制的mysql包
#cd mysql4.1.13
#scripts/mysql_install_db --user=mysql (必须带目录执行,否则出错)
#chown -R root /opt/mysql4.1.13
#chgrp -R mysql /opt/mysql4.1.13
#chown -R mysql.mysql /opt/mysql4.1.13/data
#cp support-files/mysql.server /etc/rc.d/init.d/ 配置mysql启动设置
#chmod +x /etc/rc.d/init.d/mysql.server
#chkconfig --add mysql.server
3 配置server,note节点
在192.168.0.160和192.168.0.161机器上
# ./mysql –help 该命令可以查看mysql启动时是怎么寻找my.cnf文件的顺序。
Default options are read from the following files in the given order:
/etc/my.cnf /usr/local/mysql-max-4.1.13/data/my.cnf ~/.my.cnf
# cp support-files/my-medium.cnf data/my.cnf 将mysql的配置文件考到data下
Vi /usr/local/mysql-max-4.1.13-pc-linux-gnu-i686/data/my.cnf
[MYSQLD]
ndbcluster
ndb-connectstring=192.168.0.1
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.1
4 配置Management管理节点
在192.168.0.1机器上
#mkdir /var/lib/mysql-cluster
#cd /var/lib/mysql-cluster
#vi config.ini
[NDBD DEFAULT]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2
# Number of replicas
DataMemory=80M
# How much memory to allocate for data storage
IndexMemory=52M
# How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[TCP DEFAULT] # TCP/IP options:
portnumber=2202
# This the default; however, you can use any
# port that is free for all the hosts in cluster
# Note: It is recommended beginning with MySQL 5.0 that
# you do not specify the portnumber at all and simply allow
# the default value to be used instead
# Management process options(定义管理节点.)
[NDB_MGMD]
hostname=192.168.0.1
# 管理节点Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node logfiles
# Options for data node "A"(定义群集数据节点.)
# (one [NDBD] section per data node)
[NDBD]
hostname=192.168.0.160
# 节点Hostname or IP address
datadir=/usr/local/mysql/data
# Directory for this data node's datafiles
# Options for data node "B"(定义群集数据节点.)
[NDBD]
hostname=192.168.0.161
# 节点Hostname or IP address
datadir=/usr/local/mysql/data
# Directory for this data node's datafiles
# SQL node options(定义Sql server节点.)
[MYSQLD]
hostname=192.168.0.100
# SQL节点Hostname or IP address
#datadir=/usr/local/mysql/data # Directory for SQL node's datafiles
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
[NDB_MGMD]:后面不能有任何注释信息,否则提示:
Error line 17: [TCP] Unknown parameter: [NDB_MGMD] # Management process options
Error line 17: Could not parse name-value pair in config file.
[SHM]: Defines shared-memory connections between nodes. 在MySQL 4.1.9之前,这个功能必须使用--with-ndb-shm option编译进去, 从MySQL 4.1.9-max版本开始, it is enabled by default
5 启动mysql集群
5.1 初始化启动mysql集群服务
1)启动MysqlManagement管理节点(192.168.0.1)
#ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2)启动Data Node节点(192.168.0.160,192.168.0.161)
#ndbd --initial
(注意:这个参数只能在第一次启动DataNode节点时使用,因为—initial参数会删除一些ndbd 实例先前创建的所有文件)
3)启动MysqlServer节点(192.168.0.100)
# ./mysql.server start
5.2 重启mysql集群服务
1)启动MysqlManagement管理节点(192.168.0.1)
#ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2)启动Data Node节点(192.168.0.160,192.168.0.161)
#ndbd
3)启动MysqlServer节点(192.168.0.100)
# ./mysql.server start
(注意:Management管理节点和DataNote节点都不开启mysql服务,只有MysqlServer节点开启。The default port for Cluster management nodes is 1186; the default port for data nodes is 2202.)
6 测试集群的效果
6.1 在管理机上查看各节点运行状况
[root@Proxy 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 @192.168.0.160 (Version: 4.1.13, Nodegroup: 0, Master)
id=3 @192.168.0.161 (Version: 4.1.12, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.1 (Version: 4.1.13)
[mysqld(API)] 1 node(s)
id=4 @192.168.0.100 (Version: 4.1.12)
6.2 模拟写入一个数据库表,各MysqlServer节点是否能够同步
1) 在一个MysqlServer节点上创建数据库world和表,然后看看另一个MysqlServer节点是否也同样可以看到。
答:数据都相同
2) 拔掉一个DataNote节点网线,看看两台MysqlServer节点是否还能正常工作。
答:可以
3) 拔掉两台DataNote节点网线,查看一下MysqlServer节点是否还能正常工作。
答:所有MysqlServer都不能正常工作
7 附件:
以上文档参考mysql官方资料:http://dev.mysql.com/doc/mysql/en/ndbcluster.html
再补一篇
AS2.1+mysql-max-4.1.11
简单使用模型
配置:
管理服务端:192.168.255.10
需要ndb_mgm(控制台),ndb_mgmd(后台程序)两个文件
在当前目录下配置config.ini文件
[NDBD DEFAULT]
NoOfReplicas=2
[NDB_MGMD] #可以写成[MGM]
HostName=192.168.255.10
[NDBD]
HostName=192.168.255.11
DataDir=/usr/local/mysql/data
[NDBD]
HostName=192.168.255.12
DataDir=/usr/local/mysql/data
[MYSQLD]
[MYSQLD]
启动ndb_mgmd程序
mysql1,mysql1: 192.168.255.11,192.168.255.12
两个mysql服务器配置一样
my.cnf配置:
[mysqld] #配置mysqld
ndbcluster
[mysql_cluster] #配置ndbd
ndb-connectstring=192.168.255.10 #MGM地址
启动ndbd [--initial](--initial参数只能在头次启动ndbd,它会清空数据与日志)
动后使用,否则会引起数据丢失)
启动mysql服务
建表时,需加入ENGINE=NDBCLUSTER参数,如
create table x(a int) engine=ndbcluster;
create table x(a int) engine=ndb;
或修改原表
alter table x engine=ndbcluster;
启动关闭:
启动:
必须先起动ndb_mgmd,其次是ndbd, mysqld最好最后启动,否则当ndbd没有启动时将不能访问ndb数据。
关闭:
MGM端:ndb_mgm -e shutdown
Mysqld端: mysql.server stop
备份恢复:
备份:
在MGM端执行 ndb_mgm –e start backup,系统将会将数据分散备份至NDBD端的data/BACKUP目录下。
恢复:
1. 删除原表或数据
2. 关闭NDBD结点服务器上运行的mysqld(如果有的话)
3. 在每一个NDBD端的数据备份文件目录下执行ndb_restore –bx –nx –r –print(-b指备份号,-指节点号,即备份文件中的两个数字。-r指恢复结构,第一个节点要加-m恢复表结构)
4. 启动被关闭的mysqld
mysql的恢复如果执行两遍的话,不会造成数据冲突或重复.
MysqlCluster高级技术
Cluster原理:
Mysqld分三层,一个MGM用于管理配置,m个mysqld给应用程序提供访问,n个ndbd提供集群存储
mysqld的使用方法和普通版本的mysqld使用相同,不过加入的对ndb数据存储的支持。
数据是分散存储在每组ndb节点的,每组中ndb节点的数据相同,每组至少有一个ndbd保持运行状态才能访问数据。(组的分配参看NoOfReplicas参数)。ndb节点间保证数据的同步
备份时,备份数据分散备份至每一个正在运行的ndb节点,所以恢复时需要在每个ndb节点都进行恢复。如果表不存在的话,使用-m参数创建。如果一个 ndb节点数据丢失,可以先备份正在运行的ndb,然后使用ndbd –initial 重建整个cluster,然后使用备份恢复.此方法也可用来扩容.
ndb会对没有主键的用户创建一个隐性主键。
对双机系统, NoOfReplicas建议设为2.
常用命令:
ndb_mgm控制台命令
ndb_mgm [hostname[port]]
show 显示当前状态
node_id start, node_id stop, node_id restart,node_id status 对接点控制
enter single user mod node_id 只允许一个mysqld连接指定的ndb
shutdown 关闭ndb,mgm
start backup,abort backcup 开始/放弃备份
clusterlog off,clusterlog on,clusterlog toggle,clusterlog info 对集群日志的控制
操作系统命令
ndbd ndb节点后台进程
--initial --initial会清空数据和日志,只有当第一次建立cluster或cluster结构发生改变需要重建时才使用
--ostart等待mgm启动后启动
平时不加参数直接执行即可
ndb_restoret 恢复备份
ndb_resore –bx –ny –r –m –print 在备份文件目录下执行,-m只能在第一次执行,如果数据库不存在的话,恢复可以成功,但通过mysqld无法访问,需要重新创建数据库即可。
-b 备份号,
-n 节点号,
-r 恢复数据,
–m 恢复表结构,
--print 打印至标准输出
ndb_delete_all,ndb_desc,ndb_drop_index ,ndb_drop_table, ndb_select_all,ndb_select_count, ndb_show_tables
基本等同于sql操作,但是他们可以看见隐式主键
例:ndb_desc –d test x 察看test数据库中的x表
ndb_waiter 校验cluster节点状态
ndb_cpcd,ndb_test_platform ???
MGM
config.ini详解
# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]
NoOfReplicas=2 #数据被复制的份数,也指明一个组的乘员数
#系统按id从低到高的顺序分组
# TCP/IP options:
[TCP DEFAULT]
portnumber=2202 #服务端口号
# Management process options:
[NDB_MGMD] #简写[MGM]
id= #结点id 1-63,可以不写,自动分配
ExecuteOnComputer= # [computer]一节指定的计算机
LogDestination= # 取值为CONSOLE, SYSLOG, FILE,日志输出到控制台,
# 系统日志或文件 例(??)
# console
# facility=syslog
# filename=cluster.log,maxsize=1000000,maxfiles=6
#
ArbitrationRank=1 #0:不使用仲裁(?)
#1: 高优先级仲裁
#2:低优先级仲裁
#MGM,mysqld节点使用
ArbitrationDelay=0 #毫秒
hostname=192.168.0.10 #MGM节点地址, 不能配置为127.0.0.1或localhost,
#必须是本地实际ip
datadir=/var/lib/mysql-cluster # 日志,pid等文件
# Options for data node "A":
[NDBD] #配置NDB节点,除了hostname,id和ExecuteOnComputer,
#其他共性的参数可以在[NDBD default中指定] ,每个NDB节点都要配一段
id= #1-63 ,可以不写,自动分配
ExecuteOnComputer
Serverport= #连接其它节点使用的端口号,默认动态分配
hostname=192.168.0.30 # Hostname or IP address
datadir=/usr/local/mysql/data #日志,pid等文件
filesystempath=$datadir #日志,撤销日志,数据所存在的位置,推荐/var/lib/mysql-clustere
BackupDataDir=$FileSystemPath/BACKUP #备份文件位置
DataMemory=80M #数据使用内存.用来放数据,ordered index(?)和索引,DUNO信息
IndexMemory=18M #主键,唯一性索引,注意和ordered index区分,最小1M
#使用内存数=(DataMemory+IndexMemory)* NoOfReplicas
MaxNoOfConcurrenttranctions=4096 #所有节点必须设想同值,最大事务并发
MaxNoOfConcuttentOperations=32768 #每个事务处理数据大小
MaxNoOfLocalOperations=1.1*$MaxNoOfConcurrentOperations #
待续…
# Options for data node "B":
[NDBD]
hostname=192.168.255.12 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's datafiles
# SQL node options:
[MYSQLD] #配置mysqld节点,每个mysql节点都要配一段,可以不写任何内容,由mgm自动分配
id= #1-63,可以不写,自动分配
ArbitrationRank=0 #0:不使用仲裁
#1: 高优先级仲裁
#2:低优先级仲裁
#MGM,mysqld节点使用
ArbitrationDelay=0 #毫秒
BatchByteSize=32K #转换为全表扫描或根据索引扫描的查询?
BatchSize=64 #最大992
MaxScanBatchSize=256K #16MB
hostname=192.168.0.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
对mysqld,ndbd都需要连接字符串用来连接MGM
格式 id,host:port,host,port....
如:nodeid=2,192.168.255.2:1186,192.168.255.3:1186
或192.168.255.2
Mysqld
my.cnf详解
[mysqld]
ndbcluster #使用ndb引擎
skip-ndbcluster #不使用ndb引擎(需要编译支持)
ndb-connectstring=192.168.255.10 #MGM地址
从4.1.8版本开始可以将ndb-connectstring写至[mysql_cluster]段
[mysql_cluster]
ndb-connectstring=192.168.255.10 #MGM地址
Ndb
My.cnf
[mysql_cluster]
ndb-connectstring=192.168.255.10 #MGM地址
nbd.cfg??
Tags: 集群, mysql4, mysql数据库, 数据库, 集群技术
http://hi.baidu.com/sing520/blog ... ebf6fcae51331f.html
发表评论
-
Linux命令之xargs命令详解
2013-01-20 12:51 1127xargs是一个非常强大的命令,可以取一个命令的输出作为另一 ... -
SuSe防火墙iptables配置
2013-01-20 12:50 3132进入 /etc/sysconfig/ 目录,用 vi 命令编 ... -
ps aux指令詳解
2013-01-18 21:16 1047linux上进程有5种状态:1. 运行(正在运行或在运行队列 ... -
Linux查看版本信息及CPU内核、型号等
2013-01-16 11:47 937Linux下如何查看版本信息, 包括位数和多核信息,今天我 ... -
linux 启动ftp服务,sftp服务
2012-10-08 14:42 1717启动ftp服务:在/etc/rc.d/init.d/目录下:命 ... -
Linux创建用户、用户组 及 删除
2012-09-19 16:10 1043在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属 ... -
MySQL-Cluster7.2.5安装和配置
2012-09-18 18:44 849查看文章索引请通过http://www.cnblogs.com ... -
MySQL二进制版本的安装及卸载
2012-09-18 18:38 1410二进制版本的mysql是已经编译好的,无需 configure ... -
MySQL Cluster(MySQL 集群) 初试
2012-09-17 14:36 860MySQL Cluster(MySQL 集群) 初试周一, 2 ... -
MYSQL集群的备份与恢复最终版本
2012-09-17 14:32 889[原创]MYSQL集群的备份与恢复最终版本中午刚刚弄明白了MY ... -
linux下如何添加一个用户并且让用户获得root权限
2012-09-16 22:36 936测试环境:CentOS 5.51、添加用户,首先用adduse ... -
项目部署时,linux环境配置问题
2012-07-30 20:19 924远程登录时,选择用putt ... -
linux mysql安装及密码相关问题(2)和navicat整合连接
2012-07-26 14:20 1872一、rpm卸载mysql 1、查找以前是否装有mysql ... -
Linux防火墙端口设置和mysql端口开放的navicat整合
2012-07-24 10:47 3443Linux 防火墙端口设置 1.在/etc/sysconfi ... -
Pacemaker 安装
2012-06-03 16:53 0Pacemaker Obtain the latest P ... -
heartbeat和Pacemaker配置
2012-06-03 16:51 4215安装完成之后,要开始配置了,heartbeat和Pacemak ... -
Linux下软件的安装与卸载
2012-06-03 16:47 882在Windows下安装软件时,只需运行软件的安装程 ... -
sed命令 linux下的超强查找和替换命令
2012-06-03 16:45 1157在维护magento的数据库 由于想修改部分数据 但是面对几百 ... -
Linux操作问题解答
2012-06-03 16:40 21051. configure: error : C++ prepr ...
相关推荐
Mysql集群技术文档
随着互联网技术的高速发展以及其高度写比特性,数据库集群方案已是处理数据的 首选。由于技术壁垒以及经济原因,商用数据库集群方案往往对于中小型企业并不友好。 而开源的 MySQL 以其简单易用、经济方便的特性在...
MySQL集群评估手册.pdf
MySQL Cluster 是专门用来做MySQL集群的程序,简单来讲它是一种技术,该技术能够在无共享的系统中部署内存中数据库的“Cluster”,通过无共享体系结构,系统能够使用各种廉价的硬件,并对所有硬件没有任何特殊的要求...
非常详细的某培训机构mysql学习笔记,内容系统全面,实用性强 MySQL1 MySQL基础 MySQ单实例部署 MySQL多实例部署 MySQL数据库操作 MySQL数据类型 ... MySQL集群技术 Galera MySQL LNMP环境搭建
当前,随着互联网深入应用、云计算走向成熟,大数据晋升为一个时髦词汇。大数据统计降临到商业、经济、政治等领域,...而本文将围这些技术以mysql-cluster集群展开探讨,旨在为读都身体力行式的感受大数据存储机制。
mysql集群多主同步教程,支持配置合集群多台MYSQL,都是主主,和一般的读写分离方案不一样。是mysql云中部署,解决高可用和模向扩展的实用技术资源。
MYSQL-企业整合解决方案之mysql集群搭建-主从配置.docx
技术分享:mysql集群实战分享
这使MySQL深 刻地了解到扩展Web数据库的挑战,从而推动了对MySQL集群的开发,用一些关键技术实现有大量写操作Web数据库的升级,包括: 自动分区技术,有很强的写操作可扩展性。 实时性能。 active/active式跨地域...
apache+tomcat+mysql 的负载平衡和集群技术
MySQL Cluster 是用于解决高... MySQL Cluster是为提供99.999%以上的高可用性而设计的,采用分布式节点设计技术,不会因为单点故障而使整个Cluster瘫痪。 MySQL Cluster由3类节点组成:管理节点、数据节点、SQL节点。
超详细干货!Docker+PXC+Haproxy搭建高可用强一致性的MySQL集群.doc
mysql集群安装.pdf
一、Mysql-mmm集群技术概述; 二、Mysql-mmm优缺点; 三、Mysql-mmm内部工作架构; 四、案例搭建Mysql-mmm+mysql 5.6双主高可用集群;
linux下mysql集群的安装.docx
window下mysql集群的创建.docx
在CENTOS中搭建mysql 集群.docx