啦啦啦啦哈 发表于 2017-7-20 13:27:58

【转帖】MySQL Cluster初步学习资料整理

1.1                           mysql-cluster简介简单的说,MySQLCluster实际上是在无共享存储设备的情况下实现的一种完全分布式数据库系统,其主要通过NDBCluster(简称NDB)存储引擎来实现。MySQLCluster刚刚诞生的时候可以说是一个可以对数据进行持久化的内存数据库,所有数据和索引都必须装载在内存中才能够正常运行,但是最新的MySQLCluster版本已经可以做到仅仅将所有索引和索引数据装载在内存中即可,实际的数据可以不用全部装载到内存中,架构如下图所示:http://www.uml.org.cn/Test/images/2013112621.jpg1.2 请看Cluster结构图1.3 Cluster主要结构1、管理(MGM)节点:这类节点的作用是管理MySQLCluster内的其他节点,如提供配 置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启                           动这类节点。MGM节点是用命令“ndb_mgmd”启动的。对硬件没什么要求,差一点的机器完全能够胜任。默认端口1186。2、数据节点: 这类节点用于保存Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。可以选择大内存,cpu也相对来讲不错的,尤其是以后ndbmtd对多核Cpu的支持。默认端口22023、SQL节点:这是用来访问Cluster数据的节点。对于MySQLCluster,客户端节点是使用NDBCluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld–ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。对cpu要求较高,选择多核,高频CPU较好1.4 Cluster特性 分布式:分布式存储引擎,可以由多个NDBCluster存储引擎组成集群分别存放整体数据的一部分支持事务:和Innodb一样,支持事务可与mysqld不在一台主机:可以和mysqld分开存在于独立的主机上,然后通过网络和mysqld通信交互。内存需求量巨大:新版本索引以及被索引的数据必须存放在内存中,老版本所有数据和索引必须存在与内存中Cluster使用自动键值识别数据分片方案,用户无需关心数据切片方案(在5.1及以后提供了分区键规则),透明实现分布式数据库,数据分片规则根据1、主键、2唯一索引、3自动行标识rowid完成,再集群个数进行分布,其访问数据犹如RAID访问机制一样,能并行从各个节点抽取数据,散列数据,当使用非主键或分区键访问时,将导致所有簇节点扫描,影响性能(这是Cluster面对的核心挑战) 适用场景:具有非常高的并发需求对单个请求的响应并不是非常的critical查询简单,过滤条件较为固定,每次请求数据量较少,又不希望自己进行水平Sharding最佳实践尽可能让查询简单,避免数据的跨节点传输;尽可能满足SQL节点的计算性能,大一点的集群SQL节点会明显多余Data节点;在各节点之间尽可能使用万兆网络环境互联,以减少数据在网络层传输过程中的延时1.5 mysql-cluster的优缺点 优点:1) 99.999 %的高可用性2) 快速的自动失效切换3) 灵活的分布式体系结构,没有单点故障4) 高吞吐量和低延迟5) 可扩展性强,支持在线扩容 缺点:1) 存在很多限制,比如:不支持外键,数据行不能超过8K(不包括BLOB和text中的数据)2) 部署、管理、配置很复杂3) 占用磁盘空间大,内存大4) 备份和恢复不方便5) 复杂的sql查询性能一般2 安装 2.1 环境介绍mysqlcluster7.2.4安装配置 准备64位版本 5台服务器4G内存60G硬盘2cpu 10.100.200.36 64位10.100.200.37 64位10.100.200.38 64位10.100.200.39 64位10.100.200.41 64位管理节点(ndb_mgmd)10.100.200.36 64位 数据节点(ndbd) 10.100.200.37 64位 10.100.200.38                           64位SQL节点(mysqld/api) 10.100.200.39 64位                            10.100.200.41 64位 下载安装包:mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gzhttp://mirror.services.wisc.edu/ ... /MySQL-Cluster-7.2/2.1 安装管理节点(10.100.200.36) 2.1.1解压文件shell> tar -xvfmysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz 2.1.2创建安装目录shell> mkdir-p /usr/local/mysql/binshell> mkdir-p /usr/local/mysql/ndbdata 2.1.3添加执行文件路径shell> vi ~/.bash_profilePATH=$PATH HOME/bin:/usr/local/mysql/bin 2.1.4拷贝执行文件shell> cdmysql-cluster-gpl-7.2.4-linux2.6-x86_64shell> cp bin/ndb_mgmd/usr/local/mysql/binshell> cp bin/ndb_mgm/usr/local/mysql/bin 2.1.5创建日志文件存储目录shell> mkdir/var/lib/mysql-cluster 2.1.6创建配置文件目录及修改配置文件shell> mkdir/usr/local/mysql/cluster-confshell> vi /usr/local/mysql/cluster-conf/config.ini                        

