完全恢复:

1.关闭DB
2.拷贝文件
3.启动DB。<出错>startup mount
4.recover database until cancel using backup controlfile;
5.alter database open resetlogs;

一.数据库是打开状态,系统表空间和undo表空间未损坏。

1.表空间offline 2.拷贝备份文件 3.执行恢复操作recover tablespace 名字 或recover datafile #
4.表空间online

二.数据库是关闭状态,系统表空间和undo表空间损坏
1.startup mount
2.拷贝文件
3.recover database;
4.alter database open;

三.数据库是关闭状态,系统表空间和undo表空间未损害
1.startup mount
2.alter database datafile XX offline;
3.alter database open;
4.拷贝文件
5.recover datafile xx;
6.alter database datafile XX online;

四.数据无备份,但是所有的归档都存在。

不完全恢复:
一.基于时间的不完全恢复
1.误删除 看<alert>,确定在几点做的误操作
如果alert看不到,可以做日志挖掘
2.备份,干净关闭数据库
3.建议冷备份当前所有文件;如数据文件,redo,控制文件,归档文件,以防越改越糟
4.拷贝以前的备份(redolog,数据文件,控制文件);
5.startup mount;
6.alter session set NLS_date_format='yyyy-mm-dd hh24:mi:ss';
7.recover database until time '时间格式';
8.alter database open resetlogs;<v$datafile>
9.alter database rename file '看到的' to '目的';
10.select * from v$recover_file;
11.recover tablespace XX;
12.alter database datafile X online;
13.做一次完整的备份。

二.联机日志文件被删除
1.关闭DB
2.建议备份当前;
3.拷贝以前的备份;
4.startup mount;
5.recover database until cancel;
6.alter database open resetlogs;
7.做一次完整的备份

三.丢失所有的控制文件
1.对控制文件做了备份。
alter database backup controlfile to 'XXX';
2.做update操作
3.关闭数据库
4.模拟失败<控制文件别名>
5.备份的ctl拷贝目的路径
6.启动到mount
7.select group#,status from v$log;<看当前日志组>
select file#,checkpoint_change# from v$datafile;《看控制文件》
select file#,checkpoint_change# from v$datafile_header;《看数据文件》
如果scn不一致,不能auto恢复
8.recover database using backup controlfile;
/u01/app/oracle/oradata/openlab/XXX.log《当前的日志》
9.alter database open resetlogs;

四.控制文件备份的方法:
alter database backup controlfile to '名字';
alter database backup controlfile to trace;

rman
oracle备份和恢复的一个工具
补充:unix和linux dump--->restore
dump -0S /dev/sad1

dump -0u -f /opt/20130429 /dev/sda1

restore -tf /opt/20130429
restore -if /opt/20130429
>ls
>add file_name
>extract
1
>y|n
>q

tar+dump+ssh

链接
$rman
rman>connect target /《nocatlog模式》
rman>show all;<看rman参数的设置>

rman可以备份数据库的那些数据
1数据文件
2控制文件
3归档文件
4参数文件<spfile>
5不可以备份redo

备份方式
1.备份集
2.镜像

rman不一致

备份
1.report《要做啥》
2.list《做过啥》
3.backup database;<datafile,controlfile,spfile>
4.backup tablespace XXX;<某个表空间>
5.backup datafile XXX;<备份某个数据文件>
6.list backup;《列出备份信息---all》
7.list backup of tablespace XXX;《列出表空间备份信息》

如何恢复
1.数据库的状态?mount
2.首先在备份文件把文件提取到指定目录。。《controlfile》 restore
3.恢复操作 recover

