Oracle RMAN的catalog并不是指标备份恢复操作的一个必要组件,但oracle推荐使用该组件。启用之后,归档日志、备份集、镜像复制等备份信息的保存地点是RMAN资料库(catalog),

记录了所有的在DISK及SBT设备上的各种备份的详细信息,rman的catalog是一个逻辑概念,物理保存点可以在两个不同的地方,目标数据库的控制文件中及catalog中,

控制文件在默认情况下无须配置就可以保存rman资料库,而catalog需要创建、配置后才可以使用。

SYS@ orcl >show parameter control_file_record_keep_time
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time         integer     7

默认情况下,控制文件能够保存多少短期性信息受制与参数control_file_record_keep_time

是控制文件必须将归档日志、备份集合镜像复制等保存在rman资料库中的短期性信息至少保留7天,控制文件自动增长

SYS@ orcl >select type,records_total,records_used from v$controlfile_record_section where type='ARCHIVED LOG';
TYPE                 RECORDS_TOTAL RECORDS_USED
---------------------------- ------------- ------------
ARCHIVED LOG                   308        200

RECORDS_TOTAL为308,说明现在控制文件中只能够保存308个归档日志的归档日志记录槽。

SYS@ orcl >host ls -l /u01/app/oracle/oradata/orcl/control01.ctl
-rw-r----- 1 oracle oinstall 10076160 Jun  4 17:35 /u01/app/oracle/oradata/orcl/control01.ctl

参数 control_file_record_keep_time最大值365

寻回一个控制文件的自动备份

RMAN> catalog backuppiece '/u01/app/oracle/fra/ORCL/autobackup/2019_05_30/o1_mf_s_1009648986_ggzbltkq_.bkp';cataloged backup piece
backup piece handle=/u01/app/oracle/fra/ORCL/autobackup/2019_05_30/o1_mf_s_1009648986_ggzbltkq_.bkp RECID=38 STAMP=1010135802

寻回一个数据文件的备份--同上

寻回归档日志

RMAN> catalog archivelog '/u01/app/oracle/fra/ORCL/archivelog/2019_05_27/o1_mf_1_277_ggq5qlvl_.arc';cataloged archived log
archived log file name=/u01/app/oracle/fra/ORCL/archivelog/2019_05_27/o1_mf_1_277_ggq5qlvl_.arc RECID=203 STAMP=1010136222

将快速恢复区中的所有文件探测一遍,如果是rman资料库汇总没有记载的,则全部添加回资料库

RMAN> catalog db_recovery_file_dest;

为什么要使用catalog

--1 保存比控制文件多得多的有关归档日志和备份的历史信息,使rman保存资料库信息不受参数control_file_record_keep_time的限制

--2 使rman可以用run命令调用catalog中的存储脚本,由于catalog可以在另外一个服务器的db中,rman脚本自身也提供了高可用性

--3列出任意时间点上的表空间和数据库文件结构,report schema 命令可以使用at子句查看某一时间点上的数据库结构

--4 简化在丢失控制文件情况下的还原和恢复操作。恢复控制文件简化到只要执行restore controlfile即可,无须from子句,以及在命令上告知控制文件备份的位置。

1 创建catalog

--在catalog所使用的db上创建catalog的schema

--为catalog填充对象,包括表、索引、视图、PL/SQL包等

虽然catalog的方案可以创建在目标db上,可是一旦目标db的控制文件损坏,由于db无法打开,导致catalog信息无法访问。所以应该只是将catalog的方案放到另外一个服务器的db上,为catalog db,tns连接别名

