热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle的故障包括用户或应用程序故障_数据库实例错误,oracle备份恢复基础

一,与基础1.,备份简介备份是数据的一个副本,一般包括控制文件和数据文件等物理备份与逻辑备份物理备份指物理文件的副本,逻辑备

一,与基础

1.,备份简介

备份是数据的一个副本,一般包括控制文件和数据文件等

物理备份与逻辑备份

物理备份指物理文件的副本,逻辑备份是指使用工具抽取逻辑数据(例如,表或存储过程)并保存在二进制文件中。

热备份与冷备份

冷备份是指数据库完全关闭状态下的备份,如果数据库不处于完全关闭状态,则为热备份。

用户的备份与备份

用户管理的备份指用户手工使用os的拷贝命令拷贝文件,rman备份使用oracle的recovery manager进行备份,其备份包括两种类型:镜像副本(image copy)和备份集(backupset)。

一致性备份与非一致性备份

一致性备份是指备份所包含的各个文件中的所有修改的scn相同。(如果有只读表空间,或者正常脱机的表空间,则他们的scn可以比其他的数据文件或控制文件的scn滞后)

1.查看系统检查点SCN号

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#

------------------

1932946

2.查看数据文件检查点scn号。

SQL> select file#,checkpoint_change#,last_change# from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

---------- ------------------ ------------

1            1932946

2            1932946

3            1932946

4            1932946

5            1932946

6            1932946

SQL> select name,checkpoint_change# from v$datafile_header;

NAME

-------------------------------------------------------------------

CHECKPOINT_CHANGE#

------------------

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ICARE\SYSTEM01.DBF

1932946

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ICARE\UNDOTBS01.DBF

1932946

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ICARE\SYSAUX01.DBF

1932946

在数据库运行中,LAST_CHANGE#为空。数据库在运行中,数据文件被设置为read only 其scn号为非空值。

非一致性备份指数据库在打开状态,或者数据库非正常关闭后进行的备份。

通常进行一致性备份的唯一方法是正常完全关闭数据库,然后进行备份。这种备份的特点是,restore出来的数据文件,不需要recovery就可以open。

数据库不停机的情况下执行进行非一致性备份,联机数据文件的备份被称为联机备份(online backup)。需要进行联机备份的数据库必须运行在ARCHIVELOG(归档)模式下。

完全备份与部分备份

数据库完全备份是数据库内所有数据文件及控制文件的备份。

部分备份如表空间备份,数据文件备份,控制文件备份,归档日志备份等。

二、恢复简介

Restore与recovery

Restore是将数据文件从备份集或镜像中转储出来,recover则是恢复过程,利用归档重做日志,联机重做日志对转储出来的数据文件进行更新,即重做在数据库备份以后发生的操作。这个过程中包括了使用归档日志和联机日志进行前滚(roll forword)即使用undo回滚(roll back)的操作,这个过程也叫介质恢复。

崩溃恢复和实例恢复

Oracle在实例故障之后能自动的执行崩溃恢复和实例恢复。崩溃恢复及实例恢复能够在实例故障发生后将数据库恢复到满足事务一致性(transaction-consistent)的状态。崩溃恢复的定义是:单实例系统发生崩溃或Oracle系统中所有实例发生崩溃后对数据库进行的恢复。与之相对,实例恢复的定义是:Oracle RAC系统中正常实例对故障实例进行的恢复。

介质恢复

前面已经讲了介质恢复的概念,现在来看看具体的介质恢复的种类:

完全恢复和不完全恢复

完全恢复是使用数据库,表空间或数据文件的备份进行复原,在使用重做数据库或增量备份将数据更新到当前事件点。这种恢复方式应用所有的归档和联机日志,恢复到当前时间点。

不完全恢复也称按时间点恢复,指数据库没有恢复到当前时间点的恢复,也就是说没有完全应用归档和联机日志。通常用户的错误操作,归档丢失,或者联机日志顺坏,或者当前的控制文件丢失而必须使用备份的控制文件打开数据库等需要进行不完全恢复。进行不完全介质回复时,用户需要使用指定恢复时间点之前的备份复原(restore)数据文件,并在恢复完成后以resetlogs选项open数据库。Resetlogs使得当前的数据库及重做日志有效,令数据库使用一套新的日志序列号。值得注意的是在9i的基础上resetlogs有了很大改进,9i是需要在resetlogs之后全备份的,而10g则不需要,具体将会在后面的内容中以实例来看。当然也可以只恢复某个表空间,而不是整个数据库,这被称作表空间的不完全恢复。后续也有实例讲解。

不完全介质恢复的种类:

