教你如何在硬盘间分布数据文件(一)

原创|其它|编辑:郝浩|2009-05-04 16:44:21.000|阅读 471 次

概述:随着数据库应用范围的扩大与硬盘价格的直线下降,现在在一台数据库服务器上放置多个硬盘对于企业来说已经不是很奢侈的事情。不过这对数据库管理员来说又提出了一个新的挑战。因为数据库管理员出于性能与安全的考虑,需要学会在硬盘之间分布关键数据文件。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  随着数据库应用范围的扩大与硬盘价格的直线下降,现在在一台数据库服务器上放置多个硬盘对于企业来说已经不是很奢侈的事情。不过这对数据库管理员来说又提出了一个新的挑战。因为数据库管理员出于性能与安全的考虑,需要学会在硬盘之间分布关键数据文件。如需要把数据库系统的重做日志、归档日志与用来恢复的数据文件分开存放等等。笔者现在在维护一台数据库服务器,硬盘数量就达到4块。笔者就以这台数据库为例,跟各位分享一下如何在硬盘之间分布关键数据文件。

  一、重做日志、归档日志与用来恢复的备份文件分开存放。

  在Oracle数据库中有几个比较重要的文件,包括重做日志文件、归档日志文件、数据文件与用来恢复数据的备份文件等等。如果当数据库发生故障需要恢复数据的话,则需要用到备份文件与重做日志文件,有时候还需要用到归档日志文件。为此需要把这些文件跟数据库系统的数据文件分开来存放,如可以把它们存放在不同的硬盘上。如此的话,当存放数据文件的硬盘发生物理损坏时,也可以马上通过备份文件与重做日志文件进行恢复。

  另外需要注意的是,用来存放备份文件的硬盘如果出现损坏的话,由于基本上不会影响数据库的正常运行,所以比较难以发现。但是此时数据库的备份就可能会发生错误,这对于后续数据库恢复具有致命的影响。为此数据库管理员还需要采取一定的策略,当备份作业失败时能够让数据库自动告知管理员。这可以最大限度的避免存储备份文件的硬盘损坏对后续数据还原造成的致命打击。

  二、分开存储数据表文件与索引文件。

  为了提升数据库性能,在硬件条件允许的情况下最好能够把存储文件与索引文件分开来存放,特别是某张数据表如果比较大,而用户访问的频率又比较高的话,则最好把这这张表与其对应的索引文件存放在不同的硬盘上,这对于提高数据库的性能有非常显著的效果。因为把数据和索引文件分别放置在不同的硬盘上,如此当表和索引被同时访问时(在Where条件中引用了索引列),数据库系统就不会访问同一个硬盘,而会同时访问两个硬盘。这就可以避免硬盘之间的争用。所以把经常需要访问的数据表与索引文件分开来存放,会给我们带来不少的惊喜。

  另外,也可以把数据库系统中的一些关键数据文件分开来存放,可以有效避免硬盘争用给数据库性能带来的一个负面影响,可以解决硬盘瓶颈问题。一般来说表的连接方式会影响到数据库的性能,会增加硬盘争用的几率。但是若能够把经常需要的表与索引分开放置的话,即使表与表之间的连接方式不怎么合理,那么其负面影响也会大大的降低。因为此时不怎么会导致硬盘争用的现象。

  三、增加硬盘以避免硬盘争用。

  有时候在刚开始部署数据库系统的时候,可能没有想到利用多块硬盘来避免硬盘争用的现象。在数据库系统已经部署完毕的情况下,若需要增加硬盘的话,那该如何处理呢?是否需要重新部署数据库系统,还是只要简单的把需要分开存放的文件复制过去就可以了?

  笔者认为,通常情况下如果数据库系统还是出于测试阶段,那么最好通过重新安装数据库系统,并在安装的过程中制定数据文件的存放位置来实现在不同的硬盘上存储关键数据文件。但是如果数据库现在已经在用了,那么通过这种方式的话就不怎么合理了。但是也不能够简单的把数据文件复制到其他硬盘上。在数据文件的迁移上,没有这么简单的事情。要在最短的时间内实现关键数据文件的迁移,最好能够按照以下的几个步骤来操作。

  第一步首先于数据文件有关的表空间处于脱机状态。记得笔者以前在表空间的管理上,谈到过最好能够把不同用途的表放置在不同的表空间上。因为Oracle数据库中可以针对某个表空间进行只读、脱机等操作,而不影响其他表空间上的数据文件的应用。从而使得数据库的维护作业对于用户的正常数据访问的影响降低到最低。数据库管理员要在数据库正常联机的情况下迁移数据文件的话,就需要把设置跟需要迁移的数据文件有关的表空间脱机。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:IT专家网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP