eygle.com   eygle.com
eygle.com  
 
本站推荐: DBA的新年及圣诞礼物-《深入解析Oracle》
Today | 03/17 | 03/16 | 03/15 | 03/14 | 03/13 | 03/12 | 03/11 | 03/10 | 03/09 | 03/08
 123
 123

  2010-03-18 Thu

17:56 Google推出全新站长验证功能 (3409 Bytes) » Google 黑板报 -- Google 中国的博客网志

原文:Sharing the verification love
转载自:谷歌中文网站管理员博客
发布时间:2010年3月2日,星期二,下午4:47
网站站长级别:所有

标签:Google站长工具

任何事情,只要能与朋友分享就会变得分外有趣!我们的“网站站长工具”里的网站验证页面添加了全新功能,使您能够更方便地将朋友验证为网站站长之一。

过去,如果有一个以上的用户需要被验证成为网站站长,那么所有这些用户都需要通过元标记或HTML文件验证程序。某些情况下,这可能没有什么大不了;但很多时候,却会为用户带来极大的不便。比如,当有20个人需要验证成为网站站长呢?添加20个元标记或HTML文件将耗费大量时间。现在,我们推出了全新的验证授权功能,使新站长验证变得易如反掌。



一旦您通过验证并成为网站站长,您就可以浏览“验证详细信息”页面(在网站站长工具验证页面上有相关链接)。该页面会显示网站的信息以及其他通过验证的站长列表。在站长列表底部,您会看到“添加用户……”按钮。点击该按钮,输入用户的电子邮件地址,该用户即刻就能通过验证,成为网站的站长。您也可以随时点击“详细信息”页面上用户电子邮件地址旁的“取消验证” 按钮移除用户。

在使用这一功能时,您需要注意以下事项:首先,每个网站至少要有一个通过直接方式(通过元标记或HTML文件)获得验证的站长。如果所有通过直接方式完成验证的站长被取消验证,其授权的站长也将被取消。第二,您只能授权拥有Google账户的用户为站长。最后,请记住,您授权的所有站长都拥有与您一样的权限。他们可以授权更多的站长,提交URL移除请求并在网站站长工具中管理网站链接。因此,请仅授权您信任的用户为站长!

如果您的网站需要验证多个用户为站长,那么希望这篇文章能为您带来方便。最后,如果您有任何疑问,欢迎您随时访问我们的网站管理员帮助论坛。
15:07 我眼中的钱谦益和柳如是 (7818 Bytes) » 木木:木有书读

周末去常熟,特地走访了钱谦益和柳如是两位古人墓。

真实的柳如是,如果活在现代,基本是一个有追求有想法的女文青,当然,也可以叫作女愤青。相貌清秀,个子不高,和李宇春一样,善女扮男妆,倒也很帅,与朋友见面,喜抱拳招呼,称兄道第,神情洒落,有林下风气。这样的女子不要说古代,即便是现在,也是个宝。

和大多女文青女演员喜欢“扑”名家名师一样,柳如是也渴望着能得到大师的关照,而钱谦益就是当时中国文坛名望最高的领袖级人物,而且家里很有钱,谁要是能傍上钱老师,想不红都难。于是,23岁的柳如是就去了。

去哪个地方呢?换作现在,肯定是北京了。据说现在北京的女文青扎堆扎堆的,而老头子就那么几个。当年柳如是要去的地方是江苏常熟,钱老师家住常熟半野堂。没有邀请,也没有谁推荐,柳如是就去了,乘一扁舟,著男子服,幅巾弓鞵,风度翩翩。可以想象一下,如果是一幅画面,应该还是很美的。

七溪流水皆通海,十里青山半入城。那个时候的常熟,小船大概可以直接开到钱老师家的门口。柳如是抬头见半野堂到了,于是上岸,敲门。钱老师正在家看书,门一开,见是一俊俏后生,神情帅气,可眉宇间总感觉又有那么一丝娇媚,这是谁呢?

柳小姐一低头,举起两根手指作V字状,然后眼梢45度角往上一翘,说,你猜啊?

钱老师难能猜得出呢?摇摇头。

柳小姐嘴巴一撅,人家要你再猜一次嘛。

钱老师心想这孩子怎么如此调皮呢,左看看,右看看,然后两只眼睛落在了对方似乎微微隆起的胸部上,更加迷惑了,这到底算有,还是没有呢?真不认识。不过还是把她请进了屋。

一进屋,柳小姐便把外衣给脱了下来,露出了女儿身。钱老师简直不敢相信自己的眼睛,站在自己面前的,还真是一个女的,上上下下,那么的标致,那么的具体。而等对方说出她叫柳如是后,我们德高望重的钱老师乐坏了,差点没能当场把握住。柳小姐,您来寒舍有什么事吧?

柳小姐说,也没什么大事,钱老啊,我就是特崇拜您,想来看看您,并请教如何才能写得一手好诗。

