RMAN oracle 11g

oracle 11g已经是个使用了很多年的版本了,很多单位都使用oracle 11g,而有些单位因为没人懂oracle,部署应用的厂家也因为服务终止停止了维护。导致一些重要的数据库连个基本的备份都没有。 

当遇到故障的时候,除了需要高额的数据恢复服务外,往往还会丢失部分数据。虽然出故障之后才开始重视起来,但是已经丢了的数据是找不回来的。

虽然救火就意味着报酬,但是数据是无价的,尤其是一些重要的行业。备份,是一种最廉价,但是最有效的保护数据安全的一种方式, 不用您去采购备份一体机或者存储镜像等昂贵的设备,只需要您预留一部分空间,执行rman定时备份或者数据泵备份,再通过ftp定时传输到异地的一台闲置的服务器上,可以保证您至少有一份数据在,如果归档日志也在的话,可以实现数据零丢失。

如果您恰好是某个机构的数据库管理员,正好当前没有什么备份手段,那么不妨了解一下,部署一个定时备份任务保证数据的完整。

--1.rman是什么 ?

Recovery Manager (RMAN)

--rman就是oracle官方推出的一种物理备份工具,以oracle block为读取单位。

--可以结合expdp使用做备份,可以实现更小粒度的备份。rman11g之前最小是表空间级别。12c之后可以恢复表。

--2.使用条件

--需要开启归档

archive log list;
shutdown immediate;
startup mount;
alter database archivelog;
alter system set log_archive_dest_1='location=/arp/oraarp/archive';
alter database open;
archive log list;
--如果使用快速恢复区的话一定要注意快速恢复区的大小

--3.rman常用命令

--3.1.登录命令

rman target / 
--登录本地用ORACLE_SID环境变量标识,用操作系统账户进行验证身份
rman target sys/oracle 
--登录本地,用数据库密码文件验证身份
rman target sys/oracle@orclz
--登录远程数据库,使用网络连接远程数据库
show all;
--列出rman配置,可以配置备份路径和控制文件是否自动备份以及备份路径

2. 配置控制文件自动备份
你可以使用 CONFIGURE CONTROLFILE AUTOBACKUP 命令来启用或禁用控制文件的自动备份。例如,要启用自动备份并将备份保存在与数据文件相同的目录中,你可以这样做:

 

sql复制代码

CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/controlfil

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u04/f4db_rmanbk/control/%F'

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u04/f4db_rmanbk/control/%d_%F'

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u04/f4db_rmanbk/control/ctl_%d_%t_%u.bak'

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/u04/f4db_rmanbk/%d_%t_%u.bak';

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u04/f4db_rmanbk/dbs/snapcf_ORCL.f';

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;

--3.2.备份命令

--备份全库

/***备份全库会包含参数文件和控制文件***/

RMAN> backup database  format '/home/oracle/backup/rman/fulldb_%s_%p';Starting backup at 14-DEC-21
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=51 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/ogg01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 14-DEC-21
channel ORA_DISK_1: finished piece 1 at 14-DEC-21
piece handle=/home/oracle/backup/rman/fulldb_80_1 tag=TAG20211214T155842 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 14-DEC-21
channel ORA_DISK_1: finished piece 1 at 14-DEC-21
piece handle=/home/oracle/backup/rman/fulldb_81_1 tag=TAG20211214T155842 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 14-DEC-21RMAN> 
RMAN> restore spfile to '/home/oracle/backup/pfile.ora';Starting restore at 14-DEC-21
using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: restoring SPFILE
output file name=/home/oracle/backup/pfile.ora
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/rman/fulldb_81_1
channel ORA_DISK_1: piece handle=/home/oracle/backup/rman/fulldb_81_1 tag=TAG20211214T155842
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-DEC-21RMAN> restore controlfile to '/home/oracle/backup/control01.ctl';Starting restore at 14-DEC-21
using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: restoring control file
output file name=/home/oracle/backup/control01.ctl
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/rman/fulldb_81_1
channel ORA_DISK_1: piece handle=/home/oracle/backup/rman/fulldb_81_1 tag=TAG20211214T155842
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 14-DEC-21RMAN> backup database  format 'fulldbcom_%s_%p' tag="full_data";
--压缩备份全库
backup archivelog all format '/home/oracle/backup/rman/archive_%s_%p';
--备份归档日志
backup as compressed backupset archivelog all delete input format '/Data/arch/arch1/archivelog_%d_%I_%s_%p_%T';
--压缩备份归档日志

