1. 程式人生 > >rac ORA-001157 數據文件誤創 本地盤 共享存儲 ASM cannot identify/lock data file

rac ORA-001157 數據文件誤創 本地盤 共享存儲 ASM cannot identify/lock data file

oracle rac

誤將數據文件創建在本地盤而不是共享存儲

錯誤原因:

不是共享存儲中的數據文件,其他實例不能訪問

解決思路和辦法:

把本地的數據文件移到共享存儲中。

步驟;

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