如何克隆 Oracle 实例?

如何克隆 Oracle 实例?

如何克隆 Oracle 实例?基本上,我希望最终将其从 复制d:\oracle\oldnamed:\oracle\newname

我正在使用 Oracle 10.2。

答案1

考虑使用 RMAN DUPLICATE 命令。我相信这是在 9i 中引入的,但肯定在 10g 中可用。它负责手动克隆时所需的所有步骤,例如重命名数据文件、重新创建控制文件、重置数据库名称等。

如果您有新的数据和日志文件目录结构,您可以永久设置克隆的启动参数,通过字符串替换规范自动将它们转换为新格式/位置。然后克隆就变得非常简单,只需连接到目标(“克隆自”)、辅助(“克隆到”)和 RMAN 目录数据库并发出 RMAN 命令“DUPLICATE DATABASE to (myNewDBname)”即可。您还可以设置“直到时间”以将克隆带到较早的时间点。

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

顺便说一句,如果您没有使用 RMAN 进行备份,那么请放下其他一切并立即开始执行此操作!

答案2

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

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

我认为应该是这样的:

  • 备份数据库
  • 关闭数据库
  • 创建与原数据库同SID的新数据库
  • 恢复到新数据库
  • 导出 ORACLE_SID=新名称
  • 更改 pfile 或 spfile 以反映控制文件的新位置
  • 生成新的密码文件orapwd file=orapw password=?? entrys=5
  • 启动新数据库
  • 启动旧数据库

这是根据记忆和快速谷歌搜索拼凑起来的,自从我使用 Oracle 进行任何严肃的工作以来已经大约 2 年了,所以我并不指望上述内容是正确的,但它可能会为您指明正确的方向。

如果您想在不同的服务器上使用同一个实例,我建议使用 NFS、netapp 和 flexclones,因为它们运行良好。

答案3

如果您可以获得数据库的冷备份或热备份:

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

    conn/作为 sysdba

    启动 NOMOUNT 创建控制文件重用设置数据库“NEWNAME” RESETLOGS NOARCHIVELOG MAXLOGFILES xx MAXLOGMEMBERS xx MAXDATAFILES xxx MAXINSTANCES xx MAXLOGHISTORY xxxx 日志文件组 1'd:\oracle\NEWNAME\REDO01.LOG' 大小 XXM,--选择您的重做日志大
    小组 2'd:\oracle\NEWNAME\REDO02.LOG' 大小 XXM,
    组 3'd:\oracle\NEWNAME\REDO03.LOG' 大小 XXM 数据文件
    '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; — 根据需要进行调整

    修改数据库打开RESETLOGS;

你可能还想做这样的事情:

更改表空间 TEMP 添加 TEMPFILE'd:\oracle\newname\temp.dbf' 大小 20M 在下一个 20M 上重新使用 AUTOEXTEND 最大大小无限制;

那应该让你接近...

相关内容