将c盘的数据库关闭,冷备份。删除c盘的数据库。在d盘建立一个和c盘相同的数据库。

解决方案 »

  1.   

    数据文见重命名,查一下资料,
    应该是这样,
    sql> connect sys/..........
    sql>shutdown immediate
    sql>startup amount
    拷贝数据文件到目的地
    sql>alter database rename datafile  ..................
    sql>打开数据库
    或者为表空间添加新的数据文件到d盘或者是导出exp之后,重建表空间在d盘,然后再导入imp
      

  2.   

    hammer_shi(@农业专家@(*暂时是菜鸟*)) 
    的想法应该是不能实现的,那样数据库是启动不起来的,
    因为数据文件的位置都是写在控制文件里的
      

  3.   

    呵呵,最保险,
    1、你先把数据库系统冷备份到另外一个地方,包括数据文件、控制文件、归档日志文件、日志文件。如果不知道这些东西的话,你先把Oracle目录下所有的文件备份下来。
       这是以防万一,
    2、导出数据库
    c:\exp system/oracle@link111 file=d:\20030731.dmp owner=(user1,user2)以下动作
    可以在企业管理器里做,或在Sql*plus里做
    3、删除user1,user2
    sql>drop user user1 cascade;
    sql>drop user user2 cascade;4、删除表空间
       把user1,user2所拥有的表空间删除,重建表空间
    sql>drop tablespace t_use1;
    sql>drop tablespace t_use2;5、重建表空间
    sql>create tablespace t_use1 datafile = d:\..............\t_use1.ora;
    sql>create tablespace t_use2 datafile = d:\..............\t_use2.ora;6、重建用户
    sql>create user user1 identified by password1
        default tablespace t_use1;
    sql>create user user2 identified by password2
        default tablespace t_use2;7、导入数据库
    c:\imp system/oracle@portal file=d:\20030731.dmp  fromuser=(user1,user2) touser=(user1,user2)
      

  4.   

    多谢huangcaibing(Mike)。我先找台机器测试一下。我觉得你的办法可行给你分
      

  5.   

    非system表空间文件的改名(换路径)方法
    比如改users表空间的文件
    alter tablespace users offline;
    把users的所有数据文件复制到新的路径
    alter tablespace users rename datafile '/home/oracle/oradata/om/users01.dbf'
    to '/home/oracle/users01.dbf';
    我这里是linux,所以路径的写法与win不同,我把om/下的users01.dbf复制到oracle了
    alter tablespace users online;
    查dba_data_files或v$datafile,看看是不是改过来了好了,原来的那个数据文件可以不要了改system表空间的办法不同,回头说,有点事
      

  6.   

    SQL> alter tablespace users online
      2  /
    alter tablespace users online
    *
    ERROR 位于第 1 行:
    ORA-01113: 文件 3 需要媒体恢复
    ORA-01110: 数据文件 3: 'E:\ORACLE\ORADATA\GLC\USERS01.DBF'
    该怎么办?