热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle备份、恢复概念的总结

----Oracle备份恢复概念--数据库维护中,备份或恢复是重中之重的问题。尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是不言而喻的。因此DBA至少在保证数据不丢失的情况

--====================== -- Oracle 备份恢复概念 --====================== 数据库维护中,备份或恢复是重中之重的问题。尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是 不言而喻的。因此DBA至少在保证数据不丢失的情况

--======================

-- Oracle 备份恢复概念

--======================

数据库维护中,备份或恢复是重中之重的问题。尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是

不言而喻的。因此DBA至少在保证数据不丢失的情况下来提高系统的性能是最起码的要求。关于什么是备份与恢复,在此不做赘言。

一、物理备份与逻辑备份

物理备份

是所有物理文件的一个副本,比如数据文件,控制文件,归档日志等。该副本能被存储在本地磁盘或磁带等等。

物理备份是备份或恢复的基础

包括冷备份(非归档模式)或热备份(归档模式)

逻辑备份

将表、存储过程等数据使用Oracle的export等工具导出到二进制文件,后续根据需要再使用import工具导入数据库。

逻辑备份则是对物理备份的方式的一种补充,多用于数据迁移。

二、备份恢复工具

1.使用RMAN来备份恢复,支持命令行及GUI接口,支持第三方磁带库备份,功能比较强大。

支持备份数据库、表空间、数据文件、控制文件、归档日志等

可以保存频繁使用备份恢复脚本

支持增量备份,跳过未使用的块,以及控制备份速度

在备份期间侦测损坏的数据

通过自动并发、限制I/O等提高备份性能

2.用户托管的备份与恢复,是一种手动备份恢复的方式。使用操作系统命令和SQL*plus来完成相关的备份与恢复。

三、备份与恢复的策略

1.多路复用控制文件及多个并发备份

2.多路复用联机重做日志文件

3.在ARCHIVELOG 模式下运行数据库,并将重做日志存档至多个位置

4.时常备份物理数据文件,尽可能创建多个副本到可靠的位置

关于数据库的日常规划请参考:Oracle 常见故障及日常规划

四、备份与恢复的几类重要数据结构

1.数据文件

2.联机重做日志文件

3.控制文件

4.自动管理的撤销

5.可选的备份文件(参数文件、密码文件)

上述有关概念请参考:Oracle实例和Oracle数据库(Oracle体系结构)

五、常见的备份类型

联机数据库备份 -->使用archivelog模式,SCN不一致

脱机数据库备份 -->使用noarchivelog模式,SCN保持一致

整个数据库 -->可以在不同的时间段来备份,减轻I/O压力,从而构建整个数据库

表空间 -->在archivelog模式下,当处于noarchivelog模式下,则该表空间必须为只读或脱机

数据文件 -->同表空间备份

控制文件 -->可以使用SQL语句或RMAN来备份

归档日志

参数文件

六、备份的分类

前面提到了逻辑备份与物理备份的概念,下面描述根据备份的内容、大小、性质等进行再分类

1.全部备份与部分备份

全部备份:包含所有的数据文件及至少一个控制文件,参数文件,密码文件等。

部分备份:包含零个或多个表空间,零个或多个数据文件,可能包含控制文件等。部分备份仅在归档模式下才有效。

2.完整备份与增量备份

完整备份:一个或多个数据文件的一个完整副本,包含从备份开始处所有的数据块。

增量备份:包含从最近一次次备份以来被修改或添加的数据块。

又可分为

差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式

累计增量:是备份上级备份以来所有变化的块

增量备份的几种形式

0级增量备份:是所有备份的基础,是一个完整备份,包含所有的数据块

1级差异增量备份:包含最近一次1级累计备份或差异备份以来被更改的数据块

1级累计增量备份:只包含最近一次0级备份以来被更改的数据块

增量备份支持archivelog 和noarchivelog模式,也可以在打开或关闭时进行。但只有RMAN才能实现增量备

3.脱机备份与联机备份

脱机备份:在数据库关闭阶段发生的备份,又称为一致性备份或冷备份。在一致性关闭数据库后,控制文件SCN与数据文件头部SCN一致

联机备份:在数据库使用阶段发生的备份,又称为非一致性备份或热备份。联机备份一个数据文件不与任何特定的SCN以及控制文件同步

可以是全部备份,也可以是部分备份,能够使用RMAN或操作系统命令完成

仅仅在archivelog模式下

4.映像副本与备份集

映像副本:是某个文件的完整拷贝,未经过任何压缩处理,每个字节都与源文件相同。不支持增量备份也不能备份到磁带。

