Oracle基于用户管理的不完全恢复

Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复。其实,熟悉了Oracle体系结构之后,对于Oracle恢复就会有一个总体的概念。因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的作用,因此只要了解了其作用,更利于了解与掌握Oralce数据库的备份与恢复。言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前的那一刻,是无损恢复。而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等情形。本文主要描述基于用户管理的不完全恢复。

一、不完全恢复特性

1、不完全恢复

  不完全恢复仅仅是将数据恢复到某一个特定的时间点或特定的SCN,而不是当前时间点。不完全恢复会影响整个数据库,需要在MOUNT状 态下进行。在不完全恢复成功之后,通常需要使用 resetlogs 选项来打开数据库。当使用resetlogs后,SCN 计数器不会被重置,原来的日 志序号 log sequence 会结束,从新开始新的日志序列号。在Oracle里称之为产生一个新的incarnation。同时Oracle还会重置联机重做日 志内容,因此resetlogs之后建议重新全备数据库。

2、不完全恢复的情形

  介质故障(media failure)导致部分或全部联机重做日志(online redo log)损坏

  用户操作失误(user error)导致数据丢失,例如,用户由于疏忽而移除了表,提交了无效的数据到表

  由于归档重做日志(archived redo log)丢失而无法进行完全恢复(complete recovery)

  当前控制文件(control file)丢失,必须使用备份的控制文件打开(open)数据库

3、不完全恢复的步骤

  关闭数据库并备份数据库(以防止恢复失败)

  启动数据库到mount 状态

  还原所有数据文件,同时可以选择还原控制文件(注意需要还原所有数据文件,而不仅仅是受损文件)

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

  使用RESETLOGS关键字打开数据库

4、注意

  不完全恢复的前提条件是Oracl数据库够到mount状态,即参数文件,控制文件

  在做不完全恢复前建议在恢复前后做一次备份,避免恢复失败导致不必要的损失

  不完全恢复完成后,建议不要直接使用OPEN RESETLOGS 命令以读/写模式打开(open)数据库,而应先以只读模式打开数据库,并检查是否已   将数据库恢复到正确的时间点。如果恢复的时间点有误,在没有使用OPEN RESETLOGS命令的情况下,重新执行恢复操作相对简单。

  对于恢复结果早于指定的时间点,只需重新执行恢复操作。如果恢复结果超过了指定的时间点,则应再次还原数据库并重新进行恢复。

  本文中的示例为便于演示,没有在恢复前备份故障数据,也没有在resetlog之后进行备份。

  注:Oracle 10g中已经可以在 resetlogs 之后不备份数据库,恢复的时候能够穿越resetlogs

5、不完全介质恢复的几种类型

  基于时间的恢复(Time-based recovery) 将数据恢复到指定的时间点

  用户控制的恢复(Cancel-based recovery) 当用户提交CANCEL后停止恢复(此选项在使用RMAN时无效)

  基于SCN 的恢复(Change-based recovery) 将数据恢复到指定的SCN

  按重做日志序号恢复(Log sequence recovery)将数据恢复到指定的重做日志序号(仅使用RMAN时有效)

二、演示基于用户管理的不完全恢复

--1、until time 恢复(恢复到指定时间点)

sys@SYBO2SZ> conn / as sysdba

Connected.

sys@SYBO2SZ> archive log list; -->当前数据库处于归档模式

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination      /u02/database/SYBO2SZ/archive/

Oldest online log sequence   0

Next log sequence to archive  1

Current log sequence      1

sys@SYBO2SZ> @db_hot_bak    -->对数据库进行热备份

ho cp /u02/database/SYBO2SZ/oradata/sysSYBO2SZ.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/undo/undotbsSYBO2SZ.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/oradata/sysauxSYBO2SZ.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/undo/undotbsSYBO2SZ2.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/oradata/SYBO2SZ_system_tbl.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/oradata/SYBO2SZ_account_tbl.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/oradata/SYBO2SZ_stock_tbl.dbf /u02/database/SYBO2SZ/backup/hotbak

ho cp /u02/database/SYBO2SZ/oradata/SYBO2SZ_stock_l_tbl.dbf /u02/database/SYBO2SZ/backup/hotbak

sys@SYBO2SZ> set time on;

12:40:07 sys@SYBO2SZ> create table dept as select * from scott.dept;

12:40:31 sys@SYBO2SZ> create table emp as select * from scott.emp;

12:40:41 sys@SYBO2SZ>

12:40:55 sys@SYBO2SZ> truncate table emp;  -->对表emp进行truncate

Table truncated.

12:41:02 sys@SYBO2SZ> insert into dept select 50,'DEV','SZ' from dual; -->为表dept新增两条记录并提交

12:41:14 sys@SYBO2SZ> insert into dept select 60,'HR','GZ' from dual;

12:41:19 sys@SYBO2SZ> commit;

Commit complete.

12:41:22 sys@SYBO2SZ> alter system checkpoint;  -->执行检查点进程以写入日志

