`

Oracle 备份恢复原理

 
阅读更多
Oracle 的工作模式:
1.Archive
2.Noarchive.

归档模式实际上是保留重做日志文件的副本(当在线重做日志切换时),当数据库down掉时,可以利用以前的备份文件+重做日志(归档及online模式)进行恢复。
查看归档模式
此命令只能是sysdba的权限才可以执行。
SQL>Archive log list;

若是DBA权限,需要下面的语句查看
SELECT log_mode from v$database.

归档和非归档如何转换?
1.启动到Amount状态 
sys@ORCL> startup mount
2.启动到归档模式
sys@ORCL> alter database archivelog;
sys@ORCL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     295
下一个存档日志序列   297
当前日志序列           297
3.正常启动
alter database open;

归档日志保存的位置:

sys@ORCL> show parameter DB_RECOVERY_FILE_DEST

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      F:\oracle\product\10.2.0\db_1/
                                                 flash_recovery_area
db_recovery_file_dest_size           big integer 2G

--查看重做日志的信息
SELECT 
GROUP#,--第几组日志
SEQUENCE#, --标示重做日志的唯一标示
BYTES,--日志文件大小
ARCHIVED,--标示是否已经归档
STATUS,--状态
FIRST_CHANGE#,--此日志文件记录的SCN开始
FIRST_TIME--日志文件记录开始时间
FROM V$LOG;

select * from v$logfile;--重做日志文件

--切换日志状态,改变当前归档日志
alter system switch logfile;

--归档当前日志文件,并切换日志(只能使用在归档模式下)
alter system archive log current;

------------------------------------------------------------------------------------------------------------
--另外一个重要的概念,SCN(SYSTEM CHANGE NUMBER)
SCN是Oracle的内部时钟


查询系统的SCN,此SCN是大约每隔三秒种增加1
sys@ORCL> SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                12342762
--另外一个查询方式,此查询每次都会增加1
SELECT CURRENT_SCN FROM v$database;


--查看归档日志的内容

SELECT 
SEQUENCE#,--日志文件标示
FIRST_CHANGE#, --日志文件记录的开始SCN(为上条记录的NEXT_CHANGE#)
NEXT_CHANGE# --日志文件记录的结束SCN
FROM V$ARCHIVED_LOG;

--备份恢复原理

数据库打开的必要条件,这两个视图中的CHECKPOINT_CHANGE需要一致。
v$datafile_header 来之与数据文件,v$datafile信息来之与控制文件。
若数据文件由于问题损坏,使用备份文件+重做日志完成恢复(增大数据文件的SCN号)。

sys@ORCL> select file#,checkpoint_change# from v$datafile_header;

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1           12344521
         2           12344521
         3           12344521
         4           12344521
         5           12344521
sys@ORCL> select file#,checkpoint_change# from v$datafile;

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1           12344521
         2           12344521
         3           12344521
         4           12344521
         5           12344521

----备份恢复的种类
--注意备份文件最好存放在另外的磁盘上。
1.完全脱机备份(ARIVELOG|NOARCHIVELOG)

缺点:
需要shutdown
物理拷贝整个文件,而不是有用的数据。

非归档模式(NOARCHIVELOG)只能使用此方式,shutdown之后,进行物理备份。
备份的内容包括:
数据文件(包括undo文件,可以不包括临时文件),
日志文件,
控制文件,(只备份一个就ok,其他都是镜像文件)

当使用此模式恢复时(全部文件复制回去),数据会有所丢失。数据时截止到备份的时间点。

归档模式下(ARCHIVELOG),把备份的文件进行恢复。
数据库打开时,提示介质恢复,输入命令

sys@ORCL> recover datafile 4

  ORA-00279: 更改 12344520 (在 06/15/2013 10:48:14 生成) 对于线程 1 是必需的
  ORA-00289: 建议:
  F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_06_16\O1_MF_1_305_%U_.ARC
  ORA-00280: 更改 12344520 (用于线程 1) 在序列 #305 中
  指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

输入enter 即使用建议的归档日志恢复。
或者数据绝对路径进行恢复。
Auto是全部按照Oracle建议的归档文件进行恢复。
CANCEl是取消恢复

12344520实际上对应的是4号数据文件的文件头号。

当需要使用的归档日志可以使用online重做日志时,就不会于提示,直数据接进行恢复。
当完全恢复完成之后,会发现数据文件头上的SCN号小一相对于控制文件,但没有影响。

若想同时恢复多个数据文件,可以直接使用以下命令:
recover database;

当恢复完后,
Alter database open;

2.部分脱机备份(tablespace offline)

实际上利用tablespace offline后进行物理备份。
当tablespace offline时,Oracle会自动的把此表空间的相关数据写入表空间中。所以此数据文件的SCN会高一些相比其他数据文件

缺点:备份时,相应的表空间上的数据无法读取。
SYSTEM和UNDO表空间都不能offline备份。
经测试,临时表空间也是不能offline的。

恢复过程:
拷贝备份文件至数据文件目录,执行 alter tablespace online.提示需要恢复
执行recover datafile xx;
恢复完之后,alter tablespace online.当执行完后,Oracle会同时更新此数据文件在控制文件及文件头上的SCN号至最新。

此恢复过程可以在数据库OPEN状态下进行。

完全检查点实现时,全部的数据文件会同步检查点号。会以两个方式实现此功能:
  1.shutdown
  2.alter system checkpoint;

-- 当临时表空的文件被删除时,数据库仍然可以启动。Oracle会自动创建一个临时表空间文件。

3.部分联机备份

此备份必须在archive 模式进行,否则报错 ORA-01123: 无法启动联机备份; 未启用介质恢复
缺点:
备份方式采用os copy,数据文件仍处于online状态,有可能出现问题。出现一个块中不一致的数据。
举例,假设你正在备份第100个块在users.dbf文件中。假设os copy读取整个数据块同时DBWR正在更新这个block。在这种情况下,os copy读取了
旧的前半块的数据,和新的数据在块的另一半。这种情况属于破损的块,这个块上的数据在一个scn上是不一致的。
·针对这种情况,Oracle采用了一种保护机制,当表空间处于backup mode(联机备份),每次一个块被改变前,数据库会写整个块的前镜像入redo
中,修改后,也会记录这种变化到redo log中。当恢复时,数据库针对这种破损的块,会先恢复块前镜像,及使用redo中的变化进行恢复。
此方式会导致增加许多redo log。
RMAN不会使用此方式,因为RMAN是Oracle进程备份,不会出现这种破损的块。



备份命令
alter tablespace users begin backup;

查看部分联机备份情况
SELECT  
FILE#, --文件号
STATUS,--ACTIVE标示处于备份状态
CHANGE#,--记录处理备份状态的SCN号
TIME
FROM V$BACKUP;

OS copy表空间的文件。

结束备份
alter tablespace users end backup;

通过观察,当设置表空间为部分联机备份后,数据文件头上面的SCN号会一直保留在当时的SCN上。直到END backup。
但不会影响此表空间上的数据查询及DML语句。

备份整个数据库

alter database begin backup;
alter database end backup;

 

分享到:
评论

相关推荐

    oracle在线备份原理

    为了实现远程备份,可以将redo log files或者备份集传输到远程位置,确保即使本地发生灾难性故障,也能从远程备份恢复数据。 总的来说,Oracle在线备份原理的核心在于理解DML语句的处理流程,特别是redo log files...

    ORACLE数据备份/恢复工具

    总之,这个“ORACLE数据备份/恢复工具”利用VB5为用户提供了一种简便的方式来管理和保护Oracle数据库,其背后涉及的Oracle备份恢复原理、跨版本兼容性、数据库接口技术以及用户友好设计都是关键知识点。在实际应用中...

    oracle热备份原理分析

    Oracle热备份原理分析 在数据库管理领域,Oracle数据库系统因其高效稳定而被广泛使用。为了保障数据的安全性和可用性,数据库备份是至关重要的环节。Oracle热备份,也称为在线备份,是在数据库运行状态下进行的一种...

    oracle 备份和恢复 PPT

    - **RMAN(Recovery Manager)**:Oracle提供的备份恢复工具,具有自动化、高效、安全等特点。 2. **Oracle的备份恢复架构** - **物理备份与逻辑备份**:物理备份直接复制数据库文件,如数据文件、控制文件等;...

    Oracle备份与恢复案例

    在IT行业中,数据库管理是至关重要的任务,尤其是对于企业级应用而言。Oracle数据库作为全球广泛使用的...同时,理解Oracle的恢复原理和最佳实践,将有助于在面临数据危机时迅速、有效地恢复数据库,保障业务的连续性。

    一步一步学RMAN完整版Oracle备份恢复

    RMAN在Oracle备份和恢复流程中的重要性不言而喻,它不仅支持传统备份,比如物理备份和逻辑备份,还能进行增量备份,并且能够直接读取数据库文件,提供更为详细的备份信息。 首先,要使用RMAN进行备份和恢复,必须...

    ORACLE数据库备份技术的原理及实现

    本文主要探讨了Oracle数据库的备份原理,特别是Oracle Standby数据库的实现方式,这是一种高效且适用于实时处理需求的容灾备份策略。 Oracle Standby数据库的工作原理是通过创建一个与主数据库(Primary数据库)...

    Oracle四大宝典之三:Oracle备份与恢复 中文版

    任何数据库在长期使用过程中,都会存在一定的安全隐患。...第二章 Oracle备份与恢复原理 第三章 用户管理的备份 第四章 用户管理的恢复 第五章 RMAN简介与配置 第六章 RMAN备份 第七章 RMAN恢复 第八章 备份恢复示例

    oracle备份恢复教程.pptx

    本教程主要围绕Oracle的恢复管理器(RMAN)展开,讲解了RMAN的基本原理、功能、操作及其在备份恢复策略中的应用。 首先,备份恢复的考虑因素包括保护数据库不受多种故障的影响,延长平均故障间隔时间(MTBF),缩短...

    ORACLE RAC恢复备份恢复测试-全套过程含脚本 veritas RMAN

    ### ORACLE RAC恢复备份恢复测试—全套过程含脚本 veritas RMAN #### 概述 Oracle Real Application Clusters (RAC) 是一个数据库集群解决方案,它允许多个Oracle数据库实例同时访问同一个数据库,以此来提供高...

    oracle 备份&恢复案例.doc

    总的来说,Oracle数据库的备份和恢复是一个复杂的过程,需要DBA深入理解数据库的工作原理和恢复机制。定期备份和测试恢复策略可以确保在面临数据丢失或系统故障时能够迅速恢复,减少业务中断的时间,保护企业的重要...

    oracle 11g rman 备份与恢复

    通过阅读《Oracle Database 11g RMAN备份与恢复》这本书,读者将深入学习RMAN的原理和实践操作,了解如何制定有效的备份策略,以及如何在灾难发生时迅速恢复数据库,保障业务连续性。书中详细讲解了RMAN的各种命令、...

    oracle-备份恢复脚本

    根据提供的文件信息,我们可以归纳出一系列与Oracle数据库备份与恢复相关的知识要点。下面将详细解释这些脚本中的各个部分,并阐述其背后的概念和技术原理。 ### 一、Oracle RMAN(Recovery Manager)基础 RMAN是...

    Oracle Database 11g RMAN备份与恢复

    对于熟悉Oracle备份和恢复的读者来说,可以快速阅读基础知识章节,或者直接跳到RMAN相关内容的学习。对于初学者,本部分内容旨在帮助他们更好地理解和掌握RMAN的基础知识。 备份和恢复的概念涉及数据库体系结构的多...

Global site tag (gtag.js) - Google Analytics