zoukankan      html  css  js  c++  java
  • backup与recover

    完全恢复:

    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';
    }

  • 相关阅读:
    实验四——多分支结构及本章总结
    实验五——循环结构学习总结
    实验12——指针的基础应用 2
    实验11——指针的基础应用
    实验十——一维数组的定义及引用
    实验九——基本数据类型存储及应用总结
    实验八——函数定义及调用总结
    实验七——函数定义及调用总结
    实验六——循环结构程序练习总结
    实验五——循环结构学习总结
  • 原文地址:https://www.cnblogs.com/wwxbi/p/4216719.html
Copyright © 2011-2022 走看看