本人小白一只..
公司需要把装数据库的电脑换一台新买的机器装,数据库版本是9i的,我在新的机器上安装好该9I的版本..原本电脑装在D盘,新的电脑F盘有900G,准备装在F盘,原本使用冷备份的方法搬移过去了..我把oradata完全复制过去了 但盘符不对,就报错,数据文件不对。
请问上面冷备份后出现这种情况如何处理?
或者有好的转移方法么?

解决方案 »

  1.   

    修改启动文件(PFILE),如果是SPFILE先创建PFILE,然后修改PFILE里的数据文件位置
      

  2.   

    获取启动到NOMOUNT,修改数据文件位置
      

  3.   

    参考http://www.eygle.com/archives/2004/10/oracle_howto_move_datefile.html
      

  4.   

    我先去测试下...Pfile和spfile在哪里?
      

  5.   

    unix: $ORACLE_HOME/dbs/
    win : %ORACLE_HOME%\database
      

  6.   

    ##############################################################################
    # Copyright (c) 1991, 2001, 2002 by Oracle Corporation
    ##############################################################################
     
    ###########################################
    # SGA Memory
    ###########################################
    sga_target=569376768
     
    ###########################################
    # Job Queues
    ###########################################
    job_queue_processes=10
     
    ###########################################
    # Shared Server
    ###########################################
    dispatchers="(PROTOCOL=TCP) (SERVICE=lizxXDB)"
     
    ###########################################
    # Miscellaneous
    ###########################################
    compatible=10.2.0.1.0
     
    ###########################################
    # Security and Auditing
    ###########################################
    audit_file_dest=E:\oracle\product\10.2.0/admin/lizx/adump
    remote_login_passwordfile=EXCLUSIVE
     
    ###########################################
    # Sort, Hash Joins, Bitmap Indexes
    ###########################################
    pga_aggregate_target=189792256
     
    ###########################################
    # Database Identification
    ###########################################
    db_domain=""
    db_name=lizx
     
    ###########################################
    # File Configuration
    ###########################################
    control_files=("E:\oracle\product\10.2.0\oradata\lizx\control01.ctl", "E:\oracle\product\10.2.0\oradata\lizx\control02.ctl", "E:\oracle\product\10.2.0\oradata\lizx\control03.ctl")
    db_recovery_file_dest=E:\oracle\product\10.2.0/flash_recovery_area
    db_recovery_file_dest_size=2147483648
     
    ###########################################
    # Cursors and Library Cache
    ###########################################
    open_cursors=300
     
    ###########################################
    # System Managed Undo and Rollback Segments
    ###########################################
    undo_management=AUTO
    undo_tablespace=UNDOTBS1
     
    ###########################################
    # Diagnostics and Statistics
    ###########################################
    background_dump_dest=E:\oracle\product\10.2.0/admin/lizx/bdump
    core_dump_dest=E:\oracle\product\10.2.0/admin/lizx/cdump
    user_dump_dest=E:\oracle\product\10.2.0/admin/lizx/udump
     
    ###########################################
    # Processes and Sessions
    ###########################################
    processes=150
     
    ###########################################
    # Cache and I/O
    ###########################################
    db_block_size=8192
    db_file_multiblock_read_count=16这个是pfile目录下的init.ora.4162011105658文件内容,貌似没找到数据文件位置
      

  7.   

    我直接用
    alter database rename file 'c:\oracle\oradate\project\1.ora'to'e:\oracle\oradate\project\1.ora';
    来改的..改的好多..能上,但是temp表空间那个杂改不了,我进行数据库操作的时候还会报错
      

  8.   

    我发现control01、control02、control03里有temp表的位置,修改后数据库启动不能..
      

  9.   

    windows xp 数据库版本9i
      

  10.   

    我的那个配置文件是window的环境。
      

  11.   


    alter tablespace TEMP add tempfile 'e:\ORACLE\TESTDATA\TEMP01.DBF' size 20M; 
    ALTER DATABASE TEMPFILE 'c:\ORACLE\TESTDATA\TEMP01.DBF' drop
    通过上面2句..把临时表空间处理了..现在数据库能上了..
    问下..在整个转移过程中,我的数据文件很多..我都是1句1句的输入的..问下有什么快捷的方法么?
    然后是在备份的时候应该不用拷贝TEMP01.DBF吧..这样就不会产生我上面的问了了吧?
      

  12.   

    好纠结的问题啊。冒试重要的环节是数据,而不是你怎么去移植吧,直接在旧的那exp数据,在imp到新的就可以了。能速度解决问题就OK。过程不重要!
      

  13.   

    1首先关闭数据库
    2备份数据库下ORADATA里面所有的文件
    3在要转移的机器上安装ORACLE系统,全局数据库填写project
    4安装完成后配置数据库档案,建立test_name(密码:test_password)用户
    5关闭数据库
    6把备份的ORADATA覆盖
    7启动sqlplus
    SQL> host del D:\oracle\ora92\database\PWDoracle.ORASQL> host orapwd file=D:\oracle\ora92\DATABASE\PWDoracle.ORA password=system entries=10SQL> alter database open;
    8 如果安装的盘符和原来安装的位置不一致则在数据库mount状态下
    C:\ORACLE\ORADATA\PROJECT\SYSTEM01.DBF
    C:\ORACLE\ORADATA\PROJECT\UNDOTBS01.DBF
    C:\ORACLE\ORADATA\PROJECT\CWMLITE01.DBF
    C:\ORACLE\ORADATA\PROJECT\DRSYS01.DBF
    C:\ORACLE\ORADATA\PROJECT\EXAMPLE01.DBF
    C:\ORACLE\ORADATA\PROJECT\INDX01.DBF
    C:\ORACLE\ORADATA\PROJECT\ODM01.DBF
    C:\ORACLE\ORADATA\PROJECT\TOOLS01.DBF
    C:\ORACLE\ORADATA\PROJECT\USERS01.DBF
    C:\ORACLE\ORADATA\PROJECT\XDB01.DBF
    C:\ORACLE\ORADATA\PROJECT\OEM_REPOSITORY.DBF
    C:\ORACLE\ORADATA\PROJECT\1.ORA
    alter database rename file 'C:\ORACLE\ORADATA\PROJECT\SYSTEM01.DBF'to'e:\ORACLE\ORADATA\PROJECT\SYSTEM01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\UNDOTBS01.DBF'to'e:\ORACLE\ORADATA\PROJECT\UNDOTBS01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\CWMLITE01.DBF'to'e:\ORACLE\ORADATA\PROJECT\CWMLITE01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\DRSYS01.DBF'to'e:\ORACLE\ORADATA\PROJECT\DRSYS01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\EXAMPLE01.DBF'to'e:\ORACLE\ORADATA\PROJECT\EXAMPLE01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\INDX01.DBF'to'e:\ORACLE\ORADATA\PROJECT\INDX01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\ODM01.DBF'to'e:\ORACLE\ORADATA\PROJECT\ODM01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\TOOLS01.DBF'to'e:\ORACLE\ORADATA\PROJECT\TOOLS01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\USERS01.DBF'to'e:\ORACLE\ORADATA\PROJECT\USERS01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\XDB01.DBF'to'e:\ORACLE\ORADATA\PROJECT\XDB01.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\OEM_REPOSITORY.DBF'to'e:\ORACLE\ORADATA\PROJECT\OEM_REPOSITORY.DBF';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\1.ora'to'e:\ORACLE\ORADATA\PROJECT\1.ora';
    alter database rename file 'C:\ORACLE\ORADATA\PROJECT\REDO03.LOG'to'e:\ORACLE\ORADATA\PROJECT\REDO03.LOG';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\REDO02.LOG'to'e:\ORACLE\ORADATA\PROJECT\REDO02.LOG';alter database rename file 'C:\ORACLE\ORADATA\PROJECT\REDO01.LOG'to'e:\ORACLE\ORADATA\PROJECT\REDO01.LOG';
    以上只是例子(具体需要安装oradata中的文件来改变)
    9完成后 关闭数据库再启动
    修改TEMP表
    ALTER TABLESPACE TEMP ADD TEMPFILE 'e:\oracle\oradata\project\TEMP01.DBF' REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
    alter database tempfile 'C:\ORACLE\ORADATA\PROJECT\TEMP01.DBF'drop我的过程..基本完善了..主要是转移..我有空测试下导入导出看看..