Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks

06 2009 档案

     摘要: 公司目前需要做一个与生产库实时同步的备库,于是做了一些技术选择。基本上来说,最省事的当然就是做个DG,但是对系统硬件、操作系统的要求比较高,不可能再弄台小机搞这玩意。所以只能排除。另外物化视图也是比较方便的方法,但是因为是需要整库备份,很明显是不切实际的。基本上可选的技术也只有高级复制和流复制两种了。流复制的配置比较麻烦,而且应用也不是很成熟,但是功能强大。高级复制虽然要简单一些,但是也只能支持Table级,所以在两者之间还是很困惑,专门找了一些材料对比一下。  阅读全文
posted @ 2009-06-30 22:54 decode360 阅读(651) | 评论 (0)  编辑

     摘要: 来了解一下Linux下对磁盘进行查看和控制的两个命令。这两个命令都比较好用,非常需要的功能,而且参数也不复杂。Linux我不熟悉,基本上都是从网上搜集资料学习,记在博客中,以方便今后汇总查询。好,简单学习一下:  阅读全文
posted @ 2009-06-29 23:01 decode360 阅读(534) | 评论 (0)  编辑

     摘要: Oracle自带的内部包大多数都是经过加密的,比较好奇,了解一下Oracle进行加密的工具。一般都使用wrap工具进行加密,这个wrap的使用语法非常简单,只有输入和输出两个参数,也没有多余的操作。但是也没有详细的错误提示,所以很多问题出现后很难查到原因。简单看看,记录一下这个工具的用法,以便今后查询。  阅读全文
posted @ 2009-06-28 21:09 decode360 阅读(1910) | 评论 (0)  编辑

     摘要: 最近在配置Stream时,发现必须要把GLOBAL_NAMES参数的指设置为TRUE,具体原因为何不知。但是发现在设置了该参数之后,数据库每天的物化视图刷新出现了问题。之后查明原因,是DBLINK出现了问题。随后研究了一下GLOBAL_NAMES这个参数,发现其实很有意思的事情是:GLOBAL_NAMES参数并不是用来控制GLOBAL_NAME的,而是用来限制DBLINK的使用。下面简单了解一下这个参数:  阅读全文
posted @ 2009-06-27 20:49 decode360 阅读(620) | 评论 (0)  编辑

     摘要: 在yangtingkun博客上看到很早以前的一篇文章,是用一个type来自定义聚集函数的,觉得非常神奇,想想用普通的函数定义还真的是不能满足需求,只能用Oracle的说明来做。开始死活看不懂这个type定义的原理,发现参数传入传出的好麻烦,后来在网上找了Oracle的文档,发现这是Oracle规定的固定格式,而且函数名也是确定的,貌似这样才能依次调用。下面简单了解一下:  阅读全文
posted @ 2009-06-26 21:43 decode360 阅读(545) | 评论 (0)  编辑

     摘要: Archivelog并不能直接得从OS层直接物理删除,因为archivelog的相关信息是记录在controlfile中的,当物理删除后不会改变controlfile的设置。并且在查询相关的动态视图(例如v$archived_log)时,该部分日志仍然标注为存在。也就是说Oracle并不认为这些日志被删除了,所以在删除archivelog的时候,需要我们在其他地方做一些设置。  阅读全文
posted @ 2009-06-25 23:03 decode360 阅读(5101) | 评论 (0)  编辑

     摘要: 在使用Streams流复制的过程中,遇到各种错误的时候很常见。在Oracle的文档(Oracle? Streams Concepts and Administration 10g Release 2)上提供了一个异常检测方案。即可以通过Oracle自己的数据字典,来确定具体的传输内容,以便作出相应的调整  阅读全文
posted @ 2009-06-24 21:53 decode360 阅读(396) | 评论 (0)  编辑

     摘要: 今天在关闭数据库的时候,shutdown immediate之后系统就hang住了,其他进程也连不上库。查看了alert.log日志,发现大量出现“PMON failed to acquire latch, see PMON dump”这个错误,到网上查了一下,据说是个bug,在一篇博文上找到了解决的办法:  阅读全文
posted @ 2009-06-23 21:42 decode360 阅读(4554) | 评论 (0)  编辑

     摘要: 入行太晚,没接触过早期的Oracle版本,所以一直都是用PLSQL Developer做数据的exp和imp。现在要写定制脚本了才发现,自己居然对命令行模式下的这两个命令很不了解,于是只要再来学一遍基础。了解了一遍之后发现这两个工具的有些细节还是很值得注意一下的,下面看一下详细的用法:  阅读全文
