Sybase数据库的碎片整理

Sybase数据库的碎片整理,第1张

作者: 佘涛 对于像Sybase这样的大型DBMS系统而言 作为OLTP(联机事务处理)应用的基石 它需要能每天 小时 每年 天不间断运行 由于其应用程序每天对数据进行大量的插入 更新 删除等 *** 作 在数据库的物理存储介质上产生了大量存储碎片 从而影响了存储的效率以及数据库应用运行的速度 是否可以像Windows *** 作系统的 碎片整理 程序一样 整理这些碎片 从而优化数据库存储 提高数据库的运行速度呢?答案是肯定的 本文将介绍Sybase数据库的碎片类型以及碎片整理方法 碎片类型 由于Sybase是通过OAM页 分配单元和扩展页来管理数据的 所以对OLTP应用的Database Server会十分频繁地进行数据删除 插入和更新等 *** 作 时间一长就会出现以下几种情况 页碎片 即本来可以存放在一个页上的数据却分散地存储在多个页上 如果这些页存储在不同的扩展单元上 Database Server就要访问多个扩展单元 因此降低了系统性能 扩展单元碎片 在堆表中 当删除数据链中间的记录行时 会出现空页 随着空页的累积 扩展单元的利用率也会下降 从而出现扩展单元碎片 带cluster index的table也有可能出现扩展单元碎片 当有扩展单元碎片存在 会出现以下问题 ● 对表进行处理时 常常出现死锁 ● 利用较大的I/O *** 作或增加I/O缓冲区的大小也无法改变较慢的I/O速度 ● 行 *** 作的争用 扩展单元遍历 带有cluster index的table会由于插入记录而导致页分裂 但当删除记录后 页会获得释放 从而形成跨几个扩展单元和分配单元的数据 而要访问该数据就必须遍历几个扩展单元和分配单元 这将导致访问/查询记录的时间大大延长 开始时数据库的性能虽然较高 但使用一段时间后性能就会下降等问题 实际上 数据在存储空间上排列得越紧密有序 Database Server访问的速度就越快 消除碎片有助于提高系统的性能和更有效地利用数据存储空间 碎片优化方法 处理碎片有多种方法 如重新定义table的填充因子 根据table的定义删除并重新创建索引 重建表等 本文给出的方法是通过BCP实用程序将用户数据库的数据以文本形式导出 然后将用户数据库彻底清空 截断 再将文本数据导入到数据库 从而达到消除碎片的目的 具有通用性 下面以Sun Solaris *** 作系统下的Sybase Adaptive Server Enterprise 为例 说明整理数据库数据的具体方法 备份数据库 为防止在数据库碎片整理过程中出现不可预见的问题 有必要先备份数据库 创建bcp out脚本并导出数据 ● 创建包含下列SQL语句的文件 cre_bcp_out sql select bcp + name + out / + name + _out txt Udboname Pdbopwd Ssys_name c from sysobjects where type = U order by name go ● isql Udboname Pdbopwd Ssystemname < cre_bcp_out sql > b_out ● 编辑输出文件 去掉文件第一行和最后两行无关的字符 vi b_out ● 执行脚本 将数据库的数据导出到文本文件 sh b_out 创建truncate table脚本并截断数据库 ● 创建包含下列SQL语句的文件 cre_trunc_out sql select truncate table + name from sysobjects where type = U order by name go ● isql Udboname Pdbopwd Ssystemname < cre_ trunc_out sql > trunc_out sql ● 编辑输出文件 去掉文件第一行和最后两行无关的字符 并在最后一行加入 go构成完整的SQL语句 vi trunc_out ● 执行以下语句 清空数据库的数据 isql Udboname Pdbopwd < trunc_out sql 4 创建bcp in脚本并导入数据 ● 创建包含下列SQL语句的文件: cre_bcp_in sql select “bcp” + name + “in /” + name + “_outtxt -Udboname -Pdbopwd -Ssys_name -c”from sysobjects where type = ‘U’ order by name go ● isql -Udboname -Pdbopwd -Ssystemname < cre_ bcp_in sql > b_in ● 编辑输出文件,去掉文件第一行和最后两行无关的字符:vi b_in ● 从文本中导入数据:sh b_in 5 更新数据库状态 Sybase不自动维护索引的统计信息,当用truncate table截断数据库时,索引并没有改变,所以必须用update statistics来确保索引的统计信息对应当前表数据的统计。tWWiNgwiT ● 创建包含下列SQL语句的文件: cre_upd_st sql select “update statistics” + name from sysobjects where type = “U” order by name go ● isql -Udboname -Pdbopasswd -Ssystemname < cre_upd_st sql > upd_st sql ● 编辑输出文件,去掉文件第一行和最后两行无关的字符,在最后一行加入 go构成完整的SQL语句: vi upd_st sql ● 更新数据库状态: isql -Udboname -Pdbopasswd -Ssystemname < upd_st sql 至此,基本上完成了数据库用户表的碎片整理工作。 小 结 在整理过程中,有以下两点需要注意: 1 Tempdb的大小 当Sybase执行bcp in脚本时,会占用导入数据2倍的tempdb空间,因此在执行前要仔细估计最大的table的大小,保证有足够的tempdb空间。当空间不够时,要考虑用分割table或删除陈旧数据的方法缩小table的大小,或者考虑增加tempdb的大小。 2 数据库配置选项的设置 当数据库执行bcp in脚本时会产生大量的log,为保证bcp in进程不致因为log溢出而中断,应该设置database的选项“truncate log on cpt”为“true”。 虽然Sybase数据库是自优化的,但只要数据库是动态的,数据库碎片现象就会存在。在OLTP应用的场合,随着数据的不断增大,系统变得越来越缓慢,并且经常出现死锁时,应该检查数据库的碎片,并且采用以上方法进行优化。 实际上,应该定期做数据库的碎片整理,保证数据库的物理存储经常处于最优状态,相对于增加硬件而言,这是一种更好的保持数据库性能的低成本的途径。 lishixinzhi/Article/program/Oracle/201311/17019