啦啦啦啦哈 发表于 2017-7-20 13:28:32

2.2 管理节点配置文件

#TotalSendBufferMemory= 256M
NoOfReplicas=2
DataMemory=2500M
IndexMemory=256M
DataDir=/var/lib/mysql-cluster
#FileSystemPath=/data/dbdata
#Redolog
FragmentLogFileSize=32M
InitFragmentLogFiles=SPARSE
NoOfFragmentLogFiles=8
RedoBuffer=1024M
StringMemory=25
LockPagesInMainMemory=1
MaxNoOfTables=4096
MaxNoOfOrderedIndexes=2048
MaxNoOfUniqueHashIndexes=1024
MaxNoOfAttributes=24576
MaxNoOfTriggers=14336
ODirect=1MaxNoOfConcurrentTransactions=10000
                              MaxNoOfConcurrentOperations=50000
                              MaxNoOfLocalOperations=55000
                              TimeBetweenGlobalCheckpoints=1000
                              TimeBetweenEpochs=100
                              TimeBetweenWatchdogCheckInitial=60000
                              TransactionBufferMemory=10M
                              DiskCheckpointSpeed=10M
                              DiskCheckpointSpeedInRestart=100M
                              TimeBetweenLocalCheckpoints=20
                              SchedulerSpinTimer=400
                              SchedulerExecutionTimer=100
                              RealTimeScheduler=1
                              BackupMaxWriteSize=1M
                              BackupDataBufferSize=16M
                              BackupLogBufferSize=4M
                              BackupMemory=20M
MaxNoOfExecutionThreads=4
                              TransactionDeadLockDetectionTimeOut=10000
                              BatchSizePerLocalScan=512
                              ###Increasing the LongMessageBufferb/c of a bug                                 (20090903)
                              LongMessageBuffer=8M
                              ###Heartbeating
                              HeartbeatIntervalDbDb=15000
                              HeartbeatIntervalDbApi=15000
                              
                              PortNumber:1186
                              DataDir:/var/lib/mysql-cluster1
                              
                              SendBufferMemory:64M
#######################################
                              #Change HOST1 to the name of the NDB_MGMD host
                              #Change HOST8 to the name of the NDBD host
                              #Change HOST9 to the name of the NDBD host
                              #######################################
                              
                              NodeId:1
                              HostName:10.100.200.36
                              ArbitrationRank:1
                              
                              NodeId:4
                              HostName:10.100.200.37
                              
                              NodeId:5
                              HostName:10.100.200.38
######################################################
                              #Note: The following can be MySQLDconnections                                 or #
                              # NDB API application connecting to thecluster                                 #
                              ######################################################
                              
                              NodeId:10
                              HostName:10.100.200.39
                              ArbitrationRank:2
                              
                              NodeId:11
                              HostName:10.100.200.39
                              ArbitrationRank:2
                              
                              NodeId:12
                              HostName:10.100.200.39
                              ArbitrationRank:2
                              
                              NodeId:13
                              HostName: 10.100.200.39
                              ArbitrationRank: 2
                              
                              NodeId:14
                              HostName: 10.100.200.41
                              ArbitrationRank: 2
                              
                              NodeId:15
                              HostName: 10.100.200.41
                              ArbitrationRank: 2
                              
                              NodeId:16
                              HostName: 10.100.200.41
                              ArbitrationRank: 2
                              
                              NodeId:17
                              HostName: 10.100.200.41
                              ArbitrationRank: 2

