【问题标题】:change database name controlfiles after restore?恢复后更改数据库名称控制文件?
【发布时间】:2012-07-11 21:33:24
【问题描述】:

我已将名为 DB 的数据库还原到另一个名为 DB01 的数据库

它处于STARTED状态(未挂载),如果没有挂载,我似乎无法更改名称,并且由于名称无法挂载,如果可能的话如何解决这个问题?

我从当前服务器上的数据库进行 RMAN 完整备份,该服务器托管数据库 DB01,initdb01.ora 已准备好并已配置 DB01

接下来我能做什么

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

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

【问题讨论】:

    标签: oracle11g backup restore rman


    【解决方案1】:

    您需要重新创建控制文件。最好的办法是先在原databasr中执行如下命令:

    alter database backup controlfile to trace;
    

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

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

    【讨论】:

    • 您的答案可以通过包含跟踪目录通常所在的位置来改进。我们(甲骨文新手)必须解决这个问题。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      • ORACLE_SID改成原来的数据库名

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

      • 使用它来更改 spfile 中的名称。

        ALTER SYSTEM SET DB_NAME=ORIGINAL_DBNAME SCOPE=spfile;

      这不适用于运行原始数据库的机器,因为您不能在同一个机器上运行两个同名的数据库。

      【讨论】:

      • 你是如何完成前两个步骤的?我永远无法理解 Oracle 数据库是什么导致它与其他所有东西相比记录得如此糟糕。网上对 Oracle 问题的回答似乎从来没有包含完成任务所需的完整技术步骤,而无需在其他地方查找大量内容。
      【解决方案4】:

      请参阅 Oracle 支持文档 ID 1906009.1。

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

      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;
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-21
        • 1970-01-01
        • 2015-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        • 1970-01-01
        相关资源
        最近更新 更多