MySQL cluster 集群入门问题.(请详解,谢谢各位大神)

沉沦 2016-02-14 03:45:39
MySQL cluster 集群

一个管理节点.
二个SQL节点.
二个数据节点.
NoOfReplicas=2

问题
1. 因为在NDB下,SQL节点存放表结构,数据结构存储数据和索引.
那么,我在其中一个SQL节点创建新的NDB表或者ALTER TABLE 时,我是否也需要在另一个SQL节点执行相同的操作 ? (我这有二个SQL节点)
PS:我认为,二个SQL节点没有直接的关系.它们也不会进行复制.

2. 如果数据库中有INNODB和NDB两种存储引擎,据我的理解,INNODB的表结构和表空间依然都存放在SQL节点,那么我改变INNODB数据时,需要二个节点都修改吗?(我这有二个SQL节点)

3. 据我的理解,其实NDB的所有数据和表结构都是存放在SQL节点上面的,只是当数据节点连接到管理节点时,管理节点会按某些规则把数据从SQL节点分配到数据节点上面 ? (这不是这样理解对不对)
是数据节点把一部分SQL节点的NDB数据放到数据节点的硬盘上,然后再把这些数据加载到内存中 ?
如果是这样.那么我删除所有的NDB数据节点,重新创建新的数据节点.数据也依然不会丢失吧 ?

4. NDB其实是把数据全部加载到内存中,后来又看到新版本说,现在只需要加载索引和索引数据就可以了.不知道是从哪个版本开始有这个区别的?
如果内存中只有索引和索引数据列,那么我查询非索引字段,怎么办,内存中没有.不会进行全NDB集群的物理扫描吧 ?
如果是这样.那么我在设计的时候,是否要严格按照索引列去查询 ?

5. 如果创建NDB的索引,是否只有创建的那个数据结构会锁表,其余的节点还是可以正常运行?

6. 如果NDB的数据很大,是否能用xtrabackup去备份数据 ?


所有结尾为问号的都是一个问题哦.谢谢各位大神耐心的解答. 小弟在这跪谢!!
...全文
225 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohay1984 2016-02-18
  • 打赏
  • 举报
回复
2楼的回答基本到位了,自己可以看看mysql的官方文档5.6 cluster相关章节
沉沦 2016-02-18
  • 打赏
  • 举报
回复
没人帮我一下么..狼头大哥在么?
沉沦 2016-02-17
  • 打赏
  • 举报
回复
顶!!帮自己顶一下!!~~
沉沦 2016-02-16
  • 打赏
  • 举报
回复
引用 2 楼 fcy_n 的回复:
个人观点: 1. 在NDB下,任何一个SQL节点上新增和修改表,其它SQL节点上不需要再操作了 2. 在某个节点上创建innodb表,其它节点上是看不到的 3. a. NDB的数据是存放在数据节点,跟SQL节点没关系 b. 数据加载到内存中是通过NDB引擎 c. 如果删除所有的数据节点,那么数据丢失了 4. a.早期的版本是所有数据存储在内存中的,最新的版本可以把数据缓存在磁盘上 b.查询非索引字段,会在某个或者某几个数据节点上进行全表扫描 c.能按照索引列去查询最好 5. 创建索引跟锁表没太大关系 6. 为什么不能呢?
1.为什么在某一个节点上创建表或ALTER TABLE操作,其他节点不需要修改呢?
   我的理解是这样的.如果修改某行数据.它的修改的数据是在数据节点上面的,所有通过任何SQL节点都能看到修改的数据.
   但是,例如执行ALTER TABLE添加某个字段或创建MyISAM表之类的,它的表结构是保存到SQL节点的.所以只会在某个SQL
   节点上去操作,然而,各个SQL节点并没有任何直接性的关联,请问,它们是怎么通讯,怎么知道的?

2.如果在某个节点上创建INNODB,其他节点是看不到的,那是否我要向INNODB表插入数据,要在每一个SQL节点上操作一遍.
   如果是这样,大家通常用什么方案来达到某一个节点插入INNODB数据.所有SQL节点都会有数据.或者说,这种情况大家通常
  采用什么方案.
   PS: 如果使用主从复制的方案,把INNODB复制到每个节点,但是NDB的数据是否也会经常复制.那不是插入了N次?

3. 
   a).NDB的数据如果都是存放在数据节点,那么存放在数据节点上是以什么方式存放的.
    PS:我在数据节点的数据文件夹里面,看到很多乱七八糟的文件夹,完全看不出什么规则来.

   b).NDB把数据加载到内存,为什么第一次要加ndbd –-initial 参数呢? 反正都是把物理文件加载到内存中去,
       为什么第一次连接要加--initial,后面不需要加.

4. 
   a).最新貌似是7.4 的cluster ,是从7.4开始的吗?

6. 如果我用Xtrabackup备份INNODB是没问题的.都放到某个机器的文件夹里面,但是.如果我备份NBD数据.
    在SQL节点上,却只有NDB的表结构,NDB的数据,都在数据节点上.这个,能备份进去吗? 貌似不行吧?
    PS: 备份NDB,大数据情况下,大家通常用什么方案去备份. 大家别告诉我,在管理节点上使用start backup去
    备份数据了.数据大了 .它能备份的出来么?

fcy_n 2016-02-15
  • 打赏
  • 举报
回复
个人观点: 1. 在NDB下,任何一个SQL节点上新增和修改表,其它SQL节点上不需要再操作了 2. 在某个节点上创建innodb表,其它节点上是看不到的 3. a. NDB的数据是存放在数据节点,跟SQL节点没关系 b. 数据加载到内存中是通过NDB引擎 c. 如果删除所有的数据节点,那么数据丢失了 4. a.早期的版本是所有数据存储在内存中的,最新的版本可以把数据缓存在磁盘上 b.查询非索引字段,会在某个或者某几个数据节点上进行全表扫描 c.能按照索引列去查询最好 5. 创建索引跟锁表没太大关系 6. 为什么不能呢?
allen519 2016-02-15
  • 打赏
  • 举报
回复
好问题 关注一下 等待高手

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