posted @ 2009-06-22 20:32 decode360 阅读(2112) | 评论 (0)  编辑

     摘要: 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的用法:  阅读全文
posted @ 2009-06-21 23:11 decode360 阅读(41845) | 评论 (6)  编辑

     摘要: 最近通过VMware硬盘的直接复制来创建结点,需要修改DBID和DBNAME(保证数据库环境可用),找了找可以用来直接修改DBNAME的方法,还真有,原来Oracle本身就自带了这个功能的工具(NID),用了一下发现使用还是比较方便的,但是更改之后问题多多,使用的最终结论还是:不到万不得已不推荐使用,因为DBID涉及到的关联很多,修改SID后会引发很多不可预知的错误,很多参数都任然沿用之间的%SID%,如果没有非常特殊的要求,还是保留datafile后,删除重建。讲一下具体的操作过程:  阅读全文
posted @ 2009-06-20 23:19 decode360 阅读(776) | 评论 (0)  编辑

     摘要: 一直想在手工ETL的同时自己做一个简单的元数据管理库。到网上搜索了一下,有前辈说可以参考开源项目Kettle的源代码,于是就到网上下了一个用了一下,发现过程比较简洁,而且在很多地方都做得比较人性化,比如支持自己编写SQL、Java Script等。所以特地打算研究一下,发现网上已经有很多教程了,转一篇过来看看。改天有时间再研究一下后台的代码。不过对于元数据的记录信息似乎少了点,不过鉴于它是完全免费使用的,也没什么可说的了。下面是转载文:  阅读全文
posted @ 2009-06-19 22:18 decode360 阅读(3519) | 评论 (2)  编辑

     摘要: 很多人都遇到过这样的问题:源数据库里的表没有时间戳,或者有时间戳的字段但没有严格执行,而历史数据又可能会经常性得被修改。这对于ETL数据抽取来说将是一个很大的问题,特别是对于不能动源库的情况下,很难解决这个问题。最近又因为这个问题,考虑了很久,最后打算在MView同步数据的基础上,通过Trigger来手动增加时间戳。  阅读全文
posted @ 2009-06-18 21:54 decode360 阅读(443) | 评论 (0)  编辑

     摘要: 因为最近研究字符集,所以对于Oracle内部的一些存储模式产生了一些兴趣,据说DUMP这个函数的功能非常强大,所以专门研究了一下。当然研究的都比较初级,只是了解一下。具体哪里可以用到暂时还不知道 -_-||| ,另外对字符集的转换等一些函数也了解一下:  阅读全文
posted @ 2009-06-17 23:08 decode360 阅读(946) | 评论 (0)  编辑

     摘要: 对字符集的认识一直都处于一知半解的状态,目前打算要做不同字符集的库之间数据传导,所以专门研究了一下数据库的字符集问题。转了一篇很详细的论文来,论文就是不一样,讲得非常细致全面,是很好的字符集入门材料。下面是正文:  阅读全文
posted @ 2009-06-16 22:31 decode360 阅读(436) | 评论 (0)  编辑

     摘要: 从Oracle9i开始,Oracle引入了CDC技术来实现对变化数据的捕获。在Oracle9i中CDC只支持同步的数据捕获(synchronous change capture),源数据的变化被实时的捕获,捕获的过程和源数据是同一个事务。它的实现需要源数据支持trigger,所以这种同步的技术会给数据源带来性能的问题。这是CDC在Oracle9i的一个缺陷(在Oracle10g中已经改进)。  阅读全文
posted @ 2009-06-15 19:49 decode360 阅读(1529) | 评论 (0)  编辑

     摘要: top命令和ps命令的基本作用是相同的,显示系统当前的进程和其它状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如在前台执行该命令,它将独占前台,直到用户终止该程序为止。  阅读全文
posted @ 2009-06-14 21:51 decode360 阅读(1170) | 评论 (0)  编辑

     摘要: RDA是Remote Diagnostic Agent 的简称,是Oracle用来收集、分析数据库的工具,运行该工具不会改变系统的任何参数,RDA收集的相关数据非常全面,可以简化我们日常监控、分析数据库的工作。  阅读全文
