Oracle备份与恢复—概念
备份与恢复存在的意义只有一个就是保护数据库(保护数据还有本身),防止由于设备故障或者人为误操作而导致数据库损坏或数据的丢失。即便无法找回已经丢失的数据也可以根据备份信息重建丢失的数据。在某种需求下备份和恢复操作也是一种数据迁移的形式。
2.备份的分类: 按照备份形式的不同可以将备份分为物理备份和逻辑备份。物理备份根据数据库的状态又可以分为冷备和热备。
物理备份:物理备份就是将数据库的物理文件拷贝到别的地方来保存数据文件的方式。
逻辑备份:逻辑备份只针对数据库内的数据,通过数据库导入导出工具来完成。是物理备份的一种补充形式。
3.备份的级别:full backup:完全备份,针对某一个表空间或数据文件等,把表空间或数据库里面的数据全备份一次。incremental backup:增量备份,需要在完全备份的基础上进行,备份变化的数据。可分为differential incremental backup差异增量备份(从上一次备份开始到现在发生的变化)和Cumulative incremental backup累计增量备份(从上一次全备进行比较备份的变化)level 0 -> 全备; level 1 -> 差异增量备份 level 1c -> 累计增量备份4.完全恢复和不完全恢复:完全恢复:可以利用备份文件和日志文件,将数据库的信息恢复到最新的状态,可能会利用到归档日志和在线重做日志,将系统恢复到崩溃前的最新状态。可以通过alter database open将数据库打开。这个时候提交的事务数据不会有任何丢失。未提交的事务进行回滚。不完全恢复:因为发生了数据库的数据操作错误,希望把数据库恢复到发生错误之前。系统日志不完整,打开数据库需要alter database open resetlogs,并且在启动后进行全库备份。5.SCN:5.1 定义:
System Change Numbers (SCNs)&System Commit Numbers。系统改变号和系统提交号。SCN是Oracle数据库内部所使用的逻辑的时间戳。SCN的产生,系统产生一个新的SCN是根据当时的时间戳timestamp转换而来,每当需要产生一个最新的SCN到redo记录中时,系统都会获取当时的timestamp将其转换成数字作为SCN。
5.2 特点:SCN本身也是一种时间,它是从建库开始就单调递增的序列,一次性最大可以增加32000个。SCN号是有上限的,当SCN号被使用完,数据库便不能够运行,但是几百年内是不会用完的。SCN是一个很重要的机制,在数据恢复,DG,RAC节点间同步等各个功能中起着重要的作用。
5.3 SCN种类:数据库当前的SCN:SYS@proe>select current_scn from v$database;CURRENT_SCN----------- 2128297
数据库检查点scn(系统scn),这个scn来自于控制文件,用来标识当前数据库的数据更新信息,表示数据库的更新行为。
SYS@proe>select checkpoint_change#,current_scn from v$database;CHECKPOINT_CHANGE# CURRENT_SCN------------------ ----------- 2127934 2128360
数据文件检查点SCN,来源于控制文件标识了每一个文件是什么时候同步的。
SYS@proe>select file#,checkpoint_change# from v$datafile order by 1; FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 2127934 2 2127934 3 2127934 4 2127934 5 2127934 6 2127934 7 17285687 rows selected.
数据文件头部检查点。
SYS@proe>select file#,checkpoint_change# from v$datafile_header; FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 2127934 2 2127934 3 2127934 4 2127934 5 2127934 6 2127934 7 17285687 rows selected.#如果出现数据文件头部为0的情况则说明数据文件已经离线,没有读取这个数据文件。
数据文件的关闭SCN(结束SCN)。
SYS@proe>select file#,checkpoint_change#,last_change# from v$datafile; FILE# CHECKPOINT_CHANGE# LAST_CHANGE#---------- ------------------ ------------ 1 2127934 (null) 2 2127934 (null) 3 2127934 (null) 4 2127934 (null) 5 2127934 (null) 6 2127934 (null) 7 1728568 17285687 rows selected.注意:正在运行的文件是没有last_change#的,只有readonly,offline才会有。以上两个值在一致性关闭后数值相同才正常。
6.SCN与TIME的相互转换函数scn转时间戳:
SYS@proe>select scn_to_timestamp(2127934) from dual;SCN_TO_TIMESTAMP(2127934)---------------------------------------------------------------------------15-JUL-20 07.14.57.000000000 PM
时间戳转scn:
SYS@proe>select timestamp_to_scn(to_timestamp('2020-07-13 07:15:24','yyyy-mm-dd hh34:mi:ss')) from dual;TIMESTAMP_TO_SCN(TO_TIMESTAMP('2020-07-1307:15:24','YYYY-MM-DDHH24:MI:SS'))--------------------------------------------------------------------------- 1993469
7.关于restore和recoverrestore:还原,类似于linux中cp命令,将备份拷贝到目标位置。recover:修复,在restore后,指运用所有的重做日志文件,将数据库恢复到崩溃之前的状态,或者运用部分重做日志文件将数据库恢复到指定时间点,做不完全恢复。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。