oracle重新挂载文件所在的盘,oracle rac在加错asm盘时,变成了文件系统处理

1、故障描述

在双节点,使用asm盘,一般情况下,我们在添加asm盘的时候,我们通常采用的方法是:

SQL> ALTER TABLESPACE TESTDATA ADD DATAFILE '+DATADG01' size 10240M;

但是,有一天,一个客户的管理员在进行添加磁盘的时候,漏掉了重要符号加号“+”,直接导致另一个节点的报错,无法访问文件!

他的添加方法是这样的:

SQL> ALTER TABLESPACE TESTDATA ADD DATAFILE 'DATADG01' size 10240M;

这样,导致数据库的一个节点报这样的错误:

/u01/app/oracle/product/11.2.0.3/dbs/DATADG01无法找到,连接到该节点的会话不断报相关的错误。

ERROR at line 1:

ORA-01157: cannot identify/lock data file 9 - see DBWR trace file

ORA-01110: data file 7: '/u01/app/oracle/product/11.2.0.3/dbs/DATADG01'

2、问题分析

我们收到这种情况后,到了客户现场,对问题进行了分析:

SQL> select file_name from dba_data_files where TABLESPACE_NAME = 'USERS';

FILE_NAME

--------------------------------------------------------------------------------

+DATADG01/mytest/datafile/users.268.764071447

/u01/app/oracle/product/11.2.0.3/dbs/DATADG01

+DATADG01/mytest/datafile/users.2372.789133165

可以看到,在第一个节点,看到了有一个文件系统,所以另一个节点无法访问,导致故障发生

3、解决问题

问题的解决,肯定会引起业务的中断,也就是在访问的过程中会报错,但这种情况,随着问题的解决,会马上恢复

3.1采用rman的方法,把文件系统进行迁移

RMAN > backup as copy datafile '/u01/app/oracle/product/11.2.0.3/dbs/DATADG01' format '+DATADG01';

tarting backup at 2013-03-20 13:18:00

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=40 instance=mytest device type=DISK

channel ORA_DISK_1: starting datafile copy

input datafile file number=00007 name=/u01/app/oracle/product/11.2.0.3/dbs/DATADG01

output file name=+DATADG01/mytest/datafile/users.2374.789139083 tag=TAG20120720T131802 RECID=4 STAMP=789139124

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45

Finished backup at 2013-03-20 13:18:47

备份的时候,把该文件形成了asm格式,并且通过备份,已经生成了一个asm的文件格式,这方便了我们的迁移

3.1对文件进行离线重命名

[mytest1:oracle]sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.3.0 Production on Fri Jul 20 13:23:09 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

--离线操作

SQL> alter database datafile '/u01/app/oracle/product/11.2.0.3/dbs/DATADG01' offline;

Database altered.

--重命名

SQL> alter database rename file '/u01/app/oracle/product/11.2.0.3/dbs/DATADG01' to '+DATADG01/mytest/datafile/users.2374.789139083' ;

Database altered.

把这个直接重命名为刚才备份输出的asm文件名,就可以了!注意,这一步操作是在sqlplus命令行中进行的,我们在这一步折腾了下,在rman命令行下操作,老报错,还以为自己搞错了!遇事不要慌很重要,慌也解决不了问题。

3.3恢复数据库文件

--进行恢复

SQL> recover datafile '+DATADG01/mytest/datafile/users.2374.789139083' ;

Media recovery complete.

--将文件online

SQL> alter database datafile '+DATADG01/mytest/datafile/users.2374.789139083' online;

Database altered.

3.4进行验证

SQL> select file_name from dba_data_files where TABLESPACE_NAME = 'USERS';

FILE_NAME

--------------------------------------------------------------------------------

+DATADG01/mytest/datafile/users.268.764071447

+DATADG01/mytest/datafile/users.2374.789139083

+DATADG01/mytest/datafile/users.2372.789133165

可以看到,已经成功了,问题到此解决,前台应用已经不再报错!

4、综述

加asm文件时,一定要小心加号。如果实在遇到了,那也没办法,在离线期间,可能会使两个节点的业务都受到影响,这没有办法,对业务必须有影响。但此种方法比较理想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值