Archive for February, 2009
How to use query in EXPDP
在datapump export中Oracle提供了query参数,允许只导出满足query条件的记录。
在Oracle 10gR2的官方文档中,提到的语法是:
QUERY = [schema.][table_name:] query_clause
并且给出了例子:
QUERY=employees:’”WHERE department_id > 10 AND salary > 10000″‘
但是实际上这个例子是错误的,按照例子中的语法,则会碰到ORA-06502错误。
D:\Temp>type emp_query.par QUERY=emp:'"WHERE rownum<4"' NOLOGFILE=y DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp1.dmp D:\Temp>expdp scott/tiger parfile=emp_query.par Export: Release 11.1.0.6.0 - Production on Thursday, 26 February, 2009 18:07:24 Copyright (c) 2003, 2007, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, Oracle Label Security, OLAP, Oracle Database Vault and Real Application Testing options Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** parfile=emp_query.par Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 192 KB Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA . . exported "SCOTT"."DEPT" 5.937 KB 4 rows ORA-31693: Table data object "SCOTT"."EMP" failed to load/unload and is being skipped due to error: ORA-06502: PL/SQL: numeric or value error ORA-31605: the following was returned from LpxXSLSetTextVar in routine kuxslSetParam: LPX-314: an internal failure occurred . . exported "SCOTT"."SALGRADE" 5.867 KB 5 rows . . exported "SCOTT"."BONUS" 0 KB 0 rows Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is: D:\ORACLE\ADMIN\ORCL11G\DPDUMP\EXP1.DMP Job "SCOTT"."SYS_EXPORT_SCHEMA_01" completed with 1 error(s) at 18:08:04
这份文档错误在Oracle 11gR1的官方文档中已经修正了。正确的语法,是去除掉例子中query字串的前后单引号:QUERY=emp:”WHERE rownum<4"
D:\Temp>type emp_query.par QUERY=emp:"WHERE rownum<4" NOLOGFILE=y DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp1.dmp D:\Temp>expdp scott/tiger parfile=emp_query.par reuse_dumpfiles=y Export: Release 11.1.0.6.0 - Production on Thursday, 26 February, 2009 18:16:59 Copyright (c) 2003, 2007, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, Oracle Label Security, OLAP, Oracle Database Vault and Real Application Testing options Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** parfile=emp_query.par reuse_dumpfiles=y Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 192 KB Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA . . exported "SCOTT"."DEPT" 5.937 KB 4 rows . . exported "SCOTT"."EMP" 8.125 KB 3 rows . . exported "SCOTT"."SALGRADE" 5.867 KB 5 rows . . exported "SCOTT"."BONUS" 0 KB 0 rows Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is: D:\ORACLE\ADMIN\ORCL11G\DPDUMP\EXP1.DMP Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at 18:17:32
更详细的Query用法可以参看Metalink Note:277010.1。
Cheater!
今天收到骗子发来的中奖信息邮件,闲来无事,按照邮件中提供的地址登录测试一下,主要目的是看看到哪一步需要我付款过去,也顺便看看现在骗子们的技术有没有长进。
《热血三国》是现在非常火爆的网页游戏,用flash打造,在网页上实现了跟客户端几乎相当的游戏表现。骗子的邮件就是假借这个游戏的名头。
尊敬的玩家!
您好:恭喜您被热血三国系统随机抽选为《喜迎新服.双重礼品花落谁家》活动的获奖者,详情!请您登陆活动地址 http://4399.leeeu.cn/ 进入查阅《三国新闻》下面点击(喜迎新服.双重礼品花落谁家)进行查询.您的幸运码为:1988 并领取幸运大礼包.
打开这个leeeu的网站,几乎就是一个《热血三国》的官方站点样式,首页包含了大量内容,包括服务器状态,玩家攻略,游戏资料。当然,与官方站点不同的是,在显眼的地方放置着中奖活动的链接 – 02-20喜迎新服.双重礼品花落谁家。
点进去,一堆活动的介绍。(谁能告诉我扬言是《4399热血三国真情回报现场》的那两张照片到底是什么人?)
为感谢广大玩家一直以来对本公司游戏的支持与厚爱,广州浩动网络有限公司(热血三国)决定与三星集团公司携手举办一项抽奖活动。
由于活动的奖金和奖品有限,所以将自动抽出五名幸运玩家,每人获得惊喜奖金 现金奖(38800)元人民币 (RMB) 以及 『三星Q40时尚』笔记本一部。(支持全国联保 价值¥19988人民币 RMB ),活动结束后,将从所有五位幸运玩家中抽出一名最终特等奖三星幸运玩家,奖励现金价值13万6千元人民币 (RMB)。
喔~~最幸运的玩家可以获得总价值将近20万的奖励,在现在经济危机的时代,奖金和奖品还真是丰厚呢。
输入幸运号码1988,点击“确定兑奖”的按钮,一个假模假式的进度条从1跑到100,然后弹出第一个对话框,说“恭喜您,你通过验证鸟”云云,让人崩溃的是点完这个对话框的OK,居然又弹出第二个对话框,说“再次恭喜您,您获得了。。。”,我C,算你狠。当然,我可以理解,人家是精通心理学的,人家得在这个地方再诱惑你一下,你看看,你中了这么大的奖哦,你赶紧继续下去吧,不过,现在都AJAX的年代了哦,您丫就不能费点儿心做个页面,而不要偷懒到只用对话框这种形式吗?
好吧,我们继续,又是一个恭喜的页面,这个页面厉害啦有没有(要用卖八箭八心八钻金表的候总的声音念)。
该页面包括:
1. 内嵌了一个奖品中三星笔记本的介绍视频
2. 北京公证处的公证链接(可以点进去的哦,居然做了一个公证处的网页呢,像模像样的)
3. 颁奖现场的照片(如果不是借别人的现场而是自己做了一个现场拍的照片,那我就很佩服了)
4. 税务登记的链接(点进去是好冻公司的税务登记证照片)
5. 公证员的照片和身份证号码(有朋友愿意人肉一下这两位的真实身份吗?)
再次点这个页面中的“填写资料”,进入了资料填写页面,随便胡填一气,所有输入框都是xxxx也没关系,没有任何检查的,在银行卡号后面有个备注,“注:所填的卡是转奖金所用!”,瞅瞅这用语多么贴近生活,还有个感叹号呢!骗子是要安慰你告诉你,我们不是要从你这个卡里取钱,我们是要存钱给你的,安啦。
填完了确定,又一个假模假式的进度条从1跑到100,紧接着tmd又连续弹出两个对话框,我怀疑设计这个站点的人有偶数崇拜症。。。
您赶着去投胎啊,填完资料两个小时就要给你汇款,否则就没机会了,合着我没网上银行的话还得旷工出去给你汇款不成?
第二个对话框,您那400的免费电话根本就打不通嘛,这服务态度有待提高哦。
再次点完OK,一个华丽的页面切换(90年代刚兴起互联网时候那种百叶窗啦,斜飞啦那样的特效),到了最后的页面了,终于开始要收钱了。
恭喜您,您的资料已成功保存.浩动有限公司《热血三国》游戏已经确认您是本次活动的幸运玩家,您将获得三星公司送出的奖金¥38800元 RMB以及三星公司赞助的三星Q40时尚笔记本电脑一部(支持全国联保 价值¥19988元 RMB).两项都属于您的. 请您按照以下程式到银行去交纳您领取所要交纳的费用!
注明:本次活动的(飞机特快专递邮寄费用.奖品包装费和工本费)由三星公司承担.奖品全新.绝无质量问题.但1280元保证金由获奖玩家承担.活动自愿为主.
顶你个肺啊,这段字干嘛要不停地变化颜色闪呀闪呀的,老爷爷老奶奶的话,您还不把人家闪晕了?
人家又说了,这1280元不是我们要的,只是押金哦,你收到奖品之后我们就返还哦。
按照公证处规定:《 热血三国》双重礼包获奖用户需交纳1280元的公证费用,注:这是防止您的笔记本电脑在运途中被他人调包.遗失.损坏.所买的保障押金 .交纳1280元押金是可以给您返还的,交纳押金是为了确保奖品在邮寄过程中如出现意外时能得到赔偿。如您能收到完好的奖品时我们将会为您返还1280元押金到 您指定的银行帐户里.这是对您的负责.也是对我方公司的承诺.
狗屁不通的理由,我完全没看出这个解释的逻辑性何在。公证处管你奖品会不会损坏?到底是公证费用还是买保障的押金?邮寄过程出现意外有赔偿需要付押金吗?那么多次EMS我怎么都没交过押金呢?
无脑人的开户行信息:工商银行 6222 0222 0100 5381 977 林芳香。(我一直没有明白,知道了开户行信息,警察叔叔们也没有办法逮到犯罪人吗?懒得去逮?还是必须得先有报案才有出警?)
最经典的是该页面结尾处的“疑难解答”。
问:不是有奖金吗?为什么款项不能从奖金扣除?
答:因为此次活动的奖项是由三星赞助商赞助的奖项,之所以必须收取1280元作为此活动的押金手续费用。若是奖项是由本公司赞助的绝不会收取用户的任何一分钱。因为公司向公证处申报的奖金是38800元,那么给您送到的也必须是38800元整,如果扣除之后将不是38800元整,那本公司将会受到公证处的法律采制,所以无法从奖金中扣除.
哦,三星赞助的,所以必须收押金,哦,在公证处申报的是38800,如果给我少了公证处就对你们法律制裁了,唉,真是难为你们了。辛苦鸟。
这页面还有个领奖密码要输入,这是在汇了押金之后才有的,我是没办法拿到了,哪位有心情继续测试一下?
祝2009年所有的骗子们玩的开心,白开心。
写完以后,看看,发现我自己很无聊唉 囧
Delete Expired VS. Delete Obsolete
今天有朋友问,到底RMAN里面的命令delete expired和delete obsolete有什么区别?
先来看一下官方文档中的解释。via Backup and Recovery User Guide
delete exipired
If you run CROSSCHECK, and if RMAN cannot locate the files, then it updates their records in the RMAN repository to EXPIRED status. You can then use the DELETE EXPIRED command to remove records of expired backups and copies from the RMAN repository.
delete obsolete
The RMAN DELETE command supports an OBSOLETE option, which deletes backups that are no longer needed to satisfy specified recoverability requirements. You can delete files obsolete according to the configured default retention policy, or another retention policy that you specify as an option to the DELETE OBSOLETE command. As with other forms of the DELETE command, the files deleted are removed from backup media, deleted from the recovery catalog, and marked as DELETED in the control file.
delete expired删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了的信息,删除的只是RMAN资料库中的记录;delete obsolete则删除旧于备份保留策略定义的备份数据同时也更新RMAN资料库以及控制文件。
那么再形象一点儿解释的话,就是“在不在”和“要不要”的区别。expired是不在了,obsolete是不要了。
不在的并不一定是不需要的。
不需要的也不一定就不在了。
外一句:数据库管理的时候,痛苦的是不需要的还在,还占据着资源;比这更痛苦的是,需要的已经不在了,想恢复却找不到备份集。
![Chanel [K]](http://www.dbform.com/wp-content/chanelk.png)

