oracle查看redo文件,Oracle Redo文件恢复
Oracle备份恢复中,redo的恢复相对来说还是比较简单的,只要保证每组的成员不止一个,出现问题的几率就相当小,即使出了问题我们也可按照不同的方法将他们恢复,所以如果碰到日志文件损坏,完全不必紧张!按照下面的方法来做,基本上都能搞定!
试验一:用命令清空日志组方法
1、查看原来表中数据
SQL> conn test/test
Connected.
SQL> select * from test;
TEL
----------
1
2
3
2、插入新数据
SQL> insert into test values(4);
1 row created.
SQL> commit;
Commit complete.
SQL>
3、正常关闭数据库
4、利用os command删除所有redo文件
5、启动数据库
SQL> startup
ORACLE instance started.
Total System Global Area353862792 bytes
Fixed Size730248 bytes
Variable Size285212672 bytes
Database Buffers67108864 bytes
Redo Buffers811008 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/T3/ORACLE/oradata/ORA9/redo01.log'
6、查看当前日志状态
SQL> select * from v$log;
GROUP#THREAD#SEQUENCE#BYTESMEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1121048576001 YES INACTIVE
487837 01-9月-05
2141048576001 NOCURRENT
487955 01-9月-05
3131048576001 YES INACTIVE
487839 01-9月-05
看来redo01.log不是当前日志,对于这类非当前日志可以直接clear,系统会重新自动生成一个redo文件
7、SQL> alter database clear logfile group 1;
Database altered.
7、继续启动db
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/T3/ORACLE/oradata/ORA9/redo02.log'
8、看来redo也得恢复,但是redo02是当前redo,直接clear是不行的
SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR at line 1:
ORA-00350: log 2 of thread 1 needs to be archived
ORA-00312: online log 2 thread 1: '/T3/ORACLE/oradata/ORA9/redo02.log'
9、按照oracle的某些做法也是不行的
SQL> alter database clear unarchived logfile group 2 unrecoverable datafile;
alter database clear unarchived logfile group 2 unrecoverable datafile
*
ERROR at line 1:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/T3/ORACLE/oradata/ORA9/redo02.log'
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
10、尝试从其他冷被分cp过来一个,再作clear,还是不行
SQL> host cp /T3/ORACLE/oradata2/ORA9/redo02.log /T3/ORACLE/oradata/ORA9/
SQL> alter database clear unarchived logfile group 2 unrecoverable datafile;
alter database clear unarchived logfile group 2 unrecoverable datafile
*
ERROR at line 1:
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: '/T3/ORACLE/oradata/ORA9/redo02.log'
SQL>
11、但是对于非当前日志就都可以,下面看看redo03
SQL>alter database clear logfile group 3;
Database altered.
结论:
如果数据库是正常shutdown,非当前日志都可以直接clear来重新生成,而且不丢失数据,因为正常关闭db,数据已经写入dbf文件了。唯独当前日志不可以,当前日志必须用其他方法恢复,不管是不是正常关闭,
方法二:用cancel模式恢复数据库
前面的出错提示,步骤都一样,唯独恢复的方法不一样
SQL> startup
ORACLE instance started.
Total System Global Area353862792 bytes
Fixed Size730248 bytes
Variable Size285212672 bytes
Database Buffers67108864 bytes
Redo Buffers811008 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/T3/ORACLE/oradata/ORA9/redo01.log'
看看丢失了哪些redo
SQL> host ls /T3/ORACLE/oradarta/ORA9/redo*
/T3/ORACLE/oradarta/ORA9/redo*: No such file or directory
看来redo都丢了
直接recover
SQL> recover database until cancel;
Media recovery complete.
这个时候redo还没有生成
SQL> host ls /T3/ORACLE/oradata/ORA9/redo*
/T3/ORACLE/oradata/ORA9/redo*: No such file or directory
启动数据库
SQL> alter database open ;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL>alter database open resetlogs;
Database altered.
(注意,这里必须用resetlogs,否则会错误的
SQL> alter database open noresetlogs;
alter database open noresetlogs
*
ERROR at line 1:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/T3/ORACLE/oradata/ORA9/redo01.log'
SQL>
Resetlogs其实就是根据控制文件让系统自动重新生成redo,如果noresetlog的话,就不会重新生成redo,缺少了文件,db自然无法启动)
SQL>host ls /T3/ORACLE/oradata/ORA9/redo*
/T3/ORACLE/oradata/ORA9/redo01.log/T3/ORACLE/oradata/ORA9/redo02.log/T3/ORACLE/oradata/ORA9/redo03.log
SQL>
检验
SQL> select * from test.test;
TEL
----------
1
2
3
4
SQL>
数据一点儿都没有丢失
结论:
如果数据库是正常关闭的,用recover database until cancel可以轻松恢复或者说重新建立所有的redo,不再区分是否是当前日志,而且由于正常关闭,不会丢失任何数据,唯一可能丢失的情况就是如果日志还没有归档
这种恢复方法由于要resetlogs,所以在恢复完成后,日志清零,以前的备份不再起作用,所以建议立即备份
SQL> archive log list;
Database log modeArchive Mode
Automatic archivalEnabled
Archive destination/T3/ORACLE/arch
Oldest online log sequence0
Next log sequence to archive1
Current log sequence1
SQL>
实验三:通过重新生成控制文件来恢复redo
前面的都一样,只是处理方法不一样
SQL> startup
ORACLE instance started.
Total System Global Area353862792 bytes
Fixed Size730248 bytes
Variable Size285212672 bytes
Database Buffers67108864 bytes
Redo Buffers811008 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/T3/ORACLE/oradata/ORA9/redo01.log'
SQL> alter database backup controlfile to trace;
Database altered.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL>
2、修改一下刚才生成的那个文件
CREATE CONTROLFILE REUSE DATABASE "ORA9" RESETLOGSARCHIVELOG
--SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 '/T3/ORACLE/oradata/ORA9/redo01.log'SIZE 100M,
GROUP 2 '/T3/ORACLE/oradata/ORA9/redo02.log'SIZE 100M,
GROUP 3 '/T3/ORACLE/oradata/ORA9/redo03.log'SIZE 100M
-- STANDBY LOGFILE
DATAFILE
'/T3/ORACLE/oradata/ORA9/system01.dbf',
'/T3/ORACLE/oradata/ORA9/undotbs01.dbf',
'/T3/ORACLE/oradata/ORA9/cwmlite01.dbf',
'/T3/ORACLE/oradata/ORA9/drsys01.dbf',
'/T3/ORACLE/oradata/ORA9/example01.dbf',
'/T3/ORACLE/oradata/ORA9/indx01.dbf',
'/T3/ORACLE/oradata/ORA9/odm01.dbf',
'/T3/ORACLE/oradata/ORA9/tools01.dbf',
'/T3/ORACLE/oradata/ORA9/users01.dbf',
'/T3/ORACLE/oradata/ORA9/xdb01.dbf',
'/T3/ORACLE/oradata/ORA9/test01.dbf'
CHARACTER SET ZHS16GBK
;
另存为一个脚本,运行他
SQL> @clone.sql
Control file created.
SQL> alter database open resetlogs;
Database altered.
SQL>
搞定……………
结论:这种方法的关键是重新创建控制文件,后面的步骤和前面的道理一样的
前面的三种方法都是假设db是正常关闭的,数据已经写入数据库文件中,所以不会由数据存在redo种,所以clear的话也不会有数据丢失
oracle查看redo文件,Oracle Redo文件恢复相关推荐
- oracle 查看数据库性能,oracle 11G使用statspack查看数据库的性能
1.安装Statspack工具(statspack工具的脚本在$ORACLE_HOME/rdbms/admin目录下,全是以sp开头的文件) [oracle@oracle ~]$ sqlplus / ...
- oracle 查看白名单,oracle配置访问白名单教程
出于提高数据安全性等目地,我们可能想要对oracle的访问进行限制,允许一些IP连接数据库或拒绝一些IP访问数据库. 当然使用iptables也能达到限制的目地,但是从监听端口变更限制仍可生效.只针对 ...
- oracle查看列属性,oracle查询列属性
oracle 动态查询列,查看oracle数据库的表名和列名,oracle查询列名,oracle查询列属性 oracle 查询动态列,查看oracle数据库的表名和列名,oracle查询列名,orac ...
- oracle 查看dba账户,Oracle DBA常用查询
1. 查询系统所有对象 select owner, object_name, object_type, created, last_ddl_time, timestamp, status from d ...
- Oracle 查看表空间、数据文件的大小及使用情况
查看表空间使用情况 --1G=1024MB --1M=1024KB --1K=1024Bytes --1M=11048576Bytes --1G=1024*11048576Bytes=11313741 ...
- oracle查看rman进度,监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)
一.查看EXPDP/IMPDP的进度 1 两个视图 当你当如导出的时候,如果数据量比较大,中途有些人会着急,不免想看看进度如何,利用两个视图就可以看: DBA_DATAPUBMP_JOBS和DBA_D ...
- oracle查看联机日志,oracle联机日志和归档日志
联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改,一个oracle实例有一组或多组联机日志,每组至少包含1个或者多个日志成员,这里要多个日志成 ...
- oracle查看分区名称,oracle学习笔记之 分区表
1.概念: 分区表:当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区.表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空 ...
- oracle查看所有报表,Oracle Report Viewer 以及怎么查看Oracle 报表
Oracle Report Viewer 以及如何查看Oracle 报表 Oracle Report Viewer 以及如何查看Oracle 报表 今天领导提出了个问题,如何查看Oracle 报表输出 ...
- oracle 查看tns状态,oracle for windows 监听问题之TNS-12545
操作系统版本:windows server 2012R2 数据库版本:oracle 11.2.0.1 问题描述:在一vmware虚拟机上搭建的windows server 2012R2,然后在wind ...
最新文章
- Scrum立会报告+燃尽图(十月二十一日总第十二次)
- 上次谁说要简历模板来着?来!
- RestHighLevelClient 批量插入 elasticsearch 7.9 版本警告
- mate 树莓派4b安装ubuntu_树莓派4B安装安装Ubuntu Mate 16.04
- 双非毕业生,如何入职大厂
- random number in groovy
- [SAP ABAP开发技术总结]动态修改选择屏幕
- JavaScript 动画 3---缓冲动画
- 开源库openhtmltopdf html 转pdf特殊字符适配
- 安卓机如果相册不选图片就退出_微商相册如何在「多台设备登录」?
- 2021基于Debian的All in One(NAS+软路由)配置教程
- 低配电脑不能运行大型游戏?试试AWS EC2
- Python:士兵与枪(类的使用)
- 【Valve】Dead Thread Detection Valve
- python中bytes_Python3中的bytes和str类型
- spring事务管理配置
- Gateway篇(一)之Gateway配置
- 推荐几个非常棒的学习计算机语言的网站
- 深入理解BFC与IFC
- JetBrains 家族所有 IDE 主题配色方案 下载安装方法
热门文章
- mac android usb共享网络,mac 网络共享软件 手机usb共享网络方法和技巧详解介绍
- 网络基础之网络协议篇(转自林海峰老师)
- java发送邮件被退回,从Java应用程序发送电子邮件中的异常:中继被拒绝
- 数字万用表短路时电阻不为0怎么办
- 病毒RNA分离:病毒RNA提取试剂盒方案
- 宗教信仰与孟加拉国女性社交网络的更大规模、亲属​​密度和地理分布有关
- 计算机作文素材,学电脑作文素材
- 计算机专业毕业设计怎么做 - 选题推荐 - 疑问解答
- java 汇率换算_[java] 汇率换算器实现(2)
- joomla新建模板_WordPress v Joomla:模板和主题