本来是很简单的一个事情,缺得到了一个意外的结局。
业务繁忙,redo log有些不足,经确认后打算加三组,11g rac asm,老规矩,把要执行的操作先写出来:
alter database add logfile thread 1 group 11 'data' size 1g;
复制几个,改组号
alter database add logfile thread 1 group 12 'data' size 1g;
alter database add logfile thread 1 group 13 'data' size 1g;
alter database add logfile thread 2 group 21 'data' size 1g;
...
很完美,执行吧...
哎,执行第二行时怎么报redo成员已存在呢?
咋回事?
咋回事?
相了一会面,5秒钟后,明白了。
redo位置没有“+”,asm磁盘组都要前面带一个加号。
意外之处是,当时连到实例2上了,执行的添加实例1上redo命令,结果文件创建在实例2主机的$ORACLE_HOME/dbs/目录下了,文件名就是data,有趣的是实例1立即宕机。
当时发现加错了,第一反应是赶紧删掉,alter database drop logfile group 11;
唉?怎么死活报错找不到文件?select member from v$log明明指向dbs目录下的,意识到是不是该从实例1上发起删除?连接实例1时发现1已经宕机了,oracle自我保护机制蛮好的。
突发奇想,启动实例1到mount,将实例2主机上的data文件拷贝到实例1主机上,然后再执行删除就ok了,(如果不行的话就把实例1打开再删除),赶紧把加号填上,问题解决。
很基础的操作有时也会带来小插曲。
小插曲的尾声是,由于误操作导致生产库宕机,被投诉,年终奖取消。
阅读(1590) | 评论(0) | 转发(0) |