Oracle中rman使用记录

        最近在项目中,遇到使用RMAN的操作来恢复数据库中某个时间归档日志,RMAN的原理和理解,网友们百度了解一下。我重点将实操部分了。直接上实验环节,让网友更懂。(特别提醒:我是1:1用VMware克隆数据库进行RMAN还原。涉及到两个数据库的数据文件、日志文件、控制文件、参数文件的路径一致,如果两个数据库安装路径不同,内部配置路径环境不同,将不适用本方法了。)

目录

一、环境部署

二、源数据库数据体量的检查

​三、源数据库使用RMAN脚本进行数据备份

四、将源数据库中的配置文件,传送到目标数据中

五、目标数据库进行RMAN还原

六、RMAN恢复总结

七、参考文件


一、环境部署

VMware中部署两台数据库应用

我这里分别是192.168.188.141(源数据库),192.168.188.152(目标数据库)

两个数据库版本是Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production(实验前,我将源数据库克隆到152的数据库后,在用impdp数据导入,将数据量增大。)

二、源数据库数据体量的检查

检查源数据库的DBID,控制文件路径

查找数据文件路径

查找字符集和数据总量

查找日志文件的路径

这里有个坑。(使用RMAN操作,数据库必须开启归档模式,不然热备份不了相关的配置文件)

图一是我没有开启归档模式,使用rman脚本进行备份文件,死活备份不了,图二我开启自动归档模式以后,rman脚本就成功了)

三、源数据库使用RMAN脚本进行数据备份

RMAN的脚本(注意bakdir和autobak的路径,写在home用户下面的路劲)

#************************************************************************ 
#*** rman_bak_L0.sh *** 
#************************************************************************ 
#!/bin/bash
source /home/oracle/.bash_profile
rq=`date +%Y%m%d`
bakdir=/home/oracle/topsoft/rmanbak/${rq}
autobak=/home/oracle/topsoft/rmanbak/autobackup/
if [ ! -d ${bakdir} ];
then mkdir -p ${bakdir}
fi
if [ ! -d ${autobak} ];
then mkdir -p ${autobak}
fi
cd $ORACLE_HOME/bin 
./rman target / log=$bakdir/rmanfull_${rq}.log   <<EOF
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${autobak}/%F';
run { 
allocate channel c1 type disk; 
allocate channel c2 type disk;
allocate channel c3 type disk; 
allocate channel c4 type disk;
allocate channel c5 type disk; 
allocate channel c6 type disk;
sql 'alter system archive log current';
backup as compressed backupset incremental level 0 database tag 'dbfull' format '${autobak}/backlv0_%d_%T_%t_%s_%p.bak';
sql 'alter system archive log current';
backup as compressed backupset archivelog all tag 'arch' format '${autobak}/arch_%d_%T_%t_%s_%p.bak';
backup current controlfile format '${autobak}/ctl_%d_%T_%t_%s_%p.bak';
release channel c1; 
release channel c2;
release channel c3; 
release channel c4;
release channel c5; 
release channel c6;
} 
report obsolete; 
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
list backup summary; 
exit; 
EOF
echo "备份数据完成."

参数说明:

sysdate-1/12   :2小时之前的归档。

%U_%d_%T_%s
%U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式,执行不同备份操作时,生成的规则也不同,如下所示:
 生成备份片段时,%U=%u_%p_%c;
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。
%p:备份集中备份片段的编号,从1开始。
%c:备份片段的复制数(从1开始编号,最大不超过256)。
%d:Oracle数据库名称。
%T:当前时间的年月日格式(YYYYMMDD)。
%s:备份集号。 

