在同一台机器上,克隆一数据库 
源数据库名为practice  目标数据库名为clne
1.我在practice库运行时,备份了所有数据文件(alter tablespace tb_name begin backup),并且copy到了clne相关的文件夹中。
2.修改init.ora 更改数据库名称、实例名及相关目录名称。
3.alter database backup controlfile to trace resetlogs --创建practice控制文件,
4.修改后的控制文件如下:
CREATE CONTROLFILE set DATABASE "clne" NORESETLOGS ARCHIVELOG
    MAXLOGFILES 50
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 113
LOGFILE
  GROUP 1 'C:\ORACLE\ORADATA\clne\REDO01.LOG'  SIZE 10M,
  GROUP 2 'C:\ORACLE\ORADATA\clne\REDO02.LOG'  SIZE 10M,
  GROUP 3 'C:\ORACLE\ORADATA\clne\REDO03.LOG'  SIZE 10M
DATAFILE
  'C:\ORACLE\ORADATA\clne\SYSTEM01.DBF',
  'C:\ORACLE\ORADATA\clne\UNDOTBS01.DBF',
  'C:\ORACLE\ORADATA\clne\CWMLITE01.DBF',
  'C:\ORACLE\ORADATA\clne\DRSYS01.DBF',
  'C:\ORACLE\ORADATA\clne\EXAMPLE01.DBF',
  'C:\ORACLE\ORADATA\clne\INDX01.DBF',
  'C:\ORACLE\ORADATA\clne\TOOLS01.DBF',
  'C:\ORACLE\ORADATA\clne\USERS01.DBF'
CHARACTER SET ZHS16GBK;
5.startup nomount pfile='c:\oracle\admin\clne\pfile\initclne.ora';
6.执行 第4步 修改的控制文件 就报错 如下:
  CREATE CONTROLFILE set DATABASE "clne" NORESETLOGS ARCHIVELOG
  *
  ERROR 位于第 1 行:
请大侠帮忙解决吧 谢谢

解决方案 »

  1.   

    不是这么改的!
    你应该先恢复一个名字一样的实例,
    然后通过oracle提供的nid的命令来更改实例名.
      

  2.   

    推荐LZ用RMAN来创建复制数据库。这样即不需要创建备库控制文件,也可以随意指定备库SID。
      

  3.   

    不是吧 我刚学到这呀  还没有接触Rman 呵呵   
      

  4.   

    你做的科隆相当于冷备份还原
    冷备份与还原:
    1、connect /nolog;
    connect / as sysdba;
    shutdown immediate;2
    copy oradata目录下的所有文件即:数据文件, 控制文件,redo文件
    可以用以下命令来读取数据文件
    select file#,status,enabled,name from v$datafile;数据文件
    select * from v$controlfile;控制文件
    select * from v$logfile;联机日志文件
    3、重装oracle在相同的目录并建相同的实例。覆盖已备份的数据文件即可。

    4、connect /nolog;
    connect / as sysdba;
    startup;
      

  5.   

    那用rman吧。rman比这个要简单的多。