posted @ 2009-06-13 21:08 decode360 阅读(1675) | 评论 (0)  编辑

     摘要: 前段时间看到一段SQL,感觉实现的逻辑非常绕,而且看了之后想了很久都没有想明白到底是怎么回事,再一直想到我都能记住这段SQL的具体细节了,放到博客上研究一下。  阅读全文
posted @ 2009-06-12 21:36 decode360 阅读(2625) | 评论 (0)  编辑

     摘要: 最近想在Oracle中设置一个触发器,每天执行数据检测脚本之后,如果发现错误数据就自动发送邮件到我邮箱里,于是研究了一下在Oracle中发送邮件的方法。据说10g里可以使用UTL_MAIL包来简单得发送邮件了,但是觉得通用性不高,万一哪天换成9i了就要重写,于是还是决定用UTL_SMTP包来做。  阅读全文
posted @ 2009-06-11 23:03 decode360 阅读(2244) | 评论 (0)  编辑

     摘要: 写在前面:其实dump操作是很简单的事情,但是对于像我这样的新手可能还是会有很多搞不明白的事情,所以打算简单说明一下:首先大家所说的把*** dump出来的意思,就是用户自己对进程中的一些事件进行trace,然后会在udump文件目录下产生trace记录,可以查看到当时内存的情况。  阅读全文
posted @ 2009-06-10 22:39 decode360 阅读(914) | 评论 (0)  编辑

     摘要: 最近对调优比较感兴趣,接着来学习一下DBMS_TRACE包的用法。要注意的是这个包是为了用来TRACE PLSQL的,只能针对PLSQL使用。  阅读全文
posted @ 2009-06-09 19:55 decode360 阅读(1560) | 评论 (0)  编辑

     摘要: 一直用explain plan来查执行计划,所以想了解一下DBMS_XPLAN包的构成。  阅读全文
posted @ 2009-06-08 21:32 decode360 阅读(1208) | 评论 (0)  编辑

     摘要: dbms_rowid包可以通过表中各条记录的唯一rowid号,来查看这条记录的信息,例如所属object、block等等。这个包很简单,但是对于确定当前行的信息值还是比较有用的。而dbms_rowid包的function可以在SQL中直接使用,先简单得举几个例子。  阅读全文
posted @ 2009-06-07 22:19 decode360 阅读(1168) | 评论 (0)  编辑

     摘要: 虽然一直在使用DBMS_OUTPUT.PUT_LINE,但是说实话没有仔细研究过DBMS_OUTPUT包中的其他方法和函数的用法,所以这次特地来研究一下。先简单的讲解一下这个包的所有procedure的含义及作用  阅读全文
posted @ 2009-06-06 20:55 decode360 阅读(2400) | 评论 (2)  编辑

     摘要: 现在我们把之前这些用法结合起来详细的分析一下目前网上发布的一些批处理,看看他们是怎么运作的。这里我将列举三个例子来详细分析,为了保持程序的完整我的注释会加在/*后面。  阅读全文
posted @ 2009-06-05 22:06 decode360 阅读(260) | 评论 (0)  编辑

     摘要: 在批处理中适当的引用变量将会使你所编制的程序应用面更广。批处理每次能处理的变量从%0~%9共10个。其中%0默认给批处理的文件名使用。除非在使用SHIFT命令后%0才能被%1所替代。引用shift命令的例子如果把%1前面多加上一个%0那么结果如下  阅读全文
posted @ 2009-06-04 21:16 decode360 阅读(295) | 评论 (0)  编辑

     摘要: 在命令行下有些符号是不允许使用的,但有些符号却有着特殊的意义。  阅读全文
posted @ 2009-06-03 21:53 decode360 阅读(415) | 评论 (0)  编辑

     摘要: 批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。  阅读全文
posted @ 2009-06-02 22:25 decode360 阅读(330) | 评论 (0)  编辑

     摘要: 最近在机子上装了一些软件之后,机子出了点问题,所有的exe工具文件(甚至包括一些cmd下的命令),都无法直接打开执行了,必须要输全整个文件名,例如 sqlplus.exe 。在问了一圈同事之后(不包括我们的系统管理员),居然还是没有一个准确的答案。最后询问了系统管理员之后,发现只是因为简单的环境变量设置问题,真是感叹大家对操作系统的白痴了 -_-|||  阅读全文
posted @ 2009-06-01 20:33 decode360 阅读(4519) | 评论 (0)  编辑