知识大全 Oracle不完全恢复

Posted 文件

篇首语:人若是把一生的光阴虚度,便是抛下黄金未买一物。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle不完全恢复相关的知识,希望对你有一定的参考价值。

Oracle不完全恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle不完全恢复

  Sql代码

  不完全恢复

  指的恢复到某一个时间点 在这个时间点scn之后的操作会全部消失

  recover datafile until scn xxxx;

  recover database until scn xxxx;

  recover database until sequence xx; 恢复到哪个日志文件截止

  recover database until xx; 恢复到哪个时间点

   此时 数据文件头上的scn会小于控制文件的scn号 需要resetlogs才能打开数据库

  alter database open resetlogs;

   当resetlogs打开后 数据库会重置redo日志 redo文件也会重建 控制文件的scn回退到与数据文件一致

  sys@ORCL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME

  

                                    YES UNUSED                      

                                    YES UNUSED                      

                                    NO  CURRENT               月

   resetlog的模式 若为了恢复数据 建议在其他机器上进行恢复 然后同步到生产环境中

  当前状态的在线重做日志文件丢失(不存在备份)

  需要不完全恢复 原理就是使用数据库备份恢复 然后利用日志(重做日志和在线重做日志)恢复到最大的scn 即当前状态的在线重做日志的上一个

  已备份的日志截止scn

  最后需要recover database until cancel命令打开数据库 即恢复到输入cancel的那一刻

  通过

  alter database open resetlog; 打开数据库

   当非当前日志(状态为inactive)丢失 或损坏时 不会影响数据库 因为事务都已经写入数据库

  alter database drop logfile group ;

  alter database clear logfile group ;

  alter database add logfile group F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\REDO LOG size m;

   简单测试了下 当shutdown abort后 数据库不会做checkpoint 所以日志文件状态仍为active 当active的非当前日志丢失后

   无法通过restore恢复 恢复后仍会提示logfile不存在 也无法drop掉 提示实例恢复仍需要

   当resetlog恢复后 resetlog备份集仍可以使用 它会自动跳过resetlog之后的日志文件 及使用resetlog之后重置的日志文件进行恢复

   当控制文件损坏 恢复的方法有两种

   利用trace语句备份的控制文件进行恢复

  alter database backup controlfile to trace as c:\\a txt ; 生成控制文件的备份至c盘的a txt文件

  alter database backup controlfile to trace as c:\\a txt resetlogs; 生成resetlog模式的控制信息

  alter database backup controlfile to trace as c:\\a txt noresetlogs; 生成noresetlog模式的控制信息

   NORESETLOGS选项生成的控制文件语句仅仅用在 当前版本的在线日志是可用的状态

   RESTLOGS选项用在在线日志不可用的状态

  alter database backup control file to trace; 备份到控制文件到trace文件中

  生成的trace文件信息如下:

  STARTUP NOMOUNT  nomount状态打开数据库 因为控制文件损坏

  CREATE CONTROLFILE REUSE DATABASE ORCL NORESETLOGS  ARCHIVELOG

  MAXLOGFILES    最大日志文件数

  MAXLOGMEMBERS 日志文件的镜像最多有三个 此参数在 g不起作用 限制不住

  MAXDATAFILES 控制文件预留的空间大小 要能保留 个数据文件的记录 当增大此数 会自动增加控制文件的大小

  MAXINSTANCES 最大的实例个数 实际上可以超过 个

  MAXLOGHISTORY 日志的历史的条数限制

  LOGFILE 日志文件

  GROUP (

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\REDO LOG

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\LOG\\REDO LOG

  ) SIZE M

  GROUP F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\REDO LOG   SIZE M

  GROUP F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\REDO LOG   SIZE M

  DATAFILE

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\SYSTEM DBF

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\UNDOTBS DBF

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\SYSAUX DBF

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\USERS DBF

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\EXAMPLE DBF

   F:\\ORACLE\\PRODUCT\\ \\ORADATA\\ORCL\\TEST DBF

  CHARACTER SET ZHS GBK 字符集

  ;

  select * from $archived_log; 归档日志的信息

  select * from v$log_history; 日志i切换就记录 当非归档模式 也可以从此查看

  创建日志镜像

  alter database add logfile member F:\\oracle\\product\\ \\oradata\\orcl\\LOG\\redo log to group ;

   当增加数据文件 或者增加日志文件时 建议通过trace的方式备份下控制文件

   利用rman catalog模式下 恢复控制文件

  只能启动到nomount状态 控制文件损坏 Oracle无法判断其target DB 因为一个catalog DB对应多个target DB

  需要通过DBID告诉Oracle需要恢复那个target DB

  rman target sys/system@orcl catalog rman/rman@test

  set dbid=xxxxxxxx

  list backup of controlfile;

  restore controlfile Oracle通过以下参数寻找恢复控制文件的位置 show parameter control_files

   恢复后 启动到mount状态会发现控制文件的checkpoint_change#比数据文件的checkpoint_change#小

  需要以下命令进行启动

  recover database using backup controlfile; 告诉Oracle此控制文件是旧的

  auto 输入auto Oracle会自动根据备份的archive log进行恢复 但不是真正恢复 应该是Oracle内部在做检查

   直到恢复到当前联机日志 提示找不到备份文件 这是因为控制文件损坏 Oracle不知道这些信息

  再次输入

  recover database using backup controlfile;

   需要手工指定当前联机日志文件的位置

  F:\\oracle\\product\\ \\oradata\\orcl\\REDO LOG

   最后输入以下命令 打开数据库

  alter database open with resetlogs;

  一致性备份指冷备份 shutdown之后的os copy

  select

  * from v$flash_recovery_area_usage;

   闪回恢复区存放以下几类文件

   控制文件(CONTROL FILE AUTOBACKUP)

   在线日志

   归档日志

   rman 备份片

   rman image copy 备份(COPY DATAFILE to C:\\xx dbf )

   闪回日志

  show parameter db_recovery;

  select * from v$flash_recovery_area_usage;

   监控闪回恢复区的大小

   数据库失败的类型

   实例失败

