本期将为大家分享“表空间数据文件存放目录校验”运维管理脚本。
关键字1:ORA-04088
关键字2:ora_name_list_t
关键字3:Oracle DBA Scripts
脚本用途描述
在运维Oracle RAC集群时,偶尔会发现表空间对应的数据文件路径指定到服务器本地磁盘而不是ASM磁盘组,从而导致其中一个集群节点上实例无法读到该数据文件里的数据。为了规避技术人员将数据文件指向本地磁盘,DBA可以编写触发器对数据文件脚本进行校验。
脚本使用方法
1、登录sys用户创建触发器
create or replace trigger datafile_path_verify
before create or alter on database
declare
l_errmsg varchar2(100) := 'Not specify datafile to ASM( DATAFILE ''+XXX''),Or Call us for help! Invalid DDL: ';
sql_text ora_name_list_t;
stmt VARCHAR2(2000);
n number;
begin
n := ora_sql_txt(sql_text);
stmt := sql_text(1);
if n > 0 then
if (instr(upper(stmt), 'CREATE') <> 0 and
instr(upper(stmt), 'TABLESPACE'