本文主要针对SYBASE IQ 产品在使用过程中,对于文件系统的使用及维护注意事项进行说明,力图防微杜渐。
1. SYBASE IQ对文件系统的使用
SYBASE IQ在运行过程中,对于文件系统的使用主要集中在如下几个方面:
- CATALOG STORE 所使用的文件系统空间。
- IQ数据库的消息日志文件所使用的文件系统空间
- SYBASE IQ 对于临时文件系统(/tmp)的使用
- IQ服务器日志文件所使用的文件系统空间
- SYBASE IQ 安装文件所使用的file system空间
下面将对IQ使用文件系统的5个方面加以说明,其中前3个需要特别加以关注。
1.1 CATALOG STORE 使用的文件系统空间
IQ CATALOG STORE 用于存储IQ系统元数据信息, 是ASA实现关系数据库存储的空间,具体来说就是Sybase IQ把基本表的元数据信息存储在目录存储空间(catalog store)中。其主要包括servername.log 和 servername.db 两个文件。其中servername.log 用于记录ASA 的事务日志。
当catalog store 所在的文件系统空间不足,会造成IQ 系统存储元信息失败,从而引起IQ 运行异常甚至导致IQ系统损坏。因此有必要保证catalog store 所使用的file system 有足够的free 空间来供IQ 使用,这一点非常重要。
若在IQ 使用的过程中,遭遇到 CATALOG STORE 所使用的file system被填满的情况,应先尝试删除file system中的部分的文件,释放一部分空间,然后使用stop_asiq 的命令shutdown IQ server ;若不能够将IQ server shutdown,可以使用kill pid 的命令,从OS level 终止 IQ 的运行 ;当上述方法都没有作用的时候,最后再考虑使用 kill -9 pid 的方法来强行终止 IQ 进程。
1.2 IQ消息日志文件所使用的文件系统空间
每个数据库都有 IQ 消息日志文件, 此文件的缺省名称为 dbname.iqmsg。IQ 消息日志文件在创建数据库时创建,其缺省位置和目录存储位于同一目录,不过数据库创建者可以指定别的位置。Sybase IQ 在消息日志文件中记录以下类型的消息:错误消息、 状态消息、插入通知消息、 查询计划等等,IQ使用过程中这些信息会被不断记录到 dbname.iqmsg 文件中,从而占用大量的文件系统空间。
缺省情况下,消息日志文件的大小会不断增加且没有大小限制,而且在删除相应数据库之前会一直存在。要控制消息日志文件的大小,可以对文件大小设置限制。 SYBASE IQ 提供了限制 iqmsg 文件大小的数据库选项“IQMSG_Length_MB” 用于设置iqmsg 可以使用的尺寸,当文件大小达到设置值后,启用消息日志回卷,从而保证iqmsg 不会超出设置的尺寸。在SYBASE IQ 12.x 版本中可以使用如下命令设置iqmsg 文件的大小限制:
set option public.IQMSG_Length_MB=xxxx
(xxxx 为限制iqmsg 文件大小的尺寸)
1.3 SYBASE IQ 对于临时文件系统(/tmp)的使用
SYBASE IQ 需要使用临时文件存储 IQ 运行时的信息,主要作为一个memory cache overflow区域存储ASA引擎控制的系统数据结构。临时文件所在的目录为/tmp 或者环境变量TEMP 所设置的路径,或者 ASTEMP 环境变量所指定的路径。在unix平台,文件的命名规则为tmp_00000000. , Windows平台,文件的命名规则为 asat000.tmp 。 当IQ 正常shutdown后,这个文件将被删除,如果IQ 异常shutdown,当IQ 启动的时候,将产生一个新的序号的文件。
为了控制临时文件所使用的/tmp空间,以免引起临时文件系统被填满,IQ 提供了“TEMP_SPACE_LIMIT_CHECK”数据库选项。若设置了该选项为ON ,则当连接请求的临时文件空间量达到所有空间的80% 时,请求将失败并返回“Temporary space limit exceeded”错误,这样可以避免由于临时空间用尽而引起的IQ 异常。具体的设置方法如下:
SET OPTION PUBLIC.TEMP_SPACE_LIMIT_CHECK = ‘ON
需要注意的是: 此选项与 IQ 临时存储空间(IQ temp store )无关
1.4 IQ服务器日志文件所使用的文件系统空间
IQ服务器消息会记录到服务器日志中,缺省情况下如果定义了$ASLOGDIR,则服务器日志位于 $ASLOGDIR/servername.nnn.srvlog中,其中 nnn 为服务器已启动的次数。该类文件占用空间相对较小。
此外,IQ有一个额外的日志文件会捕获操作系统输出,包括stdout 和 stderr 输出,此文件的名称格式如下:your_server_name.###.stderr。该类文件占用空间相对较小。
在 UNIX 系统中,包含堆栈跟踪信息的文件的名称格式如下:stktrc-YYYYMMDD-HHNNSS_#.iq 。该类文件占用空间相对较小。
1.5 SYBASE IQ 安装文件所使用的file system空间
一般来说,在IQ软件安装完之后,其占用的文件系统空间相对固定。
2. 对SYBASE IQ 所使用文件系统维护建议
(1) 根据系统情况需要,设置合适的iqmsg 文件的大小,保证iqmsg文件不会无限制的扩大,从而避免文件系统使用空间耗尽。具体设置方法如下:
set option public.IQMSG_Length_MB=xxxx
(xxxx 为限制iqmsg 文件大小的尺寸)
如果启用了 IQMSG_Length_MB,当达到文件大小限制时,IQ 会自动回卷使用iqmsg 的文件空间,较早的消息日志信息将会被覆盖。因此建议定期备份iqmsg 文件到另外的文件系统,当IQ 系统遇到问题的时候,就可以提供更多了历史日志信息来帮助解决问题。
(2) 保证CATALOG STORE所在的文件系统有充足的空间,同时应该不允许除IQ以外的其他的应用程序使用该文件系统。由于在缺省情况下,iqmsg 和 CATALOG STORE 位于同一个文件系统,而且都会使用大量的空间存储文件,可以考虑将iqmsg 和 CATALOG STORE 放在不同的file system上。
(3) 定期监控CATALOG STORE 所在文件系统空间空间使用情况,如发现剩余空间较小时,及时扩充文件系统空间。
(4) 为了控制临时文件所使用的/tmp空间,以免引起临时文件系统被填满,IQ 提供了“TEMP_SPACE_LIMIT_CHECK”数据库选项。设置方法如下:
SET OPTION PUBLIC.TEMP_SPACE_LIMIT_CHECK = ‘ON’
(5) 可以根据实际情况,使用dbbackup命令维护servername.log,减小其尺寸 。下面是dbbackup命令的使用说明:
备份实用程序 (dbbackup)
备份实用程序可用于在其它应用程序或用户还在使用数据库的同时备份事务日志。备份文件名都与数据库文件名相同。如果具有足够的磁盘空间(要保证原始CATALOG STORE 所在的文件系统下的free 空间大于 servername.log 文件的大小),可使用 -r 将现有的日志文件使用新名称另存,然后启动新的空日志。如果磁盘空间有限,可改用 -xo 截断现有的日志。
/*注意 对于备份整个 Sybase IQ 数据库,通常使用 BACKUP 语句,而非dbbackup。BACKUP 可备份所有数据库文件,是备份CATALOG STORE 的唯一方式。*/
语法:dbbackup [options] target-directory
下面是 dbbackup 实用程序的可用选项:
@data 从指定的环境变量或配置文件中读取选项
-c “keyword=value; … ” 提供数据库连接参数
-l (lowercase L) file 将事务日志活动备份到文件
-q 安静模式 – 不显示消息
-r 将旧的事务日志复制到新名称的文件下,然后启动新的空日志
-xo filename 截断(删除并重新启动)事务日志
例子1:
将CATALOG 备份到/backup 文件系统下,然后在原目录下启用新的日志(servername.log 文件),使用该方法进行备份,除了/backup 文件系统下应该有足够的空间,还要保证原始CATALOG STORE 所在的文件系统下的free 空间大于 servername.log 文件的大小。
dbbackup –r -c “uid=DBA;pwd=SQL;eng=myiq” /backup/
例子2:
不进行备份,直接截断事务日志 (servername.log 文件)
dbbackup -xo -c “uid=DBA;pwd=SQL;eng=myiq”
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。