恢复的类型

功能

基于时间点的恢复(time-based)

将数据恢复到指定的时间点

用户控制的恢复(基于取消cancel-based)

当用户提交cancel语句后停止恢复操作

(在使用rman时无效)

基于scn的恢复(changed-based)

将数据恢复到指定的scn

按重做日志序号恢复(log-sequence)

将数据恢复到指定的重做日志序号

(只适用于rman)

三、了解基本备份

备份策略为防止数据丢失提供了安全防护。回答以下问题可以帮助数据库管理员制订一个强大的备份策略:

可能出现何种类型的故障?

应当备份哪些信息?

应当使用哪种备份方法?

应当联机还是离线备份?

备份的频率?

如何避免危险的备份方法?

可能出现何种类型的故障?

数据丢失的原因各种各样。下面是可能导致数据丢失的一些最常见的故障类型。

语句故障 是 Oracle 程序在处理语句时的逻辑错误。例如,用户执行了无效 SQL 结构的语句。当发生语句故障时,Oracle 自动撤销语句的所有效果并将控制返回给用户。

进程故障 是访问 Oracle 的用户进程中出现的故障(即异常断开或进程终止)。尽管 Oracle 和其他的用户进可以继续工作,但出现故障的用户进程将不能继续工作。如果用户进程在更改数据库时出现故障,则 Oracle 后台进程将撤销未提交事务的效果。

实例故障 是使 Oracle 实例(即 SGA 和后台进程)无法继续工作的问题。实例故障可能源于硬件问题(如电力中断)或软件问题(如操作系统崩溃)。当实例出现故障时,Oracle 不会将 SGA 缓冲区中的数据写到数据文件中。

用户或应用程序错误 是导致数据丢失的用户错误。例如,用户可能无意地从工资单表中删除数据。这种用户错误可能需要将数据库或对象恢复到该错误发生前的某个时间点上。为了允许从用户错误中恢复过来并满足其他独特的恢复要求,Oracle 提供了闪回技术。了解关于的更多信息。

介质故障 是当 Oracle 试图写或读操作数据库所需要的文件时出现的物理问题。一个常见的例子是磁盘头损坏,它将导致磁盘驱动器上的所有数据丢失。磁盘故障可能影响各种文件(包括数据文件、重做日志文件和控制文件)。因为数据库实例无法继续正常工作,所以它无法将 SGA 的数据库缓冲区中的数据写到数据文件中。

应当备份哪些信息?

一个数据库包含各种类型的数据。当制订备份策略时,DBA 必须确定他们要复制哪些信息。基本的备份类型包括:

联机数据库备份

离线数据库备份

整个数据库

表空间

数据文件

控制文件

存档重做日志

配置文件

在确定要备份的信息时,基本的原则是根据数据的重要性和更改的程度来确定数据的优先级。例如,然存档日志不发生变化,但它们对恢复数据库至关重要,因此如果可能应维护多个副本。然而,费用帐户表被用户不断更新。因此,应当经常备份该表空间,以防止在恢复时不得不应用过多的重做数据。

可以以多方式组合备份。例如,DBA 可以决定每周执行整个数据库的备份,以确保获得原始数据库信息的一个相对较新的副本,而每天备份使用最频繁的表空间。DBA 还可以为所有重要的控制文件和存档重做日志创建多个副本作为额外的安全防护。

联机数据库备份

联机备份也称为开放备份,其中所有的读-写数据文件和控制文件都没有对相同的 SCN 设置检查点。例如,一个读-写数据文件头可能包含一个为 100 的 SCN,而其他读-写数据文件头包含一个为 95 或 90 的 SCN。在所有这些头 SCN 一致前,即将联机重做日志中记录的所有更改都保存到磁盘上的数据文件前,Oracle 无法打开数据库。如果数据库必须保持不间断运行,则您除了在 ARCHIVELOG 模式下执行整个数据库的联机备份之外别无选择。

离线数据库备份

在这种备份中,所有的数据文件和控制文件在相同的时间点上都保持一致 — 例如,对相同的 SCN 保持一致。在一个一致的备份中被允许拥有旧 SCN 的唯一表空间是只读且“离线-正常”的表空间,它们与备份中的其他数据文件保持一致。这种类型的备份允许用户打开由备份创建的文件集,而无需应用重做日志,这是因为数据已经是一致的了。执行这种备份的唯一方式是正常关闭数据库,然后在数据库关闭时执行备份。一个一致的整个数据库备份是为在 NOARCHIVELOG 模式下运行的数据库提供的唯一有效的备份选择。

整个数库备份

