首页 > 代码库 > rac ORA-001157 数据文件误创 本地盘 共享存储 ASM cannot identify/lock data file

rac ORA-001157 数据文件误创 本地盘 共享存储 ASM cannot identify/lock data file

误将数据文件创建在本地盘而不是共享存储

错误原因:

不是共享存储中的数据文件,其他实例不能访问

解决思路和办法:

把本地的数据文件移到共享存储中。

步骤;

1. offline 表空间或数据文件

2. 复制数据文件

3. 重命名数据文件

4. 恢复数据文件(表空间不用)

5. online 表空间或数据文件

复制方案

1. RMAN copy datafile

2. dbms_file_transfer.copy_file

3. ASMCMD cp


详细步骤:

一:

alter tablespace ts1 offline;

rman>copy datafile ‘本地目录/源数据文件‘ to ‘共享目录/目标文件名‘;--目标文件自己取名

alter database rename file ‘本地目录/源数据文件‘ to ‘共享目录/目标文件名‘;

alter tablespace ts1 online;


二:

create directory source_dir as ‘本地目录/‘;

create directory dest_dir as ‘共享目录/‘;

alter tablespace ts1 offline;

begin

dbms_file_transfer.copy_file(‘SOURCE_DIR‘,‘源数据文件名‘,‘DEST_DIR‘,‘目标文件名‘);

end;

--可以通过asmcmd命令行确认是否正确copy成功

/*

  grid>asmcmd

  asmcmd>cd 共享目录

  asmcmd>ls 目标文件名

*/

alter database rename file ‘本地目录/源数据文件名‘ to ‘共享目录/目标文件名‘;

alter tablespace ts1 online;


三:--操作数据文件,只能是表空间添加数据文件可行,创建表空间时出错(以下改成表空间)

alter database datafile ‘本地目录/源数据文件‘ offline;

root>mv 源数据文件 /home/grid/

root>chown grid:asmadmin  源数据文件--/home/grid/目录操作

grid>asmcmd

asmcmd>cd 共享目录

asmcmd>cp /home/grid/源数据文件 目标文件名

asmcmd>ls

alter database rename file ‘本地目录/源数据文件‘ to ‘共享目录/目标文件名‘;  

alter database recover datafile ‘共享目录/目标文件名‘;

alter database datafile ‘共享目录/目标文件名‘ online;   


本文出自 “技术点滴” 博客,请务必保留此出处http://291268154.blog.51cto.com/8955907/1939911

rac ORA-001157 数据文件误创 本地盘 共享存储 ASM cannot identify/lock data file