知识大全 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备份集在测试机上做不完全恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果表
oracle从备份的控制文件进行完全恢复 SYS@orcl#shutdownabort; ORACLE例程已经关闭 SYS@orcl# oracle@oracle:~/product//d
非归档 数据能恢复到最后一次备份 只能做全部恢复不能做部分恢复 只能脱机备份 归档 数据能恢复到失败点无数据丢失 可以热备份 完全恢复和部分恢复都行部分恢复文件中不一致的检查点可以用
系统环境 操作系统WindowsServer机器内存M 数据库 OracleiR()forNT企业版 安装路径C:\\ORACLE 模拟现象 先将数据库设置为归档模式
系统环境 操作系统WindowsServer机器内存M 数据库 OracleiR()forNT企业版 安装路径C:\\ORACLE 模拟现象 先将数据库设置为归档模式 SQL*
没做backup把冷备份复制出来装好oracle 报controlfileversion不匹配oracle版本 试过很多办法都没用最后只好重建controlfile CREATECONTRO
如果表的很多分区被意外drop需要利用带库上的备份集在测试机上做不完全恢复具体日期需要达到一个特定的时间那么我们可以参考下文 ◆首先需要用logminer查出删除语句 unpress/or
Oracle误删恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle误删恢复 qu
Oracle认证:Oracle10g恢复试验方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!看了
Oracle恢复误操作的表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle会把被删除