备份集:由一个或多个称为piece的物理文件组成的逻辑结构。备份片中可以是数据文件,控制文件以及归档日志文件。

支持数据的压缩,支持增量备份。

可以备份到磁盘,也可以备份到磁带。

七、还原与恢复

数据库恢复的策略,是使用最近的一次备份来实现数据库的还原,然后使用归档日志和联机日志将数据库恢复到最新或特定状态。

还原:从最近的备份文件中检索所需要的内容,并将其拷回到原来位置的过程称为还原。

可以基于数据库、表空间、数据文件、控制文件、参数文件进行还原

恢复:在还原的基础上,使用归档日志和联机日志将数据库刷新到最新的SCN,使数据库保持一致性。

恢复的类型

实例恢复

在RAC中,当一个实例崩溃,则幸存的实例将自动使用联机日志来前滚已提交的事务,撤销未提交的事务并释放锁。

崩溃恢复

指在单实例的环境中,或多实例环境中所有的实例崩溃发生。在崩溃恢复中,实例必须首先打开数据库,然后执行恢复操作。

一般而言,在崩溃或关机退出之后第一个打开数据库的实例将自动执行崩溃恢复。

介质恢复

介质恢复通常为响应介质故障并根据用户的命令来执行恢复。

可以使用联机或归档日志来使还原的备份为最新或将其更新至一个特定的时间点。

介质恢复可以将整个数据库、一个表空间一个数据文件还原至指定的时间点

可分为完全恢复或不完全恢复

完全恢复:使用归档、联机日志与数据库、表空间或数据文件等的备份结合使用以将其更新至最新的时间点。

步骤

a.将受损的数据文件脱机

b.还原受损的数据文件

c.恢复受损的数据文件

d.将已恢复的数据文件联机

不完全恢复:使用归档、联机日志与数据库、表空间或数据文件等的备份结合使用以将其更新至过去的某个时间点或SCN等

步骤

a.加载数据库

b.还原所有数据文件,同时可以选择还原控制文件

c.将数据库恢复至某个时间点、序列、或系统改变号

d.使用RESETLOGS关键字打开数据库

不完全恢复

不完全恢复选项

基于时间的恢复,也称为时点恢复,将数据库恢复到一个指定的时间点

基于表空间时间点恢复,使用户能够将一个或多个表空间恢复至与数据库其余的部分不同的某个时间点。

基于取消的恢复,它恢复到执行CANCEL 命令为止。

基于更改的恢复或日志序列恢复,如果使用了O/S命令,则基于更改的恢复将一直恢复到重做记录中一个指定的SCN为止

从人为错误中闪回

使用闪回特性从人为的错误中恢复

恢复工具

使用RMAN来进行恢复

RMAN可以从备份机或映像副本中将数据文件还原至当前位置或新位置。当需要使用归档日志时,RMAN将自动还原并应用归档日志

RMAN支持完全介质恢复、不完全介质恢复

RMAN恢复的基本命令式restore和recover

使用SQL*plus来进行恢复

确定要恢复哪些文件。通常可以查询视图V$RECOVER_FILE。

从备份中还原介质故障损坏的文件.当用户没有备份时,可以使用必要的重做日志且控制文件包含损坏文件名称时仍可以执行恢复。

如果无法将文件还原至其原始位置,则用户必须重新定位还原的文件并将该新位置更新到控制文件。

还原必要的存档重做日志文件。

八、更多参考

Oracle 冷备份

SPFILE错误导致数据库无法启动

Managing Archived Redo Logs

Oracle 用户、对象权限、系统权限

Oracle 角色、配置文件

Oracle 联机重做日志文件(ONLINE LOG FILE)

Oracle 控制文件(CONTROLFILE)

Oracle 表空间与数据文件

Oracle 归档日志

推荐阅读
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了如何使用libpq库与PostgreSQL后端建立连接。通过探讨PQconnectdb()函数的工作原理及其在实际应用中的使用方法,帮助读者理解并掌握建立高效、稳定的数据库连接的关键步骤。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 在网页开发中,页面加载速度是一个关键的用户体验因素。为了提升加载效率,避免在PageLoad事件中进行大量数据绑定操作,可以采用异步加载和特定控件来优化页面加载过程。 ... [详细]
  • 本文介绍了一种根据用户选择动态切换屏幕界面的方法,通过定义不同的选择块(Selection Block),实现灵活的用户交互体验。 ... [详细]
author-avatar
世界著名墙头草
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有