Oracle 12c重启前能运行重启后提示ORA-12514
问题:
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,则
关闭时:修改过的缓冲区未写入数据文件;不回退未提交的更改。
启动时:使用联机重做日志文件重新应用更改;使用还原段回退未提交的更改。
0条评论