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