一 说明
数据库为 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 用户,首先创建辅助实例
为辅助实例创建密码文件
直接从原生产拷贝密码文件至复制库端
创建必要的目录
[oracle@node2 admin]$ mkdir -p /oracle/app/admin/ora11g/adump
[oracle@node2 admin]$ mkdir -p /oracle/app/oradata/ora11g/
配置静态监听
[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)
)
)
创建辅助实例的初始化参数文件
将在原生产上创建的 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.
三 复制数据库
同时连接到目标库和复制库
[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>
复制数据库
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 至此,数据库已经复制到新环境
复制期间的归档日志
SQL> recover standby database;
auto
