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

 

保存退出后即完成。

Qt C++ + Qt 3D 的数字孪生工厂 以下是一个基于 **Qt C++ + Qt 3D** 的数字孪生工厂完整源码示例,集成了 **Qt 3D** 产线建模和 **WebSocket** 实时数据交互。ui->qualifiedProductsLabel->setText(QString("合格产品: %1").arg(data.qualifiedProducts));ui->totalProductsLabel->setText(QString("总产量: %1").arg(data.totalProducts)); 阅读详情

相关推荐

平衡小车动力学建模

两轮自平衡小车由车体和双轮两部分组成,可以看成一个移动的倒立摆,分别对车轮和车体进行力学分析,建立动力学模型,最后,通过对两者的分析给出系统的状态空间表达式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjiPEUVJ-1679470559950)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230322110521545.png)]

qq_23096319的博客 9056

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

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

Princesk的博客 3292

C#与AutoCAD插件开发实战:从零构建你的第一个自定义命令

本文为AutoCAD插件开发新手提供了一份完整的C#实战指南。从搭建Visual Studio开发环境、添加AutoCAD .NET API引用,到编写并注册第一个“Hello AutoCAD”自定义命令,再到实现一个交互式绘制十字线的实用命令,详细讲解了核心代码结构与调试技巧。文章旨在帮助工程师和设计师利用C#自动化重复绘图任务,显著提升工作效率。

weixin_29294597的博客 434

oracle 10g RMAN备份及恢复

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

409

Docker小白也能搞定!5分钟用calibre-web搭建私人Kindle书库(附静读天下配置)

本文为零基础用户提供了一份详尽的指南,介绍如何利用Docker容器技术,在5分钟内快速部署Calibre-Web服务,从而搭建一个完全私有的个人Kindle书库。教程涵盖了从Docker安装、Calibre-Web一键部署、书籍元数据管理到移动端配置的全流程,并重点讲解了如何与安卓端知名阅读应用“静读天下”联动,实现跨设备无缝访问,打造媲美在线书城的个性化阅读体验。

weixin_29216957的博客 542

数据分析—用户行为数据分析

一般价值用户(R高F高M低):用户处于购买活跃期,感兴趣的商品多,购买次数少 → 针对该部分客户,目的就是要让他们购买,所以可以和运营部门沟通,降低利润,给出有力折扣促进购买,进而转为重要价值用户。重要价值用户(R高F高M高)维护:用户处于购买活跃期,感兴趣的商品多,购买次数也多 → 针对兴趣产品,保持一定频率的触达,持续维护。

m0_74091312的博客 1420

使用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

PX4从放弃到精通(十九):串口驱动

文章目录前言一、创建进程二、编写驱动 前言 硬件: PIXHAWK4 USB转串口模块 软件: Ubuntu18.04 PX4 1.11.3固件 QGC地面站 串口助手 一、创建进程 参考:https://mbot1.blog.youkuaiyun.com/article/details/122587617 二、编写驱动 .........

超维空间科技的博客 4599

ORACLE RMAN备份及还原

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

cko82679的博客 317

别再只当调包侠了!YOLO检测头到损失函数全链路拆解,看完才算真懂

YOLO的精妙不在于某个单一创新,而在于各模块围绕“实时精准检测”这一目标的协同设计。Backbone追求高效特征压缩,Neck保障多尺度信息流通,Head解耦任务冲突,Loss动态引导优化方向。只有理解这套内在逻辑,才能跳出“调包-试错”的低效循环,在面对新场景、新问题时做出有理有据的改进决策。技术深度决定职业天花板。下次再调YOLO时,不妨先问自己:我改的这个参数,到底影响了系统中的哪一环?参考资料。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 186

强化学习优化多目标冲突推理的决策过程设计

1. 背景介绍 强化学习(Reinforcement Learning,RL)作为机器学习的一个重要分支,近年来在计算机科学和人工智能领域取得了显著的进展。其核心思想是通过试错来学习最优策略,从而在复杂的环境中实现目标。然而,在多目标冲突推理(Multi-Objective Conflict Reasoning,MOCR)问题上,强化学习面临着诸多挑

AI天才研究院 1513

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

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

dhz66163的博客 3646

YOLO系列算法改进 | Head改进篇 | 融合Detect_LSCD轻量共享卷积检测头 | 轻量化设计破解计算瓶颈,增强复杂场景目标感知能力

YOLO系列算法改进 | Head改进篇 | 融合Detect_LSCD轻量共享卷积检测头 | 轻量化设计破解计算瓶颈,增强复杂场景目标感知能力 (以YOLO26最新目标检测模型为基础,融合Detect_LSCD检测头进行改进)

2502_91881744的博客 704

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万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Oracle RMAN 备份恢复

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

weixin_63131036的博客 3466

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RMAN的备份与恢复

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

鲨鱼胃的博客 2124

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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、付费专栏及课程。

余额充值