Oracle 12c重启前能运行重启后提示ORA-12514

Oracle 12c重启前能运行重启后提示ORA-12514,第1张

问题:

ORACLE 服务正常重启后,发现登录不进去了,重启之前十分健康,也没做什么多余的操作,具体如图。

通过services控制台重启ORACLE,重启正常。

但是PLSQL不能登录了。报错:12514。

解决过程:

Iteye上有报错的几个原因:Oracle-12514错误发生的几种原因

都是没有效果。

确定是不是客户端配置的问题,直接上服务器SQLPLUS。

结果也是12514。

果真是ORACLE服务出问题了。

怎么办,既然监听有问题,就卸载了重装监听吧。我老是觉得重装比什么都好,不要管这么多了。其实我是在逃避问题。

重新配置完成。

擦!还是12514。

没办法了。难道不是监听的问题,那就是ORACLE服务的问题了。

服务没有起出来吗?来吧用SQLPLUS重启下看看。

ORACLE not available是什么意思。服务没有起出来?WINDOWS services控制台只是个假象。

果断,再起:

What the fuck

谷歌ORA -01261

ORA-01261解决方法

根据上面谷歌所得,查看相应的pfile文件

对应的路径果然不存在:

重建路径,重新startup:

PLSQL也能登录了。

总结分析:

1、12514的错误只是个表象,它是由监听报出来的,应该属于较外层的错误显示。所以,出现该种错误的情况有好多好多。像什么网络环境配置,安装环境和运行环境变掉了。也会报这个错。但是网上解决方案不能代表全部问题。

2、数据库出现问题了,不能轻易的去改动比较重要的东西。像pfile文件等。不要参照网上改了很多配置,结果回不来了。要修改配置文件前都要进行备份。

3、多使用命令启动停止ORACLE,比较看得出来错误。

4、要保证ORACLE安装完的程序,不要删除它的文件及文件夹,除非你确定它是没有用的。安装程序和个性文件分开放。

我们一般修改到1000~1500,就好了,再大也没有什么用处了。

一般和你机器的内存有关:

给你copy一段:

ORACLE最大连接数问题

(2010-09-08 20:27:17)

转载▼

标签:

oracle优化

it

分类: 多少会点

oracle 10g安装在windows 2003 32位操作系统,连接数到120个就不能连接,报ora12518

服务器IBM XSERVER,内存:4G

oracle 数据库配置的主要参数如下:

processes integer 800

sessions integer 885

pga_aggregate_target big integer 350M

sga_max_size big integer 1256M

sga_target big integer 1152M

shared_pool_size big integer 400M

large_pool_size big integer 16M

数据库配置的连接数是800个,但是现在当oracle的连接数达到250个时候,其他的客户端就无法再连接上oracle服务器了,报个错:ORA-12518: TNS: 监听程序无法分发客户机 ;

但是已经连接上数据库的应用还可以正常应用,就是其他没连上的就再也连不上了,除非已有的连接有退出的,其他的才能再联上,就是可连接的总数是250个;

上网查:说是在可以在listenerora中加入一行: direct_handoff_ttc_<listener name>=off,但是依旧不成;

这期间我尝试着把

pga_aggregate_target 改成200或者500等,结果是一样的;

sga_target改成800m后,结果数据库就起不来了,提示说要不能小于1024m;

后来查到有可能是oracle 10g for win32的一个bug,上网下了补丁,打完补丁后的版本是:10203);还怀疑是不是windows 2003的tcp连接数不够,上网查说好像是有这毛病,下了个2003的补丁,把tcp连接数扩到了1000,结果能够达到可以有350个并发连接,但是再多就又连不上了;

现在就是不太清楚究竟是什么参数配置的不合适,(不管是oracle10g的,还是windows 2003的),才会造成实际上没有达到oracle设置的最大连接数时就不能连接了;

又后来,怀疑是不是windows 2003(32位)的问题,于是就装了个64位的windows 2003,同样版本的oracle 10g,装好后就把连接数process参数配置成800,然后做连接测试,一直可以有800个session连接上来,到现在为止,可以大致总结出症结所在了,就是我装的这个windows 2003 server(32位)的操作系统,在安装oracle 10g(10201-10203)时有问题,连接数不能达到系统配置的那么大;可以采用64位的替代。但是我在想,究竟为什么windows 2003 server(32位)的操作系统+oracle 10g数据库连接数会有限制,有没有什么办法,修改一下2003的配置或者oracle 10g的配置, 就可解决掉这个问题,

解决方案:

一、修改oracle参数

1、原有参数

#pga_aggregate_target=67108864

#processes=500

#sessions=555

# pga_aggregate_target此参数是扩大并发连接数占用内存大小。

# 可调整此参数,放大或缩小,同时影响并发数量。

# 公式: 约=可按照并发数量4M

pga_aggregate_target=720M

# processes、sessions是扩大并发连接数,是同时使用。

# 公式: sessions = processes 11 +5