不错啊,小柳,你很好学嘛,钱老说。

于是,他们就开始谈诗,谈音乐,谈梦想。先是坐着谈,然后站着谈,走着谈,从白天一直谈到黑夜,最后谈着谈着就谈到了床上……□□□□□(此处省略二百八十六个字)。第二天一早……□□□□□(此处再省略三百六十个字)

像只小鸟立在枯木的枝头,一粒泪珠从柳小姐的眼角流了下来。钱老一惊,问小柳,你怎么了?柳小姐说,钱老,我是不是一个坏女人啊?钱老说,不是啊。小柳说,哪有一个女的刚和别人认识,就和他上床的呢?我是不是太随便了啊?钱老说,这都是俗人的理论,咱们可不能这样想,再说了,咱们是有感觉的啊。

有感觉是真的,一个是自己的偶像,一个是自己梦中的美人,今日碰撞在一起,能没感觉?然而,习惯性地,柳如是又想起了自己的这些年来的经历,二次婚恋,三入娼门,心里不免又是一阵酸痛,情不自禁地抽泣起来。

我会对你负责的,如是。钱老紧紧地搂住了小柳。虽然这个女人有着这样那样的问题,可人家毕竟是个80后,就像后人李敖评价杨翁恋一样,对每位年逾花甲的老人来说,年轻女孩都是他们渴望而不可及的梦想。而现在,这个梦想犹如天上掉下的馅饼,突然砸在了他的怀里。他愿意给她保护,给她温暖。不仅仅因为她是一个尤物,还因为她还是一个孩子。他甚至有点感激她,是她点燃了他生命中那些早快湮灭的激情。

如果我愿意嫁给你,你会娶我吗?我知道你是有妻室的人,可我只想做一个小。性格爽直的柳如是说。

当然愿意,我怎么会不愿意呢?钱老说,从今往后,你就住下来吧。

柳如是在钱家住了几个月,然后大家相约来年结婚。

说到做到。第二年,不顾家人的反对,不顾社会舆论的压力,一代文豪钱谦益在常熟正式迎娶了当红名姬柳如是。这一年,钱谦益六十岁,柳如是才二十四岁。

说到这里我们必须说说“爱情”二个字。我曾在一篇文章中讲过,“爱情”是文学家发明的词汇,世上本无爱情,说的人多了便有了爱情。如果没有“爱情”一说,那么,我们就很难解释这个世界上男女之间的很多事情。以钱谦益当时的社会地位,一位退居二线但依然有着巨大影响力的老同志,文化部的老部长,怎么会和一名妓女结婚呢?即便要找,最起码也要找个演员吧。这个魄力真不是一点点,换作现在,我相信我们的老同志是没人能做到的,玩么想玩的,一到关键时刻就成了缩卵,比如戏剧学院的某院长,比如同样是德高望重的赵老师,黄老师。而更能显出钱谦益作为一个男人具备大爱胸襟的是,后来,钱老复出,去北京从政(此时已是清朝),有人向钱老打小报告,说留在南京的柳如是和别的男人勾勾搭搭,钱老不但没有生气,还很能理解地说,这年头连士大夫都不能守全节,我们凭什么去要求一个女人守身如玉呢?

这是何等的气量与高度啊!所以,我对后来有人批评钱谦益在爱国的气节上连一个妓女都不如的说法,是不敢苟同的。有些话人家早就自己先说了,钱谦益思想的复杂性绝不是普通人能理解的。

有情人终成眷属。但光成眷属还不够,还需长寿。好在钱氏活了八十多岁,他们还是共同生活了二十多年。

如很多世俗故事一样,钱去世后,为了遗产,钱氏家人把柳如是告上了法庭。几个月后,柳如是选择了自杀。朋友们把柳氏葬在了离钱墓不远的一角。明末清初,这出中国爱情史上最富争议的故事,以典型的“不求同年生,但求同年死”“不求同衾,但求能相望”的方式划上了一个完整的句号。

而要想了解文学史和政治史上的柳如是和钱谦益,请读陈寅恪先生的大作《柳如是别传》。

 

14:55 谷歌搜索的透明度以及我们算不上什么秘密的“准则” (11496 Bytes) » Google 黑板报 -- Google 中国的博客网志

原文:Google, transparency and our not-so-secret formula
转载自:谷歌中文网站管理员博客
发表于:2010年3月2日,星期二,上午9:51

标签:竞争欧盟创新网站站长

最近,欧盟委员会就一系列竞争申诉开始展开初步调查。部分申诉指责谷歌在确定搜索结果排名的方式和原因等问题上不够透明。这一说法让我难以接受。关于如何与网站发布者进行交流,谷歌已经设定过标准。下面让我向您介绍,谷歌如何对搜索结果进行排名及其根据。