--sqlplus sys/oracle@tns_name as  sysdba
--在目标库上创建表空间,用户并赋予相应的权限
SQL> create tablespace rc_data datafile '/u01/app/oracle/oradata/orcl/rc_data01.dbf' size 20m autoextend on next 4m;
Tablespace created.
SQL> create user rcowner identified by oracle
temporary tablespace temp
default tablespace rc_data
quota unlimited on rc_data;  2    3    4
User created.
SQL> grant recovery_catalog_owner to rcowner;
Grant succeeded.
[oracle@DSI ~]$ rman catalog rcowner/oracle@orcl  ---这里在本机测试,正常的应该用目标库的tns_name
connected to recovery catalog database
RMAN> create catalog;
recovery catalog created
--登录数据库查看对象
SQL> conn rcowner/oracle
Connected.
SQL> select object_type,count(*) objects from user_objects group by object_type;
OBJECT_TYPE           OBJECTS
------------------- ----------
SEQUENCE             1
PACKAGE              2
PACKAGE BODY             2
TYPE BODY             1
TRIGGER              3
TABLE                44
INDEX                96
FUNCTION             2
VIEW                98
TYPE                 3
10 rows selected.

至此,rman catalog已经准备完成,可供目标数据库注册使用了。

--使用catalog

目标数据库必须在catalog中注册之后才能使用catalog

--注册与同步

[oracle@DSI ~]$ rman target sys/oracle@orcl catalog rcowner/oracle@orcl ##后者tns_name
Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jun 17 15:37:22 2019
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: ORCL (DBID=1534031567)
connected to recovery catalog database

将目标数据库的注册信息写入catalog

RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete---表名register命令还完成了第一次完全同步完成了

--向catalog中相应的表写入数据,比如在db的表发现目标数据的内容

SQL> select * from rcowner.db;DB_KEY    DB_ID CURR_DBINC_KEY
---------- ---------- --------------1 1534031567           2

--将目标数据库控制文件中的rman资料库上传到catalog的相关表中

--最后同步控制文件与catalog

从此以后,使用rman连接目标数据库时记得必须使用catalog子句同时连接catalog,这样才能尽量保证控制文件和catalog直接的信息同步,比如

[oracle@DSI ~]$ rman target sys/oracle@orcl catalog rcowner/oracle@orcl

信息同步--局部同步和完全同步

--局部同步指同步归档日志信息、备份集信息和镜像复制信息。

--完全同步则包括除了局部同步的所有信息之外,还要同步数据库表空间和数据文件物理结构的信息。

发生完全同步时,RMAN会先创建一个当前目标控制文件的快照,(实际上就是当前控制文件的副本),然后RMAN会利用此快照与catalog进行比较,

如有需要,rman就会将目标控制文件中的归档日志信息、备份信息、镜像复制进行以及数据库表空间和数据文件物理结构上传至catalog。

可以查看控制文件快照的路径。控制文件的快照,执行任务备份命令时都会生成一个快照文件

RMAN> show snapshot controlfile name;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default
[root@DSI oracle]# ll /u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f
-rw-r----- 1 oracle oinstall 10076160 Jun 17 15:38 /u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f

也可以使用configure修改路径

RMAN> configure snapshot controlfile name to '/home/oracle/snapshot.ctl'; ###如果路径设置错误,报错,请看上一篇。

在同时连接到目标db和catalog执行rman命令时,不论是局部同步还是全局同步,同步操作都能够由rman执行相关命令(backup、configure)时自动判断、自动发起

完全同步也可以通过”resync catalog”手动发起,一般没有必要这样做,但以下3种情况除外

--1 使用rman执行了需要同步的操作(比如configure命令备份某个表空间),但是在执行此类命令时由于种种原因rman没有连接catalog,只连接了目标db

--2 dba备份db的频率过低,很久不用一次rman,这样,由于control_file_record_keep_time参数的设置,catalog可能会遗忘某些归档日志信息

--3 在db物理结构发生变化之后,比如:添加数据文件,新建表空间等

RMAN> resync catalog;
starting full resync of recovery catalog
full resync complete

--rman能力的增强

有了catalog,rman保存历史的信息能力很强大,完全不受参数control_file_record_keep_time的限制,另外,catalog还补全了rman所有的功能

--在nomount状态下查看rman 资料库

