oracle数据库,system表空间到98%了,准备增加数据文件,报错ORA-01276:无法添加文件
SQL>alter tablespace SYSTEM add datafile'+data/XXXX/datafile/system.306.10004561647'size 10240M;
这样 增加数据文件 正确么? 
现在报错ORA-01276,
通过SQL查询 system路径有两个:“+DATA/xxxx/datafile/system.256.978836893”和“+data/XXXX/datafile/system.306.10004561647”这是不是已经以前增加过数据文件?但是我这次为什么会报错呢?
求助大神们 如何解决。

解决方案 »

  1.   

    因为SYSTEM表空间在ORACLE中的空间ID为1和38,所以试着使用以下语句修改成功:alter database datafile 38 resize 15G;虽然不知道是什么原因
      

  2.   

    你的这个表空间是通过OMF管理的,加数据文件的时候,不需要添加具体的路径和文件名,直接添加并指定大小即可:
    alter tablespace system add datafile size xxx;
    你第二次使用resize操作扩大了38号文件的大小,虽然也达到了扩表空间的目的,但是和添加数据文件不是一回事情。
    另外:你之前查询到表空间占用率98%,但是有两个数据文件,我建议你查一下现在表空间使用的空间有多大,通常system表空间不会太大,如果空间占用较大,比如大于4G,或者增长迅速,你就得查下是什么原因导致的了。
      

  3.   

    补充,之所以使用OMF管理的数据库不需要在添加数据文件的时候写数据文件的路径,是因为有这个参数:db_create_file_dest指定了其目标路径,而文件名oracle也会给你自动生成,文件名会标识出其属于哪个表空间。
      

  4.   

    我的 system 表空间 现在有已经使用45G了,另外 我再给另外一个DT_VIO_DAT的增加表空间时 提示ORA-32771,无法在大文件表空间中添加。这个表使用率到了97% ,试图 增加一个新的数据文件;alter tablespce dt_vio_dat add datafile '+data/xxx/datafile/dt_vio_dat02.dbf'size 5G;   
    tablespace altered
    但是再次查看空间,该表空间依然97%,我用这个办法 给USER表 扩展了空间,但是对这个就不行了
      

  5.   


    45G的system表空间,排除BUG因素,说明你有一些不该放的应用数据放到system表空间了,查dba_segments,看看system表空间下都放了些啥吧。
    bigfile类型的表空间只能放一个数据文件,这个类型是在创建表空间的时候指定的,不能更改,但你可以也resize这个数据文件,增大即可。