数据库,虽然没有oracle、db2名气响,但是国内许多大企业都使用它,尤其金融企业。经本人在winxp sp2/win2000 server上安装测试通过。绝对企业版,注册文件在/crack目录中。第二个文件为sybase for linux 125企业版。本人没有测试。

Adaptive Server Enterprise (ASE) 是 Sybase 的旗舰式 RDBMS 产品,一直致力于以最低的系统总拥有成本 (TCO) 为企业提供一个高性能的数据和事务处理系统。最新版 ASE1251/1252 在继续保持以前版本的关键业务性能和高效计算的同时,在易用性、系统性能和支持新应用程序方面进行了增强和改进, 并进一步提高了系统安全和 Linux 的可扩展性。

Sybase Adaptive Server Enterprise 1251 完善和扩展了 ASE 产品系列,使其成为用于各种平台 (从基于 Linux 的 Intel 系统到来自 Sun 或 HP 的基于 RISC 的 64 处理器平台) 的理想数据库系统。当今的企业需要一个更易于使用、资源效率更高、更可靠,而且可以与企业级应用轻松集成的企业基础架构技术,以有效控制和降低成本。 Sybase ASE 1251 专门设计用于增强这些功能。

最新推出的 ASE1252 继续遵循 ASE1251 提出的降低应用整体 TCO 的技术策略,并进一步发展和完善了实时数据服务,动态数据归档等扩展功能,以期达到帮助用户进一步降低TCO的关键目标。

现在,如果采用 Sybase RTDS 实时数据服务包,Sybase 的 ASE 最新版可以通过JMS消息总线为高性能的实时消息服务提供集成数据库的支持。用户可以将它用于关键业务信息系统中,Sybase ASE 实时消息服务功能可以提供实时报警和通知,并且用户可以直接获得这些改变。

Sybase ASE 确保最高的 *** 作有效性和各种平台上的吞吐量,从 32/64 位 Linux/Intel 到各种大规模的 SMP 系统。

ASE 帮助您的企业:

降低运行成本 - 自我管理功能提高系统运行的可伸缩性 — 这个功能可以在人员和系统资源较少的情况下实现更高的性能。

降低开发成本 - 增强的 Web 服务和 XML 功能可以更快地、更容易地开发、提交和维护新的业务应用。

降低硬件成本 - ASE 支持大规模数据集,能够提高各种平台上的数据量,包括 32 和 64 位的 Linux/Intel 系统。

目前版本 - ASE 1253 Interim Release 具有新的功能,包括跨平台 Dump 和 Load,便于系统迁移。

提示是告诉你rnosdb 设备空间不足了, 你得先扩容,使用disk init命令,然后将库扩在新建的设备上,然后再调整日志数据什么的。

至于后来出现的错误。我没有碰到过,你先试试能不能访问master数据库。

以上就是关于Sybase数据库的碎片整理全部的内容,包括:Sybase数据库的碎片整理、什么是Sybase、Sybase数据库中出现致命错误;先是日志空间满,我使用dump transaction rnosdb with no_log 依然无法截断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/10071320.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存