2012-07-12 30 views
2

我已经恢复的数据库名为DB到名为DB01恢复后更改数据库名称controlfiles?

另一个数据库

它是在已启动状态(未安装),似乎如果没有坐骑,我不能改名字,我不能安装它,因为的名称,如果可能的话如何解决这个问题?

我从DB RMAN完整备份,承载数据库DB01的initdb01.ora愿与DB01

我能做些什么未来

NID并没有帮助我的配置当前服务器上!它要求安装数据库!我不能安装它

ORA-01103:控制文件数据库名称“DB”不是“DB01”

回答

2

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

alter database backup controlfile to trace; 

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

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

+0

可以通过包含跟踪目录通常位于的位置来改进您的答案。我们(oracle noobs)必须解决这个问题。 – Tinman 2012-11-01 05:22:23

3

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

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

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

0

如果要还原到不同的盒子,那么你可以暂时使用原有数据库的名称装入还原的数据库。然后,您可以挂载已恢复的数据库,并使用挂载的数据库提供的工具。

  • 更改ORACLE_SID到原始数据库名

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

  • 使用此在spfile中更改名称。

    ALTER SYSTEM SET DB_NAME = ORIGINAL_DBNAME SCOPE = spfile;

这不适用于运行原始数据库的盒子,因为您不能在同一个盒子上运行两个具有相同名称的数据库。

+0

你如何完成前两步?我永远不会理解Oracle数据库是什么,导致它与其他所有数据相比,记录如此糟糕。围绕Web的Oracle问题的答案似乎没有包含完成任务所需的完整技术步骤,而无需在其他地方查看大量的东西。 – alexk 2014-12-02 12:32:11

0

请参阅Oracle支持文档ID 1906009.1。

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

alter database backup controlfile to trace; 

然后使用create controlfile命令找到相关的跟踪文件。修改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; 

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

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