rman参数设置
CONFIGURE RETENTION POLICY TO REDUNDANCY 1《至少有一个完整的备份》 配置冗余策略
<CONFIGURE RETENTION POLICY TO recovery window of 6 days;> 恢复到6天以内的任何一个时刻
CONFIGURE BACKUP OPTIMIZATION OFF; 《配置备份优化》
CONFIGURE DEFAULT DEVICE TYPE TO DISK;《备份设备》
CONFIGURE CONTROLFILE AUTOBACKUP OFF; 《自动备份控制文件》元数据<nocatlog>
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';《自动备份的路径》
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; 备份集的并行度
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_openlab.f'; # default

累计增量备份
backup incremental level=0 database;《周日》
backup incremental level=2 cumulative database;《周一》
backup incremental level=2 cumulative database;《周二》
backup incremental level=1 cumulative database;3
backup incremental level=2 cumulative database;4
backup incremental level=2 cumulative database;5
backup incremental level=2 cumulative database;6

差异增量备份
backup incremental level 0 database;《周日》
backup incremental level=2 database;《周一》
backup incremental level=2 database;《周二》
backup incremental level=1 database;3
backup incremental level=2 database;4
backup incremental level=2 database;5
backup incremental level=2 database;6

检查文件是否过期《OS管理员误删除》
crosscheck backupset of database;
标记删除的备份文件为过期

备份归档文件
backup database plus archivelog;备份数据库时候,同事备份归档。
backup as compressed backupset database plus archivelog;备份数据库时候压缩,同时备份归档。
backup archivelog all;备份所有的归档文件
backup archivelog from time 'sysdate-3';备份3天前
backup archivelog until time 'sysdate-3' delete input;截止
backup archivelog from sequence XX;从归档的指定序列号开始备份
《SQL>archive log list;》
backup archivelog all delete input;备份归档,删除归档文件
backup archivelog all delete all input;备份归档,删除所有的归档

单独备份控制文件
backup current controfile;

备份时候做压缩
backup as compressed backupset database;
rman只有备份集可以进行压缩备份,镜像拷贝不允许压缩

备份时候跳过
backup database skip readonly;
backup database skip offline;
backup database skip inaccessible;

非系统表空间损坏,控制文件和联机日志未损坏。。恢复的方法:
1.shutdown immediate;
2.startup mount;
3.rman target /
4.restore tablespace XXX;
5.recover database;
6.alter database open;
或者
run {
sql 'alter tablespace XXX offline immediate';
allocate channel c1 type disk;
allocate channel c2 type disk;
restore tablespace XXX;
recover tablespace XXX;
sql 'alter tablespace XXX online';
release channel c1;
release channel c2;
}
非系统数据文件损坏,控制文件和联机日志未损坏。。恢复的方法<undo>
1.关闭DB
2.启动mount
3.rman链接
4.restore datafile XX;
5.recover datafile XX;
6.打开DB

系统表空间损坏,控制文件和联机日志未损坏。。恢复的方法
1.关闭DB
2.启动mount
3.rman链接
4.restore tablespace XX;
5.recover database;
6.打开DB

所有的数据文件丢失,控制文件和联机日志未损坏。。恢复的方法
1.关闭DB
2.启动mount
3.rman链接
4.restore database;
5.recover database;
6.打开DB;

系统表空间损坏,users01.dbf文件丢失。控制文件和联机日志未丢失?

基于时间的不完全恢复《set until time》
to_date???????
run {
set until time "to_date('09/09/2012 14:39:00','mm/dd/yyyy hh24:mi:ss')";
restore datafile 4;
recover datafile 4;
}

基于SCN的
run {
XXX;
}

参数文件丢失

控制文件丢失

无法恢复到原来的路径

run {
allocate channel t1 type disk;
allocate channel t3 type disk;
backup datafile 1 channel t1;
backup datafile 2 channel t1;
release channel t1;
release channel t2;
sql 'alter system checkpoint';
}