关于谷歌“打分”的讨论主要集中在网页排名上。其实,所谓的“秘密准则”其实根本算不上什么秘密。这篇论文对其有详细的介绍。这篇早期的论文不仅介绍了网页排名的规则,同时还提到了谷歌排名的其他标准,其中包括锚文本、词语在文档内的位置、搜索关键词的相关顿、所用字体的字号和类型、页面原始HTML代码以及词语大小写状态等。在过去几年中,谷歌陆续发布了数百篇研究论文。这些论文展现了许多与谷歌运营有关的“秘诀”,以及谷歌所使用的文档基础架构。其中的一些论文不仅促进了开源项目的发展,同时还帮助了很多公司的成长。

学术论文只是其中一个方面,谷歌同时还通过其他方法介绍其经营方式。1999年,谢尔盖.布林参加了首届“网站站长搜索引擎战略大会”。2001年,谷歌成为首批加入“网站站长的世界”这一网络发布商在线论坛的搜索引擎之一。谷歌的的一个代表在论坛上发言2800多次,而另一位代表 AdWords顾问则发言约5000次。

随着网络的发展,谷歌为实现透明化并促进信息交流所做出的努力也随之并进。我们于2004年5月开始发布博客,迄今为止我们已经在官方博客上发布了数以千计的博文。谷歌现有70多个官方博客,其中包括官方网站站长博客,这是一个专门帮助网站站长了解谷歌运作方式并帮助他们在我们的搜索结果中获得期望排名的博客。相比其他任何一个大公司,谷歌发布了更多的博文。同时,我们还使用几十不同语言,在我们的网站上提供大量公共文档,向发布者提供建议。

作为谷歌“反垃圾网站”团队的主管(我们团队致力于阻止各种违反了谷歌的“网站站长指南”里公开、明确规定的垃圾网站行为),经常有人问我谷歌是如何运作的。这也是我2005年开始撰写个人博客的原因。迄今,我已经发表了数百篇关于谷歌的博文。我的博文话题广泛,从常见的网站错误博客新手建议。我还有幸在30多个搜索引擎会议上为网站站长做演讲,并对一些公共网站做评论和解析。事实上,这周我还将与10多个谷歌同事一起参加另一个搜索引擎会议,解答相关疑问。

我们实验了各种方式,以帮助网站站长了解谷歌搜索排名的运作。我们举行了多次网站站长现场谈话的在线直播,吸引了数百名参与者实时参加。此外,我们还尝试过发布Twitter消息和播客。而我还想介绍一种我最喜欢的方式,通过它,我们开诚公布地向网络发布商提供建议:去年,我们收集了许多来自公众的问题,并在网站站长视频频道中发布了数百段视频答复。这些视频的播放次数超过150万次!我们还通过在线博客回答公众关于谷歌业务运作的问题。

这样的例子不胜枚举。谷歌还与其他搜索引擎合作,探讨如何让网站站长的工作变得更为轻松。由此产生的一系列行业标准有:指定首选的网站地址url格式以及网站地图,此举将使网站站长能够轻松地告知搜索引擎关于其网页的信息。谷歌还推出了一个网站站长论坛,谷歌员工和一些经验丰富的“超级用户”经常会登陆这一论坛,解答关于某些特定站点的问题。我们还推出了人工服务的“虚拟网站诊所”,为从旧金山到俄罗斯、从印度到西班牙语系的各地用户提供一对一的回复和建议。我们甚至还确认了谷歌算法中并不使用的排名符号,如关键词元标记,因为这样能帮助网站站长省去一些无用功,并帮他们避免不必要的官司纠纷。

令人沮丧的是,即便是谷歌所有的2万名员工全天候回答网站发布商的问题,我们仍然无法解答所有网站站长的问题。原因何在?因为互联网上有超过1.92亿个注册域名。这也是我们推出谷歌网站站长工具的原因,谷歌网站站长工具是一个一站式站点,能提供可扩展的自助式服务信息,网站站长也可通过该工具向我们提供数据。要全面介绍我们向网站站长推出的这些功能强大的免费工具,恐怕需要再写一篇完整的博文,因此在这里我仅列出其中的一些功能:

  • 网站站长能够在重复元标记或标题标签缺失等问题上获得建议。
  • 那些我们认为违反了谷歌网站站长指南、并在我们的索引中遭受了谷歌所采取的相应措施的网站的站长可申请复议
  • 遭受黑客攻击的网站站长可以获得攻击其网站的恶意软件的详细信息。在移除受攻击内容之后,他们可以从网站上取回网页,Googlebot将确认恶意内容已被完全清除。
  • 网站站长可以找出谷歌在抓取其网站时遇到的错误。

最近,一位谷歌员工发表博文,介绍了如何通过这些免费的公共工具来诊断其超过宽带上限的网站空间(webhost)问题。数百万网站站长也采取了类似的办法,利用谷歌的免费工具获取与其网站相关的有用信息。

