1.在linux 下我新建的表空间文件没有放在/oracle/oradata/orcl这个文件下,不知道放在哪里去了.表空间文件难道不是以空间来命令的吗?如果不是那以怎样的命令来查找空间与文件之间的关系呢?
2 再扩展表空间时,需要shutdown 数据库吗?还是说直接运行命令即可?
3 我的system sysaux等表空间剩下2M不到的空间,请问像这样的特殊表空间能用命令直接扩展吗?
希望高手回答!

解决方案 »

  1.   

    1.表空间和数据文件不是一回事,表空间是逻辑概念,数据文件时物理概念
    create tablespace t1 datafile '/oracle/oradata/orcl/t1.dbf' size 10M autoextend on next 2M;2.再扩展表空间时,不需要重启数据库3.能,增加数据文件
      

  2.   


    1.表空间只是一个容器。查看数据文件和表空间的关系使用dba_data_files来查看
    2.只要你有dba的权限就行了。还有你的数据库必须处于open状态
    3.一般的这个表空间作为的system表空间辅助表空间,一般的不需要用户来进行维护的。
    但是你要记住的一点就是在你建立对象的时候不要使用这个表空间,添加数据文件可行,
      

  3.   

    1.
    --5) 查看表空间及对应的物理文件的名称及大小,里面应该可显示到datafile的路径
    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;
     
    --6) 查看物理文件及状态
    Select name,bytes,status from v$datafile;2.
    扩展表空间时,oracle至少应该是mount状态,通常的open状态即可.
    $> sqlplus /nolog
    sql> conn /as sysdba;
    创建表空间:
    sql> create tablespace  xxx        datafile '/u01/users02.dbf' size 1000M autoextend on next 50M  maxsize 3000M;
    扩展表空间
    sql>alter  tablespace  xxx  add   datafile '/app/xxx/xxx.dbf' size 1000M autoextend on next 50M  maxsize 3000M ;
    3.
    应该是可以扩展的,你大可以尝试下,失败和成就都不会影响oracle运行的.
    alter  tablespace  system add   datafile '/app/xxx/xxx.dbf' size 1000M autoextend on next 50M  maxsize 3000M ;4.
    创建和扩展普通表空间需要一定时间, 创建临时表空间为瞬间.
      

  4.   

    对于上面我说的第2点,进conn /as sysdba 后,如果oracle未启动,将提示为 idle instance,这时startup 即可.
      

  5.   

    select *  from dba_datafiles;可以查看一下