`

oracle 表空间满

 
阅读更多
今天Oracle的表空间突然满了,建表的时候是自动扩展,但还是出现问题,查资料所知
表空间数据文件容量与DB_BLOCK_SIZE的设置有关,而这个参数在创建数据库实例的时候就已经指定。DB_BLOCK_SIZE参数可以设置为4K、8K、16K、32K、64K等几种,Oracle的物理文件最大只允许4194304个数据块(这个参数具体由操作系统决定,一般应该是此数字),表空间数据文件的最大值对应关系就可以通过4194304×DB_BLOCK_SIZE/1024M计算得出。

4k最大表空间为:16384M

8K最大表空间为:32768M

16k最大表空间为:65536M

32K最大表空间为:131072M

64k最大表空间为:262144M

而Oracle默认分配的为8K,也就是对应于32768M左右的空间大小,如果想继续增大表空间的话,只需要通过alter tablespace name add datafile ‘path/file_name’ size 1024M;添加数据文件的方式就可以了


尝试解决方法
alter tablespace USERS add datafile 'user02.dbf' size 100g;
但是报错
ORA-01144: 文件大小 (13107200 块) 超出 4194303 块的最大数
可以如下解决
alter tablespace USERS add datafile 'user02.dbf' size 30g; 


select f.tablespace_name,a.total,u.used,f.free,round((u.used/a.total)*100) "% used",  round((f.free/a.total)*100) "% Free"  from (select tablespace_name, sum(bytes/(1024*1024)) total  from dba_data_files group by tablespace_name) a,  (select tablespace_name, round(sum(bytes/(1024*1024))) used from dba_extents group by tablespace_name) u,  (select tablespace_name, round(sum(bytes/(1024*1024))) free from dba_free_space group by tablespace_name) f WHERE a.tablespace_name = f.tablespace_name and a.tablespace_name = u.tablespace_name; 


SQL>  show parameters db_block_size;

NAME      TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size      integer 8192

可以修改db_block_size

但是一旦create database,db_block_size就是不可更改的,db_block_size是建库时确定的,而不是Oracle安装时确定的.如想修改其值必须重建数据库,否则只修改init<SID>.ora是不超作用的。因为oracle是以块为单位存储数据的,任何一个存储元素最少占用一个块,如果你改变了db_block_size,必然导致部分块不能正常使用。
其实在unix类操作系统中,文件块和oracle块的关系非常紧密(建议相等),这样才能保证数据库的执行效率。在windows下可能就不这么讲究了。建议使用8k以上的块,

分享到:
评论

相关推荐

    Oracle临时表空间满的解决步骤

    解决 Oracle 临时表空间满的问题需要通过查看当前数据库的默认临时表空间、查看当前临时表空间的大小、创建新的临时表空间、将新建的临时表空间设置为数据库的默认临时表空间、删除原来的临时表空间、创建新的临时表...

    oracle查看表空间表信息

    ### Oracle 查看表空间表信息 在Oracle数据库管理中,了解如何查看表空间表信息是一项重要的技能。这有助于DBA(数据库管理员)或开发人员更好地理解数据库结构、优化查询性能以及进行必要的维护工作。 #### 标题...

    ORACLE SYSTEM表空间已满解决方案.docx

    ### ORACLE SYSTEM表空间已满解决方案 #### 一、SYSTEM表空间的作用 SYSTEM表空间是Oracle数据库中的一个关键组成部分,在数据库创建时会自动创建。它包含了许多重要的数据库元数据和控制信息,对于数据库的正常...

    Oracle表空间不足的两种解决办法

    在Oracle数据库系统中,表空间(Tablespaces)是用来存储数据库对象如表、索引、视图等的主要存储区域。当表空间的存储空间不足时,会导致数据库无法继续写入新的数据,进而影响到数据库的正常运行。本文将详细介绍...

    如何解决Oracle8i数据库临时表空间满的问题.pdf

    从标题和描述中,我们可以了解到该文档主要讲述了Oracle8i数据库临时表空间满时的解决方案。Oracle8i是甲骨文公司推出的一个关系型数据库管理系统,它是Oracle数据库的一个版本,在业界有着广泛的应用。临时表空间...

    oracle表空间查询命令

    当表空间接近满时,需要采取措施扩展其容量。可以通过以下几种方式实现: 1. **添加新的数据文件**: ```sql ALTER TABLESPACE game ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M; ``` 此命令向`...

    oracle temp表空间不足解决方法

    这样,当表空间满时,数据文件会自动增大,但要注意设置合理的增长限制,避免无节制地占用磁盘空间。 6. **定期清理临时段**: - 清理会话:结束不再需要的会话,以释放它们占用的临时空间。 - 设置全局临时表:...

    oracle表空间容量查询

    2. **扩展数据文件**:当某个表空间接近满时,可以通过增加数据文件的大小或者添加新的数据文件来扩展表空间。 3. **自动扩展设置**:对于自动扩展的数据文件,可以通过设置最大值来避免无限制增长。 4. **优化数据...

    ORACLE修改表空间方法

    1. **增加表空间大小**:如果你发现某个表空间已满,可以通过增加新的数据文件或扩大现有数据文件的大小来扩展表空间。例如,使用`ALTER TABLESPACE`语句添加新数据文件: ```sql ALTER TABLESPACE 表空间名 ADD ...

    Oracle表空间命令

    重置Oracle表空间大小主要是为了调整表空间的数据文件容量,这在表空间接近满时尤为重要。可以通过以下SQL命令来实现: ```sql ALTER DATABASE DATAFILE '/oracle/app/oradata/ora11g/cabmasterdata.dbf' RESIZE ...

    Oracle表空间拓展方法

    这条命令将返回每个表空间的总大小、已使用空间、剩余空间以及使用率百分比,有助于评估哪些表空间接近满状态,需要优先考虑扩展。 #### 五、示例:为表空间G_PSR添加其他文件并设置自动扩展 假设需要为表空间`G_...

    调整oracle内存及调整表空间大小方法

    假设出现了“表空间满”的错误提示,可以通过增加新的数据文件或者扩大现有数据文件的大小来解决。例如,下面的命令将会向名为`SYSTEM`的表空间添加一个新的数据文件,并设置其初始大小为20GB: ```sql SQL&gt; ALTER ...

    oracle创建数据库表空间.doc

    在创建和删除表空间、用户时,可能会遇到一些错误,例如权限不足、文件系统满等。解决方法是检查权限、释放文件系统空间等。 创建和删除 Oracle 表空间及用户需要了解 Oracle 的基本知识和语法,在实际操作中需要...

    Oracle表空间查看sql使用情况

    DBA在日常工作中,最重要的一点就是查看表空间的使用情况,去了解是否有表空间满了的情况出现。 具体方法和步骤如下所示: 第一步:打开PLSQL 第二步:新建一个SQL窗口 第三步:输入代码: select a.tablespace_...

    oracle查询表空间使用情况.txt

    分析表空间使用情况,oracle查询表空间使用情况,方便确认数据是否还能插入,检查数据文件是否已满。

    Oracle数据库空间满了进行空间扩展的方法

    本文将详细介绍如何处理Oracle数据库空间满的问题,并提供一系列扩展空间的方法。 首先,我们需要识别哪个用户的表空间已满。可以通过SQL查询`dba_users`视图来获取这些信息,如下所示: ```sql SELECT username, ...

    ORACLE 空闲空间管理 PDF

    当段所分配的初始空间被填满后,数据库会自动分配一个新的扩展区。新扩展区的大小取决于NEXT和PCTINCREASE这两个存储参数。随着段占用的空间不断增长,当分配的扩展区数量达到由MAXEXTENTS参数设定的最大值时,...

    Oracle表空间的增删改

    表空间分类 1.永久性表空间,如system,users。...通过上面的sql语句就创建了一个名为test的表空间,在d:\Oracledb路径下会找到一个test.dbf数据文件,他的大小是30m。 修改表空间 1.调整表空间大小 方法一:更改

Global site tag (gtag.js) - Google Analytics