--查看数据库的物理结构历史

--将rman脚本保存在rman资料库中

--将数据库恢复到以前的incarnation

前3个功能只用控制文件是无法提供的。

RMAN> list backupset summary;

有了catalog,数据库没有mount也不是问题,记得连接catalog模式

第一个功能:没有catalog时执行restore命令还原控制文件时必须给出from 子句说明控制文件的备份在何处,而使用catalog时from子句不是必要的

第二个功能:report schema at命令能够显示数据库中数据文件的历史结构

RMAN> report schema;
Report of database schema for database with db_unique_name ORCLList of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    780      SYSTEM               YES     /u01/app/oracle/oradata/orcl/system01.dbf
2    720      SYSAUX               NO      /u01/app/oracle/oradata/orcl/sysaux01.dbf
3    1250     UNDOTBS1             YES     /u01/app/oracle/oradata/orcl/undotbs01.dbf
4    5        USERS                NO      /u01/app/oracle/oradata/orcl/users01.dbf
5    500      TEST                 NO      /u01/app/oracle/oradata/orcl/test01.dbf
6    50       ASSM                 NO      /u01/app/oracle/oradata/orcl/assm01.dbf
7    50       MSSM                 NO      /u01/app/oracle/oradata/orcl/mssm01.dbf
8    20       RC_DATA              NO      /u01/app/oracle/oradata/orcl/rc_data01.dbfList of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    59       TEMP                 32767       /u01/app/oracle/oradata/orcl/temp01.dbf
2    1024     TEMP                 32767       /u01/app/oracle/oradata/orcl/temp03.dbf
RMAN> report schema at time "sysdate - interval '1' day";
Report of database schema for database with db_unique_name ORCLList of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    780      SYSTEM               YES     /u01/app/oracle/oradata/orcl/system01.dbf
2    720      SYSAUX               YES     /u01/app/oracle/oradata/orcl/sysaux01.dbf
3    1250     UNDOTBS1             YES     /u01/app/oracle/oradata/orcl/undotbs01.dbf
4    5        USERS                YES     /u01/app/oracle/oradata/orcl/users01.dbf
5    500      TEST                 YES     /u01/app/oracle/oradata/orcl/test01.dbf
6    50       ASSM                 YES     /u01/app/oracle/oradata/orcl/assm01.dbf
7    50       MSSM                 YES     /u01/app/oracle/oradata/orcl/mssm01.dbfList of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    59       TEMP                 32767       /u01/app/oracle/oradata/orcl/temp01.dbf
2    1024     TEMP                 32767       /u01/app/oracle/oradata/orcl/temp03.dbf

第三个功能:保存rman脚本

RMAN> create script recover_controlfile {
2> startup force nomount;
3> restore controlfile;
4> mount database;
5> recover database;
6> alter database open resetlogs;
7> }
created script recover_controlfile
也可以将现有的文本载入
RMAN> create script backup_db from file '/home/oracle/backup_db.rman';
script commands will be loaded from file /home/oracle/backup_db.rman
created script backup_db
RMAN> list script names;
List of Stored Scripts in Recovery CatalogScripts of Target Database ORCLScript NameDescription-----------------------------------------------------------------------
       backup_dbrecover_controlfile
RMAN> print script backup_db; ##print查看脚本内容
printing stored script: backup_db
run {
allocate channel c1 device type disk;
backup database;
}
使用rman连接目标库和catalog后,执行run {execute script ...}
RMAN> run {execute script backup_db;}

转载于:https://www.cnblogs.com/yhq1314/p/11040852.html

