中国教育在线 中国教育网 加入收藏 设为首页

oracle认证:数据库备份与还原

http://itpx.eol.cn  来源:  作者:互联网  2011-06-15    

  Oracle认证考试由Oracle公司授权国际考试认证中心对考生进行资格认证的。考生按考试标准要求参加几门课程的考试(一般为三至五门),在通过全部考试后,将获得OCP的专家认证。Oracle认证考试目前分Oracle DBA, DBO(Database Operator, DBD(Database Developer), Java Developer等几类。

  一、总述

  1.数据库归档模式:

  *非归档模式:当数据库数据只读不会改变时,数据不会改变,数据库适合用非归档模式,这样提高性能

  *归档模式:对于数据库数据经常变动,数据库最好用归档模式,这样可以尽量避免数据库数据丢失,使出现问题时灾害降到最低

  2.非归档模式与归档模式间的切换(在命令窗口下):

  @检查当前日志操作模式

  f:\》sqlplussys/dbaassysdba

  连接数据库

  sql》selectlog_modefromv$database;

  @关闭数据库,后装载数据库,只能在mount状态下改变日志操作模式

  sql》startupmount

  @改变日志模式

  sql》alterdatabaseachivelog;(变为归档方式,否则为nochivelog)

  sql》alterdatabaseopen;

  3.查看归档模式相关信息:

  @若采用默认设置,归档日志位置在快速恢复区

  @配置归档日志位置log_archive_dest_n(n=[1:10])

  sql》altersystemset

  log_archive_dest_1=‘location=c:\demo\archive[optional]’;

  sql》altersystemset

  log_archive_dest_2=‘service=standby[mandatory][reopen]’;

  其中:location是本地

  service是远程

  optional无论归档是否成功,都会覆盖重做日志

  mandatory只有成功归档才会覆盖重做日志

  reopen重新归档时间间隔默认是300s

  @显示归档信息,即显示显示日志操作模式

  sql》selectname,log_modefromv$database;

  @显示归档日志信息

  sql》selectname,seqnce#,first_change#fromv$archive_log;

  seqnce#:归档序列号

  first_change#:起始SCN值

  @显示归档日志位置

  sql》selectdest_name,destination,statusfromv$archive_dest;

  dest_name归档位置参数名

  destination位置

  @显示日志历史信息

  sql》select*fromv$loghist;

  threade#:重做线程号

  seqnce#:日志序列号

  first_change#:起始SCN值

  first_time:起始SCN发生时间

  switch_change:切换SCN值

  二、非归档模式下的备份与还原

  日志采用覆盖原有日志的方式存储

  出现介质失败时,只能恢复到过去的完全备份点

  数据库OPEN状态是,不能备份数据库

  必须先关闭数据库,再备份,且必须备份所有数据,控制文件

  1.备份==冷备份

  @先关闭数据库

  sql》shutdownimmediate

  @拷贝所有数据文件,和控制文件

  2.恢复

  *数据文件出现丢失,但备份以来的重做日志内容尚未被覆盖,此时可以完全恢复

  @装载数据库

  sql》startupforcemount

  @复制数据文件备份

  @恢复数据文件

  sql》recoverdatafile1

  @打开数据库

  sql》alterdatabaseopen;

  *备份文件的重做日志内容已经被覆盖,则只能还原到备份点

  @关闭数据库

  @复制所有数据和控制备份文件至原位置

  @装载数据库,执行恢复命令

  sql》startupmount

  sql》recoverdatabaseuntilcancel

  提示控制文件不再使用原有重做日志

  @用resetlogs选项打开数据库

  sql》alterdatabaseopenresetlogs;

  三、归档模式

  可以防止数据丢失

  数据处于OPEN状态时可以进行备份

  当出现介质失败时,除了SYSTEM表空间中的数据文件外其他的都可以在open状态下恢复

  可执行完全恢复,也可以恢复到备份点与失败点之间的某时刻

  1.备份

  1)冷备份

  shutdown后拷贝所需数据文件和控制文件

  2)热备份

  @将数据库设置为归档模式

  @在数据库上发出全局检查点,在所有的数据文件头块上加锁

  sql》alterdatabasebeginbackup;

  @备份数据文件及控制文件

  数据文件直接拷贝至其他目录

  控制文件需使用alterdatabasebackupcontrolfile

  sql》alterdatabasebackupcontrolfileto‘d:\backup\demo.ctl’;

  @结束数据备份,为确保数据文件备份的同步性,还应该归档当前日志组

  sql》alterdatabaseendbackup;

  sql》altersystemarchivelogcuurent;

  3)备份表空间

  *脱机备份(表空间处于OFFLINE状态,SYSTEM表空间和正在使用的UNDO空间不能脱机)

  @确定表空间包涵的数据文件,如空间USERS

  sql》selectfile_namefromdba_data_files

  wheretablespace_name=‘users’;

  @设置表空间为脱机状态

  sql》altertablespaceusersoffline;

  @复制数据文件

  @设置表空间联机

  sql》altertablespaceusersonline;

  *联机备份

  @确定对应关系

  @设置表空间为备份模式

  sql》altertablespaceusersbeginbackup;

  @复制数据文件

  @设置表空间为正常模式

  sql》altertablespaceusersendbackup;

  *处理联机备份失败

  当执行联机备份时,若出现例程失败,再次打开数据库时,如果数据文件仍处于备份状态,则会出错,此时需要结束备份

  @装载数据库

  sql》startupforcemount

  @查看处于联机备份状态的所有数据文件

  sql》selectfile#fromv$backupwherestatus=‘active’;

  @结束联机备份状态

  sql》altertablespaceendbackup

  或altertablespacedatafilebackup;

  或recoverdatafile序号

  @打开数据库

  sql》alterdatabaseopen;

  2.还原

  1)完全恢复

  相关命令:

  recoverdatabase:恢复数据库的多个数据文件(在MOUNT状态下运行)

  recovertadaspace:恢复多个表空间的所有数据文件(在open状态下运行)

  recoverdatafile:恢复一个或多个数据文件(在mount,open状态下都可)

  *在mount状态下恢复数据文件(用于SYSTEM表空间恢复)

  @装载数据库mount状态

  @确定需要恢复的数据文件

  sql》selectfile#,errorfromv$recover_file

  @拷贝备份至原位置

  @恢复数据库recover.。上述命令

  @打开数据库alterdatabaseopen;

  *在open状态下恢复关闭后意外对视的数据文件,此时数据库将无法打开

  @装载数据库mount

  @确定需要恢复的数据文件

  @使相应的数据文件脱机

  sql》alterdatabasedatafile4offline;

  @打开数据库

  sql》alterdatabaseopen

  @复制数据备份文件

  @恢复数据文件

  @是数据文件联机alterdatabasedatafile4online;

  *在open状态下恢复打开时意外丢失的数据文件

  @确定要恢复的数据文件

  @使数据文件脱机

  @复制数据文件

  @恢复相应的表空间或数据文件

  @使相应的表空间或数据文件联机

  *在open状态下恢复未备份的数据文件(要求在归档模式下,新建数据文件,其从简历开始的所有归档日志必须全部存在)

  @装载数据库

  @确定要恢复的数据文件

  @是数据文件脱机

  @打开数据库

  @重新建立数据文件

  sql》alterdatabasecreatedatafile‘d:\demo\users01.dbf’;

  @恢复数据文件

  @使数据文件联机

  2)不完全恢复

  使用已备份的数据文件,归档日志,和重做日志,将数据库恢复到备份点与失败点之间某个时刻的状态

  *恢复分类

  基于时间的恢复:误删除表,误截断表,提交了错误的数据

  基于取笑恢复:恢复到某个日志序列号之前的状态

  基于SCN的恢复:恢复到特定SCN值的状态

  基于备份控制文件恢复:表空间被意外删除,或所有控制文件全部损坏

  *不完全恢复指令

  recoverdatabaseuntiltime

  recoverdatabaseuntilchange

  recoverdatabaseuntilcancel

  recoverdatabase……usingbackupcontrolfile

  *基于时间的恢复

  @关闭数据库(为防止备份失败,应备份当前数据库所有文件

  @装载数据库startupmount

  @复制所有备份数据文件,并确定备份文件的时间点

  sql》selectfile#,to_char(time,‘yyyy-mm-ddhh24:mi:ss)

  fromv$recover_file;

  @执行recoverdatabaseuntiltime

  sql》recoverdatabaseuntiltime“2006-09-2616:40:33‘

  @以resetlogs方式打开数据库,并检查恢复结果

  sql》alterdatabaseopenresetlogs;

  @备份数据库所有数据文件和控制文件,因为当以resetlogs方式打开数据库后会重新建立重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1

  sql》selectnamefromv$datafile;

  sql》alterdatabasebeginbackup;

  拷贝数据文件

  sql》alterdatabaseendbackup;

  sql》alterdatabasebackupcontrolfile

  to‘d:\backup\demo.ctl’reuse;

  sql》altersystemarchivelogcuurent;

  *基于SCN恢复

  @关闭数据库

  @装载数据库mount

  @复制所有备份数据文件,确定备份文件SCN值

  sql》selectfile#,change#,fromv$recover_file;

  @执行recoverdatabaseuntilchange

  sql》recoverdatabaseuntilchange675978;

  @以resetlogs方式打开数据库

  @备份数据库所有数据文件和控制文件

  *基于取消恢复

  @关闭数据库

  @装载数据库

  @复制所有备份的数据文件,确定备份文件的SCN值

  sql》selectfile#,change#fromv$recover_file;

  @执行recoverdatabaseuntilcancle

  sql》recoverdatabaseuntilcancel

  @以resetlogs方式打开数据库

  @备份所有数据文件和控制文件

  *基于备份控制文件的恢复

  @通过查看alert文件,确定误操作时间

  @关闭数据库

  @复制所有备份的数据文件,控制文件

  @装载数据库

  @执行recoverdatabase……usingbackupcontrolfile

  sql》recoverdatabaseuntiltime‘2004-09-2619:51:06’

  usingbackupcontrolfile

  @以resetlogs方式打开数据库

  @备份所有数据文件和控制文件

推荐给好友    我要收藏    我要纠错    分享到

免责声明:

① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。

② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

内容推荐
eol.cn简介 | 联系方式 | 网站声明 | 京ICP证140769号 | 京ICP备12045350号 | 京公网安备 11010802020236号
版权所有 北京中教双元科技集团有限公司 EOL Corporation
Mail to: webmaster@eol.cn