Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 437|回复: 0

[默认分类] 建立mysql集群磁盘表

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-6-10 10:00:08 | 显示全部楼层 |阅读模式

    应用场景

      MySQL Cluster 5.1的一个最受期待的特性是集群已支持基于磁盘的数据存取。NDB存储引擎大大增强了MySQL Cluster的性能,该引擎之前是一个100%的内存数据库引擎。这种引擎对可以运行在内存里的数据库来说是极好的选择,现在基于磁盘的存取数据支持使MySQL 5.1集群拓展了数据库规模,使MySQL集群用户有能力创建更大的数据库而且能对其有效的管理。  
      对于必须具备很高可用性,但不苛求像基于内存数据存储那样的高性能特性的数据,利用磁盘存取的方式将是最好的选择。另外,那些由于操作系统或硬件条件所致的硬性局限,可以考虑移植基于内存存取的库到磁盘存取的库当中,或者在支持磁盘存取数据的MySQL Cluster上开发新的应用。

    操作步骤
    1. 涉及概念
      
      
       MySQL Cluster采用一系列的Disk Data objects来实现磁盘表。
       
      
       (1)Tablespaces:作用是作为其他Disk Data objects的容器。
       
    (2)Undo logy files:存储事务进行回滚需要的信息,一个或者多个undo log files组成一个log files group,最后,该log file group关联到一个tablespaces。
       
    (3)Data files:作用是存储表中的数据,data file直接关联到tablespaces。
       
      

      在每一个数据节点上undo log files和data files都是实际的文件,默认的,存放在ndb_node_id_fs文件夹下,该路径是在MySQL Cluster的config.ini中用DataDir指定的,node_id是data node的node ID。可以用绝对路径或者相对路径指定undo log或者data file的路径。tablespaces和log file group则不是实际的文件。  
      注意:尽管不是所有的Disk Data Object都作为文件存储,但是他们共享同一的命名空间,这意味着每个Disk Data Object必须唯一命名。

    2. 创建日志组文件
    1. [code] 在sql节点下执行以下sql语句:
    2. CREATE LOGFILE GROUP lg_cloudstor ADD UNDOFILE "cloudstor_undo_1.log" INITIAL_SIZE 1024M UNDO_BUFFER_SIZE 100M ENGINE NDBCLUSTER;
    3. ALTER LOGFILE GROUP lg_cloudstor ADD UNDOFILE "cloudstor_undo_2.log" INITIAL_SIZE 1024M ENGINE NDBCLUSTER;
    复制代码
    [/code]
    3. 创建表空间
    1. [code] CREATE TABLESPACE ts_cloudstore ADD DATAFILE "cloudstore_data_1.dbf" USE LOGFILE GROUP lg_cloudstor INITIAL_SIZE 20480M AUTOEXTEND_SIZE 1024M ENGINE NDBCLUSTER;
    复制代码
    [/code]
    4. 添加新的datafile(给表空间添加日志文件)
    1. [code] ALTER TABLESPACE ts_cloudstore ADD DATAFILE "cloudstore_data_2.dbf" INITIAL_SIZE 20480M AUTOEXTEND_SIZE 1024M ENGINE NDBCLUSTER;
    2. 注意:上面增加的日志文件和数据文件的信息保存在information_schema.FILES表里。
    3. 可以通过以下命令,查看在物理磁盘上新建的数据文件:
    4. # cd /usr/local/src/mysql/data/ndb_2_fs/
    5. # ls -lh
    复制代码
    [/code]
    5. 删除数据文件(下步骤需要用时再操作!)
    1. [code]  alter tablespace ts_cloudstore drop datafile "cloudstore_data_1.dbf" engine ndbcluster;
    2.   alter tablespace ts_cloudstore drop datafile "cloudstore_data_2.dbf" engine ndbcluster;
    复制代码
    [/code]
    6. 删除表空间
    1. [code] drop tablespace ts_cloudstore engine ndbcluster;
    复制代码
    [/code]
    7. 删除日志组
    1. [code] drop logfile group lg_cloudstor engine ndbcluster;
    复制代码
    [/code]
    8. 将原有内存表转为磁盘表
    1. [code]具体操作如下:
    2. SELECT CONCAT("ALTER TABLE `", table_name, "` TABLESPACE ts_cloudstore STORAGE DISK ENGINE=ndbcluster;") AS sql_statements FROM information_schema.tables AS tb WHERE table_schema = "bidinfo_jiangsu" AND `TABLE_TYPE` = "BASE TABLE" ORDER BY table_name;
    复制代码
    [/code]

       注:需要修改,需要转为磁盘表的数据库。
    执行以上SQL语句,将会生成一系列ALTER语句,将这些ALTER语句再执行一次。


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 10:35 , Processed in 0.300501 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表