随着版本不断地提升,rman作为标准备份工具的作用地位是不断的被增强的。从过去传统的备份还原工具,到现在新环境迁移、dg搭建,
随着版本不断地提升,rman作为标准备份工具的作用地位是不断的被增强的。从过去传统的备份还原工具,到现在新环境迁移、dg搭建,我们都可以看到rman工具增强的身影。
本篇就以rman为工具,利用rman备份在新主机上搭建服务名相同的数据库。由于环境所限,笔者采用的方法是:先进行备份获取,之后删除掉原数据库,最后使用备份重新搭建(包括参数、控制文件和数据文件恢复)。
推荐阅读:
rman 配置归档日志删除策略
oracle基础教程之通过rman复制数据库
rman备份策略制定参考内容
rman备份学习笔记
oracle数据库备份加密 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删除数据库。
删除数据库确认。
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原则创建的数据库目录大都被删除。相关文件也被删除。
下面就可以进行恢复过程。
更多详情见请继续阅读下一页的精彩内容: