完全恢复:

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. 【转】MFC 对话框Border属性设置(None、Thin、Resizing、Dialog Frame)

    对话框的Border属性对应的值设置 Dialog Frame WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME ...

  2. try catch 异常处理

    1.捕获指定异常 2.捕获所有异常(catch(...))

  3. 帝国CMS“建立目录不成功!请检查目录权限”的解决办法

    初次安装帝国CMS就遇到了一个问题,在提交或者修改信息的时候提示“建立目录不成功!请检查目录权限”,无法生成页面.检查了文件夹的读写权限和用户访问权限,发现都一切正常.那么到底是哪里出错了呢? 其实是 ...

  4. jquery 中json数组的操作(转)

    在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...

  5. linux源代码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源代码编译安装在linux上.先从安装其依赖项開始,以ubuntu 14.04.X为例解说在Linux上源代码编译安装OpenCV,其它linux版本 ...

  6. wd mycloud nas新玩法

    最近家里的小米路由器坏了,主要是硬盘读取不出,小米之家也无能为力,本想继续在小米之家买个小米路由器,后来了解到了nas,于是想折腾下.我的nas型号是wd mycloud,3TB内置硬盘.功能:可以组 ...

  7. 学习 TList 类的实现[7]

    总结目前 TMyList 已具备的功能(3 个方法.3 个属性): Add: 添加; Delete: 删除; Clear: 清空;Count: 元素总数;Capacity: 已存在的所有元素位置数;L ...

  8. VS2013+opencv2.4.9配置

    VS2013+opencv2.4.9(10)配置[zz] - yifeier12 - 博客园 http://www.cnblogs.com/cuteshongshong/p/4057193.html ...

  9. VC++ 实现窗口抖动

    RECT rect; int x, y, nWidth, nHeight; GetWindowRect(&rect); x = rect.left; y = rect.top; nWidth ...

  10. 高级类特性----static关键字

    static 关键字 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用. 我们 ...