ClustrixDB监视集群中可用的空间量,并主动警告潜在的容量问题。确定集群容量的阈值是可配置的,如下所述。

存储类型

要了解如何管理设备和数据库的利用率,必须首先了解ClustrixDB如何分配磁盘空间。ClustrixDB在两个不同的文件中创建和分配空间:

device1 (主存储器)

device1 存储 all database data, undo logs, temporary tables, binlogs, ClustrixDB system tables,以及用于查询执行的临时存储,device1文件的初始大小由ClustrixDB安装程序自动检测,但也可以手动配置。安装后,可以使用ALTER CLUSTER RESIZE设备扩展device1文件的大小。要减小device1文件的大小,请参阅减小device1大小。

ClustrixDB希望每个节点上的device1文件大小相同。默认情况下,在数据库启动时,ClustrixDB将自动尝试调整每个节点上的device1文件的大小,以匹配集群中最大的device1文件。要禁用此功能,请设置device_auto_resize_to_largest=false。

临时存储用于对大型查询结果进行排序和分组,并存储在device1中。有两个全局变量来控制临时空间的使用:

  • device_temporary_space_limit_bytes: 限制可用于临时存储的空间量。
  • device_temporary_space_preallocate_bytes:指定为临时空间预先分配的空间数量(保证临时空间的使用)。

设置device_temporary_space_limit_bytes允许使用额外的临时空间,但不保证可以为临时空间提供额外的空间。

在ClustrixDB 9.2之前,临时空间存储在一个名为device1-temp的单独文件中,但是在v9.2中,临时空间现在在device1文件中管理。

device1-redo (write-ahead log)

redo日志(WAL)存储在device1-redo文件中。这个文件的大小是4GB,不可配置。

检查存储利用率

查看通过使用CLX命令行管理工具使用了多少空间

shell> /opt/clustrix/bin/clx space
nid | Hostname | Status | Undo | Perm | WAL | Temp | Used | DB Total | FS Free
----+--------------+---------+-----------------+-----------------+------------------+------------+-----------------+----------+--------
| eukanuba003 | OK | 321.8M (0.04%) | .7G (79.4%) | 1024.0M (0.12%) | (0.00%) | .1G (89.4%) | .0G | .9G
| karma183 | OK | 313.5M (0.04%) | .6G (78.2%) | 1024.0M (0.12%) | (0.00%) | .1G (88.2%) | .0G | .9G
| eukanuba002 | OK | 324.3M (0.04%) | .5G (78.8%) | 1024.0M (0.12%) | (0.00%) | .0G (88.8%) | .0G | .9G
| eukanuba001 | OK | 339.7M (0.04%) | .0G (78.9%) | 1024.0M (0.12%) | (0.00%) | .4G (89.0%) | .0G | .9G
| eukanuba005 | OK | 277.3M (0.03%) | .7G (78.7%) | 1024.0M (0.12%) | (0.00%) | .1G (88.7%) | .0G | .9G
| eukanuba004 | OK | 420.3M (0.05%) | .6G (79.8%) | 1024.0M (0.12%) | (0.00%) | .1G (89.9%) | .0G | .9G
| eukanuba006 | OK | 397.0M (0.05%) | .4G (78.9%) | 1024.0M (0.12%) | (0.00%) | .9G (88.9%) | .0G | .9G
| karma184 | OK | 479.9M (0.06%) | .8G (79.4%) | 1024.0M (0.12%) | (0.00%) | .3G (89.5%) | .0G | .9G
----+--------------+---------+-----------------+-----------------+------------------+------------+-----------------+----------+--------
.8G (0.04%) | .2T (79.0%) | .0G (0.12%) | (0.00%) | .9T (89.1%) | .6T | .9G

全局变量

对于大多数工作负载,这些全局变量的默认值是最优的。

Variable
Description
Default

device_auto_resize_to_largest

自动调整集群中所有(在线)设备的大小以匹配最大的设备

true

device_temporary_space_limit_bytes

允许用于临时容器的最大字节数。

5368709120

device_temporary_space_preallocate_bytes 预先分配给临时存储器的空间量 5368709120

数据库存储阈值

全局变量为集群建立数据库存储阈值。当超过第一级阈值时,将发送警报。如果存储利用率继续增加,一旦超过下一组阈值,用户查询将开始失败。最后,如果存储利用率继续增长,系统查询(包括关键的内部进程)将被终止。一旦数据库完全满了,数据库就可能无法操作。有关释放空间的建议,请参阅下面的问题解决方案。

以下变量用于设置device1利用率的阈值。

Variable
Description
Default Value
Allowed Values

databasefull_message_interval_s

数据库几乎全部消息间隔(以秒为单位)。

120

Minimum: 10

Maximum: 600

databasefull_system_error_percentage

当空间使用超过这个百分比时,用户查询失败。

97

Minimum: databasefull_system_warn_percentage + 1

Maximum: >99

databasefull_system_warn_percentage

当空间使用超过这个百分比时,警告系统查询。

95

Minimum: databasefull_user_error_percentage + 1

Maximum: databasefull_system_error_percentage - 1

databasefull_user_error_percentage

当空间使用超过这个百分比时,用户查询失败。

90

Minimum: databasefull_user_warn_percentage + 1

Maximum: databasefull_system_warn_percentage - 1

databasefull_user_warn_percentage

当空间使用超过这个百分比时,警告用户查询。

80

Minimum: 50

Maximum: databasefull_user_error_percentage - 1

用户查询是由最终用户发起的事务,而系统查询是内部ClustrixDB进程,如Rebalancer、binlog delete、statd等。

报警信息

