任何人都可以分享在 oracle 11g(Windows 平台)中使用另一个数据库名称将 RMAN 还原到另一台服务器的正确方法。我对我发现的所有 RMAN 恢复方法感到完全困惑。我已经使用命令进行了备份
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
请确认是否需要单独备份控制文件。
任何帮助将不胜感激。
任何人都可以分享在 oracle 11g(Windows 平台)中使用另一个数据库名称将 RMAN 还原到另一台服务器的正确方法。我对我发现的所有 RMAN 恢复方法感到完全困惑。我已经使用命令进行了备份
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
请确认是否需要单独备份控制文件。
任何帮助将不胜感激。
默认情况下,控制文件与您的数据一起备份。这由以下命令打开或关闭:
但作为一个习惯问题,我通常会遵循以下数据备份:
在 Windows 上使用重复数据库时遇到了很多麻烦。通常,我会遇到目标登录的 NTS 权限失败,这会阻止创建辅助数据库。我努力解决这些错误......好吧,我放弃了。
这使我起草了一份“剧本”文档,其中包含手动将数据库恢复到具有新实例名称的新服务器所需的所有各种操作系统和 RMAN 命令。这也让我可以更好地控制新主机。
这些脚本在我的 Oracle 12.1 Windows 环境中进行了测试,但可能不适合您的环境。例如,我知道 RMAN 更愿意在 12c 中运行 SQL 语句而不是在 11g 中。希望他们有所帮助。
这些脚本是通过多次试验和错误努力创建的,基于此用于还原的链接和用于更改 SID的链接。步骤是:
确保所有内容都已备份。
我喜欢获取 spfile 和 controlfile 的新副本,因为这样以后会更容易。
如果您的旧服务器和新服务器对 Oracle 数据使用不同的文件路径,请运行以下命令:
获取输出并根据需要更改路径/文件名以匹配您的新环境。
将备份从旧主机复制到新主机
可选,但我喜欢将 RMAN 备份文件放在我要还原到的盒子上。所以登录新服务器,从旧服务器的快速恢复区复制完整备份、归档日志和自动备份文件夹。请注意,您只需要返回到最近的完整备份,无需获取数周的文件。
暂存新实例
在新主机上,创建数据文件夹、快速恢复文件夹和管理员文件夹。确保已安装 Oracle,并且 Oracle 用户帐户可以完全控制这些文件夹。
创建一个与旧实例同名的空实例:
使用 RMAN 恢复 SPFILE 和控制文件。在 RMAN 中,设置 DBID 以匹配旧实例的 DB ID,并设置文件名和路径以匹配您的环境:
暂时不要关闭 RMAN。在 NotePad 或 NotePad++ 中编辑上一步中的 pfile。根据需要调整路径和内存要求以反映新环境。不要更改数据库的名称,而是将文件夹路径更改为新的实例名称。
返回到您的 RMAN 会话并恢复控制文件。同样,根据需要修复路径。
恢复您的数据库文件
仍然在 RMAN 中,清点您复制的备份文件。
现在将您的重做日志文件移动到它们在 RMAN 中的新文件夹中。您之前生成了这些脚本。
现在我们进行还原和恢复,替换之前创建的 NewName 脚本。
RMAN 完成基本还原和恢复后,创建一个新的 SPFile。
Oracle 不备份或恢复 TEMP 表空间。这将阻止完全恢复成功。创建一个新的临时表空间,删除旧的,然后重建原来的。
更改实例名称
此时,Oracle 应该正在运行您的数据库的完全恢复副本。但是你想要一个新名字。在 RMAN 中:
不要关闭 RMAN,而是从以管理员身份运行的新 CMD 窗口:
请注意这为您提供的 DBID,因为稍后您将需要它来进行灾难恢复(请注意,这是我们在顶部的第一个 RMAN 命令)。
返回 RMAN 窗口:
启动你的新数据库!
在另一个 CMD 窗口中,创建一个新密码文件,然后重新创建 Windows 服务。请注意,与 Oracle 中的大多数情况不同,此实用程序不会在路径周围使用引号。
启动数据库。
备份您的新数据库
此时,您的数据库没有备份。在此数据库中执行任何工作之前,请执行 RMAN 备份。