Oracle备份恢复概要

标签: oracle 备份 | 发表时间:2013-04-15 00:08 | 作者:guoyJoe
出处:http://blog.csdn.net
一、备份和恢复概要
 1、高可用性
   (1)HA(High Availability,HA)
   (2)RAC(Real Application Clusters)
   (3)DG(Data Guard)
   (4)Oracle Replication
   (5)RAID和镜像驱动器
 2、备份和恢复。
   (1)收集备份与恢复策略需求
   (2)精心设计备份与恢复计划


二、Oracle备份
 1、ORACLE各种备份
  (1)类型
     ①物理备份
     ②逻辑备份
  (2)数据库状态
     ①联机备份(热)和脱机备份(冷)
     ②不一致性备份和一致性备份
  (3)备份规模
     ①完全备份:归档模式、非模式模式
     ②表空间备份
     ③数据文件备份
     ④控制文件备份
     ⑤归档日志文件备份


三 、ORACLE恢复
  (1)错误的类型
    ①用户误操作导致错误
    ②系统进程导致的错误
    ③实例导致错误
    ④存储介质导致错误
  (2)恢复类型
    ①实例恢复:1缓存恢复(前滚),2事务恢复(后滚)
    ②介质恢复(数据文件或数据块)
  (3)恢复方式
    ①完全恢复
    ②不完全恢复
  (4)恢复操作
     ①restore --还原
     ②recover --恢复
  (5)resetlogs:alter database open resetlogs;
    incarnation:化身号


四、常见备份与恢复技术
   (1)用户管理的备份和恢复(User-Managed Backup&Recovery)
   (2)RMAN备份和恢复
   (3)闪回(flashback)
     ①闪回查询(Flashback Query):通过查询UNDO段,能够重现操作之前的数据
     ②闪回表(Flashback Table):通过recycle Bin回收drop的表
     ③闪回数据库(Flashback Database)
   (4)逻辑导入/导出(Export/Import和Data Pump)
   (5)数据卫士(Data Guard)