--3.3.删除命令

delete backup;
--删除所有备份
delete noprompt backup; 
--不用确认删除所有备份,用在脚本里面,脚本里面没法输入YES
delete archivelog all;
--删除所有归档日志
delete noprompt archivelog all;
--不用确认删除所有归档日志
delete noprompt archivelog until time 'sysdate-7';
--删除7天前的归档
delete obsolete; 
--删除陈旧备份;
delete expired backup; 
--删除EXPIRED备份;
delete expired copy; 
删除EXPIRED副本;

--3.4.report命令

report schema;
--报告目标数据库的物理结构; 
report need backup days=3; 
--报告最近3天没有被备份的数据文件;
report need backup days 3 tablespace users; 
--在USERS表空间上3天未备份的数据 文件; 
report need backup incremental 3; 
--报告恢复数据文件需要的增量备份个数超过3次 的数据文件; 
report need backup redundancy 2 database; 
--报告备份文件低于2份的所有数据文 件;RMAN>report need backup redundancy=2; 
report need backup recovery window of 6 days; 
--报告文件报表的恢复需要超过6天 的归档日志的数据文件; 
report unrecoverable; 
--报告数据库所有不可恢复的数据文件; 
report obsolete redunndancy 2; 
--报告备份次数超过2次的陈旧备份; 
report obsolete; 
--报告多余的备份;

--3.5.list命令

list backup 列出详细备份;
list expired backup; 
--列出 过期备份; 
list backup of database; 
--列出所有数据文件的备份集;
list backup of tablespace user; 
--列出特定表空间的所有数据文件备份集;
list backup of controlfile; 
--列出控制制文件备份集; 
list backup of archivelog all; 
--列出归档日志备份集详细信息; 
list archivelog all; 
--列出归档日志备份集简要信息 
list backup of spfile; 
--列出SPFILE备份集; 
list copy of datafile; 
--列出数据文件映像副本; 
list copy of controlfile; 
--列出控制文件映像副本; 
list copy of archivelog all; 
--列出归档日志映像副本; 
list incarnation of database; 
--列出对应物/列出数据库副本; 
list backup summary; 
--概述可用的备份;

--3.6.crosscheck命令

crosscheck backup; 
--核对所有备份集;
crosscheck backup of database; 
--核对所有数据文件的备份集;
crosscheck archivelog all;
--核对所有归档;

4.全库备份脚本实战

cd /home/oracle/backup
vi rman_backup_full.sh#!/bin/bash
source ~/.bash_profile
export backup_date=`date +%Y%m%d`
export backup_path=/home/oracle/backup/rman
rman target / nocatalog << EOF1
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup (database  format '$backup_path/${backup_date}_data_%s_%p' tag="full_data");
backup (archivelog all delete all input format '/$backup_path/${backup_date}_arc_%s_%p' tag="full_arc");
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
exit
EOF1--如果你的空间只能存放一份备份,比如空间只有50G,备份有30G,只够存放一份备份,那么可以在备份之前删除所有备份,然后执行备份。
#!/bin/bash
source ~/.bash_profile
export backup_date=`date +%Y%m%d`
export backup_path=/home/oracle/backup/rman
rman target / nocatalog << EOF1
delete noprompt backup;
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup (database  format '$backup_path/${backup_date}_data_%s_%p' tag="full_data");
backup (archivelog all delete all input format '/$backup_path/${backup_date}_arc_%s_%p' tag="full_arc");
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
exit
EOF1--如果你的归档目录比较大,而且你有adg,需要应用归档日志,那么可以把归档保留一定的时间,而不是备份之后就删除--delete all input。
#!/bin/bash
source ~/.bash_profile
export backup_date=`date +%Y%m%d`
export backup_path=/home/oracle/backup/rman
rman target / nocatalog << EOF1
crosscheck backup;
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-7';
delete noprompt expired backup;
delete noprompt expired backupset;
delete noprompt obsolete;
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup (database  format '$backup_path/${backup_date}_data_%s_%p' tag="full_data");
backup (archivelog all  format '/$backup_path/${backup_date}_arc_%s_%p' tag="full_arc");
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
exit
EOF1[oracle@11g rman]$ crontab -l
/var/spool/cron/oracle: Permission denied
su - root
chmod u+s /usr/bin/crontab 
[root@11g ~]# chmod u+s /usr/bin/crontab 
[root@11g ~]#  ll /usr/bin/crontab 
-rwsrwxrwx. 1 root root 47520 Mar  4  2011 /usr/bin/crontab
[root@11g ~]# su - oracle
[oracle@11g ~]$ crontab -l
no crontab for oraclechown +x /home/oracle/backup/rman_backup_full.shcrontab -e
* 22 * * *  /home/oracle/backup/rman_backup_full.sh > /home/oracle/backup/rman_backup_full.log 

