Oracle使用RMAN复制数据库(一)

2014-11-24 08:53:38 · 作者: · 浏览: 2

1.使用 RMAN 创建数据库副本

使用 RMAN 的 DUPLICATE 命令可根据目标数据库备份创建数据库副本。

创建数据库副本:

1.创建辅助实例的 Oracle 口令文件。
2.
建立到辅助实例的 Oracle Net 连接。
3.
创建辅助实例的初始化参数文件。

4.在 NOMOUNT 模式下启动辅助实例。
5.
装载或打开目标数据库。

6.确保备份和归档重做日志文件可用。

7.根据需要分配辅助通道。

8.执行 DUPLICATE 命令。

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

请按如下方式指定参数:

DB_NAME
如果数据库副本与目标数据库在同一 Oracle 主目录中,则它们的名称必须不同。
在 DUPLICATE 命令中使用相同值。

DB_BLOCK_SIZE
指定的值应与为目标数据库设置的值相同。

指定用于控制文件命名的参数:
指定下列参数可控制辅助数据库的文件命名:

CONTROL_FILES

DB_FILE_NAME_CONVERT

LOG_FILE_NAME_CONVERT

在 NOMOUNT 模式下启动实例 :
在 NOMOUNT 模式下启动辅助实例。
根据用来启动实例的文本初始化参数文件创建服务器参数文件 (SPFILE)。

确保备份和归档重做日志文件可用 :

在副本主机上必须能访问所有目标数据库数据文件的备份。

备份可以是完全备份和增量备份的组合。

在副本主机上必须能访问恢复数据库副本所需的归档重做日志文件。

归档重做日志文件可以是:

--介质管理器上的备份

--映像副本

--实际的归档重做日志文件

分配辅助通道 :

使用 RMAN 的 DUPLICATE 命令:
RMAN> RUN

{ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;

ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;



DUPLICATE TARGET DATABASE to auxdb;

}

当您执行 DUPLICATE 命令时,RMAN 会执行下列操作:

1.创建数据库副本的控制文件
2.
将目标数据文件还原到数据库副本

3.使用所有可用的增量备份和归档重做日志文件执行不完全恢复

4.关闭辅助实例后又重新启动它

5.通过 RESETLOGS 选项打开数据库副本

6.创建联机重做日志文件

7.为数据库副本生成新的唯一 DBID

指定 DUPLICATE 命令的选项
请在执行 DUPLICATE 命令时根据需要指定其它选项。

SKIP READONLY:用于排除只读表空间数据文件。

SKIP TABLESPACE:用于从目标数据库中排除表空间。不能排除 SYSTEM 表空间或包含还原段或回退段的表空间。

NOFILENAMECHECK:用于防止 RMAN 检查目标数据库数据文件是否与正在使用的数据库副本数据文件同名。当目标数据库和数据库副本的数据文件和重做日志文件使用相同的名称时,必须指定此选项。当创建数据库副本的主机具有与目标数据库主机一样的磁盘配置、目录结构和文件名时,通常使用此选项。如果这种情况下未指定 NOFILENAMECHECK,RMAN 会返回错误。

OPEN RESTRICTED:用于在数据库打开之后自动启用 RESTRICTED SESSION。

具体实验:

1.1. 复制数据库

1.1.1. 创建源库备份

[oracle@ocmu ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Sun Mar 31 15:39:16 2013

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

connected to target database: ORA11GR2 (DBID=116453860)

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

using target database control file instead of recovery catalog

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters are successfully stored

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

Starting backup at 31-MAR-13

current log archived

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=20 device type=DISK

channel ORA_DISK_1: starting archived log backup set

channel ORA_DISK_1: specifying archived log(s) in backup set

input archived log thread=1 sequence=8 RECID=1 STAMP=811520735

input archived log thread=1 sequence=9 RECID=2 STAMP=811520750

input archived log thread=1 sequence=10 RECID=3 STAMP=811520772

input archived log thread=1 sequence=11 RECID=4 STAMP=811520783

input archived log thread=1 sequence=12 RECID=5 STAMP=811520796

input archived log thread=1 sequence=13 RECID=6 STAMP=811525192

channel ORA_DISK_1: starting piece 1 at 31-MAR-13

channel ORA_DISK_1: finished piece 1 at 31-MAR-13

piece handle=/u01/app/FRA/ORA11GR2/backupset/2013_03_31/o1_mf_annnn_TAG20130331T153953_8oht29yn_.bkp tag=TAG20130331T153953 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:01:04

Finished backup at 31-MAR-13

Starting backup at 31-MAR-13

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

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

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

input datafile file n