RMAN备份与恢复

RMAN备份恢复技巧 为了尽可能的保证数据的安全和完整,我们需要制定完备的备份方案,当发生故障的时候能最大程度减少不必要的损失。举例子:某客户每天凌晨12点发起一个rman全备份,结果第二天晚上11点数据库磁盘损坏导致数据文件和归档文件全部损坏,数据库无法正常打开。在没有其他任何容灾备份的情况下,备份就显得格外重要了。但是我们备份是前一天12点发起的全备,意味着客户付出的代价是将近一天的数据丢失。所以制定完备的备份策略显得尤为重要! 阅读详情

RMAN很灵活,备份和还原数据库的方法细节有很多,以下只记录比较基础的用rman进行数据库备份与恢复的步骤。

 

一、系统环境

 

操作系统:Solaris 10   SunOS 5.10

数据库:Oracle10g   Enterprise Edition Release 10.2.0.2.0

 

二、备份准备

1、启动归档模式

 

    启动归档模式不是必须的,但是如果不启动归档模式,在还恢复数据库的时候就只能恢复到备份点的数据,在备份点到数据库损坏时刻的数据将丢失。

    (归档模式的设置参考: http://blog.youkuaiyun.com/lezerger/archive/2011/01/13/6135364.aspx)

 

2、进入RMAN

 

$rman target sys/sys@IRP_192.168.0.120

(未使用恢复目录)

 

3、配置RMAN参数

 

(1)配置备份保留时间,设置为基于时间:7天(周日执行0级备份,周三执行1级备份,其他时间执行2级备份)

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

 

(2)配置IO设备类型,采用默认:磁盘(DISK)

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;

 

(3)配置备份优化,采用默认:OFF

RMAN> CONFIGURE BACKUP OPTIMIZATION OFF;

 

(4)配置控制文件自动备份,采用默认:OFF

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP OFF;

 

(5)配置并行备份,采用默认:1

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1;

 

三、备份数据库

 

1、对全库进行0级备份,存放路径为/oracle/backup/,文件名为IRP_0_YYYYMMDD_唯一号

 

RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE FORMAT '/oracle/backup/IRP_0_%T_%u';

 

2、备份控制文件,存放路径为/oracle/backup/,文件名为CTL_YYYYMMDD_唯一号

 

RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/oracle/backup/CTL_%T_%u';

 

3、备份归档日志文件,备份完成后删除已备份的归档,存放路径为/oracle/backup/,文件名为ARC_YYYYMMDD_唯一号

 

RMAN> BACKUP ARCHIVELOG ALL DELETE ALL INPUT FORMAT '/oracle/backup/ARC_%T_%u';

 

4、对全库进行2级备份,存放路径为/oracle/backup/,文件名为IRP_2_YYYYMMDD_唯一号

 

RMAN> BACKUP INCREMENTAL LEVEL=2 DATABASE FORMAT '/oracle/backup/IRP_2_%T_%u';

 

5、对全库进行1级备份,存放路径为/oracle/backup/,文件名为IRP_1_YYYYMMDD_唯一号

 

RMAN> BACKUP INCREMENTAL LEVEL=1 DATABASE FORMAT '/oracle/backup/IRP_1_%T_%u';

 

四、查看备份信息

 

1、列出数据库中所有文件的备份信息

 

RMAN> LIST BACKUP OF DATABASE;

 

2、列出指定表空间的备份信息

 

RMAN> LIST COPY OF TABLESPACE 'SYSTEM';

 

3、列出指定数据文件的备份信息

 

RMAN> LIST BACKUP OF DATAFILE ‘/oracle/u02/oradata/GLOBAL_ONECARD.DAT’;

或者

RMAN> LIST BACKUP OF DATAFILE 5;

 

4、列出控制文件的备份信息

 

RMAN> LIST BACKUP OF CONTROLFILE;

 

5、列出归档日志文件的备份信息

 

RMAN> LIST BACKUP OF ARCHIVELOG ALL;

 

6、列出可废弃的备份

 

RMAN> REPORT OBSOLETE;

 

五、恢复数据库

 

1、对数据库进行完全介质恢复

 

(1)启动数据库到加载状态

RMAN> SHUTDOWN IMMEDIATE;

RMAN> STARTUP MOUNT;

 

(2)执行恢复操作

RMAN> RESTORE DATABASE SKIP TABLESPACE TEMP;

RMAN> RECOVER DATABASE DELETE ARCHIVELOGS SKIP TABLESPACE TEMP;

 

注意:DELETE ARCHIVELOGS和SKIP TABLESPACE两个参数是可选择的,作用如下:
DELETE ARCHIVELOGS:表示RMAN将在完成恢复过程后自动删除那些在恢复过程中修复的归档日志文件。
SKIP TABLESPACE:跳过指定表空间,比如临时表,当然临时表空间即使你不跳过它也不会恢复的。

(3)打开数据库,完成恢复

RMAN> ALTER DATABASE OPEN;

 

2、对指定数据文件进行恢复

 

(1)启动数据库到加载状态

RMAN> SHUTDOWN IMMEDIATE;

RMAN> STARTUP MOUNT;

 

(2)查询哪些数据文件需要恢复,FILE#即为文件编号

SQL> select * from v$recover_file;

 

FILE# ONLINE ERROR CHANGE# TIME
---------- ------- ------------------ ---------- -----------
5        ONLINE FILE NOT FOUND 0
6        ONLINE FILE NOT FOUND 0

 

(3)设置要恢复的文件为脱机

RMAN> SQL 'alter database datafile 5 offline drop';

RMAN> SQL 'alter database datafile 6 offline drop';

 

(4)执行恢复操作

RMAN> RESTORE DATAFILE 5;

RMAN> RESTORE DATAFILE 6;

 

RMAN> RECOVER DATAFILE 5;

RMAN> RECOVER DATAFILE 6;

 

(5)设置恢复的文件为联机

RMAN> SQL 'alter database datafile 5 online';

RMAN> SQL 'alter database datafile 6 online';

 

(6)打开数据库,完成恢复

RMAN> ALTER DATABASE OPEN;

 

注:以上(3)至(5)步骤也可放在run中达到批量执行的目的:

RMAN> run{

2> SQL 'alter database datafile 5 offline drop';

3> SQL 'alter database datafile 6 offline drop';

4> RESTORE DATAFILE 5;

5> RESTORE DATAFILE 6;

6> RECOVER DATAFILE 5;

7> RECOVER DATAFILE 6;

8> SQL 'alter database datafile 5 online';

9> SQL 'alter database datafile 6 online';

10>}

 

3、对归档文件进行恢复

 

(预留位置,待补)

 

4、对控制文件进行恢复

 

(预留位置,待补)

 

5、删除已过期备份

 

RMAN> DELETE OBSOLETE;

 

六、建立自动备份机制

 

1、制定自动备份策略

 

(1)备份时间为每天凌晨1点

(2)每周日对数据库进行0级(全库)备份、归档文件备份、控制文件备份,备份完成后删除过期备份

(3)每周一对数据库进行2级(增量)备份

(4)每周二对数据库进行2级(增量)备份

(5)每周三对数据库进行1级(累计)备份、归档文件备份、控制文件备份

(6)每周四对数据库进行2级(增量)备份

(7)每周五对数据库进行2级(增量)备份

(8)每周六对数据库进行2级(增量)备份

 

2、编写自动备份脚本

 

(1)编写周日备份脚本

 

$vi /oracle/BackupScript/SunDay

 

#connect database

#log of rman saved in '/oracle/BackupScript/logs/RMAN_yyyymmdd.txt'
connect target sys/sys@IRP_192.168.0.120
#start backup database in 0 level
run{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
BACKUP CURRENT CONTROLFILE FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/CTL_%T_%u';
BACKUP INCREMENTAL LEVEL=0 DATABASE FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/IRP_0_%T_%u';
sql 'alter system archive log current';
BACKUP ARCHIVELOG ALL DELETE ALL INPUT FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/ARC_%T_%u';
DELETE OBSOLETE;
}

 

(2)编写周三备份脚本

 

$vi /oracle/BackupScript/Wednesday

 

#connect database

#log of rman saved in '/oracle/BackupScript/logs/RMAN_yyyymmdd.txt'
connect target sys/sys@IRP_192.168.0.120
#start backup database in 1 level
run{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
BACKUP CURRENT CONTROLFILE FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/CTL_%T_%u';
BACKUP INCREMENTAL LEVEL=1 DATABASE FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/IRP_1_%T_%u';
sql 'alter system archive log current';
BACKUP ARCHIVELOG ALL DELETE ALL INPUT FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/ARC_%T_%u';
}

 

(3)编写平日(除周日、周三外)备份脚本

 

$vi /oracle/BackupScript/everyday

 

#connect database

#log of rman saved in '/oracle/BackupScript/logs/RMAN_yyyymmdd.txt'
connect target sys/sys@IRP_192.168.0.120

#start backup database in 2 level
run{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
BACKUP INCREMENTAL LEVEL=2 DATABASE FORMAT '/oracle/u01/app/oracle/flash_recovery_area/IRP/backupset/IRP_2_%T_%u';
}

 

(4)编写操作系统作业每天执行的脚本,此脚本根据当前日期自动判断该执行哪个备份脚本并执行

 

$vi /oracle/BackupScript/BackUp

 

#!/bin/bash
now=`date "+%w"`
if [ "$now" = 0 ]; then
su - oracle -c "rman cmdfile=/oracle/BackupScript/SunDay msglog=/oracle/BackupScript/logs/RMAN_`date "+%Y%m%d"`.txt"
elif [ "$now" = 3 ]; then
su - oracle -c "rman cmdfile=/oracle/BackupScript/Wednesday msglog=/oracle/BackupScript/logs/RMAN_`date "+%Y%m%d"`.txt"
else
su - oracle -c "rman cmdfile=/oracle/BackupScript/everyday msglog=/oracle/BackupScript/logs/RMAN_`date "+%Y%m%d"`.txt"
fi

 

(5)编译脚本,赋予可执行的权限

 

$ chmod +x /oracle/BackupScript/SunDay

$ chmod +x /oracle/BackupScript/Wednesday

$ chmod +x /oracle/BackupScript/everyday

$ chmod +x /oracle/BackupScript/BackUp

 

(6)为操作系统创建每天执行的任务计划

$ EDITOR=vi

$ export EDITOR

$ crontab -e

 

00 01 * * * /oracle/BackupScript/BackUp

 

保存退出后即完成。

【温室气体数据集】全球总碳柱观测网络 TCCON 阅读详情

相关推荐

[Ethernet in CANoe]4--CANoe工程中SOME/IP报文的详细介绍(二)

介绍了SOME/IP报文的SD报文(ServiceDiscovery),本片文章开始继续介绍SOME/IP报文。

汽车ECU自动化测试 1114

DBA之路--RMAN备份与恢复01_RMAN体系架构

由1.6我们可知道,rman在实际使用时会在SGA或PGA构筑缓冲区,同时通过1这些缓冲区将数据文件写入到块。这种缓冲区有实际分为两种输入缓冲区,填充从备份文件中读取的数据块#输入内存缓冲区 备份数据库时,输入内存缓冲区大小和数目取决于实际执行的备份命令,或者说时一个备份中多路复用的文件数量。

Princesk的博客 3292

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 383

oracle 10g RMAN备份及恢复

Copy ---物理备份 源文件大小与备份的文件大小一致 Backup ---逻辑物理备份,基于块级别的备份。备份的是已经使用的块也就是热点块。 RMAN的使用前提条件 ...

409

如何在OBS中添加实时时间戳:Lua脚本配置教程(附效果展示)

本文详细介绍了如何在OBS中通过Lua脚本配置实时时间戳功能,包括环境准备、脚本获取、安装配置及高级定制。适用于直播和视频录制场景,提供精准回溯和风格自定义,支持多平台适配和性能优化,是专业制作的必备技巧。

day7的博客 1044

从零搭建Obsidian智能知识库:Ollama本地模型与Copilot插件实战指南

本文详细介绍了如何从零搭建Obsidian智能知识库,结合Ollama本地模型与Copilot插件实现高效知识管理。通过本地部署AI助手,用户可以在保证隐私安全的同时,快速检索和整理笔记,提升工作效率。文章涵盖硬件准备、Ollama部署、插件配置及实战技巧,适合需要高效知识管理的专业人士。

weixin_29230773的博客 631

使用0级备份和1级备份做完全恢复

RMAN 单实例增量备份以及恢复测试 一、测试场景 二、测试步骤 三、RMAN相关注意点 四、拓展研究 一、测试场景 1、第一时间节点创建表test,并插入5条数据 2、RMAN level 0全备以及归档备份 3、第二时间节点表test再次插入5条数据库 4、RMAN level 1增量备份 5、数据库open状态下手动删除所有数据文件、控制文件、参数文件(模拟故障) 6、RMAN启动到nom...

Monkey·D·Boy的秘宝 2722

麒麟V10 x86_64系统下Qt 5.12.7安装全攻略(附常见报错解决方案)

本文详细介绍了在麒麟V10 x86_64系统上安装Qt 5.12.7的完整流程,包括在线和离线两种安装方案,并提供了常见报错的解决方案。从环境准备到项目配置优化,再到高级调试技巧,全面覆盖Qt开发在国产操作系统上的实践要点,帮助开发者高效搭建开发环境。

weixin_29294395的博客 508

ORACLE RMAN备份及还原

RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_header 在noarc...

cko82679的博客 317

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

本文主要介绍了ChatGPT启蒙之旅:弟弟妹妹的关键概念探险,希望能对初学大模型的同学们有所帮助。 文章目录 1. 背景 2. GPT是个什么样的人? 3. GPT使用的核心思维 4. GPT使用的场景介绍

herosunly的博客 16万+

oracle进行rman异机备份与恢复_0级及1级备份异机恢复实验教程

oracle进行rman异机备份与恢复系列教程_0级及1级备份异机恢复实验

dhz66163的博客 3646

《AI Coding手册:Claude Code、OpenAI Codex、OpenClaw深度解析与实战指南》

AI编码技术经历了从简单规则匹配到深度神经网络,再到当前智能体(Agent)架构的范式转变。第一阶段:静态代码补全(2010-2018)早期工具如IntelliSense、Emmet基于语法分析和固定模板提供代码提示。这类系统依赖预定义规则,缺乏语义理解能力,仅能处理局部代码片段。第二阶段:统计语言模型(2018-2020)以GPT-2、TabNine为代表,引入基于大规模代码训练的神经语言模型。

AI天才研究院 1033

Oracle RMAN 备份与恢复

这里写目录标题一、RMAN 备份与恢复1.RMAN备份(1)连接数据库(2)通道分配(3)RMAN 备份类型(4)BACKUP 命令(5)FORMAT 参数替换变量2.RMAN 恢复(1)数据库进行完全介质恢复(2)表空间的恢复(3)恢复数据文件(4)恢复控制文件二级目录三级目录 一、RMAN 备份与恢复        RMAN (Recovery Manager)是 Oracle 恢复管理器的简称,是集数据库备份(Backup)、还原(

独醉的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Oracle RMAN 备份恢复

RMAN在数据库服务器的帮助下实现数据库文件、控制文件、数据库文件和控制文件的映像副本,以及归档日志文件,数据库服务器参数文件的备份。RMAN也允许使用脚本文件实现数据的备份与恢复,而且这些脚本保存在数据库内,而不需要编写基于OS的脚本文件。RMAN备份的文件自动保存在一个系统指定的目录下,文件的名称也由RMAN自己维护。当实现数据库恢复操作时,恢复指令简洁,RMAN自动寻找需要的文件实现数据恢复。减少了传统的导出程序中人为错误的发生。

weixin_63131036的博客 3466

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

RMAN的备份与恢复

1 物理备份 1.1 完全备份(full) 全备份是一个或多个数据文件中使用过的数据块的的备份。没有使用过的数据块是不被备份的,也就是说,oracle进行备份集合的压缩。 把所有有数据的数据块都备份了,包括表、view、序列都是定义,都存在数据字典,数据字典在system表空间。 只备份有数据的数据块。所以rman是块级的备份,也是物理备份。 rman全库备份只需要通过backup databas...

鲨鱼胃的博客 2124

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Rman备份与恢复

由于逻辑备份具有平台无关性,所以更为常见的是,逻辑备份被作为一种数据迁移及移动的主要手段。在启动rman时,可以指定日志输出,如果示例中没有指定日志输出,rman就将执行结果直接打印到荧幕上了,如果以后写了一堆超长的rman批处理放在后台执行,最好有执行日志记录下来,以便后期备查,这个时候日志输出功能就用上了。上面的地址是用于存放备份集的地址,得实现建好,full_data_%d_%T_%s_%p的文件自动生成,其中full_data是前缀可以自由更改,%d即为数据库名,_%T_%s_%p为年月日的日期。

qq944603255的博客 3420

Oracle数据库的RMAN备份与恢复

RMAN在数据库服务器的帮助下实现数据库文件、控制文件、数据库文件和控制文件的映像副本,以及归档日志文件,数据库服务器参数文件的备份。RMAN也允许使用脚本文件实现数据的备份与恢复,而且这些脚本保存在数据库内,而不需要编写基于OS的脚本文件。RMAN备份的文件自动保存在一个系统指定的目录下,文件的名称也由RMAN自己维护。当实现数据库恢复操作时,恢复指令简洁,RMAN自动寻找需要的文件实现数据恢复。减少了传统的导出程序中人为错误的发生。

2301_76664379的博客 1961

RMAN - 备份与恢复 之一

1.1  基础理论 恢复可以分为完全恢复和不完全恢复 完全数据库恢复是恢复到故障发生前的状态,所有已经提交的操作都进行恢复,确保数据库不丢失任何数据,完全恢复只用于归档模式。 不完全数据库恢复是将数据库恢复到备份点与介质失败点之间某个时刻的状态,并不是恢复所有提交的操作,不完全恢复可能丢失部分数据。 任何类型的恢复包括两个阶段:前滚阶段和回滚(回退)阶段。 在前滚恢复阶段(

数据库专栏 1902

RMAN 备份与恢复

1、RMAN RMAN是执行备份和恢复操作的客户端应用程序。最简单的RMAN只包括两个组件:RMAN命令执行器与目标数据库。DBA就是在RMAN命令执行器中执行备份与恢复操作,然后由RMAN命令执行器对目标数据库进行相应的操作。 2、启动RMAN 运行–rman target system/nocatalog RMAN>show all–显示当前rman配置 3、 RMAN会话与服务器进程...

gwn0405的博客 925

RMAN备份及恢复

RMAN备份 1、spfile和controlfile的自动备份 当configure controlfile autobackup off时,仅当备份system01.dbf时才会自动备份controlfile和spfile; 当configure controlfile autobackup on时,当任意文件备份时,都会自动备份controlfile和spfile;   2、备份...

s_156的博客 809

RMAN备份与恢复资料

1. 检查数据库模式:   sqlplus /nolog    conn /as sysdba   archive log list (查看数据库是否处于归档模式中)   若为非归档,则修改数据库归档模式。   startup mount   alter database archivelog   alter database open2.连接到target数据库命令: connect

newhappy的专栏 1911

rman的备份与恢复

在这里没有讨论多么深入的RMAN技术,也没有告诉大家这样去编写备份脚本,这并不是我的初衷,我只想把我会的写出来,和大家一起学习,一起进步,谢谢。 1、切换服务器归档模式,如果已经是归档模式可跳过此步: %sqlplus /nolog (启动sqlplus) SQL> conn / as sysdba (以DBA身份连接数据库) SQL> shutdown immediate; (立

朱小猿 1938

Oracle的RMAN备份与恢复脚本

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33955681的博客 1392

RMAN备份与恢复实例

原 RMAN 备份与恢复 实例https://blog.youkuaiyun.com/tianlesoftware/article/details/4699320版权声明: https://blog.youkuaiyun.com/tianlesoftware/article/details/4699320 1. 检查数据库模式: sqlplus /nolog conn /as sysdba archiv...

rede 1145

RMAN增量备份恢复

RMAN增量备份

FJ_MUsea的博客 2011
上一篇: oracle10g的spfile与pfile
下一篇: Oracle Explain Plan
lezerger
博客等级 码龄20年 7粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值