今天测试redo log丢失的recover,意外发现,rm redo log后,还可以insert data,checkpoint/swtich logfile,气死我!:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 19 52428800 512 1 NO CURRENT 1173582 01-SEP-13 2.8147E+14
2 1 17 52428800 512 1 YES INACTIVE 1172946 01-SEP-13 1172953 01-SEP-13
3 1 18 52428800 512 1 YES ACTIVE 1172953 01-SEP-13 1173582 01-SEP-13
SQL>host rm redo02.log
SQL> alter system switch logfile;
System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 19 52428800 512 1 YES ACTIVE 1173582 01-SEP-13 1173590 01-SEP-13
2 1 20 52428800 512 1 NO CURRENT 1173590 01-SEP-13 2.8147E+14
3 1 18 52428800 512 1 YES ACTIVE 1172953 01-SEP-13 1173582 01-SEP-13
SQL> insert into scott.t(txt) values('redo02');
1 row created.
SQL> commit;
Commit complete.
SQL> alter system checkpoint; --料想这会报错的,可人算不如ORACLE算.....
System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 19 52428800 512 1 YES INACTIVE 1173582 01-SEP-13 1173590 01-SEP-13
2 1 20 52428800 512 1 NO CURRENT 1173590 01-SEP-13 2.8147E+14
3 1 18 52428800 512 1 YES INACTIVE 1172953 01-SEP-13 1173582 01-SEP-13
后来,狗了很久,不得其解,忽见一文章云:rm并不能真正模拟文件的损坏,请注意这一点.
一刹那,明了,linux下rm文件后,若当前文件已有进程打开,其rm的文件并未真正释放.故oracle下还可以insert data /checkpoint.
继续 switch logfile:
SQL> alter system switch logfile;
System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 21 52428800 512 1 NO CURRENT 1178228 01-SEP-13 2.8147E+14
2 1 20 52428800 512 1 NO ACTIVE 1173590 01-SEP-13 1178228 01-SEP-13
3 1 18 52428800 512 1 YES INACTIVE 1172953 01-SEP-13 1173582 01-SEP-13
SQL> alter system switch logfile;
System altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 21 52428800 512 1 NO ACTIVE 1178228 01-SEP-13 1178293 01-SEP-13
2 1 20 52428800 512 1 NO ACTIVE 1173590 01-SEP-13 1178228 01-SEP-13
3 1 22 52428800 512 1 NO CURRENT 1178293 01-SEP-13 2.8147E+14
--当所有Archived的redo log用完后,再switch,就出问题了
--log2一直active未能转到inactive,估计(某人识薄只能估计)该步需再寻址redo2.log,但rm将inode delete无法完成寻址,故hang住了。
SQL> alter system switch logfile;
--这里挂住了,cancel退出
^Calter system switch logfile
*
ERROR at line 1:
ORA-01013: user requested cancel of current operation
相关推荐
42 redo log是直接一条一条写入文件的吗?非也,揭秘redo log block.pdf
43 直接强行把redo log写入磁盘?非也,揭秘redo log buffer.pdf
Oracle DG下修改redo log和standby redo log日志大小.txt
文章目录一、MySQL日志文件类型二、几种日志的对比2-1、用途 redo log undo log binlog2-2、存储内容、格式 redo log undo log binlog2-3、日志生成 redo log undo log binlog2-4、删除策略 redo log ...
3000帧动画图解MySQL为什么需要binlog、redo log和undo log.doc
丢失全部数据库文件及全部redolog的恢复方法,可用作RMAN数据库迁移.doc
44 redo log buffer中的缓冲日志,到底什么时候可以写入磁盘?l.pdf
2 万字 + 30 张图 | 细聊 MySQL undo log、redo log、binlog 有什么用?.doc
Redo log包含所有的数据库变化历史,数据库的所有操作变化,均按照写入重做日志缓冲区先于数据块缓冲区、写入重做日志文件先于写入数据文件;当发生提交动作时,将重做日志缓冲区变化刷到重做日志文件。
MySQL数据库之undo log和redo log工作原理.png,这是一份图例,画图表示undo log和redo log的工作原理
行业-43 直接强行把redo log写入磁盘?非也,揭秘redo log buffer.rar
41 在Buffer Pool执行完增删改之后,写入日志文件的redo log长什么样.pdf
行业-42 redo log是直接一条一条写入文件的吗?非也,揭秘redo log block.rar
介绍Oracle redo log 恢复步骤的文档,图文并茂
结合模拟常用系统环境进行方案设计的试验,得出基于Redo log复制技术的数据库备份方式,不仅具有高效的资源利用、跨平台数据库同步、主备库双活、断点续传等功能,可以实现Oracle数据库的高可用、提高保护数据的安全...
探索oracle redolog内部结构
ORACLE 修改redo日志文件 大小的方法 供大家参考
在redolog都丢失的情况下,使用隐藏参数,尝试以open resetlogs的方式打开数据库.txt
rac数据库修改redolog日志组大小及数量
关于文件头、日志头、块头、以及一条insert语句的详细解析,并结合dump文件做验证。吐血整理。