2006-12-11

利用分段使用映射为数据库建立HTML

来源: 本站收集整理 作者:佚名 评论 0 条
 

在Oracle数据库中,治理tablespaces通常很难实现从SQL查询得到数据的可视化。一种实现tablespaces可视化且更加轻易治理的方法是建立类似于碎片重组功能(defragmentation utilities)的分段使用映射(block usage maps)。

不需要任何图表或者图形功能,你可以使用简单的由Oracelmodplsql包产生的HTML,而modplsql包可在安装Oracle8i和9i时安装。

这其中也包含着风险,因为这一程序必须由一个DBA帐号来运行,所以DBA帐号必须将使用权限赋予每一个操作计划,而操作计划必须包含在wdbsvr.app文件中。为了保护这一文件,你必须确保这一文件只能被Oracle用户和DBA组查阅。假如你愿意把这一程序编写成一个JSP页或者servlet,你也应该非常小心,以防止外部能够使用DBA帐号。

DBA视不能在一个PL/SQL查询,所以你必须将PL/SQL安装为SYS,然后将使用权限分配给答应运行PL/SQL的帐号:

  

  connect sys/<password>

  @blkmap.sql

  grant execute on blkmap to system;

  connect system/<password>

  create synonym blkmap for sys.blkmap;
  

在这个例子中,我们建立一个名为blkmap包,这一blkmap包具有两个入口点。其中一个是显示tablespaces列表的一个菜单,另一个是实际使用的tablespace分段映射:

  

      create or replace package blkma

  

  as

  procedure ts_menu;

  procedure ts_map(p_name varchar2);

  

  end blkmap;

  

  /

  

  show errors;
 

Tablespace菜单的代码可以是一个与分段映射(block map)页关联的tablespaces列表:

  

  procedure ts_menu

  is

  begin

    htp.p('<html>');

    htp.p('<body bgcolor="white">');

    htp.p('<h2>Tablespaces</h2>');

    htp.p('<ul>');

    for ts in (select tablespace_name from dba_tablespaces) loop

      htp.p('<li><a href="blkmap.ts_map?p_id='||ts.tablespace_name||'">'

        ||ts.tablespace_name||'</a></li>');

    end loop;

    htp.p('</ul>');

    htp.p('</body>');

    htp.p('</html>');

  end ts_menu;
  

对于tablespace映射,可以生成一个tablespace名称,并请求包含tablespace的每一文件的分段映射。


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:介绍 Python 语言  
下一篇:PHP 命令行参数详解及应用
    评论加载中…
共4页: 上一页 1 [2] [3] [4] 下一页
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号