1、Oracle经典数据库备份手册docOracle数据库备份手册 1 故障类型 实例故障由ORACLE内部异常、操作系统故障或其它相关软件引起,导致ORACLE实例中的进程或内存区出现故障或数据库无法正常关闭,这种故障称为实例故障。实例故障没有本质上的破坏,无须对数据库进行恢复,只要重启数据库就可正常。 媒介故障媒介故障主要是由于磁盘驱动器出问题、磁盘块坏、数据文件被删除或损坏等引起,文档中所介绍的备份方法基本为这种故障而设计的。2 与备份相关的数据库环境2.1 数据库类型与数据库备份最紧密相关的数据库设置相信应该是有无重做日志的归档,依此可将数据库划分为两大类型: noarchivelog重做
2、日志归档的备份,这种情况数据运行性能高,但数据库恢复不够灵活。对于无归档的备份,可采用的方式比较简单,主要是以逻辑备份和脱机准备份为主。当数据文件或控制文件被损坏或丢失的情况下只能做全数据库的恢复,且只能恢复至备份的时间点。 archivelog有重做日志归档的备份,重做日志的归档将很大程度影响数据库的运行性能,但对数据库安全性要求极高的数据库系统必须要有重做日志的归档。这种情况的备份和恢复可采用的形式较多,有逻辑备份、脱机冷备份、联机热备份。可执行基于时间的恢复,单个数据文件的恢复。2.2 archivelog的设置由于ORACLE数据库创建时缺省是为NOARCHIVELOG方式,下面的内容
3、将介绍如何将无重做日志归档的数据库系统改为有重做日志归档的数据库系统。221 archivelog的查看查看数据库是否有重做日志的归档,可以查看动态性能视图V$DATABASE中的LOG_MODE列,如果列值为ARCHIVELOG则为重做日志归档模式,如果列值为NOARCHIVELOG则为重做日志不归档模式。查看命令如下:select log_mode from v$database;221 archivelog的设置重做日志不归档修改为重做日志归档的方法:1、 先关闭数据库svrmgrlshutdown immediate;2、 对数据库做一次冷备份,即备份所有的数据文件、控件文件、重做日志
4、文件、参数文件、口令文件;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、 打开数据库svrmgrla
5、lter database open;3 备份方案3.1 备份方案1操作系统脱机冷备份对于可以down机的数据库系统,采用这种方法对数据库文件进行一次性备份,恢复时只能恢复到备份时间,建议在系统安装配置完成之后,提交运行前,采用这种方法进行数据库的一次备份,以后恢复时结合逻辑备份,基本可将系统恢复至可用状态。具体方法如下:通过V$DATAFILE,V$LOGFILE,V$CONTROLFILE查看有哪些数据文件、日志文件及控制文件需要进行备份,分别在哪些目录中。将这三类文件用操作系统拷贝指令复制到一个独立的硬盘或磁带上,以备日后使用。同时还需备份口令文件、参数文件及重做日志文件。查询指令如下:
6、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:ORANTDATABASELOGZX
7、Y1.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
8、 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操作系统联机热备份对数据文件进行备份,使用方便,恢复快。如果数据文件丢失或损坏,可以利用备份文件将文件恢复到当前
9、时间的数据,但不能恢复控制文件。对于数据文件的保护可采用这种方法进行备份和恢复。对于会修改的数据文件,最好每日做备份。对于静态数据文件,则只做一次性备份即可。方法: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 21
10、4357 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 ONLINE
11、C: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
12、/ 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_i
13、nstall 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、
14、在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;1
15、2、 进行如备份方案4所述的备份操作。3.4 备份方案4使用RMAN联机热备份(不需要catalog的情况)1 运行rman连接目标数据库$ rman target user/passwordtnsnames nocatalog2 在rman方式下主要可进行如下备份: database(全数据库备份) datafile NO.(按数据文件号备份) datafile directory/datafilename(按数据文件名备份) tablespace XXX(按表空间名备份) current control(备份控制文件) archivelog all (delete input)(备份所有归
16、档日志文件) archivelog from logseq=1056 until logseq=1059 (delete input)(按归档日志SEQ号备份) archivelog from time= until time=(按时间备份归档日志文件)3 Image copy 方式类似于操作系统的COPY指令,将一个文件备份至一个文件,不进行检查和压缩。指令例举如下:Rmanrun Allocate channel dev1 type disk;CopyDatafile to tag=backup01,Archivelog to ,Current controlfile to ;Releas
17、e 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 t
18、ype 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 (t
19、ablespace new_tbs format %d_%u); 3.6 备份方案6逻辑备份逻辑备份最大的优越性在于备份时占用资源少,在备份与恢复时对数据库系统资影响最小。另外对于个别表而非整个表空间或数据库的恢复也非常方便,且可以在不同的数据库上进行恢复,备份方案灵活,可根据需要选择性的备份表、表空间、用表户表信息或全局备份。在实际应用中我建议以逻辑备份为主要的备份方案,然后结合脱机冷备份或联机热备份。EXP、IMP命令详解: E:exp help=y通过输入 EXP 命令和用户名/口令,您可以在用户 / 口令之后的命令:或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”的运行
20、方式。要指定参数,您可以使用关键字:格式: 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)RECORDLENGTH IO 记录的长度GRANTS 导出权限 (
21、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)TABL
22、ESPACES 将传输的表空间列表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 用户名列表
23、SHOW 只列出文件内容 (N)TABLES 表名列表IGNORE 忽略创建错误 (N)RECORDLENGTH IO 记录的长度GRANTS 导入权限 (Y)INCTYPE 增量导入类型INDEXES 导入索引 (Y)COMMIT 提交数组插入 (N)ROWS 导入数据行 (Y)PARFILE 参数文件名LOG 屏幕输出的日志文件CONSTRAINTS 导入限制 (Y)DESTROY 覆盖表空间数据文件 (N)INDEXFILE 将表/索引信息写入指定的文件SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)F
24、EEDBACK 显示每 x 行 (0) 的进度TOID_NOVALIDATE 跳过指定类型 id 的校验FILESIZE 各转储文件的最大尺寸RECALCULATE_STATISTICS 重新计算统计值 (N)下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)TABLESPACES 将要传输到数据库的表空间DATAFILES 将要传输到数据库的数据文件TTS_OWNERS 拥有可传输表空间集中数据的用户增量卸出备份的参数是INCTYPE,这个参数的有效选项是COMPLETE、CUMULATIVE和INCREMENTAL。COMPLETE确定
25、为全卸出,而其它两个选项则依赖全卸出用于数据库复原。CUMULATIVE卸出所有表和上次CUMULATIVE或COMPLETE卸出以来更改过的其它对象;如果更改表中一个记录,那么卸出整个表。INCREMENTAL卸出上次INCREMENTAL、CUMULATIVE或COMPLETE卸出以来更改过的所有表和对象。增量导入的参数为INCTYPE,如果正在导入一个增量卸出,那么撤消并重建表。必须首先从上次SYSTEM卸出(规定INCTYPE=SYSTEM)中复原。然后导入每个增量卸出(规定INCTYPE=RESTORE)直到需要的变化应用于数据库。备份指令:exp80 username/passwo
26、rdalias file=expfile.dmp log=mylog.log inctype=completeexp80 username/passwordalias file=expfile.dmp log=mylog.log inctype=incremental注意事项:备份文件每次都要更改不同的文件名,否则会被覆盖,整套备份将没有任何意义,建议每周做一次全备份,然后一周中其它时间做增量备份。增量备份进行恢复时,不能指定恢复某张表或某个用户的表等参数,只能在“完整数据库”模式下执行增量导出,导入亦然。只能用有管理员身份的用户连接才能执行增量备份。恢复指令:imp80 username/p
27、asswordalias file=expfile.dmp log=mylog.log inctype=systemimp80 username/passwordalias file=expfile.dmp log=mylog.log inctype=restore4 备份案例做一套系统的备份策略,我个人觉得应该从两方面考虑:一是技术手段,包括相应的设备,可用的备份恢复脚本等;二是根据应用要求,确定备份周期、备份方式。以下根据个人的测试提供给广州市工商很行的备份案例,广州市工行的运行环境如下:windowsNT操作系统,oracle8.05 enterprise edition server,
28、有重做日志的归档。其它应用系统可根据系统及应用的不同,灵活的进行搭配和选择。注意对备份文件、存放路径、备份日期及备份指令进行纸质记录,并对磁带进行有效的标识。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做基于全数据库的增量备份,增量备份周期图如下所示:Sunmontueswedtrufrisatsuno2212220 周日执行0级备份(即全备份)备份脚本:run allocate channel dev1 type disk;backup incremental level 0 tag=database (datab
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1