oracle 11g 数据库恢复技术 --rman catalog相关推荐

  1. oracle 11g 数据库恢复技术 ---03 补充日志

    三 补充日志(supplemental logging) 补充日志是对重做记录中变更矢量的补充信息,增加了变更矢量记载的记录量.Oracle某些功能要求启用补充日志才能正常或更好的工作,比如logmi ...

  2. aix6.1 oracle12c,AIX6.1系统 oracle 11g数据库恢复过程

    [单位名称] 河北省某大型企业 [逻辑存储] IBM AIX6.1平台,数据库为64位的 Oracle 11g, 本地存储约900GB,其中"/opt"为一独立 lv,大小约200 ...

  3. Oracle 11g 中恢复管理器RMAN介绍

    这是我平时摘录的笔记,从管理艺术那本书上摘录出来的,放到这里 RMAN 可在数据库服务器的帮助下从数据库内备份数据文件,可构造数据文件映像副本.控制文件和控制文件映像.对当日志 SPFILE 和RMA ...

  4. 安装Oracle 11g数据库服务器类

    <Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南>第3章Oracle 11g数据库的安装,本章将介绍如何在32位系统结构的Windows 7操作系统平台上对Oracle ...

  5. bak文件转oracle文件,如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g)...

    如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g) 我有Oracle 11g备份文件(.bak文件)如何在Oracle 11g ...

  6. oracle数据库的详细安装,Oracle 11g数据库详细安装图文教程

    本教程为大家分享了Oracle 11g数据库详细安装步骤,供大家参考,具体内容如下 1.先到Oracle官网上下载11g oracle Database 11g第 2 版 (11.2.0.1.0)标准 ...

  7. Oracle 11g数据库的部署

    一.前言 最近要准备考试了,准备温习下Oracle数据库的相关知识,那么学习Oracle的前提肯定是部署了,目前主流Oracle版本为11g,那么接下来我们就先来一起看下,如何部署Oracle已经对数 ...

  8. 数据库系统概论:第十章 数据库恢复技术

    事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元.事务处理(transaction processing)技术主要包括数据库恢复技术和并发控制技术. 10.1 事务的基本概念 事务:是用户定义 ...

  9. ubuntu14.04、CentOS安装oracle 11g数据库【转载】

    出处:https://blog.csdn.net/cainanxing/article/details/78988671 ubuntu14.04.CentOS安装oracle 11g数据库 折腾了好久 ...

最新文章

  1. apache httpd server安装的一个问题
  2. React Native 'config.h' file not found
  3. Android学习笔记(八)XML文档的解析
  4. 批处理启动myeclipse
  5. 【语音判别】基于matlab双门限法判别语音信号【含Matlab源码 1720期】
  6. UBUNTU完美运行TM,RTX,MSOffice,迅雷
  7. jsp文字上下居中显示_div+css:页面整体布局居中显示:上下居中||垂直居中,左右居中||水平居中...
  8. 校园联通网使用沃派开wifi完美破解
  9. Unity 中的渲染优化技术
  10. 网页调用rm播放器代码 - 详细说明
  11. 大数据分析与实践 数据预处理-主成分分析
  12. 前端JavaScript实现垃圾分类小游戏教程
  13. 数据库 - 02 MySQL学生选课系统
  14. @技术文章为什么要写得简练
  15. 冥冥中的感觉,是梦非梦
  16. chrom浏览器设置自定义背景
  17. 高数中一点导数大于0,能否推出函数在0这个去心邻域单增?
  18. C# winform与Javascript的相互调用
  19. 计算机教育实习论文,计算机教学实习报告范文
  20. 《数安法》今起施行,严堵数据泄露风险敞口可以这样做

热门文章

  1. runtime无法执行grep_Caffe和py-faster-rcnn日常使用备忘录
  2. filezilla 共享多个目录_Linux下搭建NFS文件共享服务器
  3. 计算机桌面打开图像管理,如何给电脑桌面设置几张图片自动播放
  4. GRE over IPSec 隧道配置案例
  5. XSS-Game level 10
  6. 如何运行Spark程序
  7. hadoop2.0初识1.2
  8. (转载)Cocos2dx-OpenGL ES2.0教程:初识MVP(3)
  9. Liferay被SourceForge评为7月最佳开源项目
  10. Linux下svn 安装搭建配置流程