RMAN 备份恢复、删除归档

RMAN冷备全库

rman target /

list backup

shutdown immediate

startup mount

#不要自动备份control file

set nocfau;

#注意要先备份数据库,然后备份控制文件,因为数据库的备份位置记录在控制文件中。

#备份数据库
backup database format '/mnt/disk01/rman_backup_dir2/db_%d_%T_%U.bak';

#备份控制文件
backup current controlfile format '/mnt/disk01/rman_backup_dir2/ctl_%d_%T_%U.bak';

恢复12c的时候,要先给12c建一个库(如果12c没有库或库已经升级为19c,用dbca),再用rman恢复,否则不行。建库参考:12c DBCA建库

恢复之前的备份

(在12c的环境下,ORACLE_HOME等)

注意,只能还原相同版本Oracle的备份,即使是小版本不同,都不行。

rman target /
startup force nomount;
restore controlfile from '/mnt/disk01/rman_backup_dir2/ctl_PAAS_20221019_051am6dk_1_1.bak';

#还原控制文件后,不必指定数据库备份的位置,因为这个信息已经在备份文件中
startup force mount;
restore database;
alter database open resetlogs;


RMAN连接server process来工作。
备份策略:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE RETENTION POLICY TO recovery window of 7 days;

通过设置备份策略,决定哪些备份是obsolete,obsolete的备份并不会自动删除,需要手工删除:list backup
report obsolete
delete obsolete

使用RMAN既可以做单独的tablespace备份,datafile备份,也可以做全库备份:
backup database format '/u01/app/oracle/backup-rman/db_%d_%T_%U.bak';
或直接
backup database;
会备份到db_recovery_file_dest设置的目录。
或压缩备份
backup as compressed backupset database;

$ORACLE_HOME下的dbs中的c-2191530773-20210705-00,这样的文件是控制文件的备份。

RMAN备份的目录:
db_recovery_file_dest 也是闪回恢复区
alter system set db_recovery_file_dest_size = 10G scope=spfile;
alter system set db_recovery_file_dest='/u01/app/oracle/backup-rman' scope=both;
show parameter db_recovery_file_dest

如果手工删除了归档文件,RMAN中删除就会出错。如果要操作系统的文件和RMAN元文件中的记录相同步,在RMAN中使用
crosscheck backup;
然后执行
report obsolete

delete obsolete
delete expired backup
crosscheck archivelog all;
delete expired archivelog all;

list backup;
report need backup;

删除备份集:
对一个数据库的备份包括许多备份文件,这就是一个备份集:
delete backupset 备份集号;
delete backup;    --- 删除所有备份集;

结合体系结构、备份恢复知识,和RMAN,注意备份的文件夹和文件名的管理。
删除归档日志:
delete archivelog all completed before 'sysdate-7';  删除7天前和更早的归档
delete archivelog from time 'sysdate-7';  删除7天前到现在的归档
RMAN的元数据
RMAN的元数据记录关于备份恢复的信息,它的元数据在controlfile里。
可以手工注册备份片的元数据,或者删除某个备份片的元数据,即仅仅更改controlfile。
RMAN将数据库、数据文件、表空间,备份为数据集,一个备份集包含一个或多个备份片,备份片就是一个OS文件,不一定与数据文件一一对应。
这个注册或注销的操作通过RMAN中的catalog命令来做。
通过手工cp的数据文件,在RMAN中称为datafilecopy,也是一种备份方式。
注册一个数据文件:
catalog backuppiece '/u01/app/oracle/backup-rman/CDB/autobackup/2021_07_05/o1_mf_s_1077123949_jg5lvfby_.bkp.bad';
注册一个目录:
catalog start with '/u01/backup/prod/hot/';
注销备份片:
change backuppiece 17 uncatalog;
RMAN增量备份:
RMAN支持增量备份,基于基础备份的增量备份,基础备份称为level 0备份(不同于全量备份),在level 0备份的基础上,进行一次增量备份,称为level 1备份。
相对于level 0的增量备份,称为积累增量备份。
相对于前一次增量备份的增量备份,称为差异增量备份。
backup incremental level 0 database format '/u01/app/oracle/backup-rman/db_%d_%T_%U.bak';
backup cumulative incremental level 1 database;
backup incremental level 1 database format '/u01/app/oracle/backup-rman/db_%d_%T_%U.bak';
RMAN全量备份脚本:
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database filesperset 4 format '/u01/app/oracle/backup/rman/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format '/u01/app/oracle/backup/rman/arch_%d_%T_%s_%p' delete input;
backup current controlfile format '/u01/app/oracle/backup/rman/ctl_%d_%T_%s_%p';
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
}
备份controlfile
backup current controlfile format '/u01/app/oracle/backup/rman/ctl_%d_%T_%s_%p';

