ORA-01653: 表 LUCAS.Books 无法通过 8192 (在表空间 USERS 中) 扩展

一:首先,我们先做个准备工作,弄清楚我们数据库几个对应关系信息:用户-表空间,表空间和数据文件关系

1. 我们查看我们用户和表空间之间的关系信息:

select   username,default_tablespace   from   dba_users;

2. 查看表空间的详细数据文件和自增长等信息:

SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS FROM DBA_TABLESPACES T,DBA_DATA_FILES D WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME,FILE_NAME;

二:搞清楚我们用户下面表空间对应的文件位置信息后,去对应的文件夹下看文件大小有32G:

发现表空间大小已达到32G,但创建表空间时已设置了无限扩展(初始空间为1G),磁盘空间没满,说明表空间无法进行自动扩展了。

1. 问题原因:

查找资料了解到Oracle单个表空间数据文件的最大值为:

最大数据块 * DB_BLOCK_SIZE

查看Oracle的 DB_BLOCK_SIZE

select value from v$parameter where name ='db_block_size';

value=8192=8K

本机数据库的数据块大小为8K,算出本机Oracle 单个表空间数据文件的最大值为:

4194304 * 8/1024 = 32768M (32G);

分析:所以既使创建表空间时设置了 autoextend on maxsize unlimited,其最大空间也是不会超过32G。

注:
1、表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K、8K、16K、32K、64K等几种大小;
2、ORACLE的物理文件最大只允许4194304(2^22)个数据块;

2. 解决方法:

修改表空间,增加数据文件。设置新增的数据文件大小为1G,自增长10M(可根据情况自行设置)

alter tablespace LUCAS
add datafile 'D:\oracle\ide\oradata\orcl\LUCAS02.DBF'
 size 5000m AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

增加数据文件文件时要注意磁盘空间大小,不能将所有的磁盘空间分配给数据文件,因为日志归档还需要空间,否则会报“ORA-00257: 归档程序错误”。

三:如果需要的话(谨慎使用),还可以重新设置用户对应的表空间以及表空间对应的文件信息:

-- 修改用户对应的表空间基本操作:

-- 1. 先创建表空间(初始5G大小并能够自增长)

create tablespace LUCAS datafile 'D:\oracle\ide\oradata\orcl\LUCAS01.DBF' size 5000M autoextend on;

-- 2. 修改用户的表空间(根据自己需要修改用户名、表空间名称)

alter user LUCAS default tablespace LUCAS;

-- 3. 防止文件不够再给表空间LUCAS添加两个文件(根据需要修改自己的表空间名称,和本地的文件路径以及名称)

alter tablespace LUCAS
add datafile 'D:\oracle\ide\oradata\orcl\LUCAS02.DBF'
 size 5000m
autoextend on next 1000m maxsize 32767m;
alter tablespace LUCAS
add datafile 'D:\oracle\ide\oradata\orcl\LUCAS03.DBF'
 size 5000m
autoextend on next 1000m maxsize 32767m;

-- 4. 其他查询语句:查看表索引信息
 

SELECT * FROM ALL_INDEXES WHERE TABLE_NAME='Books';
select t.*,i.index_type from user_ind_columns t,user_indexes i;
select * from user_sequences;
select index_name,index_type,table_name from user_indexes order by table_name;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值