关于Change Data Capture(一)
一、概述
CDC(Change Data Capture)是oracle在数据库级别实现的增量抽取解决方案。在一般的ETL过程中,对于增量抽取,无非是在数据上加时间截,全记录比对,关键字段比对,日志分析抽取等几种方法,要么需要修改原表结构,要么需要大量的算法,要么借助第三方的工具实现。Oracle从9i开始引入的CDC特性,使得有机会在数据库层面上直接实现增量抽取功能,在性能方面由于和数据库引擎的直接集成,比第三方工具应该具有一定的优势。
CDC有两个模式:同步和异步。两种模式的实现机制是截然不同的。同步CDC主要是采用触发器记录新增数据,基本能够做到实时增量抽取。而异步CDC则是通过分析已经commit的日志记录来得到增量数据信息,有一定的时间延迟,并且提供了到Oracle Streams的接口。同步CDC在企业版或者标准版中都可以使用,异步CDC则只包含在企业版中。注意CDC在9i和10g中有了比较大的改变,异步CDC主要采用了和Streams相同的技术。
CDC中将系统分为两个角色:发布者和订阅者。发布者主要负责捕获增量数据,订阅者则将增量数据传递给实际应用。这些任务都可以通过oracle提供的PL/SQL包实现。
[继续阅读全文]
暂住证?居住证?身份证?
新浪新闻:深圳年底前将全面推行居住证制度。
深圳市公安局副局长、新闻发言人申少保说,推行居住证主要目的是让有证的人更加方便,让没证的人寸步难行。如果一个人一直找不到工作,就应该离开深圳,因为没有正当收入来源,他在深圳的生活、安全等各方面都可能有问题。这位负责人表示,将来没有居住证,在深圳就属于一种非法滞留状态,要严格管理。
上海和北京早就已经实行居住证制度了,现在深圳依葫芦画瓢,似乎也无可指责,应该乖乖的接受吧。即使你有着合法的中国公民身份,有着合法的中华人民共和国身份证,但是你没有“合法”的某市居住证或者暂住证,你在这里就是“非法滞留”,只是不知道这个“非法”,非的是哪个法,这个法有没有经过合法的立法程序?
曾经的“孙志刚”,让人把目光盯上了暂住证,现在暂住证渐渐的要变成历史了,因为聪明的人找到了一个新名词:居住证,把我们这些到处流窜的人的身份从“暂住”提升到了“居住”,这是有中国特色的历史性的进步啊。北京上海深圳既然开始,广州自然也该迎头赶上,其他的城市们,也不能拖了后腿啊。
据市公安局有关人士介始,与暂住证相比,居住证有两大特点:一是信息量大,居住证内存的信息除包含原暂住证所有信息外,还有持证人的社保、教育、医院甚至计生等个人资料信息。另外,居住证信息后续空间宽广,持证人的住址、工作单位、婚否等信息如有变化,居住证可及时更改,具有较强的跟踪性和灵活性。
另外,该人士说,一个人终生只有一个居住证号、一个档案。离开深圳号码可以休眠;重新进入深圳,号码可以激活。从这个意义上说,居住证有些类似于国外“社会安全号码”。
时代在进步,科技在进步,暂住证与时俱进,升级成居住证,功能更多,安全性更高,bug更少,自然的,成本也更高了。不知道深圳的居住证将要收取几块钱的工本费,可以肯定的是要比暂住证“成本高”,如果学习上海,还要同时做一次学历验证,这成本就更高了,要是年限也和上海一样一年需要重新办一次,以深圳的外来人口数量,这成本可就不是小数目了。
一些关于深圳人口的数据:
根椐公安部门的统计资料,深圳外来人员有1055多万人,其中约有500万左右的人是处于流动状态的流动人口,另有500多万人是在深圳生活、工作多年,有稳定职业和固定住所的暂住人口,而深圳的户籍人口只有187万。
居住证这么多功能,又能社保,又能教育,又能医疗,听起来多么美好。而本来最应该有这些功能的身份证,反倒被冷落了,除了证明你还是这个人以外,啥附加功能也不能提供,看来还真得要考虑迎娶居住证过门了,不然以后寸步难行。
关于Oracle Companion CD
Oracle10g数据库的安装程序只需要一张光盘,而不是像9i一样有三张光盘。只一张光盘只包括了核心的数据库功能,还有一些辅助功能则包含在一张叫做Companion CD的光盘中,在Oracle官方网站上也提供单独下载,目前已经有windows(说为for vista的,其实xp等其他windows32位系统也是可用的)平台的10.2.0.3可以下载到:http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10203vista.html
Companion CD解压后大概660M,主要包括三部分内容:
Processes参数设置过小导致错误
如果初始化参数processes设置过小,新的连接请求将无法接入,而一些backgroup process也将出现错误,比如新的job queue process将无法创建。
alertSID.log中可以发现类似下面的错误记录:
Thu Jul 05 19:58:37 2007
Process J000 died, see its trace file
Thu Jul 05 19:58:37 2007
kkjcre1p: unable to spawn jobq slave process
Thu Jul 05 19:58:37 2007
Errors in file g:\database\admin\XXX\bdump\xxx_cjq0_2336.trc:Thu Jul 05 20:00:56 2007
Process m001 died, see its trace file
Thu Jul 05 20:00:56 2007
ksvcreate: Process(m001) creation failed
我在Oracle10.2.0.3的测试中,发现如果当前系统中的process数目已经达到初始化参数processes-1以后,新的sqlplus连接将报告连接到空闲实例:
E:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 - Production on Fri Jul 6 09:53:48 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
@>conn / as sysdba
Connected to an idle instance.