Oracle的RMAN备份与恢复脚本

一、备份方案:

采用多级备份是为了减少了恢复所需要的时间和减少每天备份所需要的时间,而又保证系统有很好的恢复性。

以下是一种建议的方案:

每半年做一个数据库的全备份(包含只读表空间)

每个月做一次零级备份(不包含只读表空间)

每个星期做一次一级备份

每天做一个二级备份

任何表空间改成只读状态后做一个该表空间的备份。

当需要时(如四个小时归档文件系统就要接近满了)备份归档文件

1、数据库全备份脚本 :

run {

allocate channel c1 type disk;

backup full  tag 'dbfull' format '/opt/backup/full_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

2、零级备份 :

run {

allocate channel c1 type disk;

backup incremental level 0 filesperset 5 tag 'dbL0' format '/opt/backup/ora_0_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

3、一级备份 :

run {

allocate channel c1 type disk;

backup incremental level 1 filesperset 5 tag 'dbL1' format '/opt/backup/ora_0_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

4、二级备份 :

run {

allocate channel c1 type disk;

backup incremental level 2 filesperset 5 tag 'dbL2' format '/opt/backup/ora_0_%d_%u' (database include current controlfile);

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

5、表空间备份 脚本(以users表空间为例):

run {

allocate channel c1 type disk;

backup  tag 'tsusers' format '/opt/backup/ora_0_%d_%u' tablespace users;

sql 'alter system archive log current' ;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

6、归档文件备份 脚本:

run {

allocate channel c1 type disk;

backup format '/opt/backup/archivelog_%d_%u' (archivelog all);

release channel c1;

}

二、RMAN恢复案例

1 、丢失全部数据文件,控制文件、日志文件必须存在

模拟介质损坏:删除所有dbf文件

启动数据库:startup mount

恢复语句:

run{

allocate channel c1 type disk;

restore database;

recover database;

sql 'alter database open';

release channel c1;

}

注意:Oracle永远不会备份使用临时文件的TEMPORARY表空间,因为临时表空间包含的只是暂时

性的数据,根本不必还原。不过在还原后数据字典中还是有临时表空间的相关信息,你只要

简单的重建一个临时表空间,设置其为缺省临时表空间,再把以前的临时表空间删除即可。

SQL> create temporary tablespace temp2 tempfile 'd:oracleoradataoradbtemp02.dbf' size 100M;

SQL> alter database default temporary tablespace temp2;

SQL> drop tablespace temp including contents and datafiles;

2、丢失非系统数据文件恢复

模拟介质损坏:删除users01.dbf文件

启动数据库:startup mount

恢复语句:

run {

allocate channel c1 type disk;

sql 'alter tablespace users offline';

restore tablespace users;

recover tablespace users;

sql 'alter tablespace users online';

release channel c1;

}

3、 丢失全部数据文件、控制文件、日志文件恢复

注意:在备份时配置了configure controlfile autobackup on;

[oracle@Linux1  rman_backup]$ rman target /

RMAN>  set DBID=285819149

RMAN>  restore controlfile from autobackup(也可以:restore controlfile from ‘file name’ );

启动数据库:startup mount

恢复语句:

run{

allocate channel c1 type disk;

restore database;

recover database;

sql 'alter database open resetlogs';

release channel c1;

}

4、不完全恢复

A、基于时间点的不完全恢复:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

SET UNTIL TIME = '2002-12-09:11:44:00';

RESTORE DATABASE;

RECOVER DATABASE;

sql'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

B、基于日志序列的不完全恢复:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

SET UNTIL SEQUENCE 120 THREAD 1;

RESTORE DATABASE;

RECOVER DATABASE; # recovers through log 119

sql'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

C、基于SCN的不完全恢复:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

SET UNTIL SCN=100145;

RESTORE DATABASE;

RECOVER DATABASE;

sql'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

D、基于cancel的不完全恢复:

RUN {

ALLOCATE CHANNEL c1 TYPE DISK;

RESTORE DATABASE;

RECOVER DATABASE UNTIL CANCEL;

SQL'ALTER DATABASE OPEN RESESTLOGS';

RELEASE CHANNEL 1;

}

三、维护RMAN RMAN的维护主要分为几个方面

1、  查看RMAN的信息

检查现有备份

RMAN>list backup

列出过期备份

RMAN>report obsolete

删除过期的备份

RMAN>allocate channel for maintenance type disk;

RMAN>change backupset id delete;

RMAN>release channel;

删除所有过期的备份

RMAN>delete obsolete;

2、  同步或重置RMAN

如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步:

RMAN>resync catalog;

如果目标数据库reset了数据库,需要用如下命令同步

RMAN>reset database;

当手工删除了数据库的归档文件后,要执行以下脚本同步

RMAN>allocate channel for maintenance type disk;

RMAN> change archivelog all crosscheck;

RMAN>release channel;

当手工删除了数据库的RMAN备份后,要执行以下脚本来同步

RMAN>allocate channel for maintenance type disk;

RMAN>crosscheck backup;

RMAN>delete expired backup;

RMAN>release channel;

转载于:https://my.oschina.net/kivensoft/blog/549373

标签:备份,c1,Oracle,RMAN,backup,_%,channel

来源: https://blog.csdn.net/weixin_33955681/article/details/92058669

oracle rman在线备份,Oracle的RMAN备份与恢复脚本相关推荐

  1. oracle不用密码备份,oracle用备份的控制文件恢复后不用resetlogs打开方式的恢复

    在一般恢复备份 的控制文件,打开数据库 都要 用resetlogs 重置日志这种方式, 这是因为备份的控制文件恢复后,没有最新的当前在线日志信息 ,而重建控制文件 就 可以用 NORESETLOGS  ...

  2. linux下rman自动备份,linux 下rman 自动备份

    一.新建备份目录并授权: [oracle@TAIXIN-HR ~]$ mkdir -p  /home/oracle/app/hr_back (备份目录) mkdir -p  /home/oracle/ ...

  3. netbackup 备份oracle,Netbackup 6 备份 oracle 9.2

    环境描述: Netbackup Master Server:windows 2003  Veritas Netbackup 6.0 Netbackup Advanced Client:windows ...

  4. oracle 数据全备份,oracle数据库全备份和增量备份

    1. 检查数据库模式: sqlplus /nolog conn /as sysdba archive log list (查看数据库是否处于归档模式中) 若为非归档,则修改数据库归档模式. start ...

  5. oracle 每天 增量备份,Oracle的差异增量备份和累积增量备份

    在rman增量备份中,有差异增量和累积增量的概念 1.概念 差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式 累积增量:是备份上级备份以来所有变化的块 因为累积增量是备份 ...

  6. oracle清理历史备份,oracle数据库备份删除操作

    1.删除多余的归档日志 在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area.对于这个路径,ORACLE有一个限制,就是默认只能有2G的空间给归档日 ...

  7. 安装oracle采用自动备份,Oracle 在window下自动备份

    1.确定你的计算机上装有oracle的客户端,如果没有,请安装oracle客户端 2.确定有你的oracle服务里有你要需要备份的数据库的服务名. 3.制作一个批处理文件(oracleBackup.b ...

  8. oracle配置并发备份,oracle数据库还原以及备份 包括快速备份(并发压缩)

    expdp jhpt/XXXX directory=databackup dumpfile=dpfile_201512091300_%U.dmp filesize=5G parallel=8 comp ...

  9. oracle怎么增量备份,Oracle 增量备份

    常用脚本: -----1. 0级备份 批处理文件: set Oracle_SID=orcl rman target sys/test@orcl cmdfile= 常用脚本: -----1. 0级备份 ...

  10. rman一致性备份oracle数据库可以在非归档模式下么,探索ORACLE之RMAN_03一致性备份...

    探索ORACLE之RMAN_03一致性备份 作者:吴伟龙 在之前的已经提到过备份分为一致性备份和非一致性备份,它们的区别就在于数据库所处的备份状态不同,并且一致性备份不能做增量备份恢复,需停业务,一致 ...

最新文章

  1. Oracle全文检索示例
  2. 基于hibernate实现的分页技术
  3. android 照片多选,Android: 关于系统相册多选图片的问题
  4. 这个数学问题,打一局台球就解决了
  5. html盒子居中的方式,CSS盒子居中三种方法
  6. 半年工作经验今日头条和美团面试题面经分享
  7. linux jar管理工具,常用的linux下jar包管理命令
  8. Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)
  9. ubuntu12 环境下编译freerdp
  10. 基于汇编语言的贪吃蛇程序
  11. uml中活动图与流程图的区别
  12. animation的八大属性及HTML基础动画效果——平移、旋转、缩放、倾斜、过渡
  13. sockjs-node报错
  14. PCL学习笔记3-KdTree
  15. mysql constraint primary key_SQL PRIMARY KEY 约束
  16. Tiled结合Unity实现瓦片地图——Unity实战篇
  17. 微信无法连接服务器10,微信无法连接到服务器【应对方式】
  18. JPA之EntityManager踩坑笔记:更改PersistenceContext
  19. STM32如何快速驱动一款12864LCD液晶模块 3分钟点亮 STM32例程
  20. 应用在LED植物照明中的LED照明灯

热门文章

  1. 网络工程师需要那些技术
  2. python pip下载安装一半退出_【Python】pip安装numpy安装到一半失败解决办法
  3. Hadoop配置文件详解
  4. matlab实现同态滤波
  5. 《商务与经济统计》练习:案例3-4:天使巧克力的网络交易
  6. Python 植物大战僵尸代码实现
  7. 这十个Python实战项目,让你瞬间读懂Python!
  8. Arm云游戏及虚拟化技术沙龙,Arm中国,NVIDIA,腾讯及百度等为你分享超强技术干货
  9. 必成功的Hadoop环境搭建jdk环境搭建-超详细操作
  10. ubuntu12.04安装配置opensips,搭建voip服务器