首页 > 数据库 > MySQL > 正文

RMAN中catalog和nocatalog区别介绍

2024-07-24 12:39:41
字体:
来源:转载
供稿:网友

nocatalog方式就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息,若为catalog则必须要首先要创建目录备份数据库,建立恢复目录.

catlog建立恢复目录的例子:

1.创建Catalog所需要的表空间

SQL>create tablespace rman_ts  datafile '/u01/oracle/oradata/ora10g/rmants.dbf'  size 20M;

2.创建RMAN用户并授权:

  1. SQL>create user rman identified by rman default tablespace rman_ts quota unlimited on rman_ts; 
  2. SQL>grant recovery_catalog_owner to rman;(grant connect to rman) 

查看角色所拥有的权限:

select * from dba_sys_privs where grantee='RECOVERY_CATALOG_OWNER';(RECOVER_CATALOG_OWNER,CONNECT,RESOURCE)

3.创建恢复目录

  1. oracle>rman catalog rman/rman 
  2. RMAN>create catalog tablespace rman_ts; 
  3. RMAN>register database;(database是target database
  4. database registered in recovery catalog 
  5. starting full resync of recovery catalog 
  6. full resync complete  --Vevb.com 
  7. RMAN> connect target /; 

以后要使用备份和恢复,需要连接到两个数据库中,命令:

oracle>rman target / catalog rman/rman(第一斜杠表示target数据库,catalog表示catalog目录 rman/rman表示catalog用户名和密码)

命令执行后显示:

  1. Recovery Manager: Release 10.2.0.1.0 - Production on Wed Dec 10 15:00:42 2008 
  2. Copyright (c) 1982, 2005, Oracle.  All rights reserved. 
  3. connected to target database: ORA10G (DBID=3988862108) 
  4. connected to recovery catalog database 

命令解释:

Report schema  Report shema是指在数据库中需找schema

List backup    从control读取信息

Crosscheck backup   看一下backup的文件,检查controlfile中的目录或文件是否真正在磁盘上.

Delete backupset 24  24代表backupset 的编号,既delete目录,也delete你的文件.

当通过rman nocatalog方式备份Oracle,Oracle使用controlfile存放备份信息,因此,当使用rman nocatalog方式备份时,备份controlfile是非常重要的.

初始化参数control_file__record_keep_time设置备份信息保存时间,到规定时间就自动清除以前的备份信息:

SQL> alter sysem set control_file_record_keep_time=7 scope=spfile;

有一个问题,当使用rman nocatalog恢复时,数据库必须是处于“mount”状态的,而Oracle startup mount的前提条件是control必须存在,因此,你必须在恢复datafile之前先恢复controlfile,使用rman catalog方式时,可以startup nomount然后restore controlfile,但使用rman nocatalog时,必须先用文件方式恢复controlfile.

下面对比一下rman nocatalog和rman catalog的恢复时的步骤,以便建立正确的备份策略,以下的恢复都是在online状态下的备份.

rman nocatalog恢复:

1) 建立oracle运行环境(包括init或sp文件)

2) 文件方式恢复controlfile到init文件指定的位置

3) startup mount

4) rman,恢复datafile

5) alter database open resetlogs

rman catalog恢复:

1) 建立oracle运行环境(包括init或sp文件)

2) rman,restore controfile

3) alter database mount

4) rman,restore datafile

5) alter database open resetlogs

可以看出,rman nocatalog备份时,必须用文件方式备份controlfile.

另外,由于nocatalog时利用controlfile存放备份信息,建议将Oracle参数文件中的CONTROL_FILE_RECORD_KEEP_TIME值加大(缺省为7天),该参数在$ORACLE_HOME/dbs/initSID.ora中(9i后也可能在spfile中,只能通过Oracle语句更改),该参数control_file__record_keep_time设置备份信息保存时间,到规定时间就自动清除以前的备份信息.

  1. SQL> show parameter control 
  2. NAME                                 TYPE        VALUE 
  3. ------------------------------------ ----------- ------------------------------ 
  4. control_file_record_keep_time        integer     7 
  5. control_files                        string      D:/APP/ADMINISTRATOR/ORADATA/O 
  6. control_management_pack_access       string      DIAGNOSTIC+TUNING 
  7. SQL> alter system set control_file_record_keep_time=14 scope=both; 

系统已更改.

  1. SQL> select name,value,issys_modifiable from v$parameter where name='control_file_record_keep_time'
  2. NAME        VALUE      ISSYS_MOD 
  3. --------------- ---------- --------- 
  4. control_file_re   14         IMMEDIATE

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表