五、用户管理备份
 (1)主要数据:oradata/*  dbs/*  arch/*
   相关视图:v$datafile,v$controlfile,v$logfile,v$archived_log,v$tablespace,v$tempfile
 (2)冷备:关闭-->copy-->启动
    select name  from v$datafile;
    select name from v$controlfile;
    --select member from v$logfile;
    --select name from v$tempfile;
    shutdown immediate;
    df -hl
    mkdir /backup
    chown -R oracle:oinstall /backup
    chmod -R 755 /backup
    su - oracle
    cd /backup
    mkdir cold
    mkdir hot
    cd /backup/cold
    cp -rf /u01/app/oracle/oradata/ocp/* .
    startup
 (3)热备:
   SQL> col file_name for a50;
   SQL> select tablespace_name, file_name from dba_data_files;
   SQL> alter tablespace tp1 begin backup;
   SQL> !cp /oradata/bxdb/user01.dbf  /backup/
   SQL> alter tablespace users end backup;
   SQL> alter system switch logfile;
     
   --dd if=/u01/app/oracle/oradata/ocp/tp1.dbf skip=205 bs=8192 count=2|strings
   --alter system dump datafile block;
 
   *批量操作脚本:(v$backup,dba_data_files,dba_tablespaces)
   select
    'alter tablespace '||tablespace_name|| ' begin backup;' ||chr(10)||
    'host cp '||file_name||' /backup' ||chr(10)||
    'alter tablespace '||tablespace_name|| ' end backup;'
   from dba_data_files order by tablespace_name;
     


    begin
     for i in 1 .. 10000 loop
     insert into t1 values(i,'gyj'||i);
     commit;
     end loop;
     end;
     /




  (4)控制文件备份:
  alter database backup controlfile to '/backup/control.bin';
  alter database backup controlfile to  trace as '/backup/control.ctl';


  (5)初始化文件备份:create pfile='/backup/pfile.ora' from spfile;


  (6)口令文件备份:orapwd file=$ORACLE_HOME/dbs/orapw<sid> password=oracle;


六、RMAN配置与备份
1.RMAN连接
  (1)连接本地数据库
    rman target /


  (2)连接远程数据库
     rman sys/oracle@bxdb


  (3)辅助连接
     rman target sys/oracle@ocp auxiliary sys/oracle@ocm
     duplicate target database for standby dorecover nofilenamecheck;


 (4)连接恢复目录(ppt-les_03_catalog)
     create tablespace rc_data datafile '/u01/app/oracle/oradata/ocp/rc_data01.dbf' size 100m;
     create user rc_admin identified by rc_admin default tablespace rc_data quota unlimited on rc_data;
     grant connect,resource,recovery_catalog_owner to rc_admin;
     rman catalog rc_admin/rc_admin
     create catalog tablespace rc_data;
     exit
     rman target / catalog rc_admin/rc_admin
     register database;


*******************************************************
 虚拟专用目录:
   create user v_user1 identified by v_user1 default tablespace tp1 temporary tablespace temp quota unlimited on tp1;
   grant recovery_catalog_owner to v_user1;
   
   [oracle@ocm ~]$ rman catalog rc_admin/rc_admin
    grant catalog for database ocm to v_user1;


   [oracle@ocm ~]$ rman catalog v_user1/v_user1
    create virtual catalog;


 (5)退出rman
     exit


 2.RMAN基本操作
  (1)启动关闭数据库
     rman target /
     shutdown immeidate
     startup
  (2)执行sql语句
      sql 'alter system checkpoint';
      sql"create tablespace tp3 datafile ''/u01/app/oracle/oradata/ocp/tp3.dbf'' size 10M";
  (3) RMAN备份类型
     ①镜像复制(Image Copies)
     ②备份集(Backup sets)
(4)RMAN命令执行方式
    ①单个命令 backup database;
    ②批处理 run{ ... 
           };
    ③运行脚本
     *命令行方式调用操作系统中保存的脚本
      rman target / @script.rman (或 cmdfile=script.rman)
     *在rman中执行操作系统保存的脚本文件
      @scrip.rman
     *运行储储在CATALOG中的脚本(需要首先为RMAN创建恢复目录)
      create script full_db{
      backup format='/back/rman/full_%U'
      database include current controlfile
      plus archivelog;
     sql 'alter system archive log current';
     }
    run{execute script full_db;}
    rman target sys/oracle@oca catalog rc_admin/rc_admin@oca script full_db
     list script names;
     print script full_db;
     replace script full_db{
       backup format='/backup/rman/full_%U'
       database;
      }


    delete script full_db;
    resync catalog;
    unregister database;
    upgrade catalog;
    drop catalog;


   --查恢复目录 sqlplus rc_admin/rc_admin
   select dbid,name,resetlogs_change# from rc_database;
   select ts#,name,creation_change# from rc_tablespace;
   select file#,name,bytes from rc_datafile;
   select script_name from rc_stored_script;
   select line,text from rc_stored_script_line;


 3. RMAN备份
 (1)备份数据库
    backup database;
    backup database format '/backup/rman_full_%U';
    list backup of database;
 (2)备份一个数据文件
    report schema
    select file#,name from v$datafile; 
    backup datafile 4 format '/backup/md_%U';
    list backup of datafile 4;
 (3)备份表空间
    select tablespace_name,contents from dba_tablespaces;
    backup tablespace trans format '/backup/trans_%U';
    list backup of tablespace trans;
 (4)备份控件文件(4种方法)
    ①自动备份:configure controlfile autobackup on;
    ②backup current controlfile;
    ③backup datafile 4 include current controlfile;
    ④sql "alter database backup controlfile to ''/backup/control/back_controlfile.bin''";
       list backup of controlfile;


 (5)备份参数文件(2种方法)
    ①自动备份:configure controlfile autobackup on;
    ②backup spfile format '/backup/spfile.ora';


 (6)备份归档文件
    ①backup archivelog  all format '/backup/arch_%U';
    ②backup archivelog  sequence between 85 and 89  delete all input;
    ③backup archivelog  from time "sysdate - 14" until time "sysdate - 7 ";
    ④backup database plus archivelog format '/back/rman/full_%U' delete all input;
         list backup of archivelog all;


  (7)备份备份集
     ①backup backupset 1 format '/backup/backupset1_%U';
     ②backup backupset all;


  (8)镜像拷贝
     ①只能拷贝到磁盘上
     ②恢复(restore)只要switch,速度快
     ③backup copy 或直接用copy
       copy datafile 5 to '/u01/app/oracle/oradata/bxdb/tp5.dbf ';
       --copy datafile 5 to '+dg/oradata/bxdb/tp5.dbf ';


    (9)多条命令
     run {allocate channel c1 type disk;
          maxpieces size=2G;
          backup format '/backup/backup_%u' filesperset 3 database;
      }


     run {allocate channel d1 type disk;
          format '/backup/all_%u' maxpieces=100m;
          backup database filesperset=3;
         }


 (9)增量备份
   ①差异增量备份(默认)
     vi increment0.sql
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=ocp
#export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
export PATH=$ORACLE_HOME/bin:$PATH
rman target / <<EOF
backup incremental level =0 database;
EXIT
EOF


     vi increment1.sql


     rman target / <<EOF
     backup incremental level =1 database;
     EOF


     vi increment2.sql
     rman target / <<EOF
     backup incremental level =2 database;
      EOF


     crontab -e
     0 2 * * 0  /home/oracle/increment0.sql > /tmp/increment0.log 2>&1
     0 2 * * 1  /home/oracle/increment2.sql > /tmp/increment1.log 2>&1
     0 2 * * 2  /home/oracle/increment2.sql > /tmp/increment2.log 2>&1
     0 2 * * 3  /home/oracle/increment1.sql > /tmp/increment3.log 2>&1
     0 2 * * 4  /home/oracle/increment2.sql > /tmp/increment4.log 2>&1
     0 2 * * 5  /home/oracle/increment2.sql > /tmp/increment5.log 2>&1
     0 2 * * 6  /home/oracle/increment2.sql > /tmp/increment6.log 2>&1


  ②累积增量备份
   
七、RMAN常用命令
   5.1 显示默认配置 --show命令
       show all;
       show controlfile autobackup;
       CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/backup/rman/full_%U';
   5.2 列出备份信息 --list命令
      list backup;
      list backup of controlfile;
      list backup of datafile '/oradata/bxdb/users.dbf';
      list backup of 5;
      list backup of archivelog all;
      list copy of tablespace 'SYSTEM';
      list device type disk backup;
      list archivelog all;
      list expired backup;
   5.3 删除备份 --delete 命令
      delete obsolete; --备份策略
      delete expired backup; --物理路径
      delete expired copy;
      delete expired archivelog all;
      delete backupset 5;
      delete backuppiece '/backup/user_demo_20.bak';
      delete backup;
      delete datafile copy '/oradata/bxdb/users.dbf';
      delete copy;
      backup archivelog all delete input;
   5.4 报表显示 --report命令
      report schema;
      report need backup;
      report need backup tablespace system;
      report obsolete;
   5.5 执行检查 --crosscheck命令
      crosscheck archivelog all;
      crosscheck backup;

   5.6 配置configure




**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name:    guoyJoe

QQ:      252803295

Email:    oracledba_cn@hotmail.com

Blog:       http://blog.csdn.net/guoyJoe

ITPUB:    http://www.itpub.net/space-uid-28460966.html

OCM:     http://education.oracle.com/education/otn/YGuo.HTM
_____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在: http://blog.csdn.net/guoyjoe/article/details/8624392

DSI&Core Search(QQ群):127149411


作者:guoyJoe 发表于2013-4-15 0:08:45 原文链接
阅读:127 评论:0 查看评论

相关 [oracle 备份] 推荐:

Oracle备份恢复概要

- - CSDN博客数据库推荐文章
   (5)RAID和镜像驱动器.    (1)收集备份与恢复策略需求.    (2)精心设计备份与恢复计划.  1、ORACLE各种备份.      ①联机备份(热)和脱机备份(冷).      ②不一致性备份和一致性备份.      ①完全备份:归档模式、非模式模式.      ⑤归档日志文件备份.

Oracle数据库备份

- - Oracle - 数据库 - ITeye博客
(一)、导出/导入(EXPORT/IMPORT).   EXPORT/IMPORT是用来将ORACLE中数据移出/移入数据库.   1、EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORT. DUMP FILE),并将重新生成数据库写入文件中.   a.用户模式:导出用户所有对象以及对象中的数据;.

oracle定时备份-增量备份

- - 数据库 - ITeye博客
在进行数据库维护的过程中经常会遇到数据库备份的问题. 先介绍一种常用的数据备份操作. 系统执行计划+批处理命令;. 在win的系统中存在 任务计划程序 选项;新建任务选中你写好的程序,设定好时间,就可以按照设定的时间执行程序了. 在备份oracle时写一个导入命令,例如. 把它考到文件中,扩展名改为.bat.

oracle rman自动备份脚本

- - CSDN博客推荐文章
作者:magerguo 发表于2012-9-9 10:30:33 原文链接. 阅读:0 评论:0 查看评论.

Oracle数据库备份方法[转]

- - Oracle - 数据库 - ITeye博客
转载地址: http://www.cnblogs.com/elegantok/archive/2009/03/31/1426290.html. Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统. 比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求.

应用服务器上在线备份Oracle数据库代码

- - CSDN博客数据库推荐文章
做在线备份时,输出做一个修改,动态把输出内容传到浏览器页面上去. 作者:qm4050 发表于2013-2-28 10:34:34 原文链接. 阅读:75 评论:0 查看评论.

Oracle备份方式之差异性分析

- - Oracle - 数据库 - ITeye博客
  由于Oracle数据库备份有三种方式(分别是导出/导入(EXP/IMP)、热备份和冷备份. 导出备件是一种逻辑备份,冷备份和热备份是物理备份),每种方式具有不同的恢复特性,因此应集成数据库与文件系统备份,集成逻辑备份和物理备份.   在操作系统级,使用大容量磁盘阵列,通过磁盘映像技术使每一个数据库文件自动分布于每个物理磁盘.

Oracle冷备份与恢复及案例分析

- - 数据库 - ITeye博客
上述的基本情况就是:关闭数据库的状态下,利用linux拷贝命令,将数据文件、控制文件、重做日志文件备份到相应的位置. 2、为了更方便的进行冷备份,将冷备份的操作写成批处理脚本. 注意:脚本改成可执行权限. 3、模拟相关文件丢失或者损坏情况下,利用冷备份进行恢复. (1)、非系统表空间数据文件丢失情况.

Oracle 收购 Ksplice

- feng823 - LinuxTOY
实现无需重启即可为 Linux 内核打安全补丁的 Ksplice 被 Oracle 收购. 在被收购前, Ksplice 为 Fedora, Ubuntu 免费提供该功能,对于 RHEL 和 CentOS 则需要订阅其产品. Oracle 表示将把 Ksplice 带来的零宕机安全更新功能添加到 Oracle 产品订阅服务中,同时停止对其他企业级 Linux 发行版的支持,将 Oracle Unbreakable Linux 打造成唯一具备零宕机安全更新功能的企业级 Linux 发行版.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.