backup与recover的更多相关文章

  1. linux dd实现磁盘完整全盘镜像备份backup,恢复recover(restore)

    1,dd操作就是简单的按字节复制,什么分区表啊,MBR(master boot record)啊统统照搬; 1. 磁盘克隆 也就是把整个硬盘复制一份.当然你首先需要在计算机上在接上一块新硬盘,并让系统 ...

  2. 1Z0-053 争议题目解析685

    1Z0-053 争议题目解析685 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 685.In your test database: -You are using Recover ...

  3. Oracle在归档模式下恢复

    =============== 数据库的完全恢复 =============== 在归档模式下数据库完全恢复时,数据库所经过的状态如下: 1.利用备份修复(Restores)损坏或丢失的数据文件,即将 ...

  4. SQLSERVER2014 2014年4月1日发布

    SQLSERVER2014 2014年4月1日发布 原文地址: http://blogs.technet.com/b/microsoft_blog/archive/2014/03/18/sql-ser ...

  5. Oracle corrupt block(坏块) 详解

    转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面 ...

  6. PostgreSQL相关的软件,库,工具和资源集合

    PostgreSQL相关的软件,库,工具和资源集合. 备份 wal-e - Simple Continuous Archiving for Postgres to S3, Azure, or Swif ...

  7. RMAN增量备份-备份保留策略-设置备份集属性

    RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...

  8. Basic Concepts of Block Media Recovery

    Basic Concepts of Block Media Recovery Whenever block corruption has been automatically detected, yo ...

  9. Mysql数据库mys和ora库的备份与恢复脚本

    !/bin/bash Time=$(date +%Y%md%H%M%S) Back_dir="$HOME/mysqlback/${Time}" function Detect_u_ ...

随机推荐

  1. UML总结---UML九种图关系说明

    UML中包括九种图:用例图.类图.对象图.状态图.时序图.协作图.活动图.组件图.配置图. 1)用例图(Use Case Diagram) 它是UML中最简单也是最复杂的一种图.说它简单是因为它采用了 ...

  2. Qt 自定义事件的实现

    初学Qt,用了Qt自带的事件,然后想怎么才能定义自己的事件呢?又如何使用自定义事件呢?看了篇文章,说先要子类化QEvent,然后定义自己的QEvent::Type,然后重写QWidget::event ...

  3. VMware提示:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。解决方案

    新买了个笔记本,在学习大数据的时候装上VMWare,运行虚拟机发现提示无法执行64位操作.本人系统是win7,64位系统. 之后就是一顿度娘,发现千篇一律都是检测CPU支不支持虚拟化,支持的话去BIO ...

  4. android 虚拟键盘控制

    软键盘显示的原理 软键盘的本质是什么?软键盘其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Grav ...

  5. 关于Cocos2d-x头文件的引用

    cocos2d-x 3.10的G:\cocoshome\Cocos2d-x\cocos2d-x-3.10\extensions\GUI\CCControlExtension\CCScale9Sprit ...

  6. css -- 背景图片自适应屏幕大小

    由于<body>标签的图片不能够拉伸, 解决办法: 1.图片不够大,又background属性不能拉伸图片: 2.只能用个div,把其z-index值设为负,并使这个div大小为整个bod ...

  7. R语言低级绘图函数-grid

    grid 函数用来在一张图表上添加网格线, 基本用法:默认在添加刻度线的地方添加网格线 plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = &qu ...

  8. 小知识(class文件查看jdk版本,beyond,could not find setter)

    最近几天工作当中遇到了一些问题,所以记录下来. 1.如何查看class文件的sdk版本 2.beyond compare比对文件 3.Could not find setter for native_ ...

  9. android 沉浸式状态栏(像ios那样的状态栏与应用统一颜色样式)

    这个特性是andorid4.4支持的,最少要api19才干够使用.以下介绍一下使用的方法,很得简单: 添加一个demo源代码: https://github.com/ws123/StatusDemo ...

  10. 各大IT公司 技术博客汇总

    来自:http://www.cnblogs.com/IT-Bear/p/3191423.html 腾讯系列(13)  阿里系列(18)  百度系列(3)  搜狐系列(3)  新浪系列(2)  360系 ...