Oracle rman duplicate迁移测试

说明

数据库为 12.2.0.1.0RAC 环境,目标升级为 12.2.0.1.11 环境,操作系统为 RHEL6.6

原环境:

数据库模式

RAC

IP 地址分配


32BIT/64BIT

64 bit

操作系统版本

RHEL5.3

ORACLE 版本

12.2.0.1

ORACLE_SID


 

目标环境:

数据库模式

RAC

IP 地址分配


32BIT/64BIT

64 bit

操作系统版本

RHEL6.6

ORACLE 版本

12.2.0.1

ORACLE_SID


 


前期辅助实例安装

前提:装好数据库软件,不创建数据库,且有 oracle 用户,首先创建辅助实例

2.1 为辅助实例创建密码文件

直接从原生产拷贝密码文件至复制库端

 

2.2 创建必要的目录

[oracle@node2 admin]$ mkdir -p /oracle/app/admin/ora11g/adump

[oracle@node2 admin]$ mkdir -p /oracle/app/oradata/ora11g/

 

2.3 配置静态监听

[oracle@node2 admin]$ vi listener.ora

 

        (GLOBAL_DBNAME = woo.com)

# listener.ora Network Configuration File: /oracle/app/product/11.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = jason)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

SID_LIST_LISTENER =

(SID_LIST =

  (SID_DESC =

    (SID_NAME = orcl)

    (ORACLE_HOME = /oracle/app/product/12.2.0/db_1)

    (GLOBAL_DBNAME = orcl)

  )

)

 

配置所有节点 tnsname 信息如下 :

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.210.69)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

orcldg =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.210.96)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

2.4 创建辅助实例的初始化参数文件

将在原生产上创建的 pfile 拷贝到复制库,参数和原生产库保持一致,并启动到 nomount 状态

 

生产端产生 pfile

 

SQL> create pfile='/tmp/upgrade/initora11g.ora' from spfile;

 

File created.

将参数文件拷贝到复制库相应位置

 

启动数据库到 nomount 状态

[oracle@node2 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Mar 24 11:29:05 2017

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup nomount

ORACLE instance started.

 

Total System Global Area  839282688 bytes

Fixed Size                  2257880 bytes

Variable Size             545262632 bytes

Database Buffers          289406976 bytes

Redo Buffers                2355200 bytes

 

SQL> create spfile from pfile;

 

File created.

 

复制数据库

3.1 同时连接到目标库和复制库

[oracle@node2 ~]$ rman target sys/oracle@orcl auxiliary sys/oracle@orcldg

 

Recovery Manager: Release 11.2.0.4.0 - Production on Fri Mar 24 11:40:58 2017

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

PL/SQL package SYS.DBMS_BACKUP_RESTORE version 11.02.00.02 in TARGET database is not current

PL/SQL package SYS.DBMS_RCVMAN version 11.02.00.02 in TARGET database is not current

connected to target database: ORA11G (DBID=40693715)

connected to auxiliary database: ORA11G (not mounted)

RMAN>

 

 

3.2 复制数据库

RMAN> duplicate target database for standby from active database nofilenamecheck; 

 

Starting Duplicate Db at 24-MAR-17

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=20 device type=DISK

 

contents of Memory Script:

{

   backup as copy reuse

   targetfile  '/oracle/app/product/11.2.0/db_1/dbs/orapwora11g' auxiliary format

 '/oracle/app/product/11.2.0/db_1/dbs/orapwora11g'   ;

}

executing Memory Script

 

Starting backup at 24-MAR-17

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=33 device type=DISK

Finished backup at 24-MAR-17

 

contents of Memory Script:

{

   backup as copy current controlfile for standby auxiliary format  '/oracle/app/oradata/ora11g/control01.ctl';

   restore clone controlfile to  '/oracle/app/oradata/ora11g/control02.ctl' from

 '/oracle/app/oradata/ora11g/control01.ctl';

}

executing Memory Script

 

Starting backup at 24-MAR-17

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

copying standby control file

output file name=/oracle/app/product/11.2.0/db_1/dbs/snapcf_ora11g.f tag=TAG20170324T150456 RECID=6 STAMP=939481497

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 24-MAR-17

 

Starting restore at 24-MAR-17

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: copied control file copy

Finished restore at 24-MAR-17

 

contents of Memory Script:

{

   sql clone 'alter database mount standby database';

}

executing Memory Script

 

sql statement: alter database mount standby database

 

contents of Memory Script:

{

   set newname for tempfile  1 to

 "/oracle/app/oradata/ora11g/temp01.dbf";

   switch clone tempfile all;

   set newname for datafile  1 to

 "/oracle/app/oradata/ora11g/system01.dbf";

   set newname for datafile  2 to

 "/oracle/app/oradata/ora11g/sysaux01.dbf";

   set newname for datafile  3 to

 "/oracle/app/oradata/ora11g/undotbs01.dbf";

   set newname for datafile  4 to

 "/oracle/app/oradata/ora11g/users01.dbf";

   backup as copy reuse

   datafile  1 auxiliary format

 "/oracle/app/oradata/ora11g/system01.dbf"   datafile

 2 auxiliary format

 "/oracle/app/oradata/ora11g/sysaux01.dbf"   datafile

 3 auxiliary format

 "/oracle/app/oradata/ora11g/undotbs01.dbf"   datafile

 4 auxiliary format

 "/oracle/app/oradata/ora11g/users01.dbf"   ;

   sql 'alter system archive log current';

}

executing Memory Script

 

executing command: SET NEWNAME

 

renamed tempfile 1 to /oracle/app/oradata/ora11g/temp01.dbf in control file

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

Starting backup at 24-MAR-17

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile file number=00001 name=/oracle/app/oradata/ora11g/system01.dbf

output file name=/oracle/app/oradata/ora11g/system01.dbf tag=TAG20170324T150504

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25

channel ORA_DISK_1: starting datafile copy

input datafile file number=00002 name=/oracle/app/oradata/ora11g/sysaux01.dbf

output file name=/oracle/app/oradata/ora11g/sysaux01.dbf tag=TAG20170324T150504

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:19

channel ORA_DISK_1: starting datafile copy

input datafile file number=00003 name=/oracle/app/oradata/ora11g/undotbs01.dbf

output file name=/oracle/app/oradata/ora11g/undotbs01.dbf tag=TAG20170324T150504

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

input datafile file number=00004 name=/oracle/app/oradata/ora11g/users01.dbf

output file name=/oracle/app/oradata/ora11g/users01.dbf tag=TAG20170324T150504

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 24-MAR-17

 

sql statement: alter system archive log current

 

contents of Memory Script:

{

   switch clone datafile all;

}

executing Memory Script

 

datafile 1 switched to datafile copy

input datafile copy RECID=6 STAMP=939481171 file name=/oracle/app/oradata/ora11g/system01.dbf

datafile 2 switched to datafile copy

input datafile copy RECID=7 STAMP=939481171 file name=/oracle/app/oradata/ora11g/sysaux01.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=8 STAMP=939481171 file name=/oracle/app/oradata/ora11g/undotbs01.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=9 STAMP=939481171 file name=/oracle/app/oradata/ora11g/users01.dbf

Finished Duplicate Db at 24-MAR-17

 

至此,数据库已经复制到新环境

 

3.3 recover 复制期间的归档日志

SQL> recover standby database;

auto


请使用浏览器的分享功能分享到微信等