解决ORA-12516错误一则

在上周五晚上通宵加班将一套10.2.0.5.0的Linux 虚拟机环境下的数据量为260GB 的双节点RAC数据库顺利迁移至一台物理机器的开发数据库后,这两天开发的同事反映说连不上物理机开发库了。

起初,我也没有太在意,的确是因为这两天公司内部网络不太正常,ping物理开发库延时比较严重,偶有timed out现象,就一直以为是网络的问题了。直到中午的时候,同事说网络基本正常了,用PL/SQL Developer客户端工具连数据库的时候报出Ora-12516的错误,这才引起了我的注意!

上Metalink查了一下,看了“Troubleshooting Guide TNS-12519 TNS-12516 ORA-12519 ORA-12516 [ID 552765.1]”的文章后,才知道了自己迁移数据库后粗心大意犯下的错误。原来的RAC数据库中每个实例中都将process初始化参数都设置了400,sessions=445,而现在是单台数据库对外提供服务,导致会话数不够用,最终导致的Ora-12516的错误!其实,对于这种开发库而言,公司的开发同事并不多,怎么可能导致445个会话还不够连接使用呢?其实,造成问题的最根本原因是开发人员的应用程序中的连接池配置的有问题,连接数配置过高导致的!!!!

找到了问题的基本原因后,就将process初始化参数从400改为600,进而sessions自动被置为665,transactions参数自动置为731。然后,重启数据库。

        在oracle数据库的初始化参数中,有一类参数是推倒参数,其中:

        sessions=1.1*processes+5,transactions=1.1*sessions.

这样,问题得到了基本的解决。

事后,又出现了一些不痛不痒的问题。

这不,年后简单记录下发生在这个春节前的种种问题,及解决问题的方法:

① 会话数不够用,导致Ora-12516的错误。解决方法,加大process初始化参数,或者通知修改应用程序中的连接数;

② 通过在数据库端配置profile来控制每个会话的活动时间,过期由数据库自动断开会话;

③ 通过使用共享服务器模式来控制数据库服务器端的进程资源;

④ 最头大的问题就是,有个开发的同事将自己PC机器的IP地址设置了同数据库服务器相同的IP地址,导致其他开发人员一直连接不上数据库!!!这个问题可不是第一次遇见,解决办法,协同网络管理员将数据库服务器IP绑定到MAC。

 

其实,这本来是去年春节前遇到的一则案例,后来由于太忙,赶着要回家,于是拖到了今天才发布出来!

记生平第一次跑完马拉松全程比赛

时间:2012年1月7日

地点:厦门

人物:本人及所有参赛运动员外加广大热心观众

事件:生平第一次参加国际马拉松全程邀请赛

比赛路线图:单击查看

成绩:6时36分12秒

概要:本来应该是早上8点准时开赛的,由于自己没能提前进场,耽误了10分钟,结果8:10分开始比赛。前半程跑起来感觉比较轻松,后半程,尤其是22公里到24公里之间,感觉身体极其疲惫,每迈一步都觉得很吃力,几度想放弃,又几度坚持下来了,过了这两公里的疲劳期之后,感觉身体又缓解了很多,不停地补充能量、水分,慢慢的边跑边走,熬到了30公里处,觉得舒服了很多,想想剩下的10多公里不就是一咬牙的事儿嘛。等看到32公里的标示牌时,那叫一个胜利就在前方不远处!就这样,坚持着,坚持着,不停给自己鼓劲,不放弃,最终于下午2点46分12秒到达厦门国际会议展览中心的全程马拉松终点!

赛后回顾:等跑完全程下来,觉得42.195公里的全程马拉松不过如此而已!难就难在坚持,其实,也就是一咬牙的事儿!虽然我花了6个多小时的时间,那么是否能跑出更好的成绩呢,我给自己的答案是明年厦门国际马拉松全程赛场见!

遗憾:跑完全程下来,让同事帮我到赛委会领取成绩证书,最后,却弄丢了证书。

厦门马拉松官方网站:http://www.xmim.org/cn/

延伸阅读:马拉松的故事,以下内容摘自网络:

