Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103782949
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-21 20:03:57

  3. 恢复目录

  3.1.恢复目录的概念

  恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。

  恢复目录可以存在于ORACLE数据库的计划中。

  虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。

  恢复目录数据库不能使用恢复目录备份自身。

  3.2.建立恢复目录

  第一步,在目录数据库中创建恢复目录所用表空间:

SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;

  表空间已创建。

  第二步,在目录数据库中创建RMAN 用户并授权:

SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;

  用户已创建。

SQL> grant recovery_catalog_owner to rman ;

  授权成功。
SQL> grant connect, resource to rman ;

  授权成功。

  第三步,在目录数据库中创建恢复目录

C:\>rman catalog rman/rman

  恢复管理器:版本8.1.6.0.0 - Production

RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录
RMAN>create catalog tablespace rman_ts;
RMAN-06431:恢复目录已创建

  注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有限制。

  3.3.使用恢复目录的优势

   可以存储脚本;

   记载较长时间的备份恢复操作;

  4. 启动RMAN

  RMAN为交互式命令行处理界面,也可以从企业管理器中运行。

  为了使用下面的实例,先检查环境符合:

   the target database is called "his" and has the same TNS alias

   user rman has been granted "recovery_catalog_owner "privileges

   目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接  

   the recovery catalog database is called "rman" and has the same TNS alias

   the schema containing the recovery catalog is "rman" (same password)

  在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。

  下例是环境变量的示范:

NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS

  为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。

  4.1.使用不带恢复目录的RMAN

  设置目标数据库的 ORACLE_SID ,执行:

% rman nocatalog
RMAN> connect target
RMAN> connect target internal/@his

  4.2.使用带恢复目录的RMAN

% rman rman_ts rman/rman@rman
RMAN> connect target
% rman rman_ts rman/rman@rman target internal/@his

  4.3.使用RMAN

  一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:

RMAN> resync catalog;
RMAN-03022:正在编译命令:resync
RMAN-03023:正在执行命令:resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync

  使用脚本的实例:

RMAN> execute script alloc_1_disk;

  创建或者替代存储的脚本:

RMAN> replace script alloc_1_disk {
2> allocate channel d1 type disk;
3> }

  5.注册或者注销目标数据库

  5.1.注册目标数据库

  数据库状态:

    恢复目录状态:打开

    目标数据库:加载或者打开

  目标数据库在第一次使用RMAN之前必须在恢复目录中注册:

  第一步,启动恢复管理器,并且连接目标数据库:

C:\>rman target internal/oracle@his catalog rman/rman@rman

  恢复管理器:版本8.1.6.0.0 - Production

RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库

  第二步,注册数据库:

RMAN> register database;
RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的resync
RMAN-08004:完成全部resync
 
  5.2.注销目标数据库

  RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。

  为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。

C:\>rman target internal/oracle@his catalog rman/rman@rman

  恢复管理器:版本8.1.6.0.0 - Production

RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库

  其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:

   连接到目标数据库,查询db表:

SQL> select * from db;

DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
1 3021445076 2

  获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:

SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);
PL/SQL 过程已成功完成。

  至此,注销数据库操作完成。

阅读(118) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~