Oracle(2-13) RMAN Complete Recove

文章目录

  • 一、基础知识
    • 1、Restoration Using RMAN利用RMAN进行恢复
    • 2、Relocate a Tablespace 重新定位表空间
  • 二、基础操作
    • 1、恢复前的准备
    • 2、恢复数据库
    • 3、恢复单个数据文件
    • 4、在数据库打开的情况下恢复

在这里插入图片描述

RMAN Complete Recove RMAN完全恢复
目标:

  • 了解RMAN用于恢复和恢复
  • 在ARCHIVELOG模式下执行完全恢复
  • 将数据文件还原到不同的位置
  • 使用归档重做日志文件重新定位和恢复表空间

一、基础知识

1、Restoration Using RMAN利用RMAN进行恢复

  • 使用RMAN RESTORE命令从备份集或映像副本还原文件
  • 使用RMAN RECOVERT命令恢复文件

2、Relocate a Tablespace 重新定位表空间

  • 使用SET NEWNAME命令来恢复文件
  • 使用SWITCH命令在控制文件中记录新名称
  • 使用RECOVELTABLESPACE命令恢复表空间的数据文件

二、基础操作

1、恢复前的准备

  • 备份整个数据库
backup database format '/u01/app/oracle/backup/wb_%U';

在这里插入图片描述

  • 做0级备份
backup incremental level 0 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
在这里插入图片描述

  • 创建一个表t4
    然后在打开一个窗口进入sqlplus中
CREATE TABLE t4(
    ID NUMBER,
    NAME VARCHAR2(50)
);

在这里插入图片描述
插入数据

insert into t4 values(0, 'jack');
insert into t4 values(1, 'henry');

查询表空间数据

select * from t4;

提交数据

commit;

我们在做一下归档切换

alter system checkpoint;
alter system switch logfile;

在这里插入图片描述

  • 做1级增量备份
backup incremental level 1 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
增量备份完成

  • 最后一步环境准备
    退出RNAM
quit

在这里插入图片描述
进入sqlplus关闭数据库

shutdown immediate;

在这里插入图片描述
删除所有数据文件

cd /u01/app/oracle/oradata/orcl
rm -f *.dbf

在这里插入图片描述
现在我们的准备工作就完成啦

2、恢复数据库

tip:首先要完成基础操作1

  • 进入sqlplus,启动到mount
    状态
startup mount

这个时候如何我们自己是startup也是只能启动到mount,因为所有的数据文件都丢失了

  • 连接RMAN
rman target sys/123@orcl nocatalog

在这里插入图片描述
提示数据库没有打开

  • 开始恢复
restore database;

在这里插入图片描述
RMAN选择合适的备份集开始恢复,我们发现在有全备和0级增量备份的时候,RMAN优先选择了0级增量备份进行恢复

recover database;

在这里插入图片描述
数据库恢复完成
打开数据库

alter database open;

在这里插入图片描述
在这里插入图片描述
再次进入sqlplus查询我们之前的数据
发现可以查到说明数据库已经打开了,并且数据正常

通过以下两个图片进行对比,第一张是恢复后的图片,第二张是恢复前的图片,我们大仙我们的数据也都完整的回来了
恢复后
恢复前
恢复完成

3、恢复单个数据文件

假如我们只有一个数据文件损坏了也是可以恢复的

我们首先进去sqlplus查询损坏数据文件的编号

col name format a50;
select file#,name from v$datafile;

在这里插入图片描述
我们这里以5号文件为例,手动删除5号文件模拟数据文件丢失
首先关闭数据库
关闭数据库

shutdown immediate;

然后手工删除数据文件
在这里插入图片描述
然后我们对5号文件进行恢复
在sqlplus下将数据库启动到mount状态下

startup mount;

然后在RMAN下执行

run {
	set newname for datafile 5 to '/u01/app/oracle/oradata/orcl/example01.dbf';
	restore database;
	switch datafile all;
	recover database;
	alter database open;
}

我这里目录还是放在原来的位置了,在实际生产中一般数据文件损坏都是因为磁盘损坏了,需要放在其他磁盘目录下
在这里插入图片描述
然后就可以将数据文件恢复了

4、在数据库打开的情况下恢复

先退出RMAN
在这里插入图片描述

在数据库启动期间,我们突然删除5号文件
在这里插入图片描述
然后在RMAN下恢复
进入RMAN执行下列命令

run {
	sql 'alter database datafile 5 offline';
	restore datafile 5;
	recover datafile 5;
	sql 'alter database datafile 5 online';
}

这里是对数据文件恢复的命令,如个是表空间的话只需要将datafile改成TABLESPACE,数据文件编号改成表空间名字就可以了,代码样例如下:

run {
	sql 'alter tablespace 表空间的名字 offline immediate';
	restore tablespace 表空间的名字;
	recover tablespace 表空间的名字;
	sql 'alter tablespace 表空间的名字 online';
}

在这里插入图片描述
然后发现数据文件恢复成功

完结散花在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低代码是你得菜吗?传统编程如何应对低代码的挑战?有哪些优秀的低代码平台?

低代码开发是一种越来越受到关注的软件开发方式,它旨在通过简化和加速应用程序开发过程来降低编程门槛。随着技术的进步和对快速交付的需求增加,低代码平台提供了一个快速构建应用程序的环境,无需深入的编程知识,使非专业开发人员…

分布式环境下的session 共享-基于spring-session组件和Redis实现

1、问题概述 不是所有的项目都是单机模式的,当一个项目服务的局域比较广,用户体量比较大,数据量较大的时候,我们都会将项目部署到多台服务器上,这些个服务器都是分布在不同的区域,这样实现了项目的负载和并…

