美文网首页我爱编程
Oracle 邮件定时发送表空间数据文件信息

Oracle 邮件定时发送表空间数据文件信息

作者: Kahn | 来源:发表于2017-02-22 16:48 被阅读0次

查询数据文件信息

-- 查看数据文件信息
select
b.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024  已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5)  利用率
from dba_free_space a
right join dba_data_files b
on a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name

配置邮件发送

  1. 设置
    参考 Oracle 10G中轻松发送email -- UTL_MAIL
  2. 测试邮件发送
begin
 utl_mail.send(sender=>'oracle@example.com',
               recipients=>'dba@example.com',
               subject=>'this is mail subject',
               message=>'this is mailmessage');
end;
/

pl/sql程序

declare
   boyer_date     number         := 0;
   lv_subject     VARCHAR2(200)  := 'Oracle datafiles info for ';
   lv_sender      VARCHAR2(200)  := 'oracle@example.com';
   lv_recipients  VARCHAR2(200)  := 'dba@example.com';
   lv_priority    PLS_INTEGER    := NULL;           -- Configurable
   lv_last        BOOLEAN        := FALSE;
   lv_count       NUMBER         := 0;
   lv_message     VARCHAR2(32000):= 'FileName, TablespaceName, Size, Used, % Used'||chr(13);
   CURSOR cur_query
   IS
/* Insert your query here */
  select
    b.file_name a,
    b.tablespace_name b,
    b.bytes/1024/1024 c,
    (b.bytes-sum(nvl(a.bytes,0)))/1024/1024  d,
    substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5)  e
    from dba_free_space a
    right join dba_data_files b
    on a.file_id=b.file_id
    group by b.tablespace_name,b.file_name,b.bytes
    order by b.tablespace_name;

BEGIN
/* The following will get today's date */
select TO_CHAR(CURRENT_DATE, 'YYYYMMDD') into boyer_date FROM dual;
lv_subject       := lv_subject || boyer_date;
FOR rec IN cur_query
LOOP
  /* Depending on the number of columns being returned in the query, the lv_message could be quite large */
  lv_message := lv_message || rec.a||','||rec.b||','||rec.c||','||rec.d||','||rec.e||chr(13); 
END LOOP;

UTL_MAIL.send_attach_varchar2(
        sender          => lv_sender,
        recipients      => lv_recipients,
        subject         => lv_subject,
        message         => 'Here is the spreadsheet for ' || boyer_date,
        attachment      => lv_message,
        att_filename    => 'data_' || boyer_date || '.csv'
    );
END;
/ 
SHOW ERRORS

定时发送

todo

ref

  1. Oracle 10G中轻松发送email -- UTL_MAIL
  2. How to Send Email Attachments with Oracle

相关文章

  • Oracle 邮件定时发送表空间数据文件信息

    查询数据文件信息 配置邮件发送 设置参考 Oracle 10G中轻松发送email -- UTL_MAIL 测试邮...

  • oracle非系统表空间移动

    环境 centos7 oracle11 1.查看要改变的表空间的数据文件信息 EXAMPLE为要移动的表空间名se...

  • Oracle和Mysql的区别

    Oracle中的永久表空间其实就是oracle里面的数据文件 创建完永久表空间之后,创建用户,用户构建好之后,可以...

  • Oracle的数据存储结构

    Oracle的数据存储结构 表空间(tablespace)--Oracle中最大的逻辑存储单位 数据文件(data...

  • 北京纬创

    1、Oracle常见表空间及其作用 system表空间:含数据字典信息sysaux表空间:存储各种oracle应用...

  • Oracle导入数据库

    先创建用户 oracle数据检查各个表空间的路劲及其使用率 重新给某个表空间扩容 增加新的数据文件

  • Oracle | 表空间、临时表空间、数据文件

    一、表空间和临时表空间 二、表空间和数据文件 三、维护表空间 1. 创建表空间 2. 创建临时表空间 3. 向表空...

  • oracle:tablespace schema block e

    oracle中存储的层次结构总结如下:数据库由一个或多个表空间组成 表空间由一个或多个数据文件组成,一个表空间包含...

  • 增加ORACLE表空间操作

    查询用户对应的表空间,我们可以看到针对不同的数据库用户Oracle 查询用户的对应的数据文件,以及数据文件大小 用...

  • oracle中的表空间以及和表空间有关的操作

    oracle中表空间 表空间是oracle对物理数据库上相关数据文件的逻辑映射。一个数据库逻辑上被划分成一个或若干...

网友评论

    本文标题:Oracle 邮件定时发送表空间数据文件信息

    本文链接:https://www.haomeiwen.com/subject/pkjmwttx.html