3 安装数据节点(10.100.200.37 10.100.200.38)解压文件shell>tar -zxvfmysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz创建安装目录shell>mkdir -p /usr/local/mysql/binshell>mkdir -p /usr/local/mysql/ndbdata拷贝执行文件shell>cp mysql-cluster-gpl-7.2.4-linux2.6-x86_64/bin/ndbd/usr/local/mysql/bin添加执行文件路径shell>vim ~/.bash_profilePATH=$PATH HOME/bin:/usr/local/mysql/bin创建配置文件:shell>vim /etc/my.cnf分别在主机添加如下内容:#配置数据节点连接管理节点ndb-connectstring=10.100.200.364 安装SQL节点1(10.100.200.39 10.100.200.41)解压文件shell>tar -zxvfmysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz拷贝安装文件shell>mvmysql-cluster-gpl-7.2.4-linux2.6-x86_64                           /usr/local/mysql添加mysql用户shell>groupaddmysqlshell>useradd-gmysqlmysql添加权限shell>chown -Rmysql:mysql/usr/local/mysql拷贝配置文件shell>cp /usr/local/mysql/support-files/my-large.cnf/etc/my.cnf初始化数据库shell>cd /usr/local/mysqlshell>scripts/mysql_install_db--user=mysql拷贝守护进程所需文件shell>cp /usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld配置守护进程shell>chkconfig--addmysqldshell>chkconfig--level 35mysqld                           on添加执行文件路径shell>vim~/.bash_profilePATH=$PATH HOME/bin:/usr/local/mysql/bin更改配置文件shell>vim /etc/my.cnf分别编辑如下信息:#配置SQL节点与管理节点连接port= 3307socket= /tmp/mysql.sockndbclusterndb-connectstring=10.100.200.365启动以及关闭cluster启动顺序管理节点->数据节点->SQL节点a、启动管理节点#ndb_mgmd-f                           /usr/local/mysql/cluster-conf/config.inib、启动数据节点ndbd–initial #(第一次启动必须添加选项,另外备份/恢复,修改配置文件也需要执行)ndbd #不是第一次启动需要执行的命令c、启动SQL节点/etc/rc.d/init.d/mysqldstart或servicemysqldstart启动后可以用mysql-uroot -p验证mysql服务状态关闭顺序:SQL节点->管理节点a、关闭SQL节点/etc/rc.d/init.d/mysqldstop或servicemysqld                           stopb、关闭数据节点ndbdstopc、关闭管理节点ndb_mgm〉shutdown6验证cluster的状态验证配置的正确性1、在管理节点执行:ndb_mgm-> show
ndb_mgm-> show
# ndb_mgm
--NDB Cluster -- Management Client --
ndb_mgm>show
Connectedto Management Server at: localhost:1186
ClusterConfiguration
---------------------
   2 node(s)
id=4    @10.100.200.37(mysql-5.5.19 ndb-7.2.4, Nodegroup:0, Master)
id=5    @10.100.200.38(mysql-5.5.19 ndb-7.2.4, Nodegroup:0)
1 node(s)
id=1    @10.100.200.36(mysql-5.5.19 ndb-7.2.4)
   2 node(s)
id=10   @10.100.200.39(mysql-5.5.19 ndb-7.2.4)
………
id=14   @10.100.200.41(mysql-5.5.19 ndb-7.2.4)
………
7ndbcluster存储引擎功能测试(与innoDB对比)http://www.uml.org.cn/Test/images/2013112622.jpghttp://www.uml.org.cn/Test/images/2013112623.jpg

啦啦啦啦哈 发表于 2017-7-20 13:29:16