System altered.

12:41:31 sys@SYBO2SZ> shutdown immediate;    -->关闭数据库

12:42:25 sys@SYBO2SZ> startup mount;       -->启动数据库到mount状态

ORACLE instance started.

Total System Global Area 599785472 bytes

Fixed Size         2074568 bytes

Variable Size       213911608 bytes

Database Buffers     377487360 bytes

Redo Buffers        6311936 bytes

Database mounted.             -->下面将备份的数据进行还原,由于并非所有数据文件位于相同路径,因此进行多次cp  

12:42:36 sys@SYBO2SZ> ho cp /u02/database/SYBO2SZ/backup/hotbak/SYBO*.dbf /u02/database/SYBO2SZ/oradata/.

12:42:57 sys@SYBO2SZ> ho cp /u02/database/SYBO2SZ/backup/hotbak/sys*.dbf /u02/database/SYBO2SZ/oradata/.

12:43:24 sys@SYBO2SZ> ho cp /u02/database/SYBO2SZ/backup/hotbak/undotbs* /u02/database/SYBO2SZ/undo/.

时间: 2024-10-03 09:12:33

Oracle基于用户管理的不完全恢复的相关文章

Oracle基于用户管理的不完全恢复(一)不完全恢复的特性

Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复.其实,熟悉了Oracle体系结构之后,对于 Oracle恢复就会有一个总体的概念.因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的作用,因此只要了解了其作 用,更利于了解与掌握Oralce数据库的备份与恢复.言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前的那一刻,是无损恢复.而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等情形

Oracle 基于用户管理的不完全恢复

    Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复.其实,熟悉了Oracle体系结构之后,对于Oracle恢复就会有一个总体的概念.因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的作用,因此只要了解了其作用,更利于了解与掌握Oralce数据库的备份与恢复.言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前的那一刻,是无损恢复.而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等

Oracle基于用户管理的不完全恢复(五)误删除表空间

案例4--误删除表空间(有备份) 通过备份的控制文件找到与表空间有关的信息进行恢复,因为新的控制文件里面已经没有该表空间的信息了.实际上在整个恢复过程中还是利用归档日志进行恢复,如果删除表空间之前的操作有及时写入到归档信息,就会全部恢复出来.下面的案例分切换日志和不切换日志两种. 1.基于backup control 的不完全恢复 SQL> select file_id,file_name,tablespace_name from dba_data_files; FILE_ID FILE_NAM

Oracle基于用户管理的不完全恢复(四)完全恢复时丢失部分归档日志

案例3--在做完全恢复时,丢失了部分归档日志 (recover database until cancel;) 1.基于cancel 的不完全恢复 --模拟环境 SQL> col table_name for a20 SQL> col tablespace_name for a10 SQL> select table_name,tablespace_name from user_tables; TABLE_NAME           TABLESPACE ---------------

Oracle基于用户管理的不完全恢复(三)恢复过去某个时间点误操

案例2--恢复过去某个时间点误操作的表(DML) 1.基于change (scn) SQL> conn scott/tiger Connected. SQL> select * from tb01; ID ---------- 1 2 3 SQL> drop table tb01 purge; Table dropped. SQL> create table tb01(id int) tablespace test; Table created. SQL> insert in

Oracle基于用户管理的不完全恢复(二)恢复过去某个时间点误操作的表

案例1--恢复过去某个时间点误操作的table 1.基于时间点 SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='TB01'; USERNAME               SCN TIMESTAMP           SQL_REDO --------------- ---------- ------------------- -------------------------

Oracle 基于用户管理恢复的处理

--================================ -- Oracle 基于用户管理恢复的处理 --================================       Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用RMAN工具以及第三方备份与恢复工具之外,基于 用户管理的备份与恢复也是DBA经常使用的方式之一.本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢 复的处理过程.    一.恢复的相关概念  

详解Oracle基于用户管理恢复的处理

Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用RMAN工具以及第三方备份与恢复工具之外,基于用户管理的备份与恢复也是DBA经常使用的方式之一.本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢复的处理过程. 一.恢复的相关概念 介质恢复 首先使用备份还原数据,然后再应用归档日志.重做日志的恢复方式称为介质恢复. 介质恢复能将一个经过还原的数据更新到当前的时间点或之前的某个时间点. 通常介质恢复这个术语专指对数据文件进行恢复的过程.

基于用户管理的同机数据库克隆

      Oracle 同机数据库复制或克隆经常用于提供测试或开发环境.对于生成的克隆数据库有多种方式,如使用冷备方式进行数据库克隆(需要使用nid修改db_name),热备方式克隆数据库,rman方式克隆数据库等等.由于是同机克隆,因此目标数据库与原数据库必须位于不同的目录,其次,使用不用的数据库名称(db_name).本文主要列出使用基于用户管理的热备方式来进行数据库克隆的步骤并给出演示.   1.热备克隆步骤    a.创建目标数据库目录    b.创建目标数据库密码文件(orapwd)