oracle rman 备份/恢复
ORACLE RMAN 备份恢复
一、为什么要用RMAN
RMAN是Recovery Manager的简称,也就是恢复管理器,是ORACLE的备份恢复工具。我们上几章所讲的备份恢复,是用户管理的备份恢复。用户管理的备份恢复已经可以完成各种备份恢复操作,为什么还要用RMAN呢?最重要的一点是,当数据文件比较多,而且有时新增数据文件、有时减少数据文件。备份的时间一长,有时候我们自己都容易忘记谁被备份了,而谁还没有备份。如果我想让每个数据文件都有两份备份,那么哪个数据文件的备份数量还达不到要求。等等,这些问题,在用户管理的备份恢复下,因为你备份了谁,在ORACLE中并没有记录,你必须去操作系统中查阅磁盘文件,如果数据文件比较多,这将是一个非常繁锁的过程。而且,也很容易出现遗漏。我见过一家企业,因为备份策略是以前就建好的,没有使用RMAN,运行了很久,没有出过什么问题,因此也没有人敢提出升级到RMAN。数据库管理就是这样,如果它运行的好好的,性能、安全性上都能满足需要,就没有必要动它。谁知道改变它会有什么后果呢。这家企业的备份策略使用了大量的操作系统Shell脚本、ORACLE中SQL*Plus脚本,自己建立了很多表,每备份一次,都把备份的数据件名记进表中,需要知道数据文件、控制文件的备份情况时,就去统计表。其实这基本上实现了简单的RMAN的功能。但是方便用户管理备份,这只是RMAN诸多优点中的一项,RMAN的备份性能要高于用户管理的备份,RMAN可以实现块级恢复等等,这些功能就不要利用脚本自己就可以实现的了。总之,经过8i、9i、10G几代的发展,RMAN已经成为了ORACLE中的最要的备份恢复工具,我们有什么备份恢复操作,要尽量使用RMAN来完成。好,下面,我们就开始介绍RMAN的使用。
二、如何进入RMAN
使用RMAN和使用SQL*Plus一样。只是在连接SYS用户时,不需要AS SYSDBA。
D:\Documents and Settings\JJBOBO1>set oracle_sid=uplooking
D:\Documents and Settings\JJBOBO1>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 5月 28 14:07:20 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: FOUR10G (DBID=2924364082)
Target的作用,是报诉ORACLE,我们所连接的是目标数据库。我们也可以在进行RMAN之后再连接: RMAN> connect target /
已连接到目标数据库
当然,也可以把“ / ”换为SYS/密码。但是不能像SQL*Plus那样,把CONNECT省略为CONN。
其实在RMAN中,无论用什么用户连接,RMAN都将自动的加上去AS SYSDBA。所有,我们就不必再加AS SYSDBA了。
我们可以在RMAN中执行一些与备份恢复密切相关的数据库操作。如关闭数据库或打开数据库: RMAN> shutdown immediate;
使用目标数据库控制文件替代恢复目录
数据库已关闭
数据库已卸载
Oracle 实例已关闭
这也证明了虽然没有加上AS SYSDBA,但是仍然以管理用户连接到了RMAN。因为只有管理用户,才能执行关闭、打开数据库的操作。
但是,与备份恢复没有任何关系的操作,是不能在RMAN中执行的。比如说,创建一个表: RMAN> create table aaa(id number);
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: 分析输入命令时出错
RMAN-01009: 语法错误: 找到 "identifier": 应为: "catalog, global, script" 中的一个
RMAN-01008: 错误标识符: table