你如何克隆一个oracle实例?

你如何克隆一个oracle实例? 基本上,我想最终将它从d:\oracle\oldnamed:\oracle\newname

我正在使用Oracle 10.2。

查看使用RMAN DUPLICATE命令。 我相信这是在9i中引入的,但在10g中肯定是可用的。 它将处理所有这些在手动克隆时必需的步骤,如重命名数据文件,重新创build控制文件,重置数据库名称等。

如果您拥有数据和日志文件的新目录结构,则可以永久设置克隆的启动参数,以通过stringreplace规范自动将其转换为新的格式/位置。 然后,克隆就像连接到目标(“clone from”),aux(“clone to”)和RMAN目录数据库并发出RMAN命令“DUPLICATE DATABASE to(myNewDBname)”一样简单。 您也可以设置“到时间”,以使克隆达到更早的时间点。

Oracle 11g增加了从实时数据库直接克隆的function。

顺便说一下,如果您不使用RMAN进行备份,那么就放弃所有其他操作,然后立即开始执行此操作!

我假设你想在克隆上有不同的实例名称,

在许多方面,最简单的方法可能是使用RMAN或备份和恢复软件为您完成这项工作。

我认为这将是:

  • 备份您的数据库
  • closures你的数据库
  • 使用与原始相同的SID创build一个新的数据库
  • 恢复到新的数据库
  • 导出ORACLE_SID = newname
  • 更改pfile或spfile以反映控制文件的新位置
  • 生成一个新的密码文件orapwd文件= orapw密码= ?? 条目= 5
  • 启动新的数据库
  • 启动旧的数据库

这是从记忆拼凑起来,有一个快速的谷歌,它已经约2年,因为我与甲骨文任何认真的工作,所以我不希望上述是正确的,但它可能会让你在正确的方向。

如果你想在不同的服务器上使用相同的实例,我会build议使用NFS和netapp和flexclones,因为它们工作的很好。

如果您可以对数据库进行冷备份或热备份:

  1. 将冷/热备份文件复制到新的目录结构。
  2. 修改你的init.ora文件为新的实例。
  3. 以sysdba用户身份login的STARTUP MOUNT问题
  4. 运行以下命令:

    conn / as sysdba

    STARTUP NOMOUNT CREATE CONTROLFILE REUSE SET DATABASE“NEWNAME”RESETLOGS NOARCHIVELOG MAXLOGFILES xx MAXLOGMEMBERS xx MAXDATAFILES xxxx MAXINOGANCES xx MAXLOGHISTORY xxxx LOGFILE GROUP 1'd:\ oracle \ NEWNAME \ REDO01.LOG'SIZE XXM, – select您的重做日志大小
    GROUP 2'd:\ oracle \ NEWNAME \ REDO02.LOG'SIZE XXM,
    GROUP 3'd:\ oracle \ NEWNAME \ REDO03.LOG'SIZE XXM DATAFILE
    'D:\ ORACLE \ NEWNAME \ SYSTEM.DBF',
    'D:\ ORACLE \ NEWNAME \ undotbs.DBF',
    'D:\ ORACLE \ NEWNAME \ USERS.DBF',
    'D:\ ORACLE \ NEWNAME \ sysaux.DBF',
    'd:\ oracle \ NEWNAME \ TOOLS.DBF' – 您的数据库中的任何其他文件都需要重新命名为CHARACTER SET WE8ISO8859P1; – 根据需要进行调整

    ALTER DATABASE OPEN RESETLOGS;

你也可能想要做这样的事情:

ALTER TABLESPACE TEMP ADD TEMPFILE'd:\ oracle \ newname \ temp.dbf'SIZE 20M REUSE AUTOEXTEND ON NEXT 20M MAXSIZE UNLIMITED;

这应该让你接近…