谷歌致力于创建一种尽可能公开的经营方式,甚至帮助用户将数据从谷歌产品中导出。同时,我们并不认为企业有某些特定的商业秘密是不合理的,尤其当我们的保密是为了避免网站垃圾制造者和黑客利用我们的系统。如果那些试图篡改谷歌搜索排名的人了解到了谷歌排名运作的所有细节,那么要将我们的搜索结果“篡改”成毫无关联的内容简直就轻松多了,比如说改成色情内容和恶意站点,而最终蒙受损失的将会是用户。

最后我想说的是,随便批评谷歌的“秘诀”不是什么难事,但这并不是事实。多年来,谷歌一直致力于以一种开放的方式开展业务,它向发布商提供关于谷歌排名规则的信息,并努力解答无论是发布商还是用户的各种问题。如果这就是人们对“秘密”的定义的话,那么,谷歌的秘密无疑是在搜索的世界中保守得最糟糕的秘密。

  2010-03-17 Wed

17:45 DataCopy : Oracle data migration utility, faster than exp/imp (5621 Bytes) » DBA Tools

Author: AnySQL, published on dbatools.net, Oracle Data Recovery, Tools, WebChart Report, etc.

    We always use Oracle exp and imp utilities to move data from one oracle database to another, but the Oracle imp utility is really slow, because it does not support direct path load, and we must prepare lot's of storage to store the dmp file. Another way is to use database link and CTAS command, but the database server must be accessable in network. Is there a tool to copy data between Oracle databases without file genration and no database link required? Yes, we now have the DataCopy utility.

    It's very easy to use, I don't think we need read a detailed document before we start to use it. Just read the command line help and enjoy it.

DataCopy: Fast Oracle Data Copy (Demo Version), Release 2.0.1
(c) Copyright Lou Fangxin (AnySQL.net) 2010, all rights reserved.

Usage: datacopy keyword=value [,keyword=value,...]

Valid Keywords:
  user    = username/password@tnsname for source and target.
  user1  = username/password@tnsname for source database.
  user2  = username/password@tnsname for target database.
  table  = table name for both source and target.
  tables  = table name list for both source and target.
  table1  = source table name to query data from.
  table2  = target table name to insert data into.
  query1  = select SQL for source database.
  query2  = insert SQL for target database.
* wait    = wait time in microsecond after each array.
  read    = set DB_FILE_MULTIBLOCK_READ_COUNT at session level
  sort    = set SORT_AREA_SIZE at session level (UNIT:MB)
  hash    = set HASH_AREA_SIZE at session level (UNIT:MB)
  serial  = set _serial_direct_read to TRUE at session level
  array  = array fetch size
  rows    = print log information for every given rows.
  long    = maximum size for long, long raw, CLOB, BLOB columns.
* crypt  = encrypt the connection info only, no data copy (YES/NO).
  parfile = read command option from parameter file
* direct  = direct mode (YES/NO).
* nolog  = no archive log for direct mode (YES/NO).
* parallel= allow parallel load for direct mode (YES/NO).
* sync    = sync mode (INSERT,UPDATE,DELETE,UPDINS,INSUPD,DELINS).
* unique  = primary key or unique key columns of target table.
* conflict= conflict columns for update on target table.
  log    = log file name for screen messages.

Notes:
  datacopy user1=scott/tiger user2=scott/tiger table=emp
  datacopy user1=scott/tiger user2=scott/tiger table=emp direct=yes
  datacopy user1=scott/tiger user2=scott/tiger table1=emp table2=emp_his

    For any question of this utility, add my MSN for online communication.

Related Posts

Twitter Me? | Leave New Comment(Current: 0)

Link: http://www.dbatools.net/mytools/datacopy-utility.html

12:14 盖小咪语录 (18080 Bytes) » Julia----瞬间与记忆在此过渡。。。。。。

盖小咪睡前喝两瓶奶(每瓶120毫升),半夜喝一瓶,起床一瓶,午睡前一瓶,醒来一瓶,一天共喝六次奶,是名副其实的奶奶王。

 

盖小咪:妈妈你有没有去过电工房啊?我喜欢去电工房

黄咪:妈妈小时候总跟你外公去电工房。

 

盖小咪:我有胡子了,可是,为什么我看不到呢?爸爸,你的胡子痒不痒啊?

盖老咪:不痒的

盖小咪:可是我摸你的胡子手很痒。。。

 

盖小咪开始自己创作歌曲,自编自唱

 

盖小咪:我不让爸爸干活

黄咪:你不让爸爸干活,爸爸赚不到钱,你就没奶粉喝。

盖小咪就老实了。

 

盖小咪:这是爸爸妈妈的结婚照

黄咪:是啊

盖小咪:爸爸妈妈是一定会结婚的

黄咪:为什么这么说呢?

