完全恢复:

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. 利用层的table-row、table-cell属性进行页面布局

    利用层的table-row.table-cell属性可以进行等高.宽度自适应页面布局,这是参看了<我所知道的几种display:table-cell的应用>及<基于display:t ...

  2. MATLAB中常用的排列、组合、阶乘函数

    1.求n的阶乘,方法如下:a.factorial(n)b.gamma(n+1)c.v='n!'; vpa(v) 2.求组合(数),方法如下:a.combntns(x,m)    列举出从n个元素中取出 ...

  3. e642. 处理拖放事件

    The drop target in this example only accepts dropped String objects. A drop target must implement Dr ...

  4. (转)MFC鼠标单击消息拦截双击消息

    如果LButtonDown和LButtonDblClk同时有实现的话 总会实现单击消息,在网上找解决方法,思想是在单击消息实现中取时间,计算两次单击事件的时间差 来回尝试修改,最后成这个样子,还算简单 ...

  5. 转载: erlang连接mysql

    转自:http://blog.csdn.net/flyinmind/article/details/7740540 项目中用到erlang,同时也用到mysql.惯例,google. 但是,按照网上说 ...

  6. 转载: Erlang Socket解析二进制数据包

    转自:http://www.itkee.com/developer/detail-318.html 今天在家里闲来无事,实践了一下Erlang的Socket的功能.记录一下在过程中遇到的一些问题,以及 ...

  7. VirtualBox 配置虚拟网卡(桥接),实现主机-虚拟机网络互通

    记录下VirtualBox 配置虚拟网卡(桥接),实现主机-虚拟机网络互通过程,网上搜出来的比较乱,讲的不明不白,因此根据自己弄过一次,确认可行的方式,做个备份,方便日后查阅. 环境: 在Oracle ...

  8. 【Java面试题】47 heap和stack有什么区别

    java的内存分为两类,一类是栈内存,一类是堆内存.栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个 ...

  9. 微服务 通过EnableFeignClients调用其他服务的api

    今天在项目上遇到一个问题,通过当前service服务要调用到其他service服务的api接口时,可通过EnableFeignClients调用其他服务的api,大概的步骤如下: 1.在springb ...

  10. iOS 使用AFNetworking 设置cookie

    本问题是由于多账号访问统一服务器时, 由于服务器那边接收到sessionid一样, 故无法区分账号信息. 所以需要在移动端请求的时候重新设置cookie, 步骤如下: 1. 在登录的时候, 先将 re ...