Database 类别下的文章

Pretoria and Ora*Pepi

上一篇文章中介绍了 DUDE, 提到该软件的作者在编写 DUDE 之前曾经搞过两个开源的项目. 这两个项目也都是很有意思的东西,值得介绍一下.

Pretoria 是个专门处理 Oracle indexfile 的工具. 我们知道 Oracle 的 EXP/IMP 工具可以生成 index 文件(import 的时候使用 INDEXFILE 参数),但是这个 indexfile 实在是太难看了。如果文件小的话,还好处理,如果内容很多,相信很多人编辑的时候都会失去耐心。 Pretoria 就是专门对付 indexfile 的工具。

另一个项目是 Ora*PePi (Parallel export Parallel import)

DUL -Data UnLoader

前几天在论坛上看到一位朋友提及一件事情:
闻 Oracle 公司 500 万为某市地税做了一次数据库恢复...据说是用 DUL 做的...
如果事情是真的话,可以从中得到不少有趣的信息:
  • 1 该市地税的信息化有缺陷.至少是对数据的保护意识不够.
  • 2 从 DBA 的角度上说,数据库一定要归档.
  • 3 DUL 这类工具有市场.
DUL (Data UnLoader),是 Oracle 公司的一个 "秘密武器",可以直接从数据文件中读取数据. 收费昂贵. 动辄几万美金.其实互联网上也可以找到一些和 DUL 具备类似功能的工具(都是用 Java 实现的). 其中一个是 [MyDUL](后更名为 AUL ) ,是由 Lou Fangxin (d.c.b.a)研发的一个很棒的工具: DUL 是在没有备份可用或备份太旧的情况下,直接读取数据文件中的数据进行恢复的 超级工具,但要获得 DUL 这个工具并不容易,尤其是支持 9i 或 10g 数据库的最新版本,于是产生了编写MyDU L的想法, 用于将从数据文件中直接读取数据进行转换,保存为格式化文本或 DMP 文件. 可惜的是 d.c.b.a 并没有准确定位到市场,不商业不开源的,耽误了不少好时机.常常是有些网友用的觉得不错,可是总想一顿饭就把作者打发了.也够让人心寒的. 另外一个类似功能的工具是[jDUL/DUDE(Database Unloading by Data Extraction)](http://sourceforge.net/projects/jdul),本来在 [Sourceforge](http://www.sourceforge.com/) 上,后来转移到了 [http://www.ora600.org](http://www.ora600.org/) ,也由原来的开源变成收费的产品了.估计是作者认为 jDUL 奇货可居吧. 作为产品的 DUDE 可以免费抽取上传的文件,作为服务的 DUDE 是要收费的. 在 jDUL/DUDE 当前的站点上,可以看到作者对 jDUL 来历的介绍.在实现了两个开源项目之后,作者把眼光放到了 jDUL 上.目前 jDUL 的版本是 2.0 . 功能要比 MyDUL 多一些.而且,尤为重要的是, DUDE 在安全上也下了很大的功夫,DUDE PROBE 是其解决方案. DUDE PROBE 可以用来自动生成DUDE的配置文件. 在网络上能找到的关于 DUL 说明性的文档并不多,这是非常有用的[两篇](http://www.dbanotes.net/archives/DUL%20HOW%20To.rar) (不用Proxy是不可访问这两个页面的内容的,顺手放到这里. --EOF--

ORA-27038 when create DATABASE

最近怪事真是接连不断.连创建数据库这样简单的事情也要憋住半天--又遇到一个小 Bug. 在 IBM p5 550 上,Oracle 版本 9.2.0.6, 创建数据库,数据文件需要建立在裸设备上,所以建立了符号链接.然后运行脚本,报错:

ORA-00301: error in adding log file
...
ORA-27038: skgfrcre: file exists 

最开始以为裸设备权限问题,但是实在是...没有问题.创建脚本中也指定了 reuse 关键字.

Jonathan Lewis 又开始找 Don Burleson 的麻烦了! Don Burleson 在 Techtarget 发表了一篇 Undocumented secrets for super-sizing your PGA,给出了很多关于 PGA 的 Undocument 的信息,针对这篇文章的一些错误观点,Jonathan 还是使用拿手的"构建例子" .有的时候,看到 Undocument 之类的字样的确会吸引很多爱好者的眼球,可是看到类似 Don 的 pga_max_size – this hidden parameter defaults to 200 megabytes, regardless of the setting for pga_aggregate_target 这样的说法,还是要保持警惕.不能全盘拿来主义.

这次 Jonathan 也不是孤军奋战,和他同盟的是 Tom,呼应 Jonathan 的文章,Tom 写了一篇Getting Credible Information 的 Blog

OCFS2

Oracle宣布发布 OCFS2. OCFS2 正式支持SuSE Linux Exterprise Server 9 (SP2+) 和 RHEL 4 ,都是 Linux Kernel 的2.6 核心,对 2.4 kernel 不支持。OCFS2 比 OCFS 来说是一个大进步。但是高版本居然不兼容低版本,给使用 OCFS 的用户升级带来了很大的难度。

  • Node and architecture local files using Context Dependent Symbolic Links (CDSL)
  • Network based pluggable DLM (distributed lock manager)
  • Improved journaling / node recovery using the Linux Kernel "JBD" (journaled block device) subsystem
  • Improved performance of meta-data operations (space allocation, locking, etc)
    改进了元数据操作的性能
  • Improved data caching / locking (for files such as oracle binaries, libraries, etc)

同样一条SQL ,有的时候 buffer get 会暴增?! Oracle-L 中有人提了一个这样的问题

I have a batch process that executes individual transactions, normally a transaccion e.g. a simple select would take 8-10 buffer gets but in the batch processing it takes 45 buffer gets.

Zhu Chao (Chao_ping,这家伙现在一篇文章都不写,只能从邮件列表里看到他的踪迹) 给了一个解释

the job is processing some very hot blocks. So it always need to reverse back and find the CR block from buffer, so it will generate some more buffer gets for that execution.

如果是因为Hot Block 的原因,那么主要的症状应该是 Wait. 如果这个 SQL 在运行的时候数据已经发生了变化,那么为了维持一致性不可避免的会生成回滚,所以这个解释更为准确一些:

If a query does a consistent get on a block that has been changed since that query began or that had uncommitted changes at the time that that query began, then it is necessary to rollback those changes for read consistency. The consistent changes statistics counts the number changes rolled back. However, most consistent gets do not require any such rollback, and so it is normal for the number of consistent gets to be much greater than the number of consistent changes. This is reflected in the no work - consistent read gets statistic

我们不妨来做个例子.假定我们现在有两个Session,首先在第一个窗口做如下操作

AIX 上影响 Oracle 的参数

其中一个是 maxclient 参数

增强 JFS 文件系统为它的缓冲区高速缓存使用客户机文件,这不受 maxperm 和 minperm 阈值的影响。为了在增强 JFS 文件系统的高速缓存中建立硬性限制,您可以调谐 maxclient 的参数。该参数代表了可用于缓冲区高速缓存的客户机页面的最大值。要更改这个值,可以使用 vmo -o maxclient 命令。maxclient 的值显示为实内存的百分比。

在到达 maxclient 阈值后,LRU 开始取用最近尚未访问过的客户机页面。如果没有足够的客户机页面可以被窃取,LRU 会替换掉其它类型的页。通过减少 maxclient 的值,您可以帮助阻止增强 JFS 文件页的访问不要替换掉工作存储页面,最小化调页空间的页面调度。maxclient 参数也影响 NFS 客户机和压缩的页面。另请注意 maxclient 通常应该设置为一个小于或等于 maxperm 的值,特别是在启用了 strict_maxperm 的情况下

参加 Oracle 的技术日

下午去参加 Oracle 在杭州的技术日.

这一周的事情本来不少,还有几件没完成的.本来不想去了,考虑了好久,还是请了一下午的假.正好借这个下午养养受,静静心.顺便听听 10gR2 的新特性.还真的很凑巧.今天发现10gR2 For Windows 平台已经可以下载了.

我选择的讲座有 10gR2 新特性,SOA ,10gR2 EM 新特性.总体来说,可能有些面向售前人员,技术上的内容偏少.

关于归档

本页包含 Database 类别下的所有文章.

上一类别为 Arch.

Geek 为下一类别.

回到 首页 查看最近发表的文章或者查看所有 归档文章.