盖小咪:你们不结婚的话就会太累了

黄咪:啊。。。

 

盖小咪:爷爷你那边下雪啊?

爷爷:是啊

盖小咪:雪人到了夏天就会哭了。。。

爷爷:不哭

盖小咪:你铲雪要戴手套喔,不戴会冻手。

爷爷:好啊。。。

 

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?(正经的解释盖老咪已经说过很多遍了其实)

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

盖小咪:为什么会下雨啊?

盖老咪:为什么你会尿尿啊?

(两父子很执着)

 

黄咪:今天你要盖小咪读三字经,他说不喜欢你喔

盖老咪:这有什么?今天午睡的时候他都要睡着了,突然抬起头跟我说‘我不喜欢妈妈’嘿嘿。

黄咪:-_-

 

有天我训完盖小咪以后,我就去书架找书,听到房门关了,找到书以后我就开门进去,盖小咪很认真地看着我,爸爸念一句唐诗他就跟着念一句,但表情还是很愣。后来盖老咪跟我说,盖小咪把房门关上以后说了一句:我不喜欢妈妈大声说话。-_-‘’’

 

 盖小咪躺在John地板的床铺上,盖老咪也躺下去,盖小咪急了:“爸爸你睡床上去吧,地板凉!快点上去啦!。。。妈妈!你快来这里躺下!

 

盖小咪外婆:给我吃一口吧。

盖小咪:这个不好吃,  我找别的好吃的给你吃 (其实是不舍得),喏,你吃这个吧。

 

盖小咪调皮,外婆打屁股,盖小咪很委屈地看着外婆说:“我以为你不会打我。。。”

 

盖小咪:火车英语怎么说?

 外婆:不知道

盖小咪:电视机英语怎么说?

外婆:我不懂

盖小咪:你怎么什么都不知道?

 

盖小咪:妈妈!

同事:你找谁?

盖小咪:我找我妈妈

同事:你妈妈是谁?

盖小咪:我妈妈是王卫军

同事把电话转给了我

 

盖小咪:妈妈你在哪里啊?

黄咪:我在公司

盖小咪:爸爸在哪里啊?

黄咪:爸爸在另一个公司

盖小咪听到卡尔在打电话,大喊爸爸

黄咪:那不是爸爸,那是妈妈的同事在打电话

盖小咪:你肯定那不是爸爸?

黄咪:肯定不是

盖小咪:肯定吗?

黄咪:肯定

盖小咪:你什么时候回来啊

黄咪:下班就回来了,妈妈忙,挂电话了好不好

盖小咪:好

 

丽家宝贝:请找xxx

盖小咪:我妈妈不在家,她去上班了。

 

盖小咪拨了很多个‘1’,想找爸爸每打通。

盖小咪:能不能帮我打爸爸电话啊?他去哪里了?怎么还不回来呢?

 

盖老咪在家的时候只让盖老咪带他尿尿

 

盖小咪哭着说:你不要弄丢我的公交卡啊!要不周末我就不能坐公交大巴车了。他找我要公交卡,我就忽悠他,随便给他一张广告卡,他就拿着去问盖老咪这对不对,盖老咪说这不是公交卡,盖小咪就一直回来找我要,直到该奥秘

 

盖小咪学英语单词,有些发音不好,我就一直教

最后他问:我这样说对不对啊?

 

盖小咪:妈妈你给我生个妹妹吧?北京不好玩。

黄咪:真的?!你喜欢妹妹吗?

盖小咪:喜欢

 

盖小咪:妈妈,你的嘴唇还疼不疼啊?给我看看

黄咪:疼啊,你给我吹吹吧

盖小咪(吹吹):还疼吗?

 

黄咪:盖小咪,我去洗澡了,你自己玩吧

盖小咪很不高兴地说:你都不陪我玩的?!

黄咪:-_- 好好好!你真会投诉!

 

 

00:03 女女 (372 Bytes) » 我呸
饭饭,
左、右、前左,
分别三对女。

一对在谈男友
给自己父母买中份
不买大份补品;

一对在谈老公
老是不回家吃饭;

一对在谈男人
靠,
居然忘记鸟。

跪请颁布法律
女人不得和女人饭饭...

  2010-03-16 Tue

22:37 在64位Linux下安装OWB (3226 Bytes) » 半瓶

Oracle Warehouse Builder (OWB) 是 Oracle 的一个综合工具,它提供了易用的图形环境,从而可以快速设计、部署和管理业务智能系统。

一台已经安装了Oracle 10g的64位Linux下安装10.0.1版本OWB软件时,碰到了两个错误,后来查了些资料解决了,记录一下。

首先是OWB需要有自己的ORACLE_HOME,建议建立一个单独的路径来安装OWB,在安装到一半的时候会报调用isqlldr的错,日志信息如下:

