您的位置:首页 > 数据库 > Oracle

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

2009-03-10 11:21 351 查看
oracle提供了丰富、灵活的备份、还原、恢复管理机制和手段!

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

备份——backup:基于状态点的“拍照”、归档

还原——restore:回滚到“拍照”的状态点、解档、文件复位

恢复——recover:从“拍照”的状态点前滚,重演所有的改变。这其中又有手工管理的recover和smon自动管理的recove。也是我们99%的管理工作!

oracle提供的管理手段

sql(plus)语句,原始,但推荐!

rman

os操作

oem

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

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

online:别废话!resetlogs

controlfile:restore或者create controlfile,可以选择resetlogs 或 noresetlogs——关键看:datafile和online是否一致来决定是否resetlogs

datafile:【先restore 】再 recover,根据情况决定是否resetlogs。 或者 create controlfile,这就必须得resetlogs了

以上各种情况的复合情形,也可以在各阶段综合应用以上的各种情况

archived redo不连续、不一致、损坏:即使上帝在,也不可能通过应用这些文件来recover了。查清这些archive redo日志还有多少利用价值吧,不行的话,delete吧。这些文件可是进行恢复的必要条件!无论是不完全恢复到 scn、time、sequence#、cancel,本质上就是依次应用scn!!!

undo文件在recover过程中的作用?本人还未弄明白,相必是仅仅提供控制文件的undospace空间用,要oracle不起不来啊;在recover过程结束时候,oracle并不做任何处理或者仅仅是重新初始化该文件;而online redo中的commit事务会应用到datafile,未commit事务从online redo文件中直接删除,否则依照smon自动recover的处理rollback undo文件中的undo内容,而此时undo文件中并不存在,那不就出问题了!

oracle提供的管理类型

冷、热:oracle的相关文件是否锁定

逻辑、物理:是oracle的数据,还是文件结构和数据

完全、不完全:是否是全部的东东(相关文件、相关数据、相关历史...)

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

os冷备份:关闭oracle数据库,保持所有相关文件一致。copy,之后....,想resetlogs就resetlogs,想noresetlogs就noresetlogs。

datafile热备:将oracle至于backup状态,alter database {begin|end} backup ,然后copy,

controlfile的热备:alter database backup controlfile to filespec [reuse]

controlfile for standby的热备:alter database create {physical|logical}standby controlfile as filespec [reuse]

spfile|pfile的热备:os下直接copy。因为oracle并不锁定此文件。

pwd文件的热备:os下直接copy。因为oracle并不锁定此文件。

archived log的热备:os下直接copy................................................这也算!

rman方式下的热备:将隐藏一起手工的os的copy、路径、命名、历史记录问题。因此:十分推荐。不过要注意备份全相关的文件。否则处理起来也比较麻烦!


exp逻辑倒出备份,注意nls_lang的设置问题

expdp服务器倒出备份。注意设置directory对象

restore:

像spfile|pfile、pwdsid、archivedlog可以随时随地的restore,前提是他们确实是有效的

controfile:在nomount状态下,可以利用之前的冷备份直接restore;

datafile:在nomount状态下,可以利用之前的冷备份直接restore;

rman方式下的restore:将隐藏一起手工的os的copy、路径、命名、历史记录问题。因此:十分推荐。

imp逻辑导入

impdp服务器逻辑导入

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

rman方式下的recover:将隐藏一起手工的os的copy、路径、命名、历史记录问题。因此:十分推荐。

recover {cancel|continue[default]} --mount--取消、继续recove会话

recover logfile 'filespec' --mount--直接应用logfile进行recove会话

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。

recover database until {cancel|time datatime|change scn} [using backup controlfile] --mount--recover整个数据库到时间点、scn、cancel

recover tablespace tbs,...

recover datafile {filenumber|filename},...

recover standby tablespace tbs,... until controlfile

recover standby datafile {filenumber|filename},... until controlfile

recover managed standby database :



using current logfile [nodelay] [disconnect]

until change scn [nodelay] [disconnect]

finish [force] [{wait|nowait}]

cancel [{immediate|{wait|nowait}}]                    

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: