DBDBDEEP

适用于:

Oracle Applications Manager - 版本 11.5.10.2 到 12.0.6 [发行版 11.5.10 到 12]
Oracle Applications DBA - 版本 11.5.10.2 到 12.0.6 [发行版 11.5.10 到 12]
本文档所含信息适用于所有平台

目标

这篇文章的目的是帮助您复制/克隆活动的/打开的数据库到另一台机器.

解决方案

需要先完成如下适用于您EBS版本的克隆文件中第1部分和第2部分“先决条件”和“准备”中的步骤:

版本11i  : Note 230672.1 - 'Cloning Oracle Applications Release 11i with Rapid Clone'
版本12  : Note 406982.1 - 'Cloning Oracle Applications Release 12 with Rapid Clone'


这个文件帮您实施如上文件“附录 B:在快速克隆中手动重新创建数据库控制文件”中提到的步骤.

步骤 1: 确保已经运行了adpreclone.pl

步骤 2: 获得一个跟踪文件脚本以重新创建控制文件。在源数据库,执行如下命令:

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

创建的跟踪文件脚本将会被放在路径 user_dump_dest中. 脚本的文件名字如: PROD_ora_12345.trc.

比较新创建脚本的日期时间和输入命令ALTER DATABASE BACKUP CONTROLFILE TO TRACE的日期时间.
这将确保您将使用在此步骤中创建的最新的跟踪文件脚本。

步骤 3: 在步骤2中创建的建立控制文件的脚本中,做如下更改:

CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS

改成:

CREATE CONTROLFILE DATABASE "PROD" RESETLOGS ARCHIVELOG

若您想改变数据库的名字,需要在建立控制文件的脚本中使用子句SET DATABASE <新数据库名字>:

CREATE CONTROLFILE SET DATABASE "newdbname" RESETLOGS NOARCHIVELOG

您必须指定 RESETLOGS.

如果你想在非归档日志模式下运行复制的数据库,ARCHIVELOG模式可能要改为NOARCHIVELOG. 如果有必要,在创建控制文件的子句中为新目标数据库将所有的路径指向正确的路径.

只留下CREATE CONTROLFILE 子句. 其余的语句, 像恢复命令, 将可以手动做. 并确定您去掉了STARTUP NOMOUNT命令.

注释:  请确保生成如上控制文件脚本后没有新的数据文件/表空间被添加到数据库。


步骤 4: 使用如下命令联机复制源数据库中所有数据文件:

SQL> ALTER TABLESPACE <NAME> BEGIN BACKUP;

复制源数据库中表空间<NAME>内的所有数据文件到新路径下。在Unix系统, 这可以用cp命令来做.

然后运行命令:

SQL> ALTER TABLESPACE <NAME> END BACKUP;

请不要复制控制文件和重做日志文件,因为它们将重新被创建. 在命令ALTER .. BEGIN BACKUP执行之后,您必须只复制数据文件; 否则数据文件可能会被损坏.

数据文件名字和它的表空间名字可以使用如下命令取得:

SQL> SELECT FILE_NAME, TABLESPACE_NAME FROM DBA_DATA_FILES;

注释: 您可以使用一个之前做的联机数据库备份而不使用步骤4和5来创建一个新的联机备份. 如果您选择使用以前的联机备份,需要确保不但复制了以前的联机备份而且复制了它所需的归档重做日志.

步骤 5: 复制完所有数据文件并且表空间被退出了备份模式,执行如下命令:

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

您将需要从复制数据文件命令开始的所有归档日志文件,包括刚刚用命令ALTER SYSTEM ARCHIVE LOG CURRENT创建的那个。

步骤 6: 从源系统复制数据库 (DBF) 文件, 控制文件脚本和归档日志文件到目标系统

步骤 7: 按文件 Document 230672.1(附录 B)中提到的一样,用以下步骤替换文件中2.3a部分(配置目标系统数据库服务器):


执行如下命令来配置目标系统数据库. 系统将提示您目标系统的特定值(SID,路径,端口等)

  • 用ORACLE用户登录到目标系统
  • 配置<RDBMS ORACLE_HOME>
    cd <RDBMS ORACLE_HOME>/appsutil/clone/bin
    perl adcfgclone.pl dbTechStack

步骤 8: 在目标系统上执行STARTUP NOMOUNT命令. 例如:

SQL> startup nomount pfile=initTEST.ora

步骤 9: 运行在步骤3中准备的创建脚本来创建新的控制文件. 例如:

SQL> @PROD_ora_12345.trc

步骤 10: 执行命令:

SQL> RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE

系统将提示您应用目标数据库中的所有归档重做日志,包括步骤5中用命令ALTER DATABASE ARCHIVE LOG CURRENT创建的最新归档重做日志文件.

应用完所有的这些归档重做日志后,执行CANCEL命令.

步骤 11: 用resetlogs打开数据库:

SQL>ALTER DATABASE OPEN RESETLOGS

此时,目标数据库已经被成功的克隆和打开.

步骤 12:  若在源系统没有建立临时表空间,现在可以创建, 否则,你应增加临时表空间。

您可以使用下面的SQL检查TEMP表空间是否有临时文件或数据文件:

SQL> SELECT FILE_NAME,TABLESPACE_NAME,STATUS,AUTOEXTENSIBLE from DBA_TEMP_FILES where TABLESPACE_NAME like 'TEMP';

SQL> SELECT FILE_NAME,TABLESPACE_NAME, STATUS,AUTOEXTENSIBLE FROM DBA_DATA_FILES WHERE TABLESPACE_NAME LIKE 'TEMP';

若上面的命令没有返回值,即临时表空间没有被创建, 执行如下命令,

SQL> create temporary tablespace temp add tempfile 'xxxx.dbf' size xx

或者

SQL> alter tablespace TEMP add tempfile  'xxxx.dbf' size xx

步骤 13:  对数据库运行库更新脚本

  • cd <RDBMS ORACLE_HOME>/appsutil/install/<CONTEXT NAME>
  • sqlplus "/ as sysdba" @adupdlib.sql <libext>
      在HP-UX中, <libext>代表"sl", 在其它UNIX平台代表"so",  Windows中不需要.


步骤 14: 配置目标数据库 (数据库必须已经打开)

  • cd <RDBMS ORACLE_HOME>/appsutil/clone/bin
  • perl adcfgclone.pl dbconfig <目标上下文文件>
     目标上下文文件是指:
     <RDBMS ORACLE_HOME>/appsutil/<Target CONTEXT_NAME>.xml



最后, 参阅快速克隆文件的如下部分:

  • 复制应用层文件系统
  • 配置目标系统应用层服务器节点
  • 完成后的任务

版本11i : Note 230672.1 - 'Cloning Oracle Applications Release 11i with Rapid Clone'
版本12 : Note 406982.1 - 'Cloning Oracle Applications Release 12 with Rapid Clone'

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band