INFO: /u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk:2: /u01/app/oracle/oracle/product/10.2.0/db_1/owb:/u01/app/oracle/oracle/product/10.2.0/db_1:/rdbms/lib/env_rdbms.mk: No such file or directory

INFO: /u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk:23: target `ksms.s' given more than once in the same rule.

INFO: make: *** No rule to make target `/u01/app/oracle/oracle/product/10.2.0/db_1/owb:/u01/app/oracle/oracle/product/10.2.0/db_1:/rdbms/lib/env_rdbms.mk'.  Stop.

INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make

Exception Name: MakefileException
Exception String: Error in invoking target 'isqlldr' of makefile '/u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oracle/oraInventory/logs/installActions2010-03-12_02-44-34PM.log' for details.
Exception Severity: 1

这个错误的解决办法就是编辑ins_rdbms.mk文件,增加一行指定OWB自身的ORACLE_HOME的配置:

# Entering /ade/aime_rdbms_9819/oracle/rdbms/install/cus_rdbms.mk
ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1/owb
include $(ORACLE_HOME)/rdbms/lib/env_rdbms.mk

安装完成后,要建立资料库,可以调用安装目录下owb/unix/reposinst.sh脚本建立资料库和用户,但是在创建过程中会报ora-01919: role 'JAVAIDPRIV' does not exist错误,这时需要在目标数据库中重建JVM环境,操作步骤如下:

SQL> @?/javavm/install/rmjvm
SQL> shutdown immediate
SQL> startup
SQL> @?/javavm/install/initjvm
SQL> @?/xdk/admin/initxml
SQL> @?/xdk/admin/xmlja
SQL> @?/rdbms/admin/catjava

虽然前面创建资料库失败,但是用户和一些角色已经创建在数据库中了,我们可以删除这些用户和OWB开头的角色,类似如下SQL:

select * from dba_users

drop user BIUSER cascade

select * from dba_roles where role like 'OWB%'

drop roles OWB_BIUSER

然后再重新创建即可成功。

19:59 用DataCopy进行Oracle数据同步 (5303 Bytes) » AnySQL.net

    DataCopy(下载)并不一定是指从源端取得数据, 然后INSERT到目标端, 插入只是一个默认操作而已, 其实在目标端还可以做UPDATE或DELETE操作. 对于INSERT可以使用Direct Path Load的方式, 速度可以比得上CTAS, 其他的操作方式, 则只能实现Array DML了. 在日常的DBA工作中, 还是会有一些数据同步的需求的, 这时DataCopy应当可以减轻你的工作量.

    在DataCopy中增加了两个命令行选项, 以支持不同的操作方式.

* sync    = sync mode (INSERT,UPDATE,DELETE,UPDINS,INSUPD,DELINS).
* unique  = primary key or unique key columns of target table.

    除INSERT操作外(SYNC选项的默认值), UPDATE/DELETE操作都需要指定目标端表的主键列, 以用在WHERE条件中. UPDATE操作会根据指定的主键列去更新非主键列的值(SYNC=UPDATE), 而DELETE操作则直接在目标端根据主键列删除记录(SYNC=DELETE).

datacopy user1=... user2=... table1=emp table2=emp_sync sync=delete unique=empno
datacopy user1=... user2=... table1=emp table2=emp_sync sync=update unique=empno

    根据前面的三种基本操作还可以延伸出来额外的三种操作, 在目标端用PL/SQL代码来实现, 第一种是UPDATE-INSERT方式, 在目标端先进行UPDATE, 如果更新0条记录, 则进行INSERT. 这种方式适合于以UPDATE为主的数据同步.

datacopy user1=... user2=... table1=emp table2=emp_sync sync=updins unique=empno

    第二种是INSERT-UPDATE方式, 在目标端先进行INSERT, 如果主键冲突, 则进行UPDATE. 这种方式适合于以INSERT为主的数据同步.

datacopy user1=... user2=... table1=emp table2=emp_sync sync=insupd unique=empno

    第三种是DELETE-INSERT方式, 在目标端先进行DELETE, 再进行INSERT操作. 这种方式的执行成本会比较高, 但逻辑简单.

datacopy user1=... user2=... table1=emp table2=emp_sync sync=delins unique=empno

    后面的三种方式, 如果要用PL/SQL来实现Array接口, 代码还是有一点复杂的, 如果要实现动态SQL的处理, 估计更复杂. 并且大量的循环, 用外部C写的程会更有效率.

Relative Posts:

18:26 基于dataguard broker的fast_start failover测试. (3756 Bytes) » dbthink

昨天介绍了如何在Oracle 11gR2上配置dataguard broker,以及如何配置fast_start failover,今天对此做了一下详细的测试..

测试过程如下:
1. 启动dataguard manager里面的observer (也就是一个监控程序,最好部署在主库与standby之外的服务上,在此就部署在其中一台主机上),由于启动Observer之后,dgmgrl会阻塞在这个命令上, 我们先准备一个小脚本来启动observer.

