利用
Oracle
可恢复空间分配技术自动分配表空间
Oracle
可恢复空间分配技术让我们可以通过创建一个在会话挂起时自动运行的
after
suspend on database
触发器处理问题,如通过电子邮件报告挂起事件、检查并自动修复挂
起故障等,如可以在插入数据导致表空间容量不足时,通过触发器程序判断并自动给表空间分
配容量。以下例子给出这方面的应用。
一、可恢复空间自动分配功能的部署
因为
after suspend on database
触发器中不允许调用
DDL
语句,因此空间分配的操作不能
通过触发器调用来执行。这里的办法就是通过调度程序来启动作业,并且这个调度作业必须是
基于事件触发的。
通过设置实例参数
resumable_timeout
为所有会话启用可恢复空间。这是一个动态参数,如
设置会话在遇到空间问题时挂起
1
分钟
alter system set resumable_timeout = 60;
创建一个用来进行可恢复空间管理的用户并授权
conn / as sysdba
create user alloc identified by alloc;
grant connect, resource to alloc;
grant create job to alloc;
grant create trigger to alloc;
grant aq_administrator_role to alloc;
grant execute on dbms_aq to alloc;
grant select on dba_resumable to alloc;
grant select on dba_data_files to alloc;
grant dba to alloc;
连接到
alloc
用户
conn alloc/alloc
创建一个存放可恢复空间分配的
SQL
语句的表
create table resumable_sql(sql_text varchar2(200));
定义一个记录消息信息的类型
create or replace type event_queue_type as object(event_name
varchar2(30));
/
评论