8 MySQLClster备份与恢复备份采用ndb_mgm管理客户端来备份,在管理节点执行ndb_mgm即可进入管理命令行,输入startbackup开始备份所有节点,如果后面还跟着对应数据节点的id就只备份对应的数据节点恢复(参考:http://xxtianxiaxing.iteye.com/blog/563063)使用命令ndb_restore进行恢复,具体过程如下:启动管理节点/usr/bin/ndb_mgmd-f /usr/local/mysql/mysql-cluster/config.ini--reload启动数据节点:/usr/bin/ndbd --initial第一个节点恢复的时候在第一个节点恢复表结构(恢复的时候如果不涉及到表结构的变更,不用使用参数-m)/usr/bin/ndb_restore -c 10.100.200.37-n 11 -b 1 -m                           --backup_path=/data/backup/backup-1/恢复数据,恢复数据的时候可以几个ndb节点一起执行,速度会快一点!/usr/bin/ndb_restore -c 10.100.200.37-n 11 -b 1 -r                            --backup_path=/data/backup/backup-1/其他节点恢复的时候(以后的节点不需要加-m参数)/usr/bin/ndb_restore -c 192.168.100.223 -n 11 -b 1                            -r --backup_path=/data/dbdata1/BACKUP/BACKUP-1/9 MySQLClster在线添加节点1增加或减少数据节点的数量和NoOfReplicas有关,一般来说NoOfReplicas是2,那么增加或减少的数量也应该是成对的,否则要设置另外的NoOfReplicas。首先是在配置文件中添加两个节点的设置,如下:viconfig.ini 添加id=21HostName=10.100.200.37id=22HostName=10.100.200.38用ndb_mgm工具,停掉管理节点,然后重新启动管理节点执行ndb_mgm进入管理命令界面,找到管理节点的id,然后执行管理节点idstop,退出执行/usr/bin/ndb_mgmd-f /usr/local/mysql/mysql-cluster/config.ini                            --reload 重新启动管理节点登陆上去用show命令查看,是否出现了新添加的两个节点!环状重启(一次重启数据节点和sql节点)初始化新添加的两个节点:ndbd--initial (执行初始化之后会自动创建数据文件,undo日志文件等等)通过ndb_mgm创建nodegroupCREATENODEGROUP 21,22s重新分配cluster的数据SELECTTABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES                           WHERE ENGINE ='NDBCLUSTER';ALTERONLINE TABLE table_nameREORGANIZE PARTITION;alteronline table card_packagereorganize partition;然后通过show命令或者使用ndb_desc命令查看ndb_desc-c 10.80.30.39 -dbgcarddbcard_package-p-c后面跟管理节点的ip,-d跟数据库的名字,table_name为表名,-p输出分区的详细信息10 MySQLClster用户权限共享在sql节点41上面执行mysql -uroot-p < /usr/local/mysql/share/ndb_dist_priv.sql在mysql终端调用名字为mysql_cluster_move_privileges的存储过程,这个存储过程的功能是备份权限表,然后将表的存储引擎转换为ndbcluster引擎。mysql>CALLmysql.mysql_cluster_move_privileges();自动备份权限表shell>mysqldumpmysql userdbtables_privcolumns_privprocs_priv>backup_file.sql验证权限表mysql>show create tablemysql.user;看engine是否为ndbcluster。在41上面加测试账号mysql>grant all on *.* to test@'10.100.200.%' identified                           by 'test123';#mysql-h10.100.200.39 -utest-ptest123                           -P3307;OK,能连上,测试成功!11.1 MySQLClster备份与恢复扩展(操作见No8)1、簇备份概念备份指的是在给定时间对数据库的快照。备份包含三个主要部分:(1)Metadata(元数据):所有数据库表的名称和定义。(2)Tablerecords(表记录):执行备份时实际保存在数据库表中的数据。(3)Transactionlog(事务日志):指明如何以及何时将数据保存在数据库中的连续记录。每一部分(这三部分)均会保存在参与备份的所有数据节点上。在备份过程中,每个节点均会将这三个部分保存在磁盘上的三个文件中(意思是说,有几个节点,将会把相同的数据,保存几份.例如,2个数据节点,那么就会分别在2个节点上,保存2次,保存目录默认为DateDir=/usr/local/mysql/BACKUP(4)BACKUP-backup_id.node_id.ctl包含控制信息和元数据的控制文件。每个节点均会将相同的表定义(对于簇中的所有表)保存在自己的该文件中(5)BACKUP-backup_id-0.node_id.data包含表记录的数据文件,它是按片段保存的,也就是说,在备份过程中,不同的节点会保存不同的片段。每个节点保存的文件以指明了记录所属表的标题开始。在记录清单后面有一个包含关于所有记录校验和的脚注。(6)BACKUP-backup_id.node_id.log包含已提交事务的记录的日志文件。在日志中,仅保存已在备份中保存的表上的事务。参与备份的节点将保存不同的记录,这是因为,不同的节点容纳了不同的数据库片段。在上面所列的内容中,backup_id指的是备份ID,node_id是创建文件的节点的唯一ID。使用管理服务器创建备份开始备份前,请确保已为备份操作恰当地配置了簇。2、备份参数(以下参数,都写入在mgmd的config.ini配置文件中)本节讨论的参数定义了与在线备份执行有关的内存缓冲集。(1)BackupDataBufferSize在创建备份的过程中,为了将数据发送到磁盘,将使用两类缓冲。备份数据缓冲用于填充由扫描节点的表而记录的数据。一旦将该缓冲填充到了指定的水平BackupWriteSize(请参见下面的介绍),就会将页发送至磁盘。在将页写入磁盘的同时,备份进程能够继续填充该缓冲,直至其空间消耗完为止。出现该情况时,备份进程将暂停扫描,直至一些磁盘写入操作完成并释放了内存为止,然后扫描继续。该参数的默认值为2MB。(2)BackupLogBufferSize备份日志缓冲扮演的角色类似于备份数据缓冲,不同之处在于,它用于生成备份执行期间进行的所有表写入的日志。相同的原理也适用于备份数据缓冲情形下的页写入,不同之处在于,当备份日志缓冲中没有多余空间时,备份将失败。出于该原因,备份日志缓冲的大小应足以处理执行备份时产生的负载。该参数的默认值对于大多数应用程序均是适当的。事实上,备份失败的原因更可能是因为磁盘写入速度不够,而不是备份日志缓冲变满。如果没有为应用程序产生的写负载配置磁盘子系统,簇很可能无法执行所需的操作。最好按恰当的方式配置簇,使得处理器成为瓶颈而不是磁盘或网络连接。默认值是2MB。(3)BackupMemory该参数是BackupDataBufferSize和BackupLogBufferSize之和。默认值是2MB+                           2MB = 4MB。(4)BackupWriteSize该参数指定了由备份日志缓冲和备份数据缓冲写入磁盘的消息大小。默认值是32KB.(5)BackupDataDir#可更改默认的备份目录,BackupDataDir=/mysqlback#当然前提,mkdir/mysqlback,需要在所有数据节点上运行也能指定存放备份的目录。默认情况下,该目录是FileSystemPath/BACKUP(6)FileSystemPath该参数指定了存放为元数据创建的所有文件、REDO日志、UNDO日志和数据文件的目录。默认目录是由DataDir指定的。注意,启动ndbd进程之前,该目录必须已存在。(7)DataDir该参数指定了存放跟踪文件、日志文件、pid文件以及错误日志的目录。12.1 Join的改进1在现在的mysqlcluster 7.2测试版本中,对join的功能进行了重大改进,可以说是一个里程碑的版本,由于前段时间做测试发现mysqlcluster                           7.1.10对join的性能很不好,另外如果jion的表比较大的时候会导致节点之间的数据传输非常大。我们知道在7.2之前的版本都是将jion在mysqld节点执行,这样就需要从数据节点进行交互传输数据,造成join的性能非常差。现在7.2版本将join放到了数据节点执行,并行处理,较少了数据在sql节点的交互,因此性能大幅提升。

啦啦啦啦哈 发表于 2017-7-20 13:29:30

导入数据测试(省略,参见join.txt)首先将ndb_join_pushdown参数关掉进行测试
mysql>set ndb_join_pushdown=0;
mysql>show variables like '%ndb_join_pushdown%';
+-------------------+-------+
| Variable_name    | Value |
+-------------------+-------+
| ndb_join_pushdown | OFF|
+-------------------+-------+
mysql>SELECT sql_no_cacheCOUNT(*)FROM residents,postcodesWHERE residents.postcode=postcodes.postcodeAND postcodes.town="MAIDENHEAD";
+----------+
|COUNT(*) |
+----------+
|    20000 |
+----------+
1row in set (17.68 sec)mysql>set ndb_join_pushdown=1;
                              mysql>show variables like '%ndb_join_pushdown%';
                              +-------------------+-------+
                              |Variable_name | Value |
                              +-------------------+-------+
                              |ndb_join_pushdown| ON |
                              +-------------------+-------+

                              mysql>SELECT sql_no_cacheCOUNT(*) FROM residents,postcodesWHERE                                 residents.postcode=postcodes.postcodeAND postcodes.town="MAIDENHEAD";
                              +----------+
                              |COUNT(*) |
                              +----------+
                              | 20000 |
                              +----------+
                              1row in set (1.72 sec)

13.1 磁盘存储表
#创建日志文件组,并添加undo日志文件
CREATELOGFILE GROUP lg_2
ADD UNDOFILE 'undo_2.log'
INITIAL_SIZE 536870912         
   UNDO_BUFFER_SIZE 67108864   
ENGINE NDBCLUSTER;
#创建表空间,并添加数据文件
CREATETABLESPACE ts_2
    ADDDATAFILE 'data_2.dat'
    USE LOGFILE GROUP lg_2
    INITIAL_SIZE 536870912   
ENGINE NDBCLUSTER;

CREATETABLE `bgtdisk`(   #创建使用磁盘存储的表:
`Name` varchar(50) NOT NULL,
`ProviderName`varchar(200) NOT NULL,
PRIMARY KEY (`Name`)
) tablespace ts_2 storage disk ENGINE=ndbcluster DEFAULT CHARSET=utf8;
可以去information_schema.FILES和ndbinfo.logspaces里面获取日志文件和数据文件的信息。修改表的存储引擎:altertable test.t1tablespacets_1 storage disk                           ENGINE=ndbclusterDEFAULT CHARSET=utf8;录入数据mysql>insert intobgtdiskselect * from postcodes;Query OK, 100000 rows affected (9.68 sec)Records: 100000 Duplicates: 0 Warnings: 0再去数据节点,查看存储情况,数据文件已经增长,如图所示:http://www.uml.org.cn/Test/images/2013112624.jpg这里面有totalsize 还有freesize 一减就是已经存储占用的大小
mysql>SELECT TABLESPACE_NAME, FILE_NAME, EXTENT_SIZE*TOTAL_EXTENTS/1024/1024 ASTOTAL_MB, EXTENT_SIZE*FREE_EXTENTS/1024/1024 AS FREE_MB, EXTRA FROMinformation_schema.FILESWHERE FILE_TYPE="DATAFILE";
+-----------------+------------+--------------+--------------+----------------+
|TABLESPACE_NAME | FILE_NAME|TOTAL_MB   | FREE_MB      | EXTRA          |
+-----------------+------------+--------------+--------------+----------------+
|ts_1            | data_1.dat |512.00000000 | 301.00000000 | CLUSTER_NODE=4 |
|ts_1            | data_1.dat |512.00000000 | 301.00000000 | CLUSTER_NODE=5 |
|ts_1            | data_1.dat |512.00000000 | 300.00000000 | CLUSTER_NODE=6 |
+-----------------+------------+--------------+--------------+----------------+
3rows in set (0.05 sec)
#UNDO_BUFFER_SIZE不能超过config.ini的配置RedoBuffer=32M大小,否则创建失败,
CREATELOGFILE GROUP lg_1
ADD UNDOFILE 'undo_2.log‘ INITIAL_SIZE634217728 UNDO_BUFFER_SIZE 33554432 ENGINE NDBCLUSTER;

CREATETABLESPACE ts_1 ADD DATAFILE 'data_11.dat' USE LOGFILE GROUP lg_1 INITIAL_SIZE4294967296 EXTENT_SIZE 33554432 ENGINE NDBCLUSTER;
执行结束之后,需要去数据目录/var/lib/mysql-cluster/里面看看undo文件和data文件,如果存在,那么就证明建立成功了。可以建立2个表空间
CREATETABLESPACE ts_2
       ADD DATAFILE 'data_20.dat‘ USE LOGFILEGROUP lg_1 INITIAL_SIZE 10737418240
    EXTENT_SIZE 33554432 ENGINE NDBCLUSTER;

altertable bguserdb.MvpCardtablespacets_1 storage disk ENGINE=ndbclusterDEFAULT CHARSET=utf8;
mysql>insert intobguserdb.MvpCardselect * fromtest.MvpCardlimit 100000,1000000;
Query OK, 1000000 rows affected (1 min 55.28sec)Records: 1000000Duplicates: 0 Warnings: 0
这里面有totalsize 还有freesize 一减就是已经存储占用的大小
mysql>SELECT TABLESPACE_NAME, FILE_NAME, EXTENT_SIZE*TOTAL_EXTENTS/1024/1024 ASTOTAL_MB, EXTENT_SIZE*FREE_EXTENTS/1024/1024 AS FREE_MB, EXTRA FROMinformation_schema.FILESWHERE FILE_TYPE="DATAFILE";
+-----------------+------------+--------------+--------------+----------------+
|TABLESPACE_NAME | FILE_NAME|TOTAL_MB   | FREE_MB      | EXTRA          |
+-----------------+------------+--------------+--------------+----------------+
|ts_1            | data_1.dat |512.00000000 | 301.00000000 | CLUSTER_NODE=4 |
|ts_1            | data_1.dat |512.00000000 | 301.00000000 | CLUSTER_NODE=5 |
|ts_1            | data_1.dat |512.00000000 | 300.00000000 | CLUSTER_NODE=6 |
+-----------------+------------+--------------+--------------+----------------+
3rows in set (0.05 sec)

页: [1]
查看完整版本: 【转帖】MySQL Cluster初步学习资料整理