[oracle@dbmain ~]$ cat aaa.sh
nohup dgmgrl sys/xxxx@dbmain "start observer file='/home/oracle/observer/fsfo.dat'" >> /home/oracle/observer/dgmgrl.log &

observer 运行之后可以看到以下的输出信息..

DGMGRL for Linux: Version 11.2.0.1.0 - Production

Copyright (c) 2000, 2009, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected.
Observer started

2. 关闭主数据库dbmain,使用shutdown abort模拟数据库意外垮掉的情况.

17:43:06 sys@DBMAIN>shutdown abort;
ORACLE instance shut down.
17:43:15 sys@DBMAIN>           --注意这一行的时间信息,,这是数据库关闭完毕的时间.

3. 观察observer上的输出信息

17:43:42.63  Tuesday, March 16, 2010    --在差不多30秒后observer开始做Failover操作.与show fast_start failover时看到的值一致.
Initiating Fast-Start Failover to database "dbstby"...
Performing failover NOW, please wait...
Failover succeeded, new primary is "dbstby"
17:44:30.21  Tuesday, March 16, 2010    --切换时间差不多耗费了50秒左右的时间,,当然这与我这个测试库比较小也有关系..

17:47:23.46  Tuesday, March 16, 2010
Initiating reinstatement for database "dbmain"...
Reinstating database "dbmain", please wait...
Operation requires shutdown of instance "dbmain" on database "dbmain"
Shutting down instance "dbmain"...
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "dbmain" on database "dbmain"
Starting instance "dbmain"...
Unable to connect to database
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Failed.
Warning: You are no longer connected to ORACLE.

4. 在dgmgrl中登录当前的主库也就是dbstby,运行 reinstate database dbmain来将dbmain flashback到failover的scn以将dbmain改造成dbstby的standby database.

DGMGRL> show configuration

Configuration - dgconfig1

  Protection Mode: MaxAvailability
  Databases:
    dbstby - Primary database
    dbmain - (*) Physical standby database

Fast-Start Failover: ENABLED

Configuration Status:
SUCCESS

DGMGRL>
DGMGRL> show fast_start failover

Fast-Start Failover: ENABLED

  Threshold:        30 seconds
  Target:           dbmain
  Observer:         dbmain
  Lag Limit:        30 seconds (not in use)
  Shutdown Primary: TRUE
  Auto-reinstate:   TRUE

Configurable Failover Conditions
  Health Conditions:
    Corrupted Controlfile          YES
    Corrupted Dictionary           YES
    Inaccessible Logfile            NO
    Stuck Archiver                  NO
    Datafile Offline               YES

  Oracle Error Conditions:
    (none)

DGMGRL>

No related posts.

11:54 V$session 视图相关字段说明 (7531 Bytes) » dbthink

这是早期在cnoug上发布的一篇文章, 今天在itpub看到”如何查看发生锁的SQL语句“的问题,感觉此文对于此类尚有一点价值, 由此想到这篇文章, 特转帖与此.