cha138/Article/program/Oracle/201311/18434

相关参考

知识大全 用Oracle备份集在测试机上做不完全恢复

用Oracle备份集在测试机上做不完全恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果表

知识大全 oracle从备份的控制文件进行完全恢复

  oracle从备份的控制文件进行完全恢复  SYS@orcl#shutdownabort;  ORACLE例程已经关闭  SYS@orcl#  oracle@oracle:~/product//d

知识大全 oracle配置归档模式

  非归档  数据能恢复到最后一次备份  只能做全部恢复不能做部分恢复  只能脱机备份  归档  数据能恢复到失败点无数据丢失  可以热备份  完全恢复和部分恢复都行部分恢复文件中不一致的检查点可以用

知识大全 如何使用归档日志进行完全恢复

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象      先将数据库设置为归档模式    

知识大全 如何使用归档日志进行完全恢复

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象  先将数据库设置为归档模式    SQL*

知识大全 oracle数据库恢复

  没做backup把冷备份复制出来装好oracle  报controlfileversion不匹配oracle版本  试过很多办法都没用最后只好重建controlfile  CREATECONTRO

知识大全 表的许多分区被意外drop用rman不完全恢复

  如果表的很多分区被意外drop需要利用带库上的备份集在测试机上做不完全恢复具体日期需要达到一个特定的时间那么我们可以参考下文  ◆首先需要用logminer查出删除语句    unpress/or

知识大全 Oracle误删恢复

Oracle误删恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle误删恢复  qu

知识大全 Oracle10g恢复试验方法

Oracle认证:Oracle10g恢复试验方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!看了

知识大全 Oracle恢复误操作的表

Oracle恢复误操作的表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle会把被删除