-、数据备份 目的: (1)保证数据安全--系统故障; (2)数据迁移--跨版本升级、测试、更换设备; 二、分类 (1)数据库状态分 shutdown --冷备份--cp,scp,ram open --热备份--cp,scp,ram,exp,expdp (2)按对像分 系统数据块 --物理备份 --手功备份、RMAN 库内数据 --逻辑备份--exp,expdp (3)按数据库完整性分 备份集(数据文件+控制文件)+归档+当前redo --》完美恢复(一致性备份) 备份集(数据文件+控制文件)+归档 --》不完全恢复(不一致性备份) 注:(1)生产中使用物理备份恢复比较多; (2)生产中RMAN,expdp用的比较多; 三、数据库需要备份的文件 (1)参数文件 (2)控制文件 (3)数据文件 (4)日志文件 四、数据库的一致性: (1)数据文件、控制文件的SCN与当前redo的SCN必须一致,除了正常关闭数据状态下,可以直接使用cp,scp进行操作,其他状态不可以使用cp,scp; (2)我们把数据文件头部SCN和控制文件记录的SCN是一致的备份集,我们叫有交备份信; (3)数据库的一致性,说明SGA里的脏块已经落盘; 五、热备三种方式 (1)手工备份 (2)RMAN备份 (3)exp\expdp备份 注:前面两种方式必须保证数据库开启归档模式 六、归档模式: 1、分类: (1)手工归档: 需要手动生成归档,如果不生成归档,也不能被覆盖,很容易导致数据库挂起,严禁使用; (2)自动归档; 生产环境都是自动归档;闪回功能也需要使用归档功能; 2、二种手动归档方式 (1)alter system switch logfile; 只是切换日志组操作,因为归档是自动管理,自动触发ARCn进程完成归档操作; (2)alter system archive log current; 调用ARCn进程对当前日志进行归档操作 注:若归档功能没有开启,(1)不会报错 七、数据块分离 1、定义:数据库里的数据块是8k,而操作系统的数据块是4k,也就是说是数据库数据块由两块4k组成;数据块头部和尾数据都有一个一样的SCN号,在备份过程中第一块4k的SCN与第二块4K的SCN不一致,我们把这个种现像叫数据块分离;这种现像数据库是不可用的; 2、解决方案 (1)手工备份:通过begin backup 和 end backup 方式进行备份; (2)RMAN:模拟数据库存储方式,直接采用8k为单位进行备份; 八、SCN 定义:oracle对计算系统时间通过hash运算得到数值,用来标记操作时间; 作用:做到数据文件、日志文件、控制文件里数据保持一致,特别是在做数据恢复时需要用的它。 常见SCN 控制文件内容里SCN值: select checkpoint_change# from v$database; 上一次ckpt进程触发dbwn进程写入所有脏数据时的SCN号; alter system checkpoint; 数据文件头部SCN值 select name,checkpoint_change# from v$datafile_header; redo日志文件里SCN值 select group#,sequence#,status,archived,first_change#,next_change# from v$log; 九:检查点 检查点分为:完全检查点和增量检查点 (1)完全检查点:完全检查点把SCN更新至数据文件头和控制文件中; (2)增量检查点:仅把SCN更新至控制文件中。 检查点: 1、控制文件检查点的SCN,控制文件检查点必须>=所有数据文件头部检查点的SCN,>=current log 的低位scn(first_change#)否则控制文件同样被认为是旧的,实例无法启动。 2、控制文件中数据库系统检查点SCN号实际是所有数据文件头部中最小的检查点SCN。 根据它的值与每个重做日志的高低SCN比较,来确定恢复数据文件需要的第一个日志文件。 十:数据库关闭: (1)一致性关闭:shutdown normal,immediate,transaction 一旦发起这些操作,则自动触发完全检查点; -->数据库中的所有脏块落盘-->同时将检查点记录到控制文件和数据文件头部 启动数据库时,从mount阶段到open阶段,oracle需要去判断文件存在以及数据一致性。检查数据一致性就是对比控制文件和数据文件头部SCN是否一致 -->正常启动 (2)非一致性关闭:shutdown abort,系统故障、停电;-->需要介质恢复
|