建立mysql集群磁盘表
来源:互联网 发布:js获取flash播放时间 编辑:程序博客网 时间:2024/06/05 00:29
应用场景
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. 创建日志组文件
在sql节点下执行以下sql语句:CREATE LOGFILE GROUP lg_cloudstor ADD UNDOFILE 'cloudstor_undo_1.log' INITIAL_SIZE 1024M UNDO_BUFFER_SIZE 100M ENGINE NDBCLUSTER;ALTER LOGFILE GROUP lg_cloudstor ADD UNDOFILE 'cloudstor_undo_2.log' INITIAL_SIZE 1024M ENGINE NDBCLUSTER;
3. 创建表空间
CREATE TABLESPACE ts_cloudstore ADD DATAFILE 'cloudstore_data_1.dbf' USE LOGFILE GROUP lg_cloudstor INITIAL_SIZE 20480M AUTOEXTEND_SIZE 1024M ENGINE NDBCLUSTER;
4. 添加新的datafile(给表空间添加日志文件)
ALTER TABLESPACE ts_cloudstore ADD DATAFILE 'cloudstore_data_2.dbf' INITIAL_SIZE 20480M AUTOEXTEND_SIZE 1024M ENGINE NDBCLUSTER;注意:上面增加的日志文件和数据文件的信息保存在information_schema.FILES表里。可以通过以下命令,查看在物理磁盘上新建的数据文件: # cd /usr/local/src/mysql/data/ndb_2_fs/ # ls -lh
5. 删除数据文件(下步骤需要用时再操作!)
alter tablespace ts_cloudstore drop datafile 'cloudstore_data_1.dbf' engine ndbcluster; alter tablespace ts_cloudstore drop datafile 'cloudstore_data_2.dbf' engine ndbcluster;
6. 删除表空间
drop tablespace ts_cloudstore engine ndbcluster;
7. 删除日志组
drop logfile group lg_cloudstor engine ndbcluster;
8. 将原有内存表转为磁盘表
具体操作如下:SELECT CONCAT('ALTER TABLE `', table_name, '` TABLESPACE ts_cloudstore STORAGE DISK ENGINE=ndbcluster;')AS sql_statementsFROM information_schema.tables AS tbWHERE table_schema = 'bidinfo_jiangsu'AND `TABLE_TYPE` = 'BASE TABLE'ORDER BY table_name;
注:需要修改,需要转为磁盘表的数据库。
执行以上SQL语句,将会生成一系列ALTER语句,将这些ALTER语句再执行一次。
阅读全文
1 0
- 建立mysql集群磁盘表
- mysql集群采用磁盘文件存储表
- VMware Workstation8 集群共享磁盘建立
- centos7中建立配置galera cluster for mysql集群
- 建立网络映射磁盘
- linux建立虚拟磁盘
- 建立网络映射磁盘
- mysql建立临时表
- mysql建立emp表
- Mysql-建立一个表
- 建立mysql主从模式集群,实现mysql的读写分离方法
- mysql-cluster采用磁盘文件存储表
- 查看mysql表占磁盘大小
- Mysql----查看数据库,表占用磁盘大小
- WIN7建立网络映射磁盘
- linux-建立LVM型磁盘
- hadoop集群hdfs磁盘划分
- Hadoop集群添加磁盘步骤
- ZMQ 第二章 ZeroMQ进阶
- Python-正则表达式
- SPOJ 962 Intergalactic Map 最大流
- 录屏&制作GIF图片
- 应用丨其实,你每天都生活在人工智能中
- 建立mysql集群磁盘表
- 干货丨机器学习傻瓜指南
- sdut 2141 BFS(用邻接矩阵和邻接表(采用优先队列)实现
- 深度丨11位科技大牛谈人工智能:AI如何改变游戏规则
- Item 2:尽量以const,enum,inline替换#define【effective C++读书笔记】
- java的登录界面与 数据库中表unpw的连接方法
- 业界丨涨薪20%!听听这位资深机器学习面试官的内心独白
- 1.Spring Boot创建SSM(IDEA+ORACLE)
- Java Web项目404错误