恢复

场景1:
完全恢复,使用备份时的controlfile(使用故障时的controlfile也可以
run {
startup force nomount;
restore controlfile from '/u01/app/oracle/backup/rman/ctl_CDB_20210707_85_1';
startup force mount;
restore database;
recover database until available redo; 
alter database open resetlogs;
}
不完全恢复PITR,使用备份时的controlfile(使用故障时的controlfile失败
run {
startup force nomount;
restore controlfile from '/u01/app/oracle/backup/rman/ctl_CDB_20210707_85_1';
startup force mount;
set until scn 3707239;
restore database;
recover database; 
alter database open resetlogs;
}

场景2:

完全恢复,使用D的controlfile使用A的controlfile只能恢复到C
run {
startup force nomount;
restore controlfile from '/u01/app/oracle/backup/rman/ctl_CDB_20210707_89_1';
startup force mount;
restore database;
recover database until available redo; 
alter database open resetlogs;
}

不完全恢复PITR,使用A的controlfile,可以恢复A-C之间的状态:
run {
startup force nomount;
restore controlfile from '/u01/app/oracle/backup/rman/ctl_CDB_20210707_85_1';
startup force mount;
set until scn 3707239;
restore database;
recover database; 
alter database open resetlogs;
}
不完全恢复PITR,使用C的controlfile,可以恢复C-D之间的状态:
run {
startup force nomount;
restore controlfile from '/u01/app/oracle/backup/rman/ctl_CDB_20210707_87_1';
startup force mount;
set until scn 3707239;
restore database;
recover database; 
alter database open resetlogs;
}
按时间恢复(不完全恢复)
run {
startup force mount;
allocate channel c1 type disk;
allocate channel c2 type disk;
sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
set until time '2021-07-06 11:08:16';
restore database;
recover database;
alter database open resetlogs;
}

从全备恢复spfile和controlfile

startup force nomount;
在nomount状态下:
restore spfile from '/u01/app/oracle/backup-rman/CDB/autobackup/2021_07_06/o1_mf_s_1077187429_jg7jv5cz_.bkp';
restore controlfile from '/u01/app/oracle/backup-rman/CDB/autobackup/2021_07_06/o1_mf_s_1077187429_jg7jv5cz_.bkp';

没有使用catalog时,rman所有的配置信息,都存储在controlfile中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/286563.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 中实现下载后端返回的流式数据

验证是否是blob /*** Event 验证是否为blob格式* */export async function blobValidate(data) {try {const text await data.text();JSON.parse(text);return false;} catch (error) {return true;}}get请求 /*** Event: get请求下载后端返回的数据流* description: url[Stri…

Redis-指定配置启动

基础篇Redis 3.3.5.指定配置启动 如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf: 我们先将这个配置文件备份一份…

利用 Scapy 库编写 ARP 缓存中毒攻击脚本

一、ARP 协议基础 参考下篇文章学习 二、ARP 缓存中毒原理 ARP(Address Resolution Protocol)缓存中毒是一种网络攻击,它利用了ARP协议中的漏洞,通过欺骗或篡改网络中的ARP缓存来实施攻击。ARP协议是用于将IP地址映射到物理MAC…

警务数据仓库的实现

目录 一、SQL Server 2008 R2(一)SQL Server 的服务功能(二)SQL Server Management Studio(三)Microsoft Visual Studio 二、创建集成服务项目三、配置“旅馆_ETL”数据流任务四、配置“人员_ETL”数据流任…

OM6626低功耗M4内核低睡眠电流BLE5.3 SoC国产ESL蓝牙方案芯片

目录 OM6626简介OM6626主要特性射频特性PUM特性安全性SDK代码微信号:dnsj5343OM6626最小系统Demo板 OM6626简介 OM6626是功能强大、性能稳定、超低功耗的蓝牙SoC芯片,适用于各种低功耗蓝牙和专有的2.4GHz应用场景。OM6626还集成了电源管理单元 (PMU)&am…

机器视觉检测设备的组成要素

机器视觉检测设备是一种先进的自动化检测技术工具,它利用光学、图像处理和计算机硬件及软件技术模拟并扩展人类的视觉功能,以实现对产品或目标物体进行自动化的尺寸测量、缺陷检测、表面质量评估、颜色识别、形状匹配以及位置判断等功能。这种设备通常包…

PyCharm环境下Git与Gitee联动:本地与远程仓库操作实战及常见问题解决方案

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言下载及安装GitGit的使用设置用户签名设置用户安全目录Git基本操作Git实操操作 Pyc…

Python高阶函数库之functools使用详解

概要 functools是Python标准库中的一个模块,它提供了一系列用于高阶函数:即那些作用于或返回其他函数的函数。这些工具主要用于函数式编程风格,其中包括用于创建函数包装器的装饰器。 functools简介 functools库的目的是为了高阶函数,特别是那些涉及到函数转换的操作提供…

数据仓库的魅力及其在企业中的应用实践

数据仓库,这一创新性的概念来自于比尔恩门,从1980年代末提出以来,便凭借其独特的架构设计和强大的数据处理能力,在全球商业领域中掀起了一场革命。它不仅是解决企业海量数据存储和查询需求的关键技术,更是推动企业实现…

【Java】哈希表

文章目录 一、概念二、哈希冲突2.1概念2.2设计合理的哈希函数-避免冲突2.3调节负载因子-避免冲突2.4闭散列-冲突解决(了解)2.5开散列/哈希桶-冲突解决(重点掌握) 三、代码实现3.1成员变量及方法的设定3.2插入3.3重新哈希3.4 获取到…

免费客服系统大揭秘!有什么好用的免费客服系统推荐?

贵的不一定是好的,合不合适才最重要!有什么好用的免费客服系统吗?现下服务经济的发展的风潮已经席卷到了各行各业。 企业不仅要提供好的产品,还需要好的服务。客服系统作为企业与客户重要的沟通渠道,越来越多的企业正在…

记录些LLM相关的知识

SOTA SOTA是"State-of-the-Art"的缩写,指的是某个技术或领域中目前最先进的技术或方法。在语音合成领域,SOTA语音合成效果指的是使用最新的研究和技术所达到的最佳语音合成效果。这通常包括高清晰度的语音输出,自然的语音流畅度&a…

面试题-Elasticsearch集群架构和调优手段(超全面)

对于Elasticsearch(ES),我了解并有经验。在我之前的公司,我们有一个相对大型的ES集群,以下是该集群的架构和一些调优手段的概述: 1. 集群架构 集群规模:我们的ES集群由15个节点组成&#xff0c…

docker配置镜像加速后容器和镜像消失

一、问题描述 根据阿里云给docker配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://gt6j98xi.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl rest…

框架结构模态分析/动力时程分析Matlab有限元编程 【Matlab源码+PPT讲义】|梁单元|地震时程动画|结果后处理|地震弹性时程分析| 隐式动力学

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…

[NKCTF 2024]web解析

文章目录 my first cms全世界最简单的CTF解法一解法二 my first cms 打开题目在最下面发现是CMS Made Simple&#xff0c;版本为2.2.19 扫一下发现存在后台登陆界面&#xff0c;直接访问 用字典爆破下admin的密码为Admin123 然后直接登录&#xff0c;去漏洞库搜一下其实存在…

Java基于微信小程序的校园请假系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#…

python爬虫基础-----运算符(第三天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

C++ 3.25

思维导图&#xff1a;【有道云笔记】无标题脑图(1).mindmap https://note.youdao.com/s/ELJA6sJ6 定义自己的命名空间&#xff0c;其中有string类型的变量&#xff0c;再定义两个函数&#xff0c;一个函数完成字符串的输入&#xff0c;一个函数完成求字符串长度&#xff0c;再定…

python网络爬虫实战教学——requests的使用(2)

文章目录 专栏导读1、POST请求2、响应3、Cookie设置 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》&#xff0c;本专栏针对大学生、初级数据分析工程…