马拉松与一场战争有关,马拉松原是一个地名,是波希战争的主战场。现在的马拉松的标准距离是马拉松平原到雅典中心广场的距离——42195米。古代波斯帝国有个名叫大流士一世的国王,到公元前6世纪末,他已经征服了周围许多国家和地区,那时候,波斯军队攻占了东起印度河流域,西至撒哈拉大沙漠的广大地区。剩下最后一个侵略目标就是隔海相望的希腊半岛了。

    公元前500年,希腊人建在小亚细亚西南靠近爱琴海边的米利都城邦,率先起来进行摆脱波斯人统治的斗争。雅典应米利都的请求,与另一城邦爱勒特里亚一起派出25艘战船前往援助。希腊人很快攻陷了波斯在小亚细亚的总督府萨底斯,并放火把它烧了。但终因敌不过强大的波斯军队,米利都最后还是失败了。当初,雅典派战船支援米利都的消息传到波斯都城苏萨时,大流士一世十分震惊。他搭弓向西射了一箭,发誓要向雅典人报仇雪恨。他甚至命令奴仆,在他每次吃饭前都要大呼三声:“皇上!记住雅典人!”
    公元前492年,波斯海陆大军在大流士一世的女婿的率领下,第一次进攻希腊本土。不料,这次出师不利,舰队在阿陀斯海角遭遇大风暴,没有踏入希腊本土。
    大流士一方面继续备战,另方面派使者到希腊各城邦去索取土和水,试探希腊各城邦对波斯的态度,妄想采用外交恐吓的卑劣手段降服希腊人。半岛北部的一些城邦害怕强大的波斯,被迫照做了。只有南部的雅典和斯巴达等城邦顶住压力,坚决拒绝投降。斯巴达人把大流士的使者拖到一口井的旁边,指着井口说:“井里有水又有土,要多少就随便拿吧!”说完,把他投进了井里。
    大流士被彻底地激怒了。他决定派有丰富作战经验的将领率军第二次远征希腊。公元前490年,波斯军横渡爱琴海,波斯军一举攻占了爱勒特里亚。接着,波斯军向南开进,杀向雅典。他们在雅典东北60公里的马拉松平原登陆,打算一举攻占这片土地。波斯军一旦攻占了马拉松,沿着一条大道向东翻越一个山丘,步行几十公里,就可抵达雅典城。
大军压境,雅典面临亡国的威胁。情急之下,雅典人派有名的长跑好手斐利皮德斯到斯巴达请求援兵。可斯巴达推辞说,他们正在过一种节日,按习惯必须等到月亮圆时,才能出兵。
    如果坐等援军,就只有死路一条。雅典人只得依靠自己的力量,保卫自己的国家。他们动员了所有公民,征集到一万名重装兵。此外,还得到普拉提亚派来的一千名援军。雅典军队只有波斯的十分之一,力量对比十分悬殊。在这种不利的形势下,雅典军统帅米太亚得决定不与波斯人硬拼,把所有的士兵集中到马拉松,列成方阵。其中精锐兵力布署在两侧,正面中间部分的兵力相对薄弱。两军接触后,波斯军又施用中间突破的老办法,迫使雅典方阵里的中军向后退却。待气势汹汹的波斯军队追赶雅典中军时,雅典方阵两侧的精锐兵力以迅雷不及掩耳之势,杀向已经拉得很长的波斯军队。毫无准备的波斯军队猝不及防,立即乱了阵容,纷纷逃向海上的战船。雅典军又转向后方与中军联合,围歼了波斯中军,取得了马拉松战役的胜利,共歼灭波斯军6000多人,而雅典仅损失了192名士兵。
    为了把胜利的喜讯尽快地传到雅典城里,米太亚得派跑得快的斐利皮德斯去完成这一任务。斐利皮德斯带着创伤和打仗的疲劳,立即往回飞跑。他以惊人的毅力,一口气跑了40多公里。抵达雅典城中央广场时,他只喊了声:“庆祝吧!雅典得救了!”就倒在地上牺牲了。
    后人为了纪念这件事,决定1896年在雅典举行的第一届奥林匹克运动会上,新设一个竞赛项目,叫马拉松赛跑,距离以当年斐利皮德斯跑过的路程为准。这之后的几届奥运会,马拉松赛跑的距离一直没有统一。1920年,第七届奥运会前夕,人们重新测量了从马拉松到雅典中央广场的距离,才正式定为42公里195米。
     这就是马拉松赛跑的来历。