如题,我现在有Oracle数据库源文件,但没有dmp备份文件
现在如何用数据库源文件建立数据库??
谢谢,分不够再加

解决方案 »

  1.   

    Oracle数据库的结构与SQL Server的数据库不同!!!在SQL Server中整个数据库是保存在一个文件中(最多加上个Log文件),而Oracle数据库的文件是分散在很多种类型的数据文件中,所以Oracle中不能实现SQL Server中的附加数据文件的功能!!!
      

  2.   

    只有数据文件不行,exp/imp 迁移表空间可以拷贝数据文件,但也许要导出/导入其他内容。
      

  3.   

    请参考:1.重新创建初始化文件,重要的参数包括control_files,db_name,instance_name,
    background_dump_dest,core_dump_dest,user_dump_dest,\
    db_block_size=8192,db_cache_size,db_domain,
    large_pool_size,pga_aggregate_target,shared_pool_size,
                sort_area_size,undo_management,undo_retention,undo_tablespace 
    你可以通过以下途径创建一个初始供修改的参数文件: @从备份的参数文件里得到。 @从其他正常运行的Oracle实例里得到,运行下面的命令: 
    Create pfile='参数文件路径及名称' from spfile 得到后要修改这个文件,注意这个文件对于恢复很重要一定要检查是否正确。 要检查background_dump_dest,core_dump_dest,user_dump_dest等参数设置的目录是否存在 2.修改监听器配置文件.检查监听的数据库参数。 3.在系统级设置环境变量ORACLE_SID。 4.创建实例: 
    OraDim -NEW -SID sid -startmode m 
    5.创建Oracle口令文件: 
    OraPwd file=Oracle_HOME/database/pwdsid.ora password=***** 口令文件的位置一定要正确,否则第七步会报错。 
    6.启动实例: @sqlplus “/ as sysdba”如果你的参数文件放在缺省位置且名称符合标准要求,则运行@startup nomount;否则@startup nomount pfile=‘参数文件路径及名称’。 
    7.创建控制文件: 
    CREATE CONTROLFILE SET DATABASE 
    "db_name" RESETLOGS NOARCHIVELOG
    MAXLOGFILES 50
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 453
    LOGFILE
    GROUP 1 '日志文件路径及名称' SIZE 100M,
    GROUP 2 '日志文件路径及名称' SIZE 100M,
    GROUP 3 '日志文件路径及名称' SIZE 100M
    DATAFILE
    '数据文件路径及名称',
    ....................
    ...................
                      CHARACTER SET ZHS16GBK; 
    8.打开数据库: Alter Database Open resetlogs; 
    9. 给临时表空间增加临时文件: 因为临时文件的创建没有包含在创建控制文件的脚本里,所以你需要手工添加给临时表空间增加临时文件,否则执行某些命令的时候会异常的。 
    ALTER TABLESPACE "TEMP" 
    ADD TEMPFILE 
                      'C:\ORACLE9I\ORADATA\SHARK\Temp01.DBF' [reuse] SIZE 200M 到这里你的恢复工作完成, 你可以运行一些命令检查一下
      

  4.   

    CathySun118  在第6步时一直起动不了实例