暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

东面而视 2018-08-10
345

一、前期处理

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;

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


文章转载自东面而视,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论