这种最常见的备份类型 — 整个数据库备份 — 包含了控制文件以及属于该数据库的所有数据库文件。如果在 ARCHIVELOG 模式下运行,则 DBA 还可以选择在一段时间内备份数据库的不同部分,从而一部分一部分地构建整个数据库备份。

表空间备份

表空间备份是数据库的一个子集。表空间备份只有当数据库在 ARCHIVELOG 模式下运行时才有效。表空间备份对于在 NOARCHIVELOG 模式下运行的数据库有效的唯一时间是当该表空间只读或离线正常时。

数据文件备份

数据文件备份是单个数据文件的备份。数据文件备份没有表空间备份那么常见,并且只有当数据库在 ARCHIVELOG 模式下运行时才有效。数据文件备份对于在 NOARCHIVELOG 模式下运行的数据库有效的唯一时间是当数据文件是表空间中唯一的文件时。例如,备份是表空间备份,但表空间只包含一个文件并且只读或离线正常。

控制文件备份

控制文件备份是数据库控制文件的备份。如果数据库是打开的,那么用户可以通过执行以下 SQL 语句或使用恢复管理器 (RMAN) 来创建有效的备份:ALTER DATABASE BACKUP CONTROLFILE to 'location'。

存档重做日志备份

存档重做日志是成功的介质恢复的关键。您希望根据可用磁盘空间和在数据库上执行的事务的数量在磁盘上尽可能长时间地保留存档日志,并定期备份它们以确保较完整的恢复。

配置文件

配置文件可能包含 spfile 文件或 init.ora、口令文件、tnsnames.ora 和 sqlnet.ora。因为这些文件不经常变化,所以它们不需要频繁备份。如果您丢失了某个配置文件,您可以很容易地重手动创建它。当还原时间更重要时,还原配置文件的一个备份要比以特定格式手动创建一个文件要快得多。

应当使用哪种备份方法?

Oracle 为用户提供了几种创建备份的基本方法以备选择。这些方法包括:恢复管理器 (RMAN) — 建立与服务器进程的连接并使备份与恢复操作的数据转移自动化的一个组件。

Oracle 企业管理器 — 调用恢复管理器的 GUI 界面。

Oracle Data Pump — 该实用程序通过将数据以专有格式从 Oracle 数据库写入操作系统文件来创建逻辑备份。稍后可以将这种数据导入数据库中。

用户管理的方法 — 通过执行特别针对用户操作系统的命令手动备份数据库。

创建恢复管理器备份

恢复管理器 (RMAN) 是一个强大的通用程序,它允许用户创建 RMAN 备份或用户数据的镜像副本。当用户使用 RMAN BACKUP 命令指定文件或存档日志时,RMAN 默认创建一个备份集作为输出。一个备份集是专有格式的一个文件或一些文件,它需要使用 RMAN RESTORE 命令来进行恢复操作。相比而言,当使用 BACKUP AS COPY 命令创建文件的镜像副本时,它是实例可用 (instance-usable) 格式的 — 用户不需要调用恢复管理器即可还原或恢复它。

当执行 RMAN 命令(如备份或还原)时,恢复管理器建立了一个与 Oracle 服务器进程的连接。然后服务器进程从目标数据库中备份指定的数据文件、控制文件或存档日志。恢复目录是包含各种对备份和恢复有用的信息的中央信息库。RMAN 自动建立备份所需的所有文件的名称和位置。恢复管理器还支持增量备份 — 仅备份那些自上次备份以来发生变化的块。在传统的备份方法中,必须备份数据文件中用到的所有数据块。

自动的基于磁盘的备份和恢复

创建不同的与备份和恢复相关的文件的组件对彼此一无所知,或者也不了解它们存储数据的文件系统的大小。利用自动的基于磁盘的备份和恢复,您可以创建一个闪回恢复区,它将使与备份相关的文件的管理自动化。在磁盘上选择一个位置和存储空间的上界,并设置一个保留策略 — 它控制需要为恢复保留备份文件的时间。数据库在这个空间内为您的数据库管理用于备份的存储器、存档日志和其他与恢复相关的文件。当 RMAN 需要为新的文件回收空间时,可以删除不再需要的文件。如果您不使用闪回恢复区,则您必须为与备份相关的文件手动管理磁盘空间并平衡不同类型文件间的空间使用。Oracle Corporation 建议您启用一个闪回恢复区以简化您的备份管理。



推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 本文详细介绍了MySQL数据库中的Bin Log和Redo Log,阐述了它们在日志记录机制、应用场景以及数据恢复方面的区别。通过对比分析,帮助读者更好地理解这两种日志文件的作用和特性。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
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社区 版权所有