DBA工作备忘录-阵列损坏解决方法

原创 2004年10月26日 19:50:00

问题描述:
下午现场人员说产品库意外中止,紧接着说可能是阵列损坏,因为灯都不亮了。
于是紧急拨号到远程,检查数据库,5分钟以后,数据库重新启动成功。
问题其实非常简单,但是后来看alertlog,发现从阵列失效一直到给我打电话,中间有将近1个小时的时间,这段时间里面,因为现场人员不知道问题所在,所以反复切换cluster,试图让数据库能够启动成功,汗!

问题解释:
产品库中控制文件总共三份,分别保存在/global/oracle, /global/backup1, /global/backup2
下。重作日志和归档日志各两份,分别保存在/global/backup1, /global/backup2
下。
/global/oracle, /global/backup1, /global/backup2是三个独立的阵列。
由于控制文件对于oracle必须保持一致,所以三份控制文件中的任何一份无法读取
,数据库都会关闭。而重作日志和归档日志,只要有一份可以正常读写,那么数据
库还可以继续正常运行。
所以,如果任何一个阵列失效,那么由于控制文件的问题,数据库都会意外中止。

解决流程:
1。数据库意外中止

2。检查$ORACLE_HOME/admin/dpshdb/bdump/alert_dpshdb.log文件,确认意外中
止的原因,比如今天的内容是:
Tue Oct 26 16:36:40 2004
Errors in file /export/oracle/product/817/admin/dpshdb/bdump/dpshdb_ckpt_16541.trc:
ORA-00206: error in writing (block 3, # blocks 1) of controlfile
ORA-00202: controlfile: '/global/backup1/oradata/dpshdb/control02.ctl'
ORA-27063: skgfospo: number of bytes read/written is incorrect
SVR4 Error: 6: No such device or address
Additional information: -1
Additional information: 8192
Tue Oct 26 16:36:40 2004
Errors in file /export/oracle/product/817/admin/dpshdb/bdump/dpshdb_lgwr_16539.trc:
ORA-00345: redo log write error block 38713 count 2
ORA-00312: online log 1 thread 1: '/global/backup1/oradata/dpshdb/redo1b.log'
ORA-27063: skgfospo: number of bytes read/written is incorrect
SVR4 Error: 5: I/O error
Additional information: -1
Additional information: 1024
第一部分是指出control02.ctl控制文件无法读取,第二部分是指出redo1b.log重
作日志无法读取。
然后数据库自动关闭,如下显示,是16:36:43发生的,也就是在16:36:40首次发现
阵列失效的3秒以后(我们知道CKPT的timeout值是3秒):
Tue Oct 26 16:36:43 2004
Errors in file /export/oracle/product/817/admin/dpshdb/udump/dpshdb_ora_10206.trc:
ORA-00221: 写入控制文件出错
Instance terminated by CKPT, pid = 16541
从这些log中我们可以知道/global/backup1阵列失效了。

3。修改初始化参数文件$ORACLE_HOME/dbs/initdpshdb.ora,忽略失效的控制文件
和失效的归档路径
原内容:
control_files = ("/global/oracle/oradata/dpshdb/control01.ctl",
"/global/backup1/oradata/dpshdb/control02.ctl",
"/global/backup2/oradata/dpshdb/control03.ctl")
log_archive_dest_1 = "location=/global/backup1/oradata/dpshdb/arch"
修改后的内容:
control_files = ("/global/oracle/oradata/dpshdb/control01.ctl",
"/global/backup2/oradata/dpshdb/control03.ctl")
#log_archive_dest_1 = "location=/global/backup1/oradata/dpshdb/arch"

4。启动数据库,此时数据库已经可以正常使用了。

5。为了保证重作日志文件始终保持2份,所以在数据库启动以后,我们需要删除掉
原来失效的文件,添加新的重作日志文件。这部分操作可以在数据库启动以后再作
,但是最好不要有大量的更新操作,是为了防止重作日志切换过快,导致删除重作
日志的操作失败。
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo1b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo1c.log' to group 1;
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo2b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo2c.log' to group 2;
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo3b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo3c.log' to group 3;
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo4b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo4c.log' to group 4;
在执行alter database drop logfile member之前要检查v$log视图,确认该文件
所属的重作日志组的status字段不是current,不是active,而是inactive。否则
删除会报错,如果删除报错,那么运行两次如下语句:
alter system swtich logfile;
然后再重新执行删除旧日志和添加新日志的操作。

DBA思考方式感悟

author:skate time:2012/07/21   DBA思考方式感悟   某某牛人为什么能想到那么绝妙的方法, 某某人为什么那么聪明 这样的话大家都听过,有时想想大家先天素质...
  • wyzxg
  • wyzxg
  • 2012年07月21日 23:02
  • 1839

一款好用的备忘录制作实现

自己用的安卓手机,平时老是忘记某些事情,于是在网上找了几款备忘录软件,可是没有自己满意的。于是乎,开始自己做个吧。 先展示下成品:小石备忘录 app下载地址:http://zhushou.360....
  • jiaozhurun
  • jiaozhurun
  • 2016年01月19日 17:54
  • 9882

Oracle DBA 每天、每周、每月应该做的工作

㈠ 每天的工作                ① 检查 alert.log                ② 环境确认                      ● 数据库实例是否正常工作      ...
  • linwaterbin
  • linwaterbin
  • 2013年06月14日 21:12
  • 2676

Oracle DBA日常工作手册

Oracle DBA日常工作手册   概述... 2 第一章.  事前阶段... 3 一 、 日常工作-每天应做工作内容... 3 1、工作内容-日常环境监控... 3 1.1系统...
  • a15177733161
  • a15177733161
  • 2016年09月23日 18:44
  • 1052

DBA的工作职责是什么?

DBA的职责是什么?从每天到每星期再到每个月,看看DBA都要做什么?
  • qq_35207086
  • qq_35207086
  • 2017年06月28日 10:35
  • 275

【职场心路】一个老DBA的自白

杨志洪【DBA+社群】创始人 【DBA+社群】上海发起人 数据管理专家,Oracle ACE、OCM、 SHOUG/ZJOUG核心成员、DAMA会员/CCF会员,译著《Oracle核心技术...
  • guogang83
  • guogang83
  • 2015年12月15日 09:25
  • 1317

dba应该注意

这几天,在帮助一个朋友进行数据恢复。 造成故障的原因很简单,因为维护升级时错误的连接到生产主机,结果导致生产库故障,数据文件被删除并部分覆盖。 因为这个案例,我想说一下作为一个DBA应该养...
  • u010098331
  • u010098331
  • 2016年03月11日 15:05
  • 215

这也许是最具珍藏价值的Oracle DBA生存宝典!

曾几何时,DBA一度被视为越老越吃香的职业,而从事数据库霸主Oracle的DBA更是风靡多时的技术人择业之选。 但随着Oracle自身技术的不断提升和完善,人手的操作不断被削弱,Orac...
  • jc_benben
  • jc_benben
  • 2017年09月04日 10:54
  • 543

打开Windows7自带备忘录命令

打开Windows7自带备忘录命令
  • yanlaifan
  • yanlaifan
  • 2017年02月08日 10:18
  • 1965

这些在安装Windows 10时常用到的(类似备忘录)

(网络都有了,整理一下方便查找,今天找一台有Win10的机子配点图) 1、资源管理器一打开就看到分区。 默认的任务栏上的不好用,我需要的是象打开“我的电脑”(习惯了这叫)那样的,一打开就可以见到各...
  • xz0125pr
  • xz0125pr
  • 2015年10月14日 11:53
  • 808
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DBA工作备忘录-阵列损坏解决方法
举报原因:
原因补充:

(最多只允许输入30个字)