倪海厦:教你正确煮中药,发挥最大药效

同样的一个汤剂,我开给你,你如果煮的方法不对,吃下去效果就没那么好。 所以,汤,取它的迅捷,速度很快,煮汤的时候还有技巧,你喝汤料的时候,你到底是喝它的气,…

Windows安装kafka

压缩包下载地址:https://www.apache.org/dyn/closer.cgi?path/kafka/3.6.1/kafka_2.13-3.6.1.tgz 启动kafka步骤 zookeeper-server-start.bat rem 闭命令提示符窗口的命令回显,这样在运行脚本时不会显示脚本的具体命令内容 echo offrem 命令行启动未…

原来JMeter 结果处理常见问题这么简单,可惜没早点看到!

1. 前言 工作中用 jmeter 请求一个接口对谈得上会 jmeter 的人似乎都是可以做出来的,但是实际难点是参数化,结果的断言,结果的汇总等。本文将针对结果过滤有效性的情况展开分析。 示例场景:一个接口需要对入参1000多个数据做测试…

JavaScript系列-数据类型

ES6变量类型 JavaScript编程语言中,变量类型分为基本变量类型和引用类型,两种变量类型的区别在于 基本类型变量值存放于栈中,引用类型变量值存放于堆中基本类型赋值给其他变量,是将其值复制过去引用类型赋值给其他变量&#xff…

为什么SpringBoot的jar可以直接运行

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

AI 绘画 | Stable Diffusion 艺术二维码制作

前言 这篇文章教会你如果用Stable Diffusion WEB UI制作艺术二维码,什么是艺术二维码呢?就是普通二维码和艺术图片融合后的二维码图片,如下图所示。主要原理还是使用controlNet的control_v1p_sd15_qrcode_monster模型和光影模型control_v1p_sd15_brightness。 教程 准备…

第 9 部分 — 内存增强 Transformer 网络:数学见解

一、说明 在顺序数据处理领域,传统的 Transformer 架构擅长处理短期依赖性,但在需要大量内存和长序列上下文保留的任务中表现不佳。在这篇综合博客中,我打算探索一种新颖的混合方法,将 Transformer 与显式长期记忆模块集成在一起。…

最新Redis7持久化(权威出版)

首先我们要知道什么是持久化:持久化是指将数据保存到磁盘上,以确保在Redis服务器重启时数据不会丢失。 Redis支持两种主要的持久化方式:RDB持久化和AOF持久化 下面让我依次给你介绍一下: RDB持久化 作用 这是将Redis数据保存…

049:VUE 引入jquery的方法和配置

第049个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

Module build failed : Error : Vue packages version mismatch:

Vue packages version mismatch: - vue2.7.15 (E:\Workspace_ce\erp\erp-web\node_modules\vue\dist\vue.runtime.common.js) - vue-template-compiler2.6.11 (E:\Workspace_ce\erp\erp-web\node_modules\vue-template-compiler\package.json) 【问题解决了,我很不…

百科词条可以删除吗?如何删除自己的百度百科?

近日,小马识途营销顾问接到不少客户删除自己百科词条的咨询,有不少人自己并没有去建立百科词条,但是网上已经有了,有的信息不正确,甚至有的信息是负能量的,对当事人自己造成一定的困扰,所以寻求…

JAVA8新特性之函数式编程详解

JAVA8新特性之函数式编程详解 前言一、初步了解函数式接口二、 Lambda表达式2.1 概述2.2 lambda省略规则2.3 lambda省略常见实例2.4 lambda表达式与函数式接口 三、 Stream流3.1 stream流的定义3.2 Stream流的特点3.3 Stream流的三个步骤3.4 Stream 和 Collection 集合的区别&a…

Linux权限详解

Linux权限 文章目录 Linux权限一、root账号与普通账号二、Linux权限管理三、权限权值表示方法四、文件访问权限的设置方法五、粘滞位六、权限总结 前言: 我们在学习Linux的时候,我们知道在Linux下一切皆文件,而不同的文件对于不同的用户有不同…

119场双周赛复盘

这周没有打比赛&#xff0c;玩老头环乐&#xff08;玩物丧志&#xff09;&#xff0c; 所以是补题了 第一题 100130找到俩个数组中的公共元素 class Solution {public int[] findIntersectionValues(int[] nums1, int[] nums2) {HashMap<Integer,Integer>map1new Has…

深度优先遍历(DFS)

时间复杂度与深搜一致&#xff1b;

解决 Xshell 无法使用 root 账户远程登录 Linux 的问题

文章目录 问题描述问题原因解决办法 笔者出问题时的运行环境&#xff1a; Red Hat Enterprise Linux 9.2 x86_64 Xshell 7 问题描述 笔者在新安装的 Red Hat Enterprise Linux 中发现一个问题。在 RHEL 安装完之后&#xff0c;无法在 Xshell 中使用 root 账户远程登录此 Lin…

ReLU(Rectified Linear Unit)和Sigmoid激活函数

ReLU&#xff08;Rectified Linear Unit&#xff09;和Sigmoid都是神经网络中常用的激活函数。 特点&#xff1a; ReLU是一种简单而有效的激活函数。它对于正数部分直接返回输入&#xff0c;对于负数部分返回零。这种非线性转换有助于网络学习更复杂的表示。ReLU在许多深度学习…

【开源】基于JAVA语言的数字化社区网格管理系统

项目编号&#xff1a; S 042 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S042&#xff0c;文末获取源码。} 项目编号&#xff1a;S042&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、开发背景四、系统展示五、核心源码5…