oracle备份手册.doc_第1页
oracle备份手册.doc_第2页
oracle备份手册.doc_第3页
oracle备份手册.doc_第4页
oracle备份手册.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库备份手册 目 录1故障类型32与备份相关的数据库环境32.1数据库类型32.2archivelog的设置4221 archivelog的查看4221 archivelog的设置43备份方案53.1备份方案1操作系统脱机冷备份53.2备份方案2操作系统联机热备份73.3备份方案3使用RMAN联机热备份(需要catalog的情况)83.4备份方案4使用RMAN联机热备份(不需要catalog的情况)103.5备份方案5使用RMAN的增量备份123.6备份方案6逻辑备份134备份案例174.1备份文件的存放路径174.2RMAN的热备份184.3EXP逻辑备份204.4其它文件的备份214.5备份记录215数据库恢复225.1误删除表及数据225.2数据文件丢失或损坏的恢复235.3数据库重装后的恢复245.3.1使用数据库增量备份进行恢复245.3.2使用数据库全备份进行恢复245.4IMP的恢复256注意事项261 故障类型l 实例故障由ORACLE内部异常、操作系统故障或其它相关软件引起,导致ORACLE实例中的进程或内存区出现故障或数据库无法正常关闭,这种故障称为实例故障。实例故障没有本质上的破坏,无须对数据库进行恢复,只要重启数据库就可正常。l 媒介故障媒介故障主要是由于磁盘驱动器出问题、磁盘块坏、数据文件被删除或损坏等引起,文档中所介绍的备份方法基本为这种故障而设计的。2 与备份相关的数据库环境2.1 数据库类型与数据库备份最紧密相关的数据库设置相信应该是有无重做日志的归档,依此可将数据库划分为两大类型:l noarchivelog重做日志归档的备份,这种情况数据运行性能高,但数据库恢复不够灵活。对于无归档的备份,可采用的方式比较简单,主要是以逻辑备份和脱机准备份为主。当数据文件或控制文件被损坏或丢失的情况下只能做全数据库的恢复,且只能恢复至备份的时间点。l archivelog有重做日志归档的备份,重做日志的归档将很大程度影响数据库的运行性能,但对数据库安全性要求极高的数据库系统必须要有重做日志的归档。这种情况的备份和恢复可采用的形式较多,有逻辑备份、脱机冷备份、联机热备份。可执行基于时间的恢复,单个数据文件的恢复。2.2 archivelog的设置由于ORACLE数据库创建时缺省是为NOARCHIVELOG方式,下面的内容将介绍如何将无重做日志归档的数据库系统改为有重做日志归档的数据库系统。221 archivelog的查看查看数据库是否有重做日志的归档,可以查看动态性能视图V$DATABASE中的LOG_MODE列,如果列值为ARCHIVELOG则为重做日志归档模式,如果列值为NOARCHIVELOG则为重做日志不归档模式。查看命令如下:select log_mode from v$database;221 archivelog的设置重做日志不归档修改为重做日志归档的方法:1、 先关闭数据库svrmgrlshutdown immediate;2、 对数据库做一次冷备份,即备份所有的数据文件、控件文件、重做日志文件、参数文件、口令文件;3、 在initXXX.ora(XXX表示实例的SID)参数文件中,增加如下参数:LOG_ARCHIVE_DEST=filename or device name(归档文件的路径)LOG_ARCHIVE_FORMAT=filename extension(归档文件名的格式)例如:LOG_ARCHIVE_DEST=/archive/archLOG_ARCHIVE_FORMAT=%s.arc4、 启动数据库实例svrmgrlstartup mount5、 改变数据库为归档模式svrmgrlalter database archivelog;6、 打开数据库svrmgrlalter database open;3 备份方案3.1 备份方案1操作系统脱机冷备份对于可以down机的数据库系统,采用这种方法对数据库文件进行一次性备份,恢复时只能恢复到备份时间,建议在系统安装配置完成之后,提交运行前,采用这种方法进行数据库的一次备份,以后恢复时结合逻辑备份,基本可将系统恢复至可用状态。具体方法如下:通过V$DATAFILE,V$LOGFILE,V$CONTROLFILE查看有哪些数据文件、日志文件及控制文件需要进行备份,分别在哪些目录中。将这三类文件用操作系统拷贝指令复制到一个独立的硬盘或磁带上,以备日后使用。同时还需备份口令文件、参数文件及重做日志文件。查询指令如下:SVRMGR select file#,name from v$datafile;FILE# NAME 1 C:ORANTDATABASESYS1ZXY.ORA 2 C:ORANTDATABASERBS1ZXY.ORA 3 C:ORANTDATABASEUSR2ZXY.ORA 4 C:ORANTDATABASETMP1ZXY.ORA 5 C:ORANTDATABASEINDX1ZXY.ORA 6 C:ORANTDATABASEZXY1ZXY.ORASVRMGR select * from v$logfile;GROUP# STATUS MEMBER 1 C:ORANTDATABASELOGZXY1.ORA 2 STALE C:ORANTDATABASELOGZXY2.ORASVRMGR select * from v$controlfile;STATUS NAME C:ORANTDATABASECTL1ZXY.ORA C:ORANTDATABASECTL2ZXY.ORA口令文件、参数文件在WINDOWS操作系统中一般存入在/orant/database目录下。/orant/database/initXXX.ora(XXX表示数据库实例名)/orant/database/pwdXXX.ora重做日志文件的存放路径及文件名可通过如下指令来查看,SVRMGR show parameter archive名称 类型 值- - -log_archive_buffer_size 整数 127log_archive_buffers 整数 4log_archive_dest 字符串 C:orantdatabasearchivelog_archive_duplex_dest 字符串log_archive_format 字符串 arc%S.%Tlog_archive_min_succeed_dest 整数 1log_archive_start 布尔值 FALSE3.2 备份方案2操作系统联机热备份对数据文件进行备份,使用方便,恢复快。如果数据文件丢失或损坏,可以利用备份文件将文件恢复到当前时间的数据,但不能恢复控制文件。对于数据文件的保护可采用这种方法进行备份和恢复。对于会修改的数据文件,最好每日做备份。对于静态数据文件,则只做一次性备份即可。方法:alter tablespace XXX begin backup;操作系统拷贝alter tablespace XXX end backup;可通过V$BACKUP及V$DATAFILE_HEADER来查看正在备份的数据文件。SVRMGR select * from v$backup;FILE# STATUS CHANGE# TIME- - - - 1 NOT ACTIVE 0 2 NOT ACTIVE 0 3 ACTIVE 214357 2001-02-1 4 NOT ACTIVE 0 5 NOT ACTIVE 0 6 NOT ACTIVE 0SVRMGR Select name,status,fuzzy from v$datafile_header;NAME STATUS FUZ-C:ORANTDATABASESYS1ZXY.ORA ONLINEC:ORANTDATABASERBS1ZXY.ORA ONLINEC:ORANTDATABASEUSR2ZXY.ORA ONLINE YESC:ORANTDATABASETMP1ZXY.ORA ONLINEC:ORANTDATABASEINDX1ZXY.ORA ONLINEC:ORANTDATABASEZXY1ZXY.ORA ONLINE3.3 备份方案3使用RMAN联机热备份(需要catalog的情况)1、 创建一个recovery catalog数据库,数据库名为rman,SID为rman,其中数据库数据如下:Type of spaceSpace requirementSystem50MBTemp5MBRollback5MBRecovery catalog10MBOnline logs(3 groups,each with 2 members)Each 1MB2、 建表空间svrmgrl create tablespace rman_ts datafile / size 20M autoextend on next 20M maxsize 50M;3、 建用户svrmgrl create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;4、 给用户授权(注意授SYSDBA权限时,先确认有口令文件的存在,然后再给口令文件增加用户数)svrmgrl grant recovery_catalog_owner to rman;svrmgrl connect sys/change_on_install as sysdba;svrmgrl grant dba,connect,resource,sysdba to rman;5、 运行脚本svrmgrl connect rman/rmansvrmgrl $oracle_home/rdbms/admin/catrman.sql(UNIX) orsvrmgrl %oracle_home%/rdbms80/admin/catrman.sql(NT)6、 运行rman连接目标数据库及catalog数据库$ rman target sys/change_on_installobjectDB rcvcat rman/rmanrcvcat 7、 在catalog上注册目标数据库rman register database;8、 如果上一次注册过数据库后又进行过数据库的修改,请同步目标数据库rman gesynch catalog;9、 可通过查看catalog数据字典获得目标数据库注册信息:rc_database, rc_tablespace, rc_datafile, rc_stored_script, rc_stored_script_line;10、 设置NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;11、 设置NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS;12、 进行如备份方案4所述的备份操作。3.4 备份方案4使用RMAN联机热备份(不需要catalog的情况)1 运行rman连接目标数据库$ rman target user/passwordtnsnames nocatalog2 在rman方式下主要可进行如下备份:l database(全数据库备份)l datafile NO.(按数据文件号备份)l datafile directory/datafilename(按数据文件名备份)l tablespace XXX(按表空间名备份)l current control(备份控制文件)l archivelog all (delete input)(备份所有归档日志文件)l archivelog from logseq=1056 until logseq=1059 (delete input)(按归档日志SEQ号备份)l archivelog from time= until time=(按时间备份归档日志文件)3 Image copy 方式类似于操作系统的COPY指令,将一个文件备份至一个文件,不进行检查和压缩。指令例举如下:Rmanrun Allocate channel dev1 type disk;CopyDatafile to tag=backup01,Archivelog to ,Current controlfile to ;Release channel dev1; 4 Backup set方式在单个备份文件中包含一个或多个被备份的文件,备份时执行空块的压缩。指令例举如下:Rmanrun Allocate channel dev1 type disk;backup incremental level=0 format /df_%d_%s_%p tag=backup01 filesperset=4(database include Current controlfile);Release channel dev1; 3.5 备份方案5使用RMAN的增量备份首次备份,用0级 run allocate channel dev1 type sbt_tape; backup incremental level 0 (database format %d_%u); 以后的备份用0级或1级 run allocate channel dev1 type sbt_tape; backup incremental level 1 (database format &d_%u); 如果在第一次备份之后增加了表空间或数据文件,需重新进行0级增量备份,否则再进行备份将无法识别新增的表空间或数据文件。 run allocate channel dev1 type sbt_tape; backup incremental level 0 (tablespace new_tbs format %d_%u); 3.6 备份方案6逻辑备份逻辑备份最大的优越性在于备份时占用资源少,在备份与恢复时对数据库系统资影响最小。另外对于个别表而非整个表空间或数据库的恢复也非常方便,且可以在不同的数据库上进行恢复,备份方案灵活,可根据需要选择性的备份表、表空间、用表户表信息或全局备份。在实际应用中我建议以逻辑备份为主要的备份方案,然后结合脱机冷备份或联机热备份。EXP、IMP命令详解: E:exp help=y通过输入 EXP 命令和用户名/口令,您可以在用户 / 口令之后的命令:或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行方式。要指定参数,您可以使用关键字:格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,.,valueN)实例: exp80 username/passwordalias file=expfile.dmp log=mylog.log关键字说明(默认)-USERID用户名/口令FULL导出整个文件 (N)BUFFER数据缓冲区的大小(与操作系统有关)OWNER所有者用户名列表FILE输出文件 (EXPDAT.DMP)TABLES表名列表COMPRESS导入一个范围 (Y)RECORDLENGTHIO 记录的长度GRANTS导出权限 (Y)INCTYPE增量导出类型INDEXES导出索引 (Y)RECORD跟踪增量导出 (Y)ROWS导出数据行 (Y)PARFILE参数文件名CONSTRAINTS导出限制 (Y)CONSISTENT交叉表一致性LOG屏幕输出的日志文件STATISTICS分析对象 (ESTIMATE)DIRECT直接路径 (N)TRIGGERS导出触发器 (Y)FEEDBACK显示每 x 行 (0) 的进度FILESIZE各转储文件的最大尺寸QUERY选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE导出可传输的表空间元数据 (N)TABLESPACES将传输的表空间列表E:imp help=y可以通过输入 IMP 命令和您的用户名/口令格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,.,vlaueN)实例: imp80 username/passwordalias file=impfile.dmp log=mylog.log show=y(查看Oracle数据表的建表语句)关键字说明(默认) -USERID用户名/口令FULL导入整个文件 (N)BUFFER数据缓冲区大小FROMUSER所有人用户名列表FILE输入文件 (EXPDAT.DMP)TOUSER用户名列表SHOW只列出文件内容 (N)TABLES表名列表IGNORE忽略创建错误 (N)RECORDLENGTHIO 记录的长度GRANTS导入权限 (Y)INCTYPE增量导入类型INDEXES导入索引 (Y)COMMIT提交数组插入 (N)ROWS导入数据行 (Y)PARFILE参数文件名LOG屏幕输出的日志文件CONSTRAINTS导入限制 (Y)DESTROY覆盖表空间数据文件 (N)INDEXFILE将表/索引信息写入指定的文件SKIP_UNUSABLE_INDEXES跳过不可用索引的维护 (N)ANALYZE执行转储文件中的 ANALYZE 语句 (Y)FEEDBACK显示每 x 行 (0) 的进度TOID_NOVALIDATE跳过指定类型 id 的校验FILESIZE各转储文件的最大尺寸RECALCULATE_STATISTICS重新计算统计值 (N)下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE导入可传输的表空间元数据 (N)TABLESPACES将要传输到数据库的表空间DATAFILES将要传输到数据库的数据文件TTS_OWNERS拥有可传输表空间集中数据的用户增量卸出备份的参数是INCTYPE,这个参数的有效选项是COMPLETE、CUMULATIVE和INCREMENTAL。COMPLETE确定为全卸出,而其它两个选项则依赖全卸出用于数据库复原。CUMULATIVE卸出所有表和上次CUMULATIVE或COMPLETE卸出以来更改过的其它对象;如果更改表中一个记录,那么卸出整个表。INCREMENTAL卸出上次INCREMENTAL、CUMULATIVE或COMPLETE卸出以来更改过的所有表和对象。增量导入的参数为INCTYPE,如果正在导入一个增量卸出,那么撤消并重建表。必须首先从上次SYSTEM卸出(规定INCTYPE=SYSTEM)中复原。然后导入每个增量卸出(规定INCTYPE=RESTORE)直到需要的变化应用于数据库。备份指令:exp80 username/passwordalias file=expfile.dmp log=mylog.log inctype=completeexp80 username/passwordalias file=expfile.dmp log=mylog.log inctype=incremental注意事项:备份文件每次都要更改不同的文件名,否则会被覆盖,整套备份将没有任何意义,建议每周做一次全备份,然后一周中其它时间做增量备份。增量备份进行恢复时,不能指定恢复某张表或某个用户的表等参数,只能在“完整数据库”模式下执行增量导出,导入亦然。只能用有管理员身份的用户连接才能执行增量备份。恢复指令:imp80 username/passwordalias file=expfile.dmp log=mylog.log inctype=systemimp80 username/passwordalias file=expfile.dmp log=mylog.log inctype=restore4 备份案例做一套系统的备份策略,我个人觉得应该从两方面考虑:一是技术手段,包括相应的设备,可用的备份恢复脚本等;二是根据应用要求,确定备份周期、备份方式。以下根据个人的测试提供给广州市工商很行的备份案例,广州市工行的运行环境如下:windowsNT操作系统,oracle8.05 enterprise edition server,有重做日志的归档。其它应用系统可根据系统及应用的不同,灵活的进行搭配和选择。注意对备份文件、存放路径、备份日期及备份指令进行纸质记录,并对磁带进行有效的标识。4.1 备份文件的存放路径请按如下目录结构在有较大空间的硬盘上建目录。目录子目录从子目录或文件说明Oracle_backupScriptsun.bat、wed.bat运行脚本所在目录(参见操作手册)Copy_dataRMAN用image copy方式备份的数据Backup_dataRMAN用backupset方式备份的数据Exp_data逻辑备份数据Cold_data冷备份数据4.2 RMAN的热备份在执行备份前,先执行如下两步操作:1、 先增加操作系统环境变量:NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS;2、 在参数文件中增加对CONTROL文件的控件参数:CONTROL_FILE_RECORD_TIME=30;(保留30天的备份记录);计划用RMAN做基于全数据库的增量备份,增量备份周期图如下所示:Sunmontueswedtrufrisatsuno2212220l 周日执行0级备份(即全备份)备份脚本:run allocate channel dev1 type disk;backup incremental level 0 tag=database (database format d:oracle_databackup_datad%d_u%u);copy datafile 1 to C:oracle_datacopy_dataXX.ORA,copy current controlfile to c: oracle_datacopy_data control.ctl;l 周三执行1级备份备份脚本:run allocate channel dev1 type disk;backup incremental level 1 tag=database (database format d:oracle_databackup_datad%d_u%u);copy current controlfile to c: oracle_datacopy_data control.ctl;l 其它候执行2级备份备份脚本:run allocate channel dev1 type disk;backup incremental level 2 tag=database (database format d:oracle_databackup_datad%d_u%u);copy current controlfile to c: oracle_datacopy_data control.ctl;将每一段备份脚本分别保存于一个文本文件,命名为0.txt,1.txt,2.txt,并存三个BAT文件,分别为:0.bat,1.bat,2.bat,内容为:type c:0.txt|rman80 target username/passwordtnsnames nocatalog,这样只须执行BAT文件即可完成每日备份。注意:在脚本中每日将对数据库控制文件进行一次全备份。4.3 EXP逻辑备份建议:分为三种备份级别,每一类备份级别的数据保留两个周期即可覆盖,循环使用存储介质:1、 每月月初对数据库做一次全备份;操用指令:exp80 username/passwordalias full=Y file=/expfile.dmp log=/mylog.log(周日操作,建议用system用户进行操作)2、 每周日对数据库做一次基于用户级的备份;操用指令:exp80 username/passwordalias owner=username file=/expfile.dmp log=/mylog.log(周日操作,建议用需备份的用户进行操作)3、 每日对重要的表进行基于表级的备份;操作指令:exp80 username/passwordalias tables=(table1,table2,table3) file=/expfile.dmp log=/mylog.log(每日操作,周日除外,建议用备份的所属用户进行操作)4.4 其它文件的备份除脚本之后,用户须每日对口令文件、参数文件、archivelog文件做操作系统级的备份。4.5 备份记录请参见如下表格填写备份记录。序号备份时间备份类型(RMAN、EXP或copy)备份脚本生成的备份文件名及存放路径错误提示备份时archivelog的seq号5 数据库恢复引起数据库失败的原因很多,有操作系统、存储介质、各类应用软件或其它原因;失败的现象也多种多样,有人为的误操作引起数据丢失,有由于掉电或操作系统失败而引起未归档而异常退出,有硬盘磁道损坏引起的文件错误等等。一般来说,备份计划越完善越周密,数据库能保证的恢复也越多,同时安全性也越高。但是过于烦琐的备份计划付出的代价将更高,影响数据库的工作效率也需要更多的服务器设备及存储介质。所以我们需要根据数据库的不同应用以及不同的环境和配置提供最合理的备份方案。这一章节将介绍的是常见的数据库失败在进行如上一章节所述备份的情况下进行恢复的方法。注意:只要down机做恢复时,一定要在这个时间点对数据库进行一次全冷备份,以免恢复时因为各种原因而引起的错误或失败,导致数据无法进行再恢复。5.1 误删除表及数据这种情况将运用对数据库数据文件进行的全备份及归档重做日志文件进行time_based(基于时间的)恢复。具体操作方法如下:1、 svrmgrl alter tablespace XX offline;(此步骤可选)2、 svrmgrl shutdown immediate;(注意用sysdba身份用户)3、 对数据库进行冷备份4、 svrmgrl startup mount;5、 !copy c:oracle_datacopy_data* c:orantdatabase* (将备份的数据文件替换所有工作的数据文件)6、 svrmgrl recover database until time 2001-02-24:12:00:00;(时间取最接近删除表前的时间)7、 svrmgrl alter database open resetlogs;8、 svrmgrl alter tablespace XX online;(此步骤可选)5.2 数据文件丢失或损坏的恢复这种情况将运用对数据库增量备份及归档重做日志文件进行单个数据文件的complete恢复。具体操作方法如下:1、 vrmgrl alter tablespace XX offline;(此步骤可选)2、 svrmgrl shutdown immediate;(注意用sysdba身份用户)3、 对数据库进行冷备份4、 svrmgrl startup mount;5、 启动RMAN:rman80 target username/passwordtnsname nocatalog(用sysdba身份连)6、 根据丢失的数据文件运行如下恢复脚本:run allocate channel dev1 type disk; restore tablespace XX;(此步骤可改为restore database;)recover tablespace XX; (此步骤可改为recover database;)7、 svrmgrl alter database open;8、 svrmgrl alter tablespace XX online;(此步骤可选)5.3 数据库重装后的恢复5.3.1 使用数据库增量备份进行恢复这种情况可运用对数据库数据文件的增量备份、控制文件的全备份及归档重做日志文件进行恢复。具体操作方法如下:1、 copy c:oracle_datacopy_datacontrol.ctl c:orantdatabase* (将备份的控制文件替换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论