Oracle备份恢复

前言

细谈Oracle备份方法
Oracle备份恢复概念

基本概念

运行方式

Oracle数据库有两种运行方式:一是归档方式(ArchiveLog),二是不归档方式(NoArchiveLog)。

  • 归档方式
    当数据库发生故障时最大限度恢复数据库,可以保证不丢失任何已提交的数据,即恢复到最后一次commit;

    可实现冷备和热备;

    支持完全备份和非完全备份以及完全恢复与非完全恢复;

    但消耗系统10%性能,同时需要消耗更多存储空间;

  • 非归档方式
    只能恢复数据库到最近的回收点,即最后一次全备;

    只支持冷备份(又称为一致性备份);

    只能完全备份与完全恢复;

备份分类

  • 物理备份
    • 冷备份
      脱机备份—备份前数据库必须彻底关闭。
    • 热备份
      联机备份—只适用于归档方式
  • 逻辑备份
    将表、存储过程等数据使用Oracle的export等工具导出到二进制文件,后续根据需要再使用import工具导入数据库。

备份工具

  • RMAN
    Recovery Manager。Oracle提供的DBA工具,用于管理备份和恢复操作。
  • EXP/IMP
    导入/导出方式—转储。如表空间迁移、表的抽取、检测逻辑和物理冲突等,适合小型数据库。
  • OS脚本

数据库实例启动关闭过程

数据库实例启动过程

当我们startup数据库时,数据库首先到nomount状态,然后启动到mount状态,再到open状态。

  • nomount

    实例启动

    ​ 实例的启动通常包含下列任务:

    ​ a.按以下顺序在$ORACLE_HOME/dbs[win平台为database]目录下搜索下列文件,即如果第一个没找到,就找下一个

    ​ spfile.ora —> spfile.ora —> init.ora

    ​ b.分配SGA

    ​ c.启动后台进程

    ​ d.打开并修改告警.log文件及跟踪文件

    ​ 注意:

    ​ 此阶段不打开任何的控制文件及数据文件。

  • mount

​ mount阶段完成的任务:

​ a.启动实例并打开控制文件,将数据库与实例关联起来

​ b.利用参数文件中的说明,打开并锁定控制文件

​ c.读取控制文件以获取数据文件和重做日志文件的名字和状态信息,但不检查数据日志文件是否存在

​ 注意:

​ 这一步会读控制文件,如果这一步有一个控制文件损坏就无法启动

  • open

​ mount阶段完成的任务:

​ a.打开数据文件

​ b.打开联机日志文件

​ 注意:

​ a.在此期间,Oracle服务器将校验所偶的数据文件和联机日志文件能否打开并对数据库作一致性检查

​ b.如果出现一致性错误,SMON进程将启动实例恢复

​ c.如果任一数据文件或联机日志文件丢失,Oracle服务器将报错

数据库实例关闭

​ 关闭命令:shutdowm abort | immediate | transactional | normal (shutdown不带参数将缺省为normal)

​ 关闭选项:

​ normal —>不准许新的连接,等待当前的session 结束,等待当前的事务结束,强制检查点并关闭文件

​ transactional —>不准许新的连接,不等待当前的session结束,等待当前的事务结束,强制检查点并关闭文件。

​ immediate —>不准许新的连接,不等待当前的session结束,不等待当前的事务结束,强制检查点并关闭文件。

​ abort —>不准许新的连接,不等待当前的session结束,不等待当前的事务结束,不作强制检查点。

数据库恢复过程

restore -> recover -> open

数据文件转储 -> 根据log等将差异弥补 -> 打开数据库

datafile control scn

备份策略选择

Oracle实例和Oracle数据库

一个Oracle Server 由Oracle 实例和Oracle 数据库组成。一台SQL server服务器上可以存在多个不同的实例。一个实例下可以存在多个不同的数据库。

  • Oracle实例(Instance)

    内存结构(SGA)+一系列后台进程(Background Process)

  • Oracle数据库(Database)

    控制文件(Controlfile)+ 数据文件(datafile)+ 联机日志文件(logfile) + 参数文件(pfile、spfile) + 密码文件等

未完待续。

© 2019 lvbin's Blog All Rights Reserved.
Theme by hiero