赛迪网 > IT技术 数据库 > DB2开发者园地
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

教你轻松掌握DB2 9.5的数据库内存保护

发布时间:2008.03.20 04:57     来源:赛迪网    作者:Alice

【赛迪网-IT技术报道】在DB2 9.5版本中,数据库引擎由基于过程模式转变为线程模式,这将意味着整个数据库引擎都在一个地址空间下(任何代码段都可以访问任何全局变量)。这自然是有利也有弊。其中一个有利的方面是线程比过程更“轻”,这表示DB2的性能更好。有人做过测试显示DB2 9.5的性能在负荷运行情况下比相同状态下的DB2 9.1提升了2%到5%。

而不利的方面是,在任何与缓冲池无关的任何db2代码路径中的任何db2错误都有可能会破坏数据页。此外,和db2共享相同地址空间的非保护模式下的用户自定义函数(unfenced UDF)也有可能会破坏内存页。而后,这些不正确数据页就会在毫不察觉的情况下被写入磁盘里,而你很可能永远都不会知道这些数据已经出现了不一致。线程模式还会产生与非保护模式下的用户自定义函数相关的安全问题,因为线程模式在潜在情况下会允许恶意用户代码在没有得到授权的情况下读写数据页。如果在保护(fensed)模式下运行用户自定义函数,这些问题就都不成问题,用户代码会通过一个子过程执行并且会通过IPC与DB2进行交流,唯一的问题就是这样做比在非保护模式下运行要慢很多。

在IBM的Power6 CPU上市的时候,也带来了一项用于内存保护的新技术就是用户级别存储键技术。这里不是说的内核级别存储键,这个已经存在了一段时间,而用户级别的存储键则是个新东西。存储键能够使应用程序锁定内存页,防止对其进行任何形式的读写组合操作。

必须支持CPU上的存储键是因为内存访问的速度非常之快(达到纳秒级),在软件水平是无法做到的。存储键使在用户空间执行的DB2引擎能够防止代码段对缓冲池数据页进行无授权的读写操作。当然,如果你是在AIX上运行Power6处理器,那这只是其中一个可选的保护措施。启动该功能需要5%到6%的性能开销。用下面的语句启动该功能:

以下是引用片段:

db2set DB2_MEMORY_PROTECT=yes 
RESTART YOUR INSTANCE

你需要运行AIX 5.3 ML6(或更高版本)或AIX 6.1版操作系统。

假如你还在AIX上开发c或c++代码,而且并不适用Java的话,你可以选择使用ukey_protect( address, size, UKEY_PRIVATE)函数来协助保护数据内存结构。

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 知识亦有成熟过程 隐性知识该如何管理?
· 从平庸中脱颖而出:CIO成功的八大诀窍
· 网店新规能否继续实施 绿色数据中心绿在何处
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统