19.2 使用恢复目录
恢复目录是使用RMAN工具进行备份时要使用的存储备份信息的数据库,这也是Oracle推荐使用的一种方式,这样存储要比直接把目标数据库中内容存放到控制文件中更节省空间。本节将讲述如何使用恢复目录备份数据。
19.2.1 创建恢复目录
为了确保数据的安全,一般情况下都是把恢复目录数据库创建到另外一个Oracle服务器中。在创建恢复目录时还要考虑数据库的容量,这个容量的大小当然要取决于目标数据库容量的大小。一般情况下,在恢复目录数据库设置的恢复目录表空间可以设置为50MB左右。
创建恢复目录分为连接恢复目录的数据库、创建恢复目录的用户、给恢复目录用户赋角色以及创建恢复目录4个步骤。
1.连接恢复目录的数据库
恢复目录的用户就是指在备份目标数据库时使用的用户,这个用户与其他用户不同,必须要赋予RECOVERY_CATALOG_OWNER的角色才可以。
首先在SQL*Plus中连接到恢复目录所在的数据库。连接数据库的语法如下:
conn username/password@servicename;
【语法说明】
❑username:登录恢复目录数据库的用户名。
❑password:登录恢复目录数据库的密码。
❑servicename:恢复目录数据库的服务名。
【示例1】连接恢复目录数据库
下面就利用上面的语句连接恢复目录数据库,使用SYSTEM用户名,密码是abc123,连接的服务名是RM。代码如下:
SQL>conn SYSTEM/abc123@RM;
2.创建恢复目录的用户
由于使用恢复目录时需要一些权限,所以说最好单独为恢复目录创建一个用户。创建用户的语句如下:
CREATE USER username IDENTIFIED BY password
[DEFAULT TABLESPACE tablespace_name]
【语法说明】
❑username:新创建的恢复数据库的用户名。
❑password:新创建的恢复数据库的密码。
❑[DEFAULT TABLESPACE tablespace_name]:可选项,是给当前用户设置一个默认表空间,如果不设置默认表空间,则默认的表空间是SYSTEM表空间。最好给恢复目录设置一个默认的表空间,这样便于管理备份的数据。
【示例2】创建恢复目录用户RMANUSER
下面就利用上面的语句完成恢复目录用户的创建。这里用户名设置成RMANUSER,密码设置成RMAN,使用的默认表空间为RMANTABLESPACE。具体的创建语句如下:
CREATE USER RMANUSER IDENTIFIED BY RMAN
DEFAULT TABLESPACE RMANTABLESPACE
3.给恢复目录用户赋角色
只创建一个数据库的用户是不能实现RMAN备份与恢复工作的,还需要给该用户赋予权限和角色。恢复目录用户应该拥有数据库管理员的权限,并在此基础上还要拥有RECOVERY_CATALOG_OWNER的权限。在此假设恢复目录用户已经拥有了数据库管理员的权限,这里只给恢复目录用户赋予RECOVERY_CATALOG_OWNER的角色。具体的语句如下:
GRANT RECOVERY_CATALOG_OWNER TO RMANUSER
4.创建恢复目录
使用恢复目录用户登录数据库后就可以创建恢复目录,上面的3步都是在SQL*Plus中完成的,下面需要在恢复目录管理器中完成,也就是在图19.1所示界面中完成。
图 19.1 进入恢复管理器
在图19.1所示界面中,连接到恢复目录数据库。具体的连接语句如下:
RMAN>connect catalog RMANUSER/RMAN@RM
连接到RM恢复目录数据库之后,可以使用下面的语句创建恢复目录:
RMAN>create catalog
为了方便自行测试恢复目录的使用,可以直接在本机的数据库中创建一个新的表空间,并在数据库上新创建一个用户,赋予RECOVERY_CATALOG_OWNER的角色,创建好后直接使用该用户登录本机数据库,并在本机数据库上创建一个恢复目录。具体操作效果如图19.2所示。
图 19.2 在本机数据库中创建恢复目录
在本机创建恢复目录时经常会遇到以下两个问题:
(1)在连接数据库时出现无监听程序的提示
在登录本机的恢复目录数据库时,如果输入了服务名,就会出现图19.3所示的界面。
图 19.3 无监听程序错误界面
要解决无监听程序错误的问题,直接去掉Oracle的服务名即可,登录远程数据库才需要使用数据库的服务名。
(2)在创建恢复目录时出现无权限的创建
在创建恢复目录时如果创建恢复目录的用户没有系统管理员的权限,那么就会出现图19.4所示的界面。
图 19.4 无权限创建错误界面
出现无权限创建的页面后,只需要给用户RMANUSER赋予相应的权限就可以解决。如果把上述的两个问题解决了,则在创建恢复目录时就能够出现图19.2所示的界面。
说明 使用恢复目录可以在一处同时存放多个目标数据库的文件,方便数据库管理员的管理,这就要求尽量把恢复目录数据库放置到与目标数据库不同的服务器上。另外,一个最重要的优点就是恢复目录可以长时间保存RMAN备份的源数据。