热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle数据库正常关闭情况下当前日志损坏的恢复(转)

环境说明:oracle 10.1.0.3.0linux as4 2.6.9-34.ELdb创建在vg_oracle卷上如果非当前日志损坏,clear日志组即可解决问题以下为当前日志损坏的模拟情况,也包
环境说明:
oracle 10.1.0.3.0
linux as4 2.6.9-34.EL
db创建在vg_oracle卷上



如果非当前日志损坏,clear日志组即可解决问题


以下为当前日志损坏的模拟情况,也包括了非当前日志的损坏
[root@test raw]# dd if=/dev/raw/raw5 of=/data/raw5
106496+0 records in
106496+0 records out
[root@test raw]# dd if=/dev/raw/raw6 of=/data/raw6
106496+0 records in
106496+0 records out
[root@test raw]# dd if=/dev/raw/raw4 of=/data/raw4
106496+0 records in
106496+0 records out

--------------------------------------------删除redo的lv
[root@test raw]# lvremove /dev/vg_oracle/lv_redo*
Do you really want to remove active logical volume "lv_redo1"? [y/n]: y
Logical volume "lv_redo1" successfully removed
Do you really want to remove active logical volume "lv_redo2"? [y/n]: y
Logical volume "lv_redo2" successfully removed
Do you really want to remove active logical volume "lv_redo3"? [y/n]: y
Logical volume "lv_redo3" successfully removed



SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 778212 bytes
Variable Size 70262812 bytes
Database Buffers 96468992 bytes
Redo Buffers 262144 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/dev/raw/raw4'

-----------------------------------------------------查看alert日志,
SQL> !
[oracle@test ~]$ vi /opt/oracle/app/admin/test/bdump/alert_test.log


Fri Jun 29 14:17:33 2007
Errors in file /opt/oracle/app/admin/test/bdump/test_lgwr_25394.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/dev/raw/raw4'
ORA-27041: unable to open file
Linux Error: 6: No such device or address
Additional information: 2
Fri Jun 29 14:17:33 2007
Errors in file /opt/oracle/app/admin/test/bdump/test_lgwr_25394.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/dev/raw/raw4'
ORA-27041: unable to open file
Linux Error: 6: No such device or address
Additional information: 2
Fri Jun 29 14:17:33 2007
ORA-313 signalled during: ALTER DATABASE OPEN...

------------------------------------------------------------clear日志文件
SQL> alter database clear logfile group 1;
alter database clear logfile group 1
*
ERROR at line 1:
ORA-00344: unable to re-create online log '/dev/raw/raw4'
ORA-27041: unable to open file
Linux Error: 6: No such device or address
Additional information: 1






------------------------------------以上提示找不到对应设备,因此创建对应设备
[root@test data]# lvcreate -L 50M -n lv_redo1 vg_oracle
lvcreate -L 50M -n lv_redo2 vg_oracle
lvcreate -L 50M -n lv_redo3 vg_oracle
Rounding up size to full physical extent 52.00 MB
Logical volume "lv_redo1" created
[root@test data]# lvcreate -L 50M -n lv_redo2 vg_oracle
Rounding up size to full physical extent 52.00 MB
Logical volume "lv_redo2" created
[root@test data]# lvcreate -L 50M -n lv_redo3 vg_oracle
Rounding up size to full physical extent 52.00 MB
Logical volume "lv_redo3" created
[root@test data]# raw /dev/raw/raw4 /dev/vg_oracle/lv_redo1
raw /dev/raw/raw5 /dev/vg_oracle/lv_redo2
raw /dev/raw/raw6 /dev/vg_oracle/lv_redo3
/dev/raw/raw4: bound to major 253, minor 3
[root@test data]# raw /dev/raw/raw5 /dev/vg_oracle/lv_redo2
/dev/raw/raw5: bound to major 253, minor 4
[root@test data]# raw /dev/raw/raw6 /dev/vg_oracle/lv_redo3
/dev/raw/raw6: bound to major 253, minor 5
[root@test data]# chown oracle:dba /dev/raw/raw4
[root@test data]# chown oracle:dba /dev/raw/raw5
[root@test data]# chown oracle:dba /dev/raw/raw6




SQL> alter database clear logfile group 1;

Database altered.

SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR at line 1:
ORA-00350: log 2 of instance test (thread 1) needs to be archived
ORA-00312: online log 2 thread 1: '/dev/raw/raw5'


---------------------------------------------------------group 2为当前日志

SQL> set linesize 1000
SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 0 51380224 1 YES UNUSED 375809 29-JUN-07
2 1 3 51380224 1 NO CURRENT 379739 29-JUN-07
3 1 1 51380224 1 YES INACTIVE 366852 29-JUN-07

SQL> alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 2
*
ERROR at line 1:
ORA-00316: log 2 of thread 1, type 0 in header is not log file
ORA-00312: online log 2 thread 1: '/dev/raw/raw5'


SQL> alter database clear logfile group 3;

Database altered.

SQL> recover database until cancel;
Media recovery complete.



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.

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 0 51380224 1 YES UNUSED 0
2 1 1 51380224 1 NO CURRENT 380833 29-JUN-07
3 1 0 51380224 1 YES UNUSED 0

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 2 51380224 1 YES INACTIVE 381270 29-JUN-07
2 1 4 51380224 1 NO CURRENT 381274 29-JUN-07
3 1 3 51380224 1 YES INACTIVE 381272 29-JUN-07


接下来对数据库做一个全备份[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9650775/viewspace-923234/,如需转载,请注明出处,否则将追究法律责任。

转:http://blog.itpub.net/9650775/viewspace-923234/




推荐阅读
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了一个误删Oracle数据文件导致数据库无法打开的问题,并提供了解决方式。解决方式包括切换到mount状态、离线删除报错的数据文件等。 ... [详细]
author-avatar
小旭zZ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有