Oracle RAC集群加错数据文件处理方案

一、前期处理

1) 描述:在RAC集群环境下,在其中一个节点增加数据文件,由于路径没有正确指定,导致只在一个节点中增加到文件系统下,该数据文件另一个节点二访问不到,错误数据文件不在共享路径下
2) 影响1:俩个节点不能同时访问同一数据文件下所记录的对象;
影响2:长时间下节点二由于ALERT日志报错,导致日志渐增;
影响3:由于错误数据文件放在节点一文件系统下,导致节点一的文件系统空间不足;
影响4:由于非条带化写入数据,严重影响数据库性能;

3) 紧急处理:将错误数据文件DROP掉。(如果没有写入数据,是可以删除掉;如果数据文件写入数据,删不掉。)
说明:XXXXXX代表错误数据文件具体路径;
参考语句:alter tablespace tablespace_name drop datafile ‘xxxxxxx’;

4) 如果DROP不掉,说明该数据文件已写入数据,要及时将数据文件RESIZE成最小(能多少就多少),并且关闭自动扩展;
参考语句:alter database datafile ‘xxxxxxx’ resize 1M;(如果1M不行就再加)
说明:XXXXXX代表错误数据文件具体路径;

5)RESIZE后等待检修窗口,将数据文件迁移至共享存储下;

二、后期处理
说明:本次数据文件迁移,不停机,不对表空间OFFLINE,只对数据文件做操作,影响范围:一切存放在错误数据文件上的对象均不可访问。
1) 查询错误数据文件FILE#号码。
参考语句:select name,file#,bytes/1024/1024 MB,status from v$datafile;
例:
NAME FILE# MB STATUS


/dev/vgsys/rlvsys_system_01 1 30700 SYSTEM
/dev/vgsys/rlvsys_undotbs1_1 2 30700 ONLINE
/dev/vgsys/rlvsys_sysaux_01 3 30700 ONLINE
/dev/vgsys/rlvsys_undotbs2_1 4 30700 ONLINE
/dev/vgsys/rlvsys_user1 5 30700 ONLINE
/dev/vgepm1/rlvepc_data1 6 30720 ONLINE
/dev/vgepm1/rlvepc_data2 7 30720 ONLINE
/dev/vgepm1/rlvepc_data3 8 30720 ONLINE
/dev/vgepm1/rlvepc_data4 9 30720 ONLINE
/dev/vgepm1/rlvepc_data5 10 30720 ONLINE
/dev/vgepm1/rlvepc_data6 11 30720 ONLINE
NAME FILE# MB STATUS


/dev/vgepm4/rlvepm4_adata55 683 29696 ONLINE
/dev/vgepm4/rlvepm4_adata56 684 29696 ONLINE
/dev/vgepm4/rlvepm4_adata57 685 29696 ONLINE
/dev/vgepm4/rlvepm4_adata58 686 29696 ONLINE
/dev/vgepm4/rlvepm4_adata59 687 29696 ONLINE
/oracle/product/10.2.0/db/dbs/rlvep 688 2 ONLINE
m6_data108

2) 确定错误数据文件FILE#号码为688,查询错误数据文件内存放的对象,备份出来。
参考语句:
SELECT E.SEGMENT_TYPE AS SEGMENT_TYPE
, E.SEGMENT_NAME AS SEGMENT_NAME
, F.FILE_NAME AS FILE_NAME
, SUM(E.BYTES)/1024/1024 AS SEGMENT_SIZE
FROM DBA_EXTENTS E
INNER JOIN DBA_DATA_FILES F ON E.FILE_ID= F.FILE_ID
WHERE F.FILE_ID =688
GROUP BY E.SEGMENT_TYPE,E.SEGMENT_NAME,F.FILE_NAME
ORDER BY 4 DESC;

3) 将数据文件号码为688下线;
参考语句:
SQL>alter database datafile 688 offline;

4) 进入RMAN,将数据文件COPY到共享存储。
参考语句:
RMAN> run{
2> allocate channel c3 type disk;
3> copy datafile ‘/oracle/product/10.2.0/db/dbs/rlvepm6_data108’ to ‘/dev/vgepm6/rlvepm6_data108’;
4> }
5) COPY成功后,将数据文件RENAME成共享存储路径。
参考语句:
SQL>alter tablespace EPCDAT1 rename datafile ‘/oracle/product/10.2.0/db/dbs/rlvepm6_data108’ to ‘/dev/vgepm6/rlvepm6_data108’;

6) 恢复数据文件序号为688;
参考语句:
SQL>recover datafile 688;

7) 将数据文件号码为688上线:
参考语句:
SQL> alter database datafile 688 online;

8) 俩个节点验证:select name,file#,bytes/1024/1024 MB,status from v$datafile;

9) 将数据文件RESIZE成可用大小
参考语句:
alter database datafile ‘/dev/vgepm6/rlvepm6_data108’ resize 30G;

至此,完成错误路径下数据文件的迁移!

猜你喜欢

转载自blog.csdn.net/weixin_41684725/article/details/81509151
今日推荐