使用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 ORA_DISK_1

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

piece handle=/onlinebk/spfile.bks tag=TAG20140303T165518 comment=NONE

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

Finished backup at 03-MAR-14

如果进行offline备份,则需要将数据库完整关闭(非abort关闭)。也不需要进行归档文件备份。

RMAN> shutdown immediate;

database closed

database dismounted

Oracle instance shut down

RMAN> startup mount;

connected to target database (not started)

Oracle instance started

database mounted

进行备份。

RMAN> backup database format '/oflinebk/%U';

Starting backup at 03-MAR-14

allocated channel: ORA_DISK_1

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

piece handle=/oflinebk/09p28ukd_1_1 tag=TAG20140303T165713 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 '/oflinebk/control.bks';

Starting backup at 03-MAR-14

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backupset

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

piece handle=/oflinebk/control.bks tag=TAG20140303T165824 comment=NONE

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

Finished backup at 03-MAR-14

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

Starting backup at 03-MAR-14

using channel ORA_DISK_1

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

piece handle=/oflinebk/spfile.bks tag=TAG20140303T165841 comment=NONE

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

Finished backup at 03-MAR-14

必要的备份元素已经具备。注意:如果从完善的角度,对TNS网络参数三文件:tnsnames.ora、listener.ora和sqlnet.ora最好也进行备份。

3、数据库删除

配置XWindows工具调用dbca将原数据库删除。

[oracle@SimpleLinuxUp oflinebk]$ export DISPLAY=192.168.0.1:0.0

[oracle@SimpleLinuxUp oflinebk]$ xclock

Warning: Missing charsets in String to FontSet conversion

调用dbca删除数据库。

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

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

删除数据库确认。

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/u01/app/oracle/product/10.2.0/db_1/dbs/initoratest.ora'

注意:使用dbca删除数据库后,根据OFA原则创建的数据库目录大都被删除。相关文件也被删除。

下面就可以进行恢复过程。

相关推荐