【问题标题】:Can oracle tablespaces automatically add smallfile datafiles?oracle表空间可以自动添加smallfile数据文件吗?
【发布时间】:2011-03-02 11:57:58
【问题描述】:

使用 Oracle 管理的文件,我可以像这样创建我的表空间:

CREATE TABLESPACE users;

它会自动扩展,但据我了解,小文件数据文件具有最大大小。所以我需要这样做:

ALTER TABLESPACE users ADD DATAFILE;
ALTER TABLESPACE users ADD DATAFILE;
ALTER TABLESPACE users ADD DATAFILE;

只是想知道是否有办法让 oracle 在尝试自动扩展超过其最大可能大小时自动添加另一个数据文件?

【问题讨论】:

标签: oracle tablespace


【解决方案1】:

Oracle 没有真正的限制

更改数据库数据文件 自动扩展 K|M|G|T|P|E 最大尺寸无限 | K|M|G|T|P|E>;

操作系统或操作系统操作员可以停止你和数据库。 比您可以编写将在使用百分比后自动将新文件添加到表空间的作业。像这样的东西(伪代码)。

SELECT tablespace_name,maxbytes,bytes INTO v_tbs_info FROM dba_data_files;

FOR tbs_inf IN v_tbs_info LOOP
  IF tbs_inf.bytes/tbs_inf.maxbytes > 0.99
  excecute immediate 'ALTER TABLESPACE '|| tbs_inf.tablespcae_name ||' ADD DATAFILE SIZE 1M aUTOEXTEND ON NEXT 10M MAXSIZE 10G';
END LOOP;

当然,您不应该编写这份工作并使用它。您应该提供数据占用的空间量,并为表空间分配适当数量的文件。

【讨论】:

    【解决方案2】:

    oracle 没有内置的自动添加数据文件的方法。

    注意:oracle 中的“无限”运算符实际上并不是无限的。它仅意味着不受 oracle 对数据文件大小的硬上限的限制,这取决于您的 db_block_size 参数。默认数据库将具有 8k 块大小并使用小文件表空间,这意味着数据文件不会超过 32GB。

    一旦数据文件达到硬限制,即使您设置了AUTOEXTEND MAXSIZE UNLIMITED,您仍然需要手动添加新的数据文件。

    有关更多信息,请参阅本文中的表格:

    https://community.oracle.com/message/1900237#1900237

    【讨论】:

      【解决方案3】:

      当然可以,但我们为什么要这样做? 通常有限制的原因。对于数据文件的最大大小,我们可以创建一个大文件表空间,稍微扩大文件大小限制。这对备份/恢复有影响,但从 11gR2 开始,我们可以并行备份这些文件,其中大文件被分割成块并分布在各种渠道上。

      还有一个问题,最大的可能尺寸是多少?是文件系统、ASM、数据库支持的大小,还是 dba 设置的 maxsize?

      罗纳德。

      【讨论】:

        猜你喜欢
        • 2016-07-24
        • 2023-03-26
        • 2015-11-13
        • 2019-03-07
        • 1970-01-01
        • 1970-01-01
        • 2011-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多