当超过相应的全局变量时,将触发以下警报。这是在ClustrixDB每次分配空间和每个databasefull_message_interval_s秒发送任何必要的警报时计算的。如果检测到多个警报,则只显示最关键的警报。要了解有关ClustrixDB的Alerter的更多信息,请参见数据库警报。

Global Variable Evaluated
Alert Triggered
Level
Description
Message Shown

databasefull_user_warn_percentage

DATABASE_SPACE_LOW

warning

Database space low

使用了nn%的数据库空间。很快用户查询将失败。

databasefull_user_error_percentage

DATABASE_SPACE_EXTREME

warning

Database space extreme

使用了nn%的数据库空间。用户查询将失败。

databasefull_system_warn_percentage

DATABASE_SPACE_CRITICAL

critical

Database space critical

使用了nn%的数据库空间。用户查询将失败,不久系统查询将失败。

databasefull_system_error_percentage

DATABASE_SPACE_EXHAUSTED

critical

Database space exhausted

使用了nn%的数据库空间。用户查询和系统查询现在将失败。

解决低空间问题

当您收到上述任何警告时,将需要采取一些行动来阻止device1的容量达到下一个阈值。

一些需要考虑的建议:

  • 通过扩展集群的容量向集群添加节点——Flex - Up。
  • 增加集群上的可用空间:
    • 修剪Binlogs
    • 删除数据
  • 通过使用ALTER CLUSTER RESIZE设备在所有节点上放大device1文件的大小。
  • 终止并重新安排长时间运行的事务,如更改、备份和长时间运行的事务。这将停止垃圾收集,并导致撤消日志的大小临时增加。

11. ClustrixDB 管理文件空间和数据库容量的更多相关文章

  1. 管理我的数据之GDBM

    管理我的数据之GDBM 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据General Publi ...

  2. RDIFramework.NET ━ 9.11 数据字典管理 ━ Web部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 9.11  数据字典管理 -Web部分  数据字典模块主要对框架所需数据字典(即选项数据)进行管理,整个数据字典数据为框架所共享, ...

  3. Windows Server 2008R2配置MySQL Cluster并将管理节点和数据节点配置成windows服务

    说明:将mysql的管理节点和数据节点配置成windows服务是为了防止有人手误关闭管理节点或数据节点的dos命令窗口,管理节点或数据节点的命令窗口误关闭可能会造成mysql某台或某几台mysql不能 ...

  4. SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)

    SQL Server 表的管理_关于数据增删查改的操作的详解(案例代码)-DML 1.SQL INSERT INTO 语句(在表中插入) INSERT INTO 语句用于向表中插入新记录. SQL I ...

  5. Docker进阶之七:管理应用程序数据

    管理应用程序数据:Volume Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs. volumes:Docker管理宿主机文件系统的一部分( ...

  6. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  7. 摄像头驱动_摄像头驱动程序必需的11个ioctl及摄像头数据的获取过程

    摄像头驱动_摄像头驱动程序必需的11个ioctl及摄像头数据的获取过程 根据虚拟驱动vivi的使用过程彻底分析摄像头驱动// 1~2都是在v4l2_open里调用1. open2. ioctl(4, ...

  8. Oracle 11g R2(11.2.0.4) RAC 数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件

    Oracle 11g R2(11.2.0.1) RAC  数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件 oracle 11g R2(11.2.0.4) rac--scan ...

  9. 利用AFNetworking框架去管理从聚合数据上面请求到的数据

    数据从JSON文档中读取处理的过程称为“解码”过程,即解析和读取过程,来看一下如果利用AFNetworking框架去管理从聚合数据上面请求到的数据. 一.下载并导入AFNetworking框架 这部分 ...

随机推荐

  1. lua基础学习(二)

    一,Lua变量   1.lua变量的三种类型:全局变量,局部变量,表中的域 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量. 局部变量的作用域为从声明位置 ...

  2. 封装jquery插件

    最近要到使用别的jquery插件,但部分功能并不能满足,为满足功能,只能对插件进行修改来满足,要修改插件,先要了解插件如何封装, 明白了如何封装插件,才能更好修改插件:如何封装插件? 1.插件封装类型 ...

  3. reactstrap,scrollbar组件

    react-script 编译,部署,sass,less,test,helmet等 https://github.com/facebookincubator/create-react-app/blob ...

  4. python 并发编程 多线程 GIL全局解释器锁基本概念

    首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念. 就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码. ...

  5. java 内容仓储

    什么是JAVA内容仓库(Java Content Repository)(2) 转载 自:http://blog.csdn.net/vltic/article/details/7249395 内容仓库 ...

  6. python生成饼图解决中文乱码

    解决乱码问题 乱码的原因 字体的不匹配 解决的方法 加上引用中文字体就好了 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] 代码 def sta ...

  7. luogu 黑题 P3724大佬

    #include<bits/stdc++.h> using namespace std; #define ll long long #define RG register #define ...

  8. 【优质blog、网址】置顶

    一.大公司等技术blog:   blog1: http://blog.csdn.net/mfcing/article/details/51577173 blog2: http://blog.csdn. ...

  9. java 正则表达式 复习

    正则表达式在日常开发中会经常的接触到,学会了正则可以更有效的对字符进行验证.拆分.替换.判断字符串是否合法等操作... 常用语法: 字符的取值范围 1.[abc] : 表示可能是a,可能是b,也可能是 ...

  10. flume复习(一)

    关于flume官方文档介绍可以去:http://flume.apache.org/看看.接下来就介绍一下关于我个人对flume的理解 一.flume介绍: 1.flume是一个分布式.可靠.和高可用的 ...