先将数据库关闭,然后将数据库启动mount模式,开启归档记录,然后开启数据库实例再用RMAN进行备份(RMAN的备份机制,有时间可以了解一下。这里我挖坑一个早上

将脚本放进去服务器内,加上chmod +x 执行脚本(这里我又重新备份一次作为展示,备份时间是4月12号

检查一下RMAN备份完成下来的备份文件,发现日志文件、数据文件、控制文件、归档文件都被RMAN脚本执行备份下来了。

还需要准备源数据库的参数文件,在SQL中执行脚本将参数文件备份出来,

 将源数据库的数据库的密码文件orapwfzdb,备份到RMAN的文件夹中

四、将源数据库中的配置文件,传送到目标数据中

        传送到目标数据库中,目标数据库创建对面的文件路径存放文件(记得目标数据库关闭防火墙,还需要有对接用户的账号密码)

传送过去目标数据库有6个文件:日志文件,ARCH格式归档文件,C-9开头控制文件,initfz开头数据库参数文件,还有backlv的数据文件,还有源数据库中密码文件orapwfzdb文件

这里我挖了一个坑,没有传送过去日志文件,导致我后面的recover database;还原归档日志时候报错,缺少日志文件,还原归档时间是根据你传送过去的日志文件序列号时间进行还原

检查一下目的数据库的文件已经保存源数据库的文件。

因为我是虚拟机克隆源数据库到目标数据库,数据库的配置文件路径和数据库的名字和ID都是一致的了,如果不是安装路径和配置文件参数一致的源数据库和目标库,一定要修改initfzdb20240425.ora中的配置参数。具体方法,改期研讨

五、目标数据库进行RMAN还原

进入目标数据库先关闭数据实例,用非挂在模式用源数据库数据库中参数文件启动数据库(因为我两个库都是一样信息,配置文件一样直接启动)

如果数据库的SID不是一样,要设置成源数据库一致的SID。(我是克隆过来数据库,SID完全一直)

[oracle@localhost ~]$ export ORACLE_SID=fzdb

使用源数据库文件生成参数文件。

生成参数完毕后,关闭数据库实例,在启动非挂载模式,进行控制文件的还原

使用rman target /进行控制文件还原(注意:控制文件还原,需要将数据库启动到非归档模式
这里set DBID和控制文件中的参数29**是一致的了,

数据库中启动归档模式,在进行归档模式下面进行归档文件和数据文件的还原。

在RMAN中使用alter指令切换数据库进入归档模式,在用catalog 指令读取目标库路径中的存在备份文件地方。

这里会显示日志文件已经损坏,不需要担心。

RMAN> restore database;   --还原数据文件(因为我的数据文件很大,我就截图前后)

RMAN> recover database;  --还原归档日志  

提示如下报错:

大概意思:媒体恢复请求未知的归档日志,用于恢复线程1的序列号为101的日志,起始SCN为2605247。(因为数据库的归档日志是有记录每次归档序列号,如果想用RMAN恢复时候是要选择恢复到归档日志的多少序列号)

 直接用recover恢复到序列号101的归档日志的数据库(这里叫不完全恢复)

恢复数据文件和归档文件,--恢复完成后,将库启动到read only模式,查询一下数据是否正常

目标数据库的数据库容量

源数据库的数据体量和目标库的体量相同。(按道理来说要检查数据库的数数据文件存放位置、查看临时文件位置、查看日志文件位置等等,我这里图方便,因为虚拟机克隆1:1源数据库就不查这些参数了。)

确定数据总量相同后,将数据库关闭,把源数据库的密码文件放到目标数据库的配置文件下面。

在正常启动数据库,发现目标库的开启日志记录功能。使用alter语句正常开启重置日志记录功能即可(RESETLOGSoption :清除所有在线重做日志并修改所有在线数据文件以表明不需要恢复。重置重做日志后,现有的日志文件或数据文件备份都不能使用。)

数据库正常启动,源数据库的数据

六、RMAN恢复总结

        首先源数据库需要开启归档模式进行RMAN的数据备份,记录好备份的配置文件,传送到目标库中,第二,目标库中的数据库的配置文件是否和源数据库中的配置文件一致,像我实验中都是1:1还原,很多步骤可以省略,如果不是1:1的话,需要将目标库中数据文件、控制文件、参数文件等改成和源数据库的路径一致,说白了,还原就是房子的家具怎么摆,到新的房子家具也怎么摆。床的位置、沙发的位置都要重新划分。第三就是恢复控制文件时候使用非归档模式和恢复数据文件、归档文件时候,数据库开启归档模式,一定要区分开。最后确定数据恢复没问题后,还要把数据库的密码文件放回到目标库的配置文件中。

还要感谢福娃老师提供RMAN的笔记。下次研究一下如何在不同数据库配置环境下实现RMAN还原

最后感谢

福娃筱欢-CSDN博客老师。

七、参考文件

《Oracle系列》Oracle归档日志管理(开启归档日志、删除归档日志)_oracle删除归档日志-CSDN博客

Oracle RESETLOGS 和 NORESETLOGS 区别说明-CSDN博客

ORACLE开启归档日志_oracle归档日志-CSDN博客

RMAN异机恢复数据库详解-CSDN博客

oracle rman备份 归档模式,将Oracle数据库改为归档模式并启用RMAN备份-CSDN博客

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

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

相关文章

如何看待AIGC技术

目录 1.概述 2.技术应用 2.1.媒体与内容创作 2.2.教育与学习 ​​​​​​​2.3.艺术创作 ​​​​​​​2.4.游戏产业 ​​​​​​​2.5.工业设计 ​​​​​​​2.6.对未来社会的影响 2.7.可能的发展方向 ​​​​​​​2.8.小结 3.伦理与风险 3.1.AIGC技术面临…

零基础HTML教程(26)--表单元素标注

文章目录 1. 引子2. 使用标注3. 元素的id与name4. 更好的写法5. 小结 1. 引子 我们看一个表单&#xff1a; <form>姓名&#xff1a;<input type"text"><br>手机号:<input type"text"><br>年龄:<input type"text&qu…

MES管理系统工单管理模块的重要性

在现代制造企业中&#xff0c;MES管理系统作为生产流程管理的核心&#xff0c;工单模块则扮演着不可或缺的角色。它不仅是MES管理系统的基石&#xff0c;更是连接各个生产环节的纽带&#xff0c;确保生产流程的顺畅与高效。 首先&#xff0c;我们需要明确MES管理系统在制造企业…

深度解析 Spring 源码:揭秘BeanFactory 之谜

文章目录 一、认识BeanFactory1.1 BeanFactory的概述1.2 BeanFactory与 ApplicationContext的区别 二、BeanFactory源码解读2.1 BeanFactory 接口2.1.1 getBean()2.1.2 containsBean()2.1.3 isSingleton() 2.2 DefaultListableBeanFactory 类2.2.1 registerBeanDefinition()2.2…

南宁建筑模板供应商:贵港市能强优品木业有限公司

贵港市能强优品木业有限公司&#xff0c;作为南宁地区知名的建筑模板生产厂家&#xff0c;拥有25年的丰富生产经验。该公司生产的建筑覆膜板以其稳定的质量和高周转次数而闻名&#xff0c;多年来参与了国内各地区众多大型建筑项目&#xff0c;并获得广大客户的一致好评。 质量稳…

Object类 equals方法 hashCode方法 集合

Object类 Object类是所有类的父类&#xff0c;所以&#xff1a; Object的类的成员变量和成员方法&#xff0c;其余的类会继承&#xff0c;可以使用 Object类可以使用多态创建任意对象&#xff0c;同时拥有子类的重写方法 我们先假设子类重写了equals方法和hashCode方法&…

Flink 实时数仓(一)【实时数仓离线数仓对比】

前言 昨天技术面的时候&#xff0c;面试官说人家公司现在用的都是最新的技术&#xff0c;比如 Doris 等一些最新的工具&#xff0c;确实这些课是学校永远不会开设的&#xff0c;好在他说去了会带着我做一做。可是 ...... 学院舍不得让走啊 ...... 没办法&#xff0c;情况就是这…

python代码报错requests.exceptions.SSLError

直接浏览器访问报ssl错误的网站&#xff0c;然后找到证书&#xff0c;选择导出 然后在cmd里面执行&#xff0c;去查看certifi的位置 python -c "import certifi;print(certifi.where())"找到之后用文本编辑器打开&#xff0c;我用的vscode 滚动到最后面&#xff0c…

什么是重放攻击(Reply attack)?

什么是重放攻击(Reply attack)? 重放攻击&#xff0c;也称为回放攻击&#xff0c;是一种网络攻击方式。重放攻击是一种中间人攻击&#xff0c;攻击者通过截获合法的数据传输并重新发送它们来欺骗接收方&#xff0c;让接收方误以为是合法的消息。重放攻击是非常常见的&#xf…

在IDEA中使用.env文件导入系统配置的图文教程

JetBrains的IDEA是一款功能强大的集成开发环境&#xff0c;为开发人员提供了丰富的功能和工具。使用.env文件来管理配置信息在IDEA中非常简单。 旧版本默认支持&#xff0c;新版本idea需要安装插件才可以。 这里我们可以安装EnvFile插件&#xff0c;步骤如下&#xff1a; 在弹…

详解数仓的向量化执行引擎

前言 适用版本&#xff1a;【基线功能】 传统的行执行引擎大多采用一次一元组的执行模式&#xff0c;这样在执行过程中CPU大部分时间并没有用来处理数据&#xff0c;更多的是在遍历执行树&#xff0c;就会导致CPU的有效利用率较低。而在面对OLAP场景巨量的函数调用次数&#x…

ctfshow web29-web40

命令执行 看清都过滤了些什么&#xff01;&#xff01; 知识点&#xff1a; web34&#xff1a;当;和()被过滤了就用语言结构&#xff0c;一般有echo print isset unset include require web37&#xff1a;data协议是将后面的字符串当成php代码执行&#xff0c;例如 /?cdat…

JVM学习笔记(四)类加载与字节码技术

目录 一、类文件结构 二、字节码指令 2.3 图解方法执行流程 1&#xff09;原始 java 代码 2&#xff09;编译后的字节码文件 3&#xff09;常量池载入运行时常量池 4&#xff09;方法字节码载入方法区 5&#xff09;main 线程开始运行&#xff0c;分配栈帧内存 6&…

甘特图是什么?如何利用其优化项目管理流程?

甘特图是项目管理软件中十分常见的功能&#xff0c;可以说每一个项目经理都要学会使用甘特图才能更好的交付项目。什么是甘特图&#xff1f;甘特图用来做什么&#xff1f;简单来说一种将项目任务与时间关系直观表示的图表&#xff0c;直观地展示了任务进度和持续时间。 一、甘特…

【C++】string类的增删改查模拟实现(图例超详细解析!!!)

目录 一、前言 二、string类的模拟实现 ✨前情提要 ✨Member functions —— 成员函数 ⚡构造函数 ⚡拷贝构造函数 ⚡赋值运算符重载 ⚡析构函数 ✨Element access —— 元素访问 ⚡operator[ ] ⚡Iterator —— 迭代器 ✨Capacity —— 容量 ⚡size ⚡capacity ⚡clea…

井字棋源码(网络线程池版)

源码链接&#xff1a;game 效果可能没有那么好&#xff0c;大家可以给点建议。 效果展示 game.h #include <stdio.h> #include <stdlib.h> #include <time.h>#define ROW 3 #define COL 3void InitBoard(char board[ROW][COL], int row, int col) {int i…

企业数字化转型,“业务”先行

在当今时代&#xff0c;数字化转型已经成为企业发展的必经之路。数字化转型&#xff0c;简而言之&#xff0c;就是运用数字技术&#xff0c;对企业运营管理的各个环节进行深度改造&#xff0c;以提升企业的运营效率和市场竞争力。据有关机构研究测算&#xff0c;数字化转型可使…

丈母娘眼中“靠谱女婿”职业榜曝光,公务员跌落榜首,新兴职业成宠儿!

正如婆婆和媳妇相处很复杂&#xff0c;丈母娘和女婿亦有着微妙关系&#xff0c;看对眼是“半个儿”&#xff0c;不对付则会成为小两口婚姻的“地雷”&#xff0c;甚至是恋爱路上的“拦路虎”。 近来&#xff0c;最新丈母娘认可的“靠谱女婿”职业榜排行新鲜出炉&#xff0c;备受…

5g工业数采网关是什么?-天拓四方

随着工业4.0时代的到来&#xff0c;数字化、网络化、智能化成为工业发展的新趋势。在这个过程中&#xff0c;5G工业数采网关作为一种关键设备&#xff0c;发挥着越来越重要的作用。本文将详细解析5G工业数采网关是什么&#xff0c;以及它在工业领域中的应用和重要性。 一、5G工…

socket套接字在tcp客户端与tcp服务器之间的通信,以及socket中常用的高效工具epoll

1.socket&#xff08;套接字&#xff09;的概念 Socket是对TCP/IP协议的封装&#xff0c;Socket本身并不是协议&#xff0c;而是一个调用接口&#xff08;API&#xff09;&#xff0c;通过Socket&#xff0c;我们才能使用TCP/IP协议,主要利用三元组【ip地址&#xff0c;协议&am…