内容仅限于自己学习的历程,如有不对的地方,请不吝赐教!如有疑问,也欢迎一起讨论! 非常感谢!

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

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

相关文章

基于Springboot的社区防疫物资申报系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的社区防疫物资申报系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

Quartz + SpringBoot 实现分布式定时任务

文章目录 前言一、分布式定时任务解决方案二、Quartz是什么&#xff1f;1.quartz简介2.quartz的优缺点 二、Quartz分布式部署总结 前言 因为应用升级&#xff0c;由之前的单节点微服务应用升级为集群微服务应用&#xff0c;所以之前的定时任务Spring Scheduled不再适用了&…

SV-704LW 无线WIFI网络音柱

SV-704LW 无线WIFI网络音柱(工业级) 一、描述 SV-704LW是深圳锐科达电子有限公司的一款壁挂式WIFI无线网络音柱&#xff0c;通过WIFI无线接入到WIFI覆盖的网络中&#xff0c;可将网络音源通过自带的功放和喇叭输出播放&#xff0c;其采用防水设计&#xff0c;功率可以从30W到6…

如何利用FLUENT计算流体力学方法解决大气与环境领域流动问题

ANSYS FLUENT是目前全球领先的商用CFD 软件&#xff0c;市场占有率达70%左右&#xff0c;是工程师和研究者不可多得的有力工具。由于采用了多种求解方法和多重网格加速收敛技术&#xff0c;因而FLUENT能达到最佳的收敛速度和求解精度。灵活的非结构化网格和基于解的自适应网格技…

从OWASP API Security TOP 10谈API安全

1.前言 应用程序编程接口&#xff08;API&#xff09;是当今应用驱动世界创新的一个基本元素。从银行、零售、运输到物联网、 自动驾驶汽车、智慧城市&#xff0c;API 是现代移动、SaaS 和 web 应用程序的重要组成部分&#xff0c;可以在面向客 户、面向合作伙伴和内部的应用程…

计算机组成原理 — 控制单元的功能

控制单元的功能 控制单元的功能微操作命令分析取指周期间址周期执行周期中断周期 控制单元的功能控制单元的外特性输入信号输出信号 控制信号举例不采用CPU内部总线的方式取指周期间址周期执行周期 采用CPU内部总线的方式取指周期间址周期执行周期 多级时序系统机器周期时钟周期…

反激电源——TL431及光耦反馈电路计算(不涉及环路补偿)

一、TL431及光耦反馈电路 TL431以及光耦电路是反激的副边反馈类型电路中的常见应用。 其反馈工作原理为&#xff1a;当副边的输出电压升高时&#xff0c;TL431的REF点采样电压也会升高&#xff0c;使得TL431的导通量增加&#xff0c;同时光耦内部的发光二极管流过的电流也增大&…

线段树汇总

线段树是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数&#xff0c;时间复杂度为O(logN)。而未优化的空间复杂度为2N&a…

SpringCloud系列(4)--SpringCloud微服务工程构建

前言&#xff1a;在上节我们新建了一个SpringCloud父工程&#xff0c;这一节主要是构建微服务工程&#xff0c;通过实现订单模块和支付模块来熟悉微服务的概念和构建过程。 1、在父工程下新建模块 2、选择模块的项目类型为Maven并选择模块要使用的JDK版本 3、填写子模块的名称&…

