当前位置:  数据库>oracle

Oracle数据库完全恢复和不完全恢复以及执行用户管理备份恢复

    来源: 互联网  发布时间:2017-06-10

    本文导语: 比较完全恢复和不完全恢复: 一、完全恢复:将数据库恢复到当前最新状态,包括直至请求恢复时进行的所有已提交的数据更改 二、不完全恢复:将数据库恢复到请求恢复操作之前指定的过去时间点 一、完全恢复过程 下面的...

比较完全恢复和不完全恢复:

一、完全恢复:将数据库恢复到当前最新状态,包括直至请求恢复时进行的所有已提交的数据更改

二、不完全恢复:将数据库恢复到请求恢复操作之前指定的过去时间点

一、完全恢复过程

下面的步骤说明了执行完全恢复期间要采取的操作:

1. 通过备份还原损坏或丢失的文件。

2. 根据需要应用增量备份、归档重做日志文件和联机重做日志文件中的更改。将重做日志更改应用于数据文件,直到到达当前联机日志,并且重新输入了最新的事务处理。在整个过程中会生成还原块。这称为前滚或高速缓存恢复。

3. 此时,还原的数据文件中包含已提交和未提交的更改。

4. 还原块用于回退任何未提交的更改。有时也称为事务处理恢复。

5. 此时,数据文件处于已恢复状态,且与数据库中的其它数据文件一致。

--------------------------------------分割线 --------------------------------------

Oracle用户管理方式下备份数据和复制数据库

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------

二、不完全恢复过程:

不完全恢复或数据库时间点恢复使用备份来生成非当前版本的数据库。也就是说,不会应用最新备份之后生成的所有重做记录。仅当绝对必要时才执行此类恢复。要执行不完全恢复,需要:

恢复点之前生成的所有数据文件的有效脱机或联机备份

从备份时间到指定恢复时间的所有归档日志

下面列出了执行不完全恢复的过程:

1.从备份还原数据文件:如果还原点目标并不很新,则使用的备份可能也不是最新的。这需要使用 OS 命令或 RMAN RESTORE 命令来复制文件。

2.使用 RECOVER 命令:从归档重做日志文件应用重做,根据需要包括尽可能多的数据以达到还原点目标。

3.恢复以后的状态:此时,数据文件包含一些已提交的事务处理和未提交的事务处理,因为重做可以包含未提交的数据。

4.使用 ALTER DATABASE OPEN 命令:应用还原块之前数据库已打开。这是为了提供更高的可用性。

5.应用还原数据:应用重做时,同时会应用支持还原数据文件的重做。这样,还原可以应用于数据文件,以便还原任何未提交的事务处理。这是接下来要完成的操作。

6.过程完成:此时,数据文件已恢复到所选择的时间点。

如果必须执行恢复且发现包含事务处理的归档日志丢失,其中的事务处理是在还原所用的备份的创建时间与目标恢复 SCN 之间发生的,则时间点恢复是唯一的选择。没有丢失的日志,则没有该期间内对数据文件进行更新的记录。唯一的选择就是从还原备份的时间点恢复数据库,直到未损坏的归档日志系列所允许的时间点,然后使用 RESETLOGS 选项打开数据库。丢失的重做日志文件中的或之后的所有更改都将丢失。

备份和恢复的使用类型:

数据库备份和恢复的类型包括:

用户管理的:不使用 RMAN。

--使用 OS 命令移动文件  --DBA 需要手动维护备份活动记录

服务器管理的:使用 RMAN

1.执行用户管理的数据库备份

可以使用 OS 命令创建数据文件的副本,从而备份数据库。操作过程取决于数据库是否处于 ARCHIVELOG 模式。如果是,则通过在复制表空间的数据文件之前将每个表空间置于备份模式,可以使数据库处于打开且可用状态。否则,在复制数据文件之前必须先关闭数据库。

1)手动备份 NOARCHIVELOG 数据库:

通过关闭数据库并将所有数据文件和控制文件复制到备份目录,可以对 NOARCHIVELOG 数据库进行一致的整体数据库备份。由于文件复制操作是使用 OS 命令完成的,因此必须先关闭数据库。这会将数据库置于一致状态。

SQL> SHUTDOWN IMMEDIATE