v$session 表中比较常用的几个字段说明 ^_^

  • 1. sid,serial#
  • 通过 sid 我们可以查询与这个 session 相关的各种统计信息 , 处理信息 .

    a. select * from v$sesstat where sid = :sid;
    

    查询用户相关的各种统计信息 .

    select a.sid,a.statistic#,b.name,a.value
    from v$sesstat a,v$statname b
    where a.statistic# = b.statistic#
    and a.sid = :sid;
    

    b. 查询用户相关的各种 io 统计信息

    select * from v$sess_io where sid = :sid;
    

    c. 查询用户想在正在打开着的游标变量 .

    select * from v$open_cursor where sid = :sid;
    

    d. 查询用户当前的等待信息 . 以查看当前的语句为什么这么慢 / 在等待什么资源 .

    select * from v$session_wait where sid = :sid ;
    

    e. 查询用户在一段时间内所等待的各种事件的信息 . 以了解这个 session 所遇到的瓶颈 ^_^

    select * from v$session_event where sid = :sid;
    

    f. 还有 , 就是当我们想 kill 当前 session 的时候可以通过 sid,serial# 来处理 .

    alter system kill session ':sid,:serail#';
    
  • 2. paddr. 字段 , process addr, 通过这个字段我们可以查看当前进程的相关信息 , 系统进程 id, 操作系统用户信息等等 .
  • select a.pid, a.spid, b.name, b.description, a.latchwait, a.latchspin, a.pga_used_mem, a.pga_alloc_mem, a.pga_freeable_mem, a.pga_max_mem
    from v$process a,v$bgprocess b
    where a.addr = b.paddr(+)
    and a.addr = :paddr
    
  • 3. command 字段 , 表明当前 session 正在执行的语句的类型 .请参考reference.
  • 4. taddr 当前事务的地址 , 可以通过这个字段查看当前 session 正在执行的事务信息 , 使用的回滚段信息等^_^
  • select b.name rollname,a.*
    from v$transaction a,v$rollname b
    where a.xidusn = b.usn
    and a.addr = '585EC18C';
    
  • 5. lockwait 字段 , 可以通过这个字段查询出当前正在等待的锁的相关信息.
  • select *
    from v$lock
    where (id1,id2) = (
            select id1,id2 from v$lock where kaddr = '57C68C48'
    )
    
  • 6. (sql_address,sql_hash_value) (prev_sql_addr,prev_hash_value) 根据这两组字段 , 我们可以查询到当前 session 正在执行的 sql 语句的详细信息.
  • select * from v$sqltext where address = :sql_address and hash_value = :sql_hash_value;
    
  • 7.ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW#
  • 可以通过这几个字段查询现在正在被锁的表的相关信息.^_^
    a. 首先得到被锁的的信息

    select * from dba_objects where object_id = :row_wait_obj#;
    

    b. 根据 row_wait_file# 可以找出对应的文件的信息.

    select * from v$datafile where file# = :row_wait_file#.
    

    c. 在根据以上四个字段构造出被锁的字段的 rowid 信息.

    select dbms_rowid.ROWID_CREATE(1,:row_wait_obj#, :row_wait_file#, :row_wait_block#, :row_wait_row#) from dual;
    
  • 8. logon_time 当前 session 的登录时间.
  • 9. last_call_et 该 session idle 的时间 , 每 3 秒中更新一次^_^
  • last_call_et 也是一个很有意义的参数,他是在该 SESSION 下用户最后一条语句执行完毕到当前的时间,单位为秒。 每次用户执行一个新的语句后,该字段复位为 0 ,重新开始记数。我们可以通过该字段来获得一个连接用户最后一次操作数据库后的空闲时,所以通过 v$session 和 last_call_et 可以很容易判断那些会话长期没有活动了,可以断开这样的会话,以减少资源利用

    补充:

  • 1. audsid 字段,这是Session登录时系统利用AUDSES$生成的session的唯一标识符. 并将其初始化为sys_context(‘USERENV’,'SESSIONID’)
  • 这样就可以通过下列查询得到当前session的信息..

    select * from v$session where audsid = sys_context('USERENV','SESSIONID');
    

    而不用再去使用v$mystat 来得到当前session的sid了.
    footnote: 以上是Oracle 9i版本的v$session的主要字段说明以及使用.

  • 2. module/action/client_info字段,这些字段的设计本意是提供借口让大家通过此视图了解当前session的工作
  • 可以通过使用dbms_application_info在程序中设置/获取这些信息,来达到应用与DB之间的一个通讯.
    设置方式为:

    exec dbms_application_info.set_client_info('user:james');
    exec dbms_application_info.set_module('bops','getUser');
    exec dbms_application_info.set_action('processJob');
    

    设置完上述信息后,可以通过dbms_monitor(10g中引入)来对此module进行跟踪分析.

    exec dbms_monitor.serv_mod_act_trace_enable(service_name, module_name, action_name, waits, bind, instance_name, plan_stat);
    exec dbms_monitor.serv_mod_act_trace_disable(service_name, module_name, action_name, waits, bind, instance_name, plan_stat);
    
  • 3. failover_type,failover_method,failed_over 字段
  • 这几个字段主要用来显示当前session是否配置TAF,以及配置了何种类型的TAF,,主要用于RAC环境.

  • 4. CLIENT_IDENTIFIER字段
  • 这个字段可以通过运行dbms_session的set_identifier与clear_identifier来设置与清楚.

    SQL> select client_identifier from v$session where sid = sys_context('USERENV','SID');
    
    CLIENT_IDENTIFIER
    ----------------------------------------------------------------
    
    SQL> exec dbms_session.set_identifier('james');
    
    PL/SQL procedure successfully completed.
    
    SQL> select client_identifier from v$session where sid = sys_context('USERENV','SID');
    
    CLIENT_IDENTIFIER
    ----------------------------------------------------------------
    james
    
    SQL> exec dbms_session.clear_identifier;
    
    PL/SQL procedure successfully completed.
    
    SQL> select client_identifier from v$session where sid = sys_context('USERENV','SID');
    
    CLIENT_IDENTIFIER
    ----------------------------------------------------------------
    
    SQL>
    
  • 5. blocking_session_status ,blocking_instance,blocking_session 字段
  • 这三个字段用来显示当前session被哪个instance的哪个session阻塞,,主要通过关联v$lock动态视图获得(11g版本中有,不确定10g是否有,9i没有此字段).

  • 6. 在10g中添加一组来在动态视图v$session_wait的信息,,具体内容与v$session_wait的一致,在此就不做详细介绍了
  • No related posts.

      2010-03-15 Mon