还原后更改数据库名称controlfiles?

时间:2012-07-12 07:09:57

标签: oracle11g backup restore rman

我已将名为DB的数据库恢复到另一个名为DB01的数据库

它处于STARTED状态(未安装),如果不是挂载,我似乎无法更改名称,因为名称而无法挂载,如果可能,如何解决此问题?

我在当前服务器上的DB上有RMAN完全备份,该服务器托管数据库DB01,initdb01.ora已准备好并配置了DB01

我接下来该怎么做

nid没有帮助!它要求安装数据库!我无法装载它

ORA-01103:数据库名称' DB'在控制文件中不是' DB01'

4 个答案:

答案 0 :(得分:3)

所以这里将db_name设置为DB,一旦数据库打开就开始恢复,你可以使用nid实用程序更改数据库名称。

SQL > ALTER SYSTEM SET DB_NAME=DB SCOPE=spfile;

请参考链接: Changing oracle db name in 10G

答案 1 :(得分:2)

您需要重新创建控制文件。最好的方法是首先在原始数据库中执行以下命令:

alter database backup controlfile to trace;

这将在跟踪目录中创建一个文本文件。您需要更改文件路径以匹配新的数据库文件位置,并更改db_name参数。

完成上一步后,在nomount中启动新数据库并执行上述文件(确保您已连接到新数据库和所有文件路径点到新数据库)。这将创建一个新的控制文件。

答案 2 :(得分:0)

如果要还原到其他框,则可以临时使用原始数据库的名称来装入已还原的数据库。然后,您可以装入已还原的数据库,并使用已装入数据库的可用工具。

  • ORACLE_SID更改为原始数据库名称

  • 重命名spfile以包含原始数据库名称

  • 使用此命令更改spfile中的名称。

    ALTER SYSTEM SET DB_NAME = ORIGINAL_DBNAME SCOPE = spfile;

这在原始数据库运行的盒子上不起作用,因为你不能在同一个盒子上运行两个同名的数据库。

答案 3 :(得分:0)

请参阅Oracle支持文档ID 1906009.1。

您需要从备份重新创建控制文件,然后将其修改为使用带有SET DATABASE选项的REUSE和RESETLOGS。使用

alter database backup controlfile to trace;

然后使用create controlfile命令查找相关的tracefile。修改SQL以包含推荐的选项。我刚刚做了这个,这是我的例子:

CREATE CONTROLFILE REUSE set DATABASE "ANDYSTBY" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    '+LOGS/ANDYSTBY/ONLINELOG/group_1.258.917112951',
    '+LOGS/ANDYSTBY/ONLINELOG/group_1.259.917113325'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 2 (
    '+LOGS/ANDYSTBY/ONLINELOG/group_2.257.917112935',
    '+LOGS/ANDYSTBY/ONLINELOG/group_2.260.917113339'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 3 (
    '+LOGS/ANDYSTBY/ONLINELOG/group_3.256.917112925',
    '+LOGS/ANDYSTBY/ONLINELOG/group_3.261.917113345'
  ) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '+DATA/ANDYSTBY/DATAFILE/system.257.917108631',
  '+DATA/ANDYSTBY/DATAFILE/sysaux.256.917108485',
  '+DATA/ANDYSTBY/DATAFILE/undotbs1.259.917108757',
  '+DATA/ANDYSTBY/DATAFILE/users.258.917108757'
CHARACTER SET AL32UTF8;

恢复数据库后,您需要使用“使用备份控制文件”选项进行恢复。

恢复数据库,直到使用备份控制文件取消;