企业网盘搭建——LNMP

php包链接&#xff1a;https://pan.baidu.com/s/1RElYTQx320pN6452N_7t1Q?pwdp8gs 提取码&#xff1a;p8gs 网盘源码包链接&#xff1a;https://pan.baidu.com/s/1BaYqwruka1P6h5wBBrLiBw?pwdwrzo 提取码&#xff1a;wrzo 目录 一.手动部署 二.自动部署 一.手动部署 …

SQL表连接详解:JOIN与逗号(,)的使用及其性能影响

省流版 在这个详细的解释中&#xff0c;我们将深入探讨SQL中表连接的概念&#xff0c;特别是JOIN和逗号&#xff08;,&#xff09;在连接表时的不同用法及其对查询性能的影响。通过实际示例和背后的逻辑分析&#xff0c;我们将揭示在不同场景下选择哪种连接方式更为合适。 1.…

BioTech - 使用 Amber 工具 松弛(Relaxation) 蛋白质三维结构 (Python)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/137889532 Amber 工具在蛋白质 松弛(Relaxation) 过程中起着重要的作用。在分子动力学模拟中,蛋白质松弛是指模拟过程中蛋白质结构达到一个较为稳定的状态。这个过程通…

社交媒体数据恢复:推特、Twitter

推特&#xff08;Twitter&#xff09;数据恢复&#xff1a;如何找回丢失的内容 随着社交媒体的普及&#xff0c;越来越多的人开始使用推特&#xff08;Twitter&#xff09;来分享生活点滴、发表观点和获取信息。然而&#xff0c;有时候我们会不小心删除了重要的推文&#xff0…

根据 Excel 列生成 SQL

公司有个历史数据刷数据的需求, 开发功能有点浪费, 手工刷数据有点慢, 所以研究了下 excel 直接生成 SQL, 挺好用, 记录一下; 例如这是我们的数据, 要求把创建时间和完成时间刷进数据库中, 工单编号唯一 Excel 公式如下: "UPDATE service_order SET create…

工业控制(ICS)---MMS

MMS 工控领域的TCP协议&#xff0c;有时wireshark会将response包解析为tcp协议&#xff0c;影响做题&#xff0c;如果筛选mms时出现连续request包&#xff0c;考虑wireshark解析错误&#xff0c;将筛选条件删除手动看一下 initiate&#xff08;可以理解为握手&#xff09; i…

DRF 序列化类serializer单表

【五】序列化类serializer单表 【1】主要功能 快速序列化 将数据库模型类对象转换成响应数据&#xff0c;以便前端进行展示或使用。这些响应数据通常是以Json&#xff08;或者xml、yaml&#xff09;的格式进行传输的。 反序列化之前数据校验 序列化器还可以对接收到的数据进行…

宝塔要注意的问题

数据库创建访问权限要全部人 反向代理1 打包dist,并不会有反向代理&#xff0c;所以宝塔里面要配置 反向代理2 这种去掉/api为/&#xff0c;上面的并没有去掉 rewrite ^/api/(.*)$ /$1 break;

hcia datacom课程学习(6):路由与路由表基础

1.路由的作用 不同网段的设备互相通信需要具有路由功能的设备进行转发 具有路由功能的设备不一定是路由器&#xff0c;交换机可以有路由功能&#xff0c;同样的&#xff0c;路由器也可以有交换功能&#xff0c;像家里常用的路由器就是集路由功能和交换功能于一体的 2.路由相…

【SAP NWDI】创建DC(Development component)(三)

一、准备DC组件包 首先需要下载下面这7个sca 的组件包,找到对应的ME版本的组件包,可以找对应的Basis帮忙下载。然后把这7个组件包放入到服务器中根目录的这个目录中,如果目录没有的需要自己创建出来。 二、导入DC组件包 注意:下面的的图中 有需要填写 in 和 out 的连个目…

网络编程 day5

select实现TCP并发服务器&#xff1a; #include<myhead.h> #define SER_IP "192.168.125.199" //服务器IP地址 #define SER_PORT 6666 //服务器端口号int main(int argc, const char *argv[]) {//1、创建套节字&#xff1a;用于接收…