processes=600

sessions=665

2、在监听参数文件LISTENERORA 文件中增加参数

direct_handoff_ttc_listener = off

3、重新启动数据库服务。

二、1、修改Windows系统中Bootini文件

/3GB /PAE

说明:修改操作系统中Bootini文件,可以使oracle使用更多的内存空间。

2、修改用户组策略中锁定内存页大小权限。

参数修改完毕问题解决。

3、重启计算机。

在服务器上,用命令行分步启动,看看有什么错误:

Oracle的一个实例对应一个数据库,启动分三个步骤(可以分步启动):

sqlplus / as sysdba nolog

sql>startup nomount -- 启动实例,不加载数据库

sql>alter database mount -- 加载数据库

sql>alter database open -- 打开数据库

解决办法:

1、从另外一台安装有oracle数据库的机器上(要求oracle的版本一致)的注册表中导出所有的oracle服务。

依次打开注册表目录HEY_LOCAL_MACHINE --> SYSTEM --> ControlSet001 --> Services,导出(在注册表项上右键选择“导出”)所有oracle的项:OracleDBConsoleorcl、 OracleJobSchedulerORCL、OracleOraDb10g_home1iSQLPlus、 OracleOraDb10g_home1TNSListener、 OracleServiceORCL,保存为reg文件。

2、把上一步中导出的注册表文件,导入服务器上。把文件拷贝到数据库服务器上逐个双击即可。

3、修改导出的所有的注册表项,主要修改数据库实例(SID)名和数据库安装路径。

4、重启数据库服务器。

5、启动oracle的Net Manager工具,删除监听程序LISTENER和服务命名中的本机的服务,并重建监听程序和服务命名。

6、启动oracle服务即可。

打开secureCRT,连接到数据库所在的linux机器。若用户为root,请输入命令“su - oracle”并回车,若要密码,输入密码后并回车,就切换到了oracle用户下。(图为已切换到oracle用户下了)

如何在linux下重启oracle数据库

关掉oracle的监听进程:命令为“lsnrctl stop”并回车,这时外部没法连接到数据库了。如图有提示关闭成功信息。

如何在linux下重启oracle数据库

先杀掉所有session,小编用的是命令:“ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill”也可以用其他办法。然后用sqlplus登录到数据库。命令依次为:“sqlplus /nolog”-“connect / as sysdba” ,最后用命令关闭oracle数据库"shutdown immediate" 。关闭命令的时候需要等待点时间,成功后会有如图的提示。

如何在linux下重启oracle数据库

用命令"exit"退出sqlplus。然后用命令“lsnrctl start”启动数据库的监听进程。如图

提示语句表明启动成功。

如何在linux下重启oracle数据库

和第三步一样,先用sqlplus登录到数据库。命令依次为:“sqlplus /nolog”-“connect / as sysdba”。然后输入命令“startup”并回车。等待几分钟会出现如图提示信息。最后用命令“exit”退出sqlplus。

如何在linux下重启oracle数据库

END

注意事项

注意命令不要输入错误。

在关闭数据库的时候要耐心等待一下。

一定要先杀掉所有session哦。

工具/原料 oracle数据库secureCRT或其他类似工具

方法/步骤

打开secureCRT,连接到数据库服务器,使用oracle用户登录系统

登录Oracle: sqlplus / as sysdba

关闭数据库 SHUTDOWN NORMAL

启动数据库 startup

参考 关闭数据库时的参数:

在shutdown时可选择关闭模式:NORMAL、TRANSACTIONAL、IMMEDIATE或ABORT

• ABORT:在关闭之前执行的任务最少。由于此模式需要在启动之前进行恢复,因此只在需要时才使用此模式。当启动实例时出现了问题,或者因紧急情况(如,通知在数秒内断电)而需要立即关闭时,如果其它关闭方式都不起作用,通常选择使用此模式。

• IMMEDIATE:这是最常用选项。选择此模式会回退未提交的事务处理。

• TRANSACTIONAL:允许事务处理完成

• NORMAL:等待会话断开

如果考虑执行关闭所花费的时间,则会发现ABORT的关闭速度最快,而NORMAL的关闭速度最慢。NORMAL和TRANSACTIONAL花费的时间较长,具体取决于会话和事务处理的数目。

注意:

在SHUTDOWN NORMAL或SHUTDOWN TRANSACTIONAL或 SHUTDOWN IMMEDIATE 这三个模式下关闭数据库,则:

关闭时:执行immediate时,会回退未提交的更改;数据库缓冲区高速缓存,会写入到数据文件;会释放资源。

启动时:不用恢复实例。

在SHUTDOWN ABORT或 实例错误 或STARTUP FORCE,则

关闭时:修改过的缓冲区未写入数据文件;不回退未提交的更改。

启动时:使用联机重做日志文件重新应用更改;使用还原段回退未提交的更改。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Oracle 12c重启前能运行重启后提示ORA-12514

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情