您好,欢迎访问一九零五行业门户网

RMAN实例入门,备份与恢复

本文用step by step的方式介绍一下rman的入门使用,通常保存备份目录的目录数据库和目标数据库应该在不同的机器上,这里两个数据库
本文用step by step的方式介绍一下rman的入门使用,通常保存备份目录的目录数据库和目标数据库应该在不同的机器上,这里两个数据库在同一台机器上.
在listener.ora中加入
    (sid_desc =
      (global_dbname = rmtgt)
      (oracle_home = d:\oracle\product\10.2.0\db_1)
      (sid_name = but)
    )
tns配置如下:(让target 为静态注册,这样startup nomount的时候才能从rman连上)
target =
  (description =
    (address_list =
      (address = (protocol = tcp)(host = nbk-dal-625040.ap.bt.com)(port = 1521))
    )
    (connect_data =
      (server = dedicated)
      (service_name = rmtgt)
    )
  )
catalog =
  (description =
    (address_list =
      (address = (protocol = tcp)(host = nbk-dal-625040.ap.bt.com)(port = 1521))
    )
    (connect_data =
      (server = dedicated)
      (service_name = orcl)
    )
  )
1,在保存备份目录的目录数据库建立一个rman用户并创建相应的权限
sqlplus sys/sys@catalog as sysdba
create tablespace rmants datafile 'd:\oracle\product\10.2.0\oradata\orcl\rmants.dbf' size 20m;
create user rman identified by rman default tablespace rmants temporary tablespace temp quota unlimited on rmants;
grant recovery_catalog_owner to rman;
grant connect, resource to rman;
2,在目录数据库中创建恢复目录
c:\>rman catalog rman/rman@catalog
recovery manager: release 10.2.0.1.0 - production on thu jan 12 15:02:22 2012
copyright (c) 1982, 2005, oracle.  all rights reserved.
connected to recovery catalog database
rman> create catalog tablespace rmants;
recovery catalog created
注册目标数据库到恢复目录,注意这里的连接串是targe
c:\>rman target sys/sys@target
recovery manager: release 10.2.0.1.0 - production on thu jan 12 15:08:42 2012
copyright (c) 1982, 2005, oracle.  all rights reserved.
connected to target database: but (dbid=1215064705)
连接到目录数据库,注册目标数据库
rman> connect catalog rman/rman@catalog;
connected to recovery catalog database
rman> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
到此为止前面的准备工作都做好了,,下面就可以使用rman 来进行备份和恢复了。
下面来进行备份:
1,创建一个目录 d:\oracle\rmanrep
2,c:\>rman target sys/sys@target catalog rman/rman@catalog
3,rman> run{
2>  allocate channel c1 type disk;
3>  backup database format 'd:\oracle\rmanrep\butdb.dmp';
4> }
目标数据库备份为d:\oracle\rmanrep\butdb.dmp
rman> list backup; 可以查看备份的信息.
如果想删掉备份,(194 为备份的bs key)
rman> allocate channel for delete type disk;
rman> change backupset 194 delete;
下面来做恢复
1,将目标数据库shutdown,将undotbs01.dbf文件重命名为undotbs01.dbf.bak模拟数据文件丢失.
2,将目标数据库 startup mount
3,在rman下恢复
a,c:\>rman target sys/sys@target
recovery manager: release 10.2.0.1.0 - production on thu jan 12 17:59:50 2012
copyright (c) 1982, 2005, oracle.  all rights reserved.
connected to target database: but (dbid=3712141887, not open)
注意这里可以看到数据库不是open状态,网络字符串'target'必须是通过静态注册的才能连接上.
这时候open数据库
b,rman> alter database open;
using target database control file instead of recovery catalog
rman-00571: ===========================================================
rman-00569: =============== error message stack follows ===============
rman-00571: ===========================================================
rman-03002: failure of alter db command at 01/12/2012 18:01:42
ora-01157: cannot identify/lock data file 4 - see dbwr trace file
ora-01110: data file 4: 'd:\oracle\product\10.2.0\oradata\but\users01.dbf'
可以看到datafile 4找不到
c,
rman> restore datafile 4;
starting restore at 12-jan-12
using channel ora_disk_1
channel ora_disk_1: starting datafile backupset restore
channel ora_disk_1: specifying datafile(s) to restore from backup set
restoring datafile 00004 to d:\oracle\product\10.2.0\oradata\but\users01.dbf
channel ora_disk_1: reading from backup piece d:\oracle\rmanrep\butdb.dmp
channel ora_disk_1: restored backup piece 1
piece handle=d:\oracle\rmanrep\butdb.dmp tag=tag20120112t172743
channel ora_disk_1: restore complete, elapsed time: 00:00:03
finished restore at 12-jan-12
d,
rman> recover datafile 4;
starting recover at 12-jan-12
using channel ora_disk_1
starting media recovery
media recovery complete, elapsed time: 00:00:04
finished recover at 12-jan-12
e,恢复成功,打开数据库,
rman> alter database open;
database opened
其它类似信息

推荐信息