管理可恢复空间
来源:互联网 发布:淘宝卖家手机打印快递 编辑:程序博客网 时间:2024/05/11 03:22
CREATE OR REPLACE TRIGGER resumable_default
AFTER SUSPEND ON DATABASE
DECLARE
/* declare transaction in this trigger is autonomous */
/* this is not required because transactions within a trigger are always autonomous */
PRAGMA AUTONOMOUS_TRANSACTION ;
cur_sid NUMBER ;
cur_inst NUMBER ;
errno NUMBER ;
err_type VARCHAR2 ;
object_owner VARCHAR2 ;
object_type VARCHAR2 ;
table_space VARCHAR2 ;
sub_object_name VARCHAR2 ;
error_txt VARCHAR2 ;
msg_body VARCHAR2 ;
ret_value BOOLEAN ;
mail_conn UTL_SMTP.CONNECTION;
BEGIN
-- Get session ID
SELECT DISTINCT (SID) INTO cur_SID FROM V$MYSTAT;
-- Get instance number
ret_value := DBMS_RESUMABLE.SPACE_ERROR_INFO(err_type,
object_type,
object_owner,
table_space_name,
object_name,
sub_object_name);
/*
-- If the error is related to rollback segment, log error, send email
-- to DBA, and abort the segment. Otherwise, set timeout to a8 hours.
--
-- sys.rbs_error is created by DBA manually and defined as
-- sql_text VARCHAR2(1000), error_msg VARCHAR2(4000),
-- suspend_time DATE
*/
IF OBJECT_TYPE = 'ROLLBACK SEGMENT' THEN
/* LOG ERROR */
INSERT INTO sys.rbs_error
( SELECT SQL_TEXT, ERROR_MSG, SUSPEND_TIME
FROM DBMS_RESUMABLE
WHERE SESSION_ID = cur_sid
AND INSTANCE_ID = cur_inst);
SELECT ERROR_MSG
INTO error_txt
FROM DBMS_RESUMABLE
where SESSION_ID = cur_sid
AND INSRANCE_ID = cur_inst;
-- Send email to receipient via UTL_SMTP package
msg_body := 'Subject: Space Error Occurred
Space limit reached for rollback segment' || object_name || 'on' ||
TO_CHAR( SYSDATE , 'Month dd, YYYY, HH:MIam' ) ||
'. Error message was' || error_txt;
mail_conn := UTL_SMTP.OPEN_CONNECTION( 'localhost' , 25 );
UTL_SMTP.HELO(mail_conn, 'localhost' );
UTL_SMTP.MAIL(mail_conn, 'sender@localhost' );
UTL_SMTP.RCPT(mail_conn, 'recipient@localhost' );
UTL_SMTP.DATA(mail_conn, msg_body);
UTL_SMTP.QUIT(mail_conn);
-- Abort the segment
DBMS_RESUMABLE.ABORT(cur_sid);
ELSE
-- Set timeout to 8 hours
DBMS_RESUMABLE.SET_TIMEOUT( 28800 );
END IF ;
/* commit autonomous transaction */
COMMIT ;
END ;
- 管理可恢复空间
- 可恢复的空间分配
- 使用可恢复空间分配
- 可恢复的空间分配问题
- 管理表空间中的空间
- 可恢复的安全rm
- 表空间管理,段管理
- ORACLE 表空间管理
- 管理表空间
- 表空间管理A
- DB2表空间管理
- DB2表空间管理
- DB2表空间管理
- 管理UNDO表空间
- 表空间管理
- ORACLE表空间管理
- temp表空间管理
- ORACLE表空间管理
- Visual C++ 2012入门经典(第6版)
- hdu 1798
- Jquery异步提交返回json结果问题
- 格式化SQL语句的网站
- 清除DEV控件 CodeRush的缓存
- 管理可恢复空间
- 如何判断 double/float 变量是否有效 (#IND, #INF)
- UXEDO配置参数详解 远程客户端配置
- GDI+ PNG背景透明窗口 初始化调用一次 必须有layer属性,image*注意赋值
- UL LI结构实现二级导航菜单(HTML+CSS+JS)
- Oracle TimesTen企业级应用实践分享
- 计算机视觉文献中常用名词解释
- eclipse使用ServletActionContext.getRequest总是出错的解決方法
- 《企业安全软件能否免费?》 ——百位中国CIO对免费企业级信息安全软件的态度调查报告