oracle 11g 数据库恢复技术 --rman catalog
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 ORCL List 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.dbf List 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 '' day";
Report of database schema for database with db_unique_name ORCL List 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.dbf List 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 Catalog
Scripts of Target Database ORCL
Script Name
Description
-----------------------------------------------------------------------
backup_db
recover_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;}
oracle 11g 数据库恢复技术 --rman catalog的更多相关文章
- oracle 11g 数据库恢复技术 ---02 控制文件
oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...
- oracle 11g 数据库恢复技术 ---04 rman
四 RMAN RMAN体系结构的主要组成部分: --1 目标数据库(target) --2 RMAN命令行客户端 --3 通道(channel) --4 快速恢复区(fast recovery are ...
- oracle 11g 数据库恢复技术 ---03 补充日志
三 补充日志(supplemental logging) 补充日志是对重做记录中变更矢量的补充信息,增加了变更矢量记载的记录量.Oracle某些功能要求启用补充日志才能正常或更好的工作,比如logmi ...
- oracle 11g 数据库恢复技术 ---01 重做日志
一 redo log Oracle数据库中的三大核心文件分别是数据文件(data file).重做日志(redo log)和控制文件(control file).数据文件保证了数据库的持久性,是保存修 ...
- Oracle 11g 中恢复管理器RMAN介绍
这是我平时摘录的笔记,从管理艺术那本书上摘录出来的,放到这里 RMAN 可在数据库服务器的帮助下从数据库内备份数据文件,可构造数据文件映像副本.控制文件和控制文件映像.对当日志 SPFILE 和RMA ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- 完美完全卸载Oracle 11g数据库
Oracle 11g可在开始菜单中卸载,然后同时需要删除注册表中相关内容. 操作系统:windows10专业版. 卸载步骤: 1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的 ...
- PL/SQL Developer工具包和InstantClient连接Oracle 11g数据库
一.前言 PLSQL Developer是Oracle数据库开发工具,很牛也很好用,PLSQL Developer功能很强大,可以做为集成调试器,有SQL窗口,命令窗口,对象浏览器和性能优化等功能. ...
- 在Windows10系统下安装Oracle 11g数据库
在Windows10系统下安装Oracle 11g数据库 https://blog.csdn.net/wei1992_6/article/details/60054727
随机推荐
- 286-基于6U VPX 的mSATA高性能数据存储板
基于6U VPX 的mSATA高性能数据存储板 一.板卡概述 该产品系我司自主研发.基于标准6U VPX架构. 二.产品特性 最大存储容量8TB 读写方式RAID0 ,读写速 ...
- 【学习】025 RocketMQ
RocketMQ概述 RocketMQ 是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能 ...
- 在python里使用WriteProcessMemory修改内存地址上的值
import os import sys from ctypes import * windll.kernel32.WriteProcessMemory.argtypes = [c_void_p, c ...
- Python之面向对象之单例模式的四种方式
一.内容 保证一个类只有一个实例,并提供一个访问它的全局访问点 二.角色 单利 三.使用场景 当类只有一个实例而且客户可以从一个众所周知的访问点访问它时 比如:数据库链接.Socket创建链接 四.优 ...
- 五大Linux简单命令解决系统性能问题
五大Linux简单命令解决系统性能问题 2010-12-17 10:07 James Turnbull TechTarget中国 字号:T | T 管理Linux主机的性能看起来经常象是在变魔术一样. ...
- java常用类与包装类--常用类字符串String类、StringBuffer类、Stringbuilder类
1.String类 1.1String类的概念和储存结构: (1)字符串是一个比较特殊的对象,可以使用new,也可以不使用new来创建字符串对象 String s1 = new String(&quo ...
- requests中text,content,json之间的区别
response.text : 返回一个字符串\n",content : 返回二进制\n",json() : 返回对象"
- 【LuoguP4433】[COCI2009-2010#1] ALADIN(含类欧几里得算法推导)
题目链接 题意简述 区间赋值模意义下等差数列,询问区间和 \(N\leq 10^9,Q\leq 10^5\) Sol 每次操作就是把操作区间\([L,R]\)中的数赋值成: \[(X-L+1)*A\ ...
- pyqt5-QFrame边框样式
继承 QObject-->QWidget-->QFrame 是一个基类, 可以选择直接使用,主要是用来控制一些边框样式:例如:凸起.凹下.阴影.线宽 QFrame对象效果对照图: im ...
- LeetCode - 不邻接植花
有 N 个花园,按从 1 到 N 标记.在每个花园中,你打算种下四种花之一. paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径. 另外,没有花园有 3 条以上的路径可以进入或 ...