日期:2014-05-16  浏览次数:20383 次

使用RMAN进行同名数据库异地环境搭建实验


随着版本不断地提升,RMAN作为标准备份工具的作用地位是不断的被增强的。从过去传统的备份还原工具,到现在新环境迁移、DG搭建,我们都可以看到RMAN工具增强的身影。

本篇就以RMAN为工具,利用RMAN备份在新主机上搭建服务名相同的数据库。由于环境所限,笔者采用的方法是:先进行备份获取,之后删除掉原数据库,最后使用备份重新搭建(包括参数、控制文件和数据文件恢复)。

1、环境介绍

我们选择Linux环境下的10.2.0.1进行实验。

SQL> select * from v$version;

BANNER

---------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

当前处在归档模式下。

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival            Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence    2

Next log sequence to archive  4

Current log sequence          4

2、备份获取

RMAN支持online和offline两种备份模式。如果选择online备份模式,Oracle就不需要因为备份操作停机,但是恢复过程需要配合redo log的apply过程。如果选择offline备份模式,Oracle需要在备份过程中停机,但是理论上是不需要archive redo log进行支持的。

如果Oracle运行在archived模式下,RMAN可以进行online和offline模式。如果是noarchived模式,RMAN就只能在offline模式备份了。

当前环境变量:

[oracle@SimpleLinuxUp ~]$ env | grep ORA

ORACLE_SID=oratest

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

笔者对online和offline备份,都进行保留。首先创建驻留目录:

[root@SimpleLinuxUp ~]# cd /

[root@SimpleLinuxUp /]# mkdir onlinebk

[root@SimpleLinuxUp /]# mkdir oflinebk

[root@SimpleLinuxUp /]# chown oracle:oinstall onlinebk/

[root@SimpleLinuxUp /]# chown oracle:oinstall oflinebk/

[root@SimpleLinuxUp /]# ls -l | grep linebk

drwxr-xr-x  2 oracle oinstall  4096 Mar  3 16:46 oflinebk

drwxr-xr-x  2 oracle oinstall  4096 Mar  3 16:46 onlinebk

如果进行online备份,数据库不需要关闭。备份范围为:参数文件、数据文件、控制文件。

(online backup)

RMAN> connect target /

connected to target database: ORATEST (DBID=3370560176)

using target database control file instead of recovery catalog

RMAN> backup database format '/onlinebk/%U'; --数据库

Starting backup at 03-MAR-14

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backupset

(篇幅原因,有省略……)

piece handle=/onlinebk/04p28ubo_1_1 tag=TAG20140303T165227 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 03-MAR-14

RMAN> backup archivelog all format '/onlinebk/%U'; --已经归档日志

Starting backup at 03-MAR-14

current log archived

using channel ORA_DISK_1

(篇幅原因,有省略……)

piece handle=/onlinebk/05p28uds_1_1 tag=TAG20140303T165420 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 03-MAR-14

RMAN> backup current controlfile format '/onlinebk/control.bks';

Starting backup at 03-MAR-14

using channel ORA_DISK_1

(篇幅原因,有省略……)

piece handle=/onlinebk/control.bks tag=TAG20140303T165457 comment=NONE

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

Finished backup at 03-MAR-14

RMAN> backup spfile format '/onlinebk/spfile.bks';

Starting backup at 03-MAR-14

using channel