$ cp $ORACLE_BASE/ORCL/datafile/*.dbf  /u02/backup/datafile

--将数据文件复制到备份位置

$ cp $ORACLE_BASE/ORCL/controlfile/*.ctl  /u02/backup/controlfile  --将控制文件复制到备份位置

SQL> STARTUP

2)手动备份 ARCHIVELOG 数据库

如果数据库处于 ARCHIVELOG 模式下,则复制文件前不一定必须关闭数据库。最终会得到不一致备份,但应用重做数据后会使其恢复到一致状态。

启动备份模式:

复制数据文件之前,必须将每个数据文件都置于备份模式。请使用 ALTER TABLESPACE 和 ALTER DATABASE 命令的 BEGIN BACKUP 子句来执行此操作。以下是每个命令的语法:

ALTER TABLESPACE BEGIN BACKUP;

--ALTER TABLESPACE 命令仅影响属于该表空间的那些数据文件。

ALTER DATABASE BEGIN BACKUP;

--ALTER DATABASE 影响数据库中的所有数据文件。

结束备份模式:

使数据文件退出备份模式非常重要。关闭数据库时,不能有任何数据文件处于备份模式。如果尝试关闭处于该状态的数据库,将收到错误。此外,由于备份模式会导致生成额外的重做数据,因此会给系统带来额外的负载。如果您不主动备份数据文件,则没有理由使任何数据文件处于备份模式。

具体操作:

备份数据文件:

SQL> select file_name, tablespace_name from dba_data_files;

--查看所有数据文件位置及表空间

SQL> ALTER TABLESPACE users BEGIN BACKUP;

--将表空间置于备份模式

$ cp $ORACLE_HOME/oradata/orcl/users*.dbf /u02/backup/datafile

--将该表空间的数据文件复制到备份位置

SQL> ALTER TABLESPACE users END BACKUP;

--使该表空间退出备份模式

备份控制文件的方式包括:

(1).创建为映像副本,写入到指定名称的文件:

SQL> ALTER DATABASE BACKUP CONTROLFILE TO

'/u01/backup/controlfile.bak';

Database altered.

(2).生成重新创建控制文件的脚本,写入到跟踪文件:

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

Database altered.

--重建控制文件的脚本在$ORACLE_BASE/diag/rdbms/prod/PROD/trace

查看刚生成脚本文件,会发现里面会有两种创建控制文件的方式:

NORESETLOGS  ARCHIVELOG,表示日志文件等完好,重启数据库是不用resetlog;

RESETLOGS  ARCHIVELOG;日志文件损坏丢失,不能执行完全恢复,将日志组号清零;

更多详情见请继续阅读下一页的精彩内容:


    
 
 

您可能感兴趣的文章:

  • Oracle数据库恢复后心得
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析) iis7站长之家
  • oracle drop table(表)数据恢复方法
  • Oracle数据库备份和恢复工具 RMan
  • oracle备份恢复的具体方法
  • oracle中误删除表后恢复语句(FLASHBACK)
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle11g备份和恢复功能的提高
  • 实战Oracle数据库备份与恢复
  • Oracle数据库冷备份的异地恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle的恢复管理器及DBMS_JOB包分析
  • Oracle数据库文件恢复以及备份思路
  • Oracle数据库备份恢复最佳实践
  • oracle如何恢复被覆盖的存储过程
  • rman恢复方案和oracle异机恢复
  • oracle数据库创建备份与恢复脚本整理
  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle
  • Oracle数据库设置任务计划备份一周的备份记录
  • oracle10g 数据备份与导入
  • aix下自动备份oracle 的输出日志问题,急!!
  • hp unix下备份oracle表的问题
  • linux小白提问linux备份oracle数据库的问题
  • oracle不能自动备份
  • Oracle数据库逻辑备份的SH文件
  • Linux环境中Oracle数据导入与导出备份操作
  • oracle数据库备份急???????????
  • oracle定时备份压缩的实现步骤
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么写一个Shell来执行这样的功能,访问Oracle数据库,然后执行一个SQL脚本,生成一个文件。急!
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle 可以在crontab 中定时执行吗?
  • oracle sql执行过程(流程图)
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • ORACLE安装时/tmp/orainstRoot.sh 执行发生错误
  • 求救:HPUNIX下的ORACLE7执行select * from tablename提示权限不足!!
  • 为什么 export ORACLE_SID=test写在程序里面就不会执行?
  • 请问在 Linux 下如何用代码实现连接oracle数据库 并 执行 SQL 语句?
  • shell调用oracle储存过程,怎么判断储存过程执行结果是否正确
  • shell 执行oracle sql脚本的问题
  • oracle单库彻底删除干净的执行步骤
  • 查看Oracle的执行计划一句话命令
  • 关于ORACLE中执行批处理的问题
  • oracle中得到一条SQL语句的执行时间的两种方式
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • Nagios check_oracle_health 关于执行SQL问题
  • 执行Commit时Oracle做哪些工作
  • RedHat AS 4 安装oracle9i的时候,执行Disk1下的runInstaller后提示正在初始化虚拟机,请等待后就再无反应
  • JBUILDER如何执行ORACLE的储存过程
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,