如何重新设数据文件的大小.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何重新设数据文件的大小

如何重新设置数据文件的大小 该文档包含了运用ALTER DATABASE DATAFILE RESIZE命令来重新设置数据文件大小的方法 范围及应用 Instructional 如何重设数据文件的大小: 数据文件的管理拥有两面性:没有足够的空间分配给现有的数据文件,又或者是在现有的数据文件中没有充足的空间。典型的解决方案是删掉并用足够大小的数据文件重建表空间,或者向表空间中添加更多的数据文件。oracle提供了一个比较简单的方法来重设数据库中数据文件的大小。 从RDBMS 7.2,开始,你可以使用新的命令对数据文件进行操作,该命令就是:RESIZE。此命令允许你改变数据文件的物理大小。 1. 增加数据文件的大小 2. 降低数据文件的大小 3. 注意和警告 尝试在7.2版本之前使用resize命令将收到以下错误 ORA-00923:?FROM?keyword?not?found?where?expected(没有发现关键字——RESIZE) 1. 增加数据文件大小 为了增加数据文件的大小,你可以使用一下命令: ALTER DATABASE DATAFILE RESIZE [K|M|G];在这里定义的文件大小要比现有的数据文件大。通过V$DATAFILE来查看刚刚的设置。BYTES列显示的即为刚刚设置的数据文件的大小,CREATE_BYTES列指的是文件被创建时所指定的大小。数据文件的大小在操作系统级别上也是被修改了 举个例子: SELECT?FILE#,?STATUS,?ENABLED,?CHECKPOINT_CHANGE#,?BYTES,?CREATE_BYTES,?NAME?FROM?V$DATAFILE; FILE#?STATUS?ENABLED?CHECKPOINT?BYTES?CREATE_BYT?NAME ------?-------?----------?----------?----------?----------?---------------- 5?ONLINE?READ?WRITE?7450?2097152?102400?/databases/oracle/test.dbf 该文件创建时的大小为100K (CREATE_BYTES) ,通过RESIZE命令被增加到2M (BYTES) . 2. 减小数据文件的大小 你可以使用相同的命令来减小数据文件的大小,只是重新定义了比现有的数据文件更小的一个值。例如,我们可以用命令将上述文件减小回1M的大小 ALTER?DATABASE?DATAFILE?/databases/oracle/test.dbf?RESIZE?1M; 缩减数据文件比增加了数据文件大小更复杂,因为你不能对数据库对象当下正在使用的数据文件进行空间释放。为了从数据文件中删除的空间,在数据文件的尾部必须要有连续空间通过查看 DBA_FREE_SPACE 视图来判断在数据文件中有多少的空间没有被使用。 例如: SELECT?*?FROM?DBA_FREE_SPACE WHERE?TABLESPACE_NAME=TEMP ORDER?BY?BLOCK_ID; TABLESPACE_NAME?FILE_ID?BLOCK_ID?BYTES?BLOCKS ------------------?----------?----------?----------?---------- TEMP?4?2?102400?50 TEMP?4?55?96256?47 TEMP?4?102?1890304?923 在数据文件的的高端存在两个大的extents(BLOCK_ID=55? contains 47 blocks, and BLOCK_ID=102 contains 923 blocks),这也就意味着在数据文件的末端存在1986560 bytes接近2M的空间未被使用。我们取决于该数据文件的对象是如何分配新的分区来为数据文件的增长留出一些空间,我们可以从数据文件中删除1.89 MB的磁盘空间而不损害任何表空间中的对象 如果在数据文件的中间有大的空闲分区,并且某些对象在数据文件的尾部占用了空间,你可以通过下面的FINDEXT.SQL查询来找出这些对象。如果将此对象导出,再删掉对象,就可以使连续的空闲空间上升到数据文件的尾部,这样就可以将此数据文件重新设置为更小的值。但是一定要保留足够的空间来确保可以把之前导出的对象再导回到表空间中。 3.注意和警告 为安全起见,每当改变其数据库结构包括改变数据文件的大小的时候我们都应该先备份数据库 如果尝试将数据文件重设的大小小于用来在数据文件中保存数据库对象所需的空间大小时,将会返回以下的错误: ORA-03297:?file?contains?blocks?of?

文档评论(0)

exianwhan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档