加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ORA-01654:unable to extend index表空间不够报错

(2012-12-27 15:05:49)
标签:

杂谈

分类: ORA-错误集锦

ORA-01654:unable to extend index表空间不够报错 数据库报如下错误:
ORA-01654: unable to extend index **** by 128 in tablespace USERS

解决:
1、通过查看表空间USERS对应的数据文件users01.dbf 文件大小已经32G,查看到表空间使用率已经百分之百。
这个句话查看表空间虽然是自动扩展,但是依然报错,这时就想到了再创建一个数据文件。
select file_name,tablespace_name,autoextensible from dba_data_files

SQL> ALTER DATABASE DATAFILE '/opt/ora9/users01.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE 50000M;
ALTER DATABASE DATAFILE '/opt/ora9//users01.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE 50000M
*
ERROR at line 1:
ORA-03206: maximum file size of (6400000) blocks in AUTOEXTEND clause is out of
range

通过执行上面报错提示,知道了,应该是数据文件大小受了限制 ,经查发现,如果db_blok_size=8K 那么数据文件最大为32,如果db_blok_size=32 数据文件最大为128G.  既然知道了是这个原因,那么就重新添加一个新的数据文件:

alter tablespace USERS add datafile '/opt/ora9/users02.dbf' size 50M autoextend on next 50M maxsize UNLIMITED;
这时数据库就恢复正常了。

------------------------------------------
----查询表空间使用情况---
使用DBA权限登陆
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有