标签: Oracle

ORA-12519问题

今天早上在Oracle的UI管理界面里发现错误

无法连接到数据库实例: ORA-12519: TNS:no appropriate service handler found (DBD ERROR: OCIServerAttach)。

在网上搜了一下,都是英文信息,也不是很完整,估计是进程数量超出,我就远程询问支持我们的DBA,他先让我检查一下,在pl/sql里

select count(*) from v$process 取得当前进程数,我看了一下结果是299,之后再执行

select value from v$parameter where name = ‘processes’,结果是300,看来果真是进程超了,修改进程数

alter system set processes=400 scope=spfile;

之后重起数据库实例startup force,DBA说,processes这个数值也不能改的很大,大了会导致内存不足。

Oracle惊魂

今天中午,上演了一场Oracle数据库惊魂。

我们生产环境使用Oracle RAC,Oracle有两个节点,在中午11点30左右的时候,发现节点1故障,SSH不能连接,应用反映出来数据库连接不正常,此时节点2正常,由于SSH不能连接,也无法判断节点1服务器到底出现什么故障,所以,我让IT支持同事通知IDC重起节点1的机子,谁知噩梦开始发生,IDC工作人员竟然重起了节点2,导致两个节点都瘫痪,也不知道使我们机子的标签贴的有问题还是中国电信的工作水平是如此这般,无奈之下,只能等待,并通知IDC还是要重起节点1的机子,非常诡异的是节点2这台本来正常的机子,在重起后竟然SSH不能连接,真是祸不单行啊,在节点1的机子启动后,它上面的Oracle服务也恢复了正常,接下来只能再通知IDC重起节点2,此时只能保佑不要连不上,还算幸运,在几分钟的等待之后,节点2终于启动了,也能SSH上了,其Oracle服务器也在启动,我同时用crs_stat -t在观察节点状态,发现只有ora.ordb2.gsd处于UNKNOWN 状态,其他的都已经ONLINE了,用crs_stop ora.ordb2.gsd不行将其停掉,出现错误

Attempting to stop `ora.ordb2.gsd` on member `ordb2`
`ora.ordb2.gsd` on member `ordb2` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
CRS-0216: Could not stop resource ‘ora.ordb2.gsd’.

crs_start ora.ordb2.gsd也不行

CRS-1028: Dependency analysis failed because of:
‘Resource in UNKNOWN state: ora.ordb2.gsd’
CRS-0223: Resource ‘ora.ordb2.gsd’ has placement error.

这是又急坏了我和远程支持我们的DBA,最后通过命令crs_stop ora.ordb2.gsd -f停止了ora.ordb2.gsd,再crs_start ora.ordb2.gsd,终于好了,Oracle恢复了正常。

Oracle收购SUN之后

北京时间4月20日晚一条IT界的爆炸性消息传来–《甲骨文将以74亿美元收购Sun》,这个消息确实让人非常意外,因为在之前传出IBM和Sun之间的收购谈判破裂的消息,是Oracle突然接手?应该不是,估计SUN早已有卖掉的计划,只是看谁出价合理吧。

对于Java开发阵营来说,这条消息未必是坏事,毕竟Oracle手里已经有了BEA,在Java企业级应用里就是领头羊,而SUN本身就没有在Java身上赚到钱,相信应该可以更好的整合Java的企业级应用,另外Oracle本身已经使用了非常多的Java技术,两个公司之前也有比较多的合作。

这笔收购让人最担心的还是Mysql,去年SUN收购Mysql,就让人感觉颇为另类,现在Oracle收购SUN,真不知道Oracle会怎样处理Mysql,任其自然发展,还是直接消灭,我想做为广大支持开源的开发者,都不希望Mysql倒掉,更何况当今大多数的Web2.0公司都在使用Mysql,不乏像Facebook这样的大容量用户,如果Mysql没有了,“LAMP”里的M会变成什么?PostgreSQL?还是其他?

商人逐利,这是自古以来的道理,并购的背后,一定有商业利益的存在,收购方希望整合资源、扩大市场、增加利润,被收购方希望套现,一个愿打一个愿挨,无可厚非,但他们究竟会如何面对最终客户,我们只能拭目以待了。

ORA-12547: TNS:lost contact问题

今天在Oracle Enterprise Linux上安装Oracle,后面创建数据实例的时候出现了ORA-12547: TNS:lost contact的错误,按理来说,Oracle Enterprise Linux可是就是针对Oracle的,怎么会出现这样的错误,在网上搜索了一下,可能是没有安装libaio包的缘故,我就试试吧。

在安装盘第3张里找到了libaio-0.3.105-2.i386.rpm和libaio-devel-0.3.105-2.i386.rpm,如果身边没有安装盘,可以到http://rpmfind.net上面去搜索一下,安装后,重起电脑,把以前安装过的Oracle卸载掉,重新安装,没有问题了。

以后需要注意,在安装Linux的时候就把这个包选进去。

修改Oracle连接数

在SQL/PLUS下,先检查一下当前连接数
show parameter process;
show parameter session;

修改命令,根据自己实际情况修改数值
alter system set processes=300 scope = spfile;
alter system set sessions=350 scope = spfile;

之后重启Oracle