• Oracle学习笔记:备份、还原、恢复的一点理解


    oracle提供了丰富、灵活的备份、还原、恢复管理机制和手段!

    首先要明确的是这三个概念:

    • 备份——backup:基于状态点的“拍照”、归档
    • 还原——restore:回滚到“拍照”的状态点、解档、文件复位
    • 恢复——recover:从“拍照”的状态点前滚,重演所有的改变。这其中又有手工管理的recover和smon自动管理的recove。也是我们99%的管理工作!

    oracle提供的管理手段

    1. sql(plus)语句,原始,但推荐!
    2. rman
    3. os操作
    4. oem

    oracle的管理机制:(个人的浅显认识)通过control file、datafile、online redo file、archived redo、undo 文件的内部标识识别整个系统是否一致!!个人猜测这个内部标识由resetlogs时候的scn和scn组成!10g里允许跨resetlogs恢复,猜想oracle这哥们可能允许在某些条件下以scn作为一致的标识了!

    如果?和?不一致了:?..

    1. online:别废话!resetlogs
    2. controlfile:restore或者create controlfile,可以选择resetlogs 或 noresetlogs——关键看:datafile和online是否一致来决定是否resetlogs
    3. datafile:【先restore 】再 recover,根据情况决定是否resetlogs。 或者 create controlfile,这就必须得resetlogs了
    4. 以上各种情况的复合情形,也可以在各阶段综合应用以上的各种情况
    5. archived redo不连续、不一致、损坏:即使上帝在,也不可能通过应用这些文件来recover了。查清这些archive redo日志还有多少利用价值吧,不行的话,delete吧。这些文件可是进行恢复的必要条件!无论是不完全恢复到 scn、time、sequence#、cancel,本质上就是依次应用scn!!!
    6. undo文件在recover过程中的作用?本人还未弄明白,相必是仅仅提供控制文件的undospace空间用,要oracle不起不来啊;在recover过程结束时候,oracle并不做任何处理或者仅仅是重新初始化该文件;而online redo中的commit事务会应用到datafile,未commit事务从online redo文件中直接删除,否则依照smon自动recover的处理rollback undo文件中的undo内容,而此时undo文件中并不存在,那不就出问题了!

    oracle提供的管理类型

    1. 冷、热:oracle的相关文件是否锁定
    2. 逻辑、物理:是oracle的数据,还是文件结构和数据
    3. 完全、不完全:是否是全部的东东(相关文件、相关数据、相关历史...)

     

    backup:对象datafile、undofile、archived logfile、spfile、controlfile

    1. os冷备份:关闭oracle数据库,保持所有相关文件一致。copy,之后....,想resetlogs就resetlogs,想noresetlogs就noresetlogs。
    2. datafile热备:将oracle至于backup状态,alter database {begin|end} backup ,然后copy,
    3. controlfile的热备:alter database backup controlfile to filespec [reuse]
    4. controlfile for standby的热备:alter database create {physical|logical}standby controlfile as filespec [reuse]
    5. spfile|pfile的热备:os下直接copy。因为oracle并不锁定此文件。
    6. pwd文件的热备:os下直接copy。因为oracle并不锁定此文件。
    7. archived log的热备:os下直接copy................................................这也算!
    8. rman方式下的热备:将隐藏一起手工的os的copy、路径、命名、历史记录问题。因此:十分推荐。不过要注意备份全相关的文件。否则处理起来也比较麻烦!
    9. exp逻辑倒出备份,注意nls_lang的设置问题
    10. expdp服务器倒出备份。注意设置directory对象

    restore:

    1. 像spfile|pfile、pwdsid、archivedlog可以随时随地的restore,前提是他们确实是有效的
    2. controfile:在nomount状态下,可以利用之前的冷备份直接restore;
    3. datafile:在nomount状态下,可以利用之前的冷备份直接restore;
    4. rman方式下的restore:将隐藏一起手工的os的copy、路径、命名、历史记录问题。因此:十分推荐。
    5. imp逻辑导入
    6. impdp服务器逻辑导入

    recover:没有什么可以说的,基本上就要依赖online redo 、archived redo 进行完全 或 不完全的恢复了!!!所以,archived redo 文件至关重要!

    1. rman方式下的recover:将隐藏一起手工的os的copy、路径、命名、历史记录问题。因此:十分推荐。
    2. recover  {cancel|continue[default]} --mount--取消、继续recove会话
    3. recover logfile 'filespec' --mount--直接应用logfile进行recove会话
    4. recover [automatic] [from 'location'].... [test] [allow n corruption] --mount--automatic 指出recove自动搜索本地可用的log_archive_dest[_1]或指定的location的符合log_archive_famat的 archived redo文件,并applying,如果文件没有搜到或终止,则弹出prompt建议的automatic的文件名。test意思时模拟recover。 allow n corrupton意思是允许archived redo文件有n个坏块存在,用于test时可以指定大于1的值。而当真正应用recover时,只能是0、1。
    5. recover database until {cancel|time datatime|change scn} [using backup controlfile] --mount--recover整个数据库到时间点、scn、cancel
    6. recover tablespace tbs,...
    7. recover datafile {filenumber|filename},...
    8. recover standby tablespace tbs,... until controlfile
    9. recover standby datafile {filenumber|filename},... until controlfile
    10. recover managed standby database :
    • using current logfile [nodelay] [disconnect]
    • until change scn [nodelay] [disconnect]
    • finish [force] [{wait|nowait}]
    • cancel [{immediate|{wait|nowait}}]                    
  • 相关阅读:
    BZOJ 1726 洛谷 2865 [USACO06NOV]路障Roadblocks【次短路】
    BZOJ 1699 [Usaco2007 Jan]Balanced Lineup排队
    洛谷 2777 [AHOI2016初中组]自行车比赛
    BZOJ 1832、1787 洛谷 4281 [AHOI2008]紧急集合
    BZOJ 4385 洛谷3594 POI2015 WIL-Wilcze doły
    【HDU 3037】Saving Beans(卢卡斯模板)
    【POJ 1061】青蛙的约会(EXGCD)
    【HIHOCODER 1469 】福字(DP)
    【BZOJ 1076】[SCOI2008]奖励关(期望)
    【HIHOCODER 1509 】 异或